-
Posts
73 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by 3TAJIOH
-
-
I need to spawn not agressive monsters on event (normally monsters are agressive).
-
Solved
copyarray $mvpladderparty_member$, .@name$, $@partymembercount;
-
Only first 3 party members are in the ranking. There were 8 charachters on the MVP Ladder arena map.
-
How can I make guildmember can damage each other?
Upd. Solution:
setmapflag "guild_vs1-1",mf_pvp_noguild;
setmapflag "guild_vs1-1",mf_pvp_noparty; -
I have the same problem. On event npc using pvpon but guildmembers cannot damage together.
Upd. Solution:
setmapflag "guild_vs1-1",mf_pvp_noguild;
setmapflag "guild_vs1-1",mf_pvp_noparty; -
No reward and end of event after 10 wave.
-
Hello. Solved this problem? @mathlister
-
Effect of Lif homunculus skill Mental Change disappear after teleport by Fly Wing.
-
Nice, can you make search items selling by vendors?
-
I tried this. But I can register several times by 1 charachter...
query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.@mac$); for ( .@i = 0; .@i < getarraysize(.last_mac$); .@i++) { if ( .@mac$ == .last_mac$[.@i] ) { dispbottom "Dual Clients are not allowed for Battleground Events."; end; } }
-
Yes, I Know. Players can use 3 windows. But I need to protect BG.
-
Hello. Please help me. Need fix this script. Mac check doesn't work.
//===== rAthena Script ======================================= //= BG Queue System //===== By: ================================================== //= Zeiyan (based on scripts by pajodex) //===== Current Version: ===================================== //= 1.0 //===============Description================================== // Simple BG Queue System with @joinbg / @leavebg / @bginfo // Comes with Pajodex's Fortress and Rune War BG scripts //==============Notes========================================= // I'm not sure if code is scalable or easy to configure. // Send me a message if there's anything I can improve on it //============================================================ function script F_ShuffleNumbers { deletearray getarg(2); .@static = getarg(0); .@range = getarg(1) +1 - .@static; .@count = getarg(3, .@range); if (.@range <= 0 || .@count <= 0) return 0; if (.@count > .@range) .@count = .@range; for (.@i = 0; .@i < .@range; ++.@i) .@temparray[.@i] = .@i; for (.@i = 0; .@i < .@count; ++.@i) { .@rand = rand(.@range); set getelementofarray( getarg(2), .@i ), .@temparray[.@rand] + .@static; .@temparray[.@rand] = .@temparray[--.@range]; } return .@count; } //================================================================== //================================================================== //================================================================== - script bgmain -1,{ OnInit: set .n$, "[^0D6501Battlegrounds^000000]"; //================@ Commands========================= bindatcmd "joinbg",strnpcinfo(3)+"::OnAtCmd",0,0; bindatcmd "leavebg",strnpcinfo(3)+"::OnLeave",0,0; bindatcmd "bginfo",strnpcinfo(3)+"::OnInfo",0,0; bindatcmd "bgstart",strnpcinfo(3)+"::OnBgStart",0,0; //=================Add your BG Main NPCs Here======================= setarray .bgevents$, "runewar#main", "fortress#main", "domination#main" ; //================Event Names (in order with NPCS==================== setarray .eventname$, "Rune War Event", "Fortress Battlegrounds", "Domination" ; end; //====================@bgstart================================ OnBgStart: if(#BGCD > gettimetick(2) ) { dispbottom "Starting Battleground Events have a cooldown of 24 Hours per account."; dispbottom "Time left: ^FF0000" + callfunc( "Time2Str", .renttime[ atoi( strnpcinfo(2) ) ] + #BGCD ); end; } //================================================================== //===========Check for on going events============================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.start, .bgevents$[.@i])) { dispbottom "A battleground event instance for "+.eventname$[.@i]+" is already in progress."; end; } } //================================================================== //================Check for active registration===================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { dispbottom "An active registration for "+.eventname$[.@i]+" is already in progress."; end; } } //================================================================== mes .n$; mes "Which Battleground Event would you like to start?"; .@menu_item_size = getarraysize(.eventname$); for (.@i = 0; .@i < .@menu_item_size; .@i++) { .@menu$ = .@menu$ + (.@i > 0 ? ":" : "") + .eventname$[.@i]; } .@i = select( .@menu$ ) - 1; donpcevent .@bgevents$[.@i]+"::OnAtcmd"; announce strcharinfo(0)+" has started "+.@bgevents$[.@i]+".",0; sleep 1000; set #BGCD,gettimetick(2) + 86400; end; //================================================================== //===============@joinbg============================================ OnAtCmd: //================================================================== //===========Check for on going events============================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.start, .bgevents$[.@i])) { dispbottom "A battleground event instance for "+.eventname$[.@i]+" is in progress."; end; } } //================================================================== //================Check for active registration===================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { set .@regison, .@regison + 1; } } //====================================================================== //================Sorry no active registration right now================ //====================================================================== if(.@regison == 0 && .@eventison == 0) { dispbottom "No battleground registration is active at this time."; end; } //================================================================== //================Job Check========================================= //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { for(.@x = 0; .@x < getvariableofnpc( .denyjobsize, .bgevents$[.@i] ); .@x++) { if( Class == getvariableofnpc( .denyjob[.@x], .bgevents$[.@i] )) { dispbottom jobname( Class ) +"s are not allowed for "+.eventname$[.@i]+"."; end; } } } } //================================================================== //================Base Level Check================================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { if(getvariableofnpc(.minblevel, .bgevents$[.@i]) > BaseLevel) { dispbottom "You are forbidden from joining this event."; dispbottom "You need to have a base level of at least "+getvariableofnpc(.minblevel, .bgevents$[.@i])+" to join "+.eventname$[.@i]+"."; end; } } } //===No Active BGs & there is an active registration in progress======== //====================================================================== //===================Proceed to Registration============================ //====================================================================== while ( .aid[.@i] != getcharid(3) && .@i < .size ) ++.@i; if ( .@i < .size ) { dispbottom "You are already in queue."; dispbottom "Please wait until the game starts."; end; } query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.@mac$); for ( .@i = 0; .@i < getarraysize(.last_mac$); .@i++) { if ( .@mac$ == .last_mac$[.@i] ) { dispbottom "Dual Clients are not allowed for Battleground Events."; end; } } for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { dispbottom "You are now in queue for "+.eventname$[.@i]+"."; dispbottom "Use this time to prepare your items and equipment."; announce strcharinfo(0)+" has joined the "+.eventname$[.@i]+".",bc_blue; } } query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.last_mac$[ .size++ ]); .aid[ .size++ ] = getcharid(3); for ( .@i = 0; .@i < .size; ++.@i ) { if ( !isloggedin( .aid[.@i] ) ) { deletearray .aid[.@i], 1; deletearray .last_mac$, 1; --.@i; --.size; } } end; //========================@leavebg=========================== //====================================================================== OnLeave: for ( .@i = 0; .@i < .size; ++.@i ) { if ( .aid[.@i] == getcharid(3) ) { deletearray .aid[.@i], 1; deletearray .last_mac$[.@i], 1; --.@i; --.size; dispbottom "You have left the queue for the event."; announce strcharinfo(0) +" has left the queue for the event!",bc_blue; end; } } dispbottom "You are not in queue for any events at this time."; end; //====================================================================== //================On Postpone Event===================================== //====================================================================== OnPostpone: deletearray .aid; deletearray .last_mac$; deletearray .@i; deletearray .size; end; //====================================================================== //================Rune War NPC Event==================================== //====================================================================== OnRuneStart: copyarray getvariableofnpc( .aid_, "runewar#main" ), .aid, .size; donpcevent "runewar#main::OnStart"; deletearray .aid; deletearray .last_mac$; .size = 0; end; //====================================================================== //================Fortress BG NPC Event================================= //====================================================================== OnFortStart: copyarray getvariableofnpc( .aid_, "fortress#main" ), .aid, .size; donpcevent "fortress#main::OnStart"; deletearray .aid; deletearray .last_mac$; .size = 0; end; //====================================================================== //===================Dota Match NPC Event=============================== //====================================================================== OnDominationStart: copyarray getvariableofnpc( .aid_, "domination#main" ), .aid, .size; donpcevent "domination#main::OnStart"; deletearray .aid; deletearray .last_mac$; .size = 0; end; //====================================================================== //================Information on BG Mechanics=========================== //=====================@bginfo========================================== OnInfo: mes .n$; mes "ZeiyanRO offers different battlegrounds event."; mes "I can provide information on the mechanics of each of them."; next; .@menu_item_size = getarraysize(.eventname$); for (.@i = 0; .@i < .@menu_item_size; .@i++) { .@menu$ = .@menu$ + (.@i > 0 ? ":" : "") + .eventname$[.@i]; } .@x = select( .@menu$ ) - 1; for (.@i = 0; .@i < .@menu_item_size; .@i++) { if(.@i == .@x) { mes "[ ^FF0000"+.eventname$[.@i]+"^000000 ]"; mes "Even Duration:^335EFF "+getvariableofnpc(.duration, .bgevents$[.@i])+" minutes^000000"; mes "Minimum Base Level:^335EFF "+getvariableofnpc(.minblevel, .bgevents$[.@i])+"^000000 "; mes "Minimum Participants:^335EFF "+getvariableofnpc(.minplayers, .bgevents$[.@i])+"^000000 "; next; //====================================================================== //================Rune War Mechanics==================================== //====================================================================== if(.@x == 0) { mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Several Runes will appear in the middle of the map that can grant the following power ups:"; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "^9B00FFInvisibility^000000"; mes "^0028FFDouble Damage^000000"; mes "^FF0000Haste^000000"; mes "^AACC06Illusion^000000"; mes "^06CC21Regeneration^000000"; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Whichever team has the most kills before the game ends wins."; mes "Logging out and abandoning will have penalties for this event."; close; } //====================================================================== //===================Fortress BG Mechanics============================== //====================================================================== if(.@x == 1) { mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Each team is spawned in their own mini Fortress that can regenerate their HP/SP."; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Fortresses will drain the enemy player's HP and grant regeneration to owners."; next; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Whichever team that has the control of the Main Fortress before the end of the game wins."; mes "Logging out and abandoning will have penalties for this event."; close; } //====================================================================== //===================Domination BG Mechanics============================ //====================================================================== if(.@x == 2) { mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Capture several flags on the map to gain points more flags captured at a given time will provide more points overtime."; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Whichever team has the most points before the game ends wins."; mes "Logging out and abandoning will have penalties for this event."; close; } //====================================================================== } } //====================================================================== }
-
Looking for a script with save point on guild location and kick charachters if they are not in guild.
-
Just change (rand(50) == 0) to (rand(50) < 5)
-
Yes, new monsters don't spawn.
-
Sometimes on 2nd floor after killing all monsters, mini-boss Commander doesn't appear.
// Commander 1 2@gl_k,1,1,0 script #ghmemorialmob05 HIDDEN_WARP_NPC,{ end; OnStart: enablenpc instance_npcname("#ghmemorialmob05"); for ( .@i = 1; .@i <= 7; .@i++ ) enablenpc instance_npcname("#ogh_2-" + .@i); end; OnMyMobDead: if (rand(50) == 0) {// can re-spawn mapannounce 'map_name$[1], "Evil Forces are appearing in this area.", bc_map,0xFFFF44,FW_NORMAL,15; killmonster 'map_name$[1], instance_npcname("#ghmemorialmob05") + "::OnBossDead"; .@r = rand(4) * 2; setarray .@coord[0], 41,146, 58,44, 122,148, 131,64; monster 'map_name$[1],.@coord[.@r],.@coord[.@r+1], "1st Commander of Destruction",2473,1, instance_npcname("#ghmemorialmob05") + "::OnBossDead"; } end; OnBossDead: mapannounce 'map_name$[1], "A portal has opened to the east in the central hallway.", bc_map,0xFFFF00; enablenpc instance_npcname("#23 Control"); enablenpc instance_npcname("#23 Control2"); donpcevent instance_npcname("#ghmemorialmob06") + "::OnStart"; disablenpc instance_npcname("#ghmemorialmob05"); for ( .@i = 1; .@i <= 7; .@i++ ) donpcevent instance_npcname("#ogh_2-" + .@i) + "::OnStop"; end; }
-
First killed SuperNovice by GM, then killed GM by SuperNovice. ID 8 is another character on Supernovice's account.
Didn't change ur code.
}else if(strcharinfo(3) == "pvp_n_1-5"){ // This is PVP MAP restriction if(getcharid(3)==killedrid) end; set PvPpoints, PvPpoints+.PvP_Point; query_sql( "SELECT * FROM pvp_ranking WHERE `Char_ID` = '"+getcharid(0)+"'", .@CharID, .@Name$, .@Kills, .@Deaths); set ToTalPvPoints , .@Kills + .PvP_Point; if(getcharid(0) == .@CharID){ query_sql("UPDATE `pvp_ranking` SET `Kills` = '"+ToTalPvPoints+"' WHERE `Char_ID` = '"+getcharid(0)+"'"); }else{ query_sql("INSERT INTO `pvp_ranking` (`Char_ID`,`PlayerName`,`Kills`,`Deaths`) VALUES ('"+getcharid(0)+"', '"+strcharinfo(0)+"', '"+.PvP_Point+"', '"+.@Deaths+"')"); } //This is the point system on the player, you can disable this anytime by adding comment " // " dispbottom "Вы убили "+rid2name(killedrid)+" и получили "+.PvP_Point+" очка."; attachrid(killedrid); set PvPpoints, PvPpoints-.PvP_Deductpoint; dispbottom "Вас убил "+rid2name(killerrid)+", Вы потеряли "+.PvP_Deductpoint+" очка."; ////////query for the deaths query_sql( "SELECT `char_id`, `account_id` FROM `char` WHERE `account_id` = '"+getcharid(3)+"' ", .@Cchar_id, .@Aid); query_sql( "SELECT * FROM pvp_ranking WHERE `Char_ID` = '"+.@Cchar_id+"'", .@CharID, .@Name$, .@Kills, .@Deaths); set ToTalDeathPvPoints , .@Deaths + .PvP_Deductpoint; if(.@CharID != .@Cchar_id){ query_sql("INSERT INTO `pvp_ranking` (`Char_ID`,`PlayerName`,`Kills`,`Deaths`) VALUES ('"+.@Cchar_id+"', '"+strcharinfo(0)+"', '0', '"+ToTalDeathPvPoints+"')"); }else{ query_sql("UPDATE pvp_ranking SET Deaths = '"+ToTalDeathPvPoints+"' WHERE `Char_ID` = '"+.@Cchar_id+"'"); } end; } } end;
After few kills
So after WOE
-
7 hours ago, BeWan said:
npc script get or save the name of the character not the nickname.
Yes, but the ID and name of character are not correct.
-
No emperium breaker statistics on Woe SE. How can i Fix it?
Also bug with nicknames. 2180 - another char on account of KeeperSura, but I killed KeeperSura, nickname is true.
-
Need Expanded Super Novice. Or how can I block bodystyle for them?
Solved. Edited atcommands.
-
-
2139,Flame_Thrower,Flame Thrower,4,20000,,2000,,60,,0,0x00000400,63,2,32,,99,0,1,{},{},{}
-
-
On 5/24/2019 at 6:11 AM, melv0 said:
hi, sorry for bump this topic
i have same issue but only with normal accountSo when try to buy with normal account, npc like didn't read our item in inventory and always say "you don't have enough Kafrapoints"
But if use GM account everything is fine?
http://prntscr.com/nsm83g
already check in item_trade.txt still have the issueSet flag 1 to item. I had the same problem with flag 9 (cannot be sold to npc)
How to spawn not agressive mobs?
in Script Requests
Posted · Edited by 3TAJIOH
Wow, thx a lot @Emistry