//===== eAthena Script ===================================== //= Run or Die ( aka. Poring Bomb Event ) //===== By: ================================================ //= AnnieRuru //===== Current Version: =================================== //= 2.3a //===== Compatible With: =================================== //= Hercules 2015-11-15 //= DO NOT USE THIS SCRIPT IF YOUR HERCULES COMPILE BEFORE THIS DATE //===== Description: ======================================= //= Avoid the poring bomb at all cost ! //===== Topic ============================================== //= http://herc.ws/board/topic/11010-run-or-die-event-aka-poring-bomb/ //===== Additional Comments: =============================== //= Its time to use queue iterator script commands ! //========================================================== prontera,148,182,5 script Run Or Die 1_F_MARIA,{ if ( getgmlevel() >= 99 ) { // gm level to bypass the registration warp "guild_vs5", 0,0; end; } if ( queuesize( getvariableofnpc( .qid, "runordie" ) ) >= 100 ) { // 100 participant max mes "[Run Or Die]"; mes "I'm sorry, the room is full"; close; } percentheal 100, 100; warp "guild_vs5", 0,0; queueadd getvariableofnpc( .qid, "runordie" ), getcharid(3); end; } - script runordie FAKE_NPC,{ OnInit: disablenpc "Run Or Die"; if ( QUEUEOPT_MAPCHANGE != 3 ) end; // stop the script if the server is outdated bindatcmd "runordie", strnpcinfo(0)+"::OnStart", 99,100; .onesec = 1000; // use for script debugging... set to 100 to make the announcement run faster end; OnStart: OnClock0145: // set your time here OnClock0445: OnClock0745: OnClock1045: OnClock1345: OnClock1645: OnClock1945: OnClock2245: enablenpc "Run Or Die"; mapwarp "guild_vs5", "prontera", 148,172; killmonsterall "guild_vs5"; .start = true; .qid = queue(); queueopt .qid, QUEUEOPT_DEATH, strnpcinfo(0)+"::OnDeath"; queueopt .qid, QUEUEOPT_LOGOUT, strnpcinfo(0)+"::OnQuit"; queueopt .qid, QUEUEOPT_MAPCHANGE, strnpcinfo(0)+"::OnMapChange"; announce "Run Or Die!!!: Are you ready to join Run Or Die event???", bc_all; sleep 4 * .onesec; announce "Run Or Die: For Those who dare to join please '@warp prontera 148 172' to participate", bc_all; sleep 6 * .onesec; announce "Run Or Die: Register time will be closing after 1 minute", bc_all; sleep 20 * .onesec; announce "Run Or Die: Last 30 second", bc_all; sleep 10 * .onesec; announce "Run Or Die: Rush type in '@warp prontera 148 172' to join", bc_all; sleep 10 * .onesec; announce "Run Or Die: Last 10 second to register", bc_all; sleep 5 * .onesec; announce "Run Or Die: 5", bc_all; sleep 1000; announce "Run Or Die: 4", bc_all; sleep 1000; announce "Run Or Die: 3", bc_all; sleep 1000; announce "Run Or Die: 2", bc_all; sleep 1000; announce "Run Or Die: 1", bc_all; sleep 1000; announce "Run Or Die: Time is up...I will come again 3 hour later..", bc_all; disablenpc "Run Or Die"; if ( queuesize(.qid) < 2 ) { // cannot start event if nobody joins(0) or just having (1) player announce "Run Or Die: Not enough players to start the event...", bc_all; mapwarp "guild_vs5", "prontera", 148,172; queuedel .qid; .start = false; end; } mapannounce "guild_vs5", "Welcome to Run Or Die event", bc_map; sleep 3 * .onesec; mapannounce "guild_vs5", "This is an easy event", bc_map; sleep 3 * .onesec; mapannounce "guild_vs5", "Just stay AWAY from anything that you think its DANGEROUS!!", bc_map; sleep 3 * .onesec; mapannounce "guild_vs5", "Stay alive as long as YOU CAN!!!!", bc_map; sleep 3 * .onesec; mapannounce "guild_vs5", "The LAST SURVIVOR will be the WINNER", bc_map; sleep 3 * .onesec; mapannounce "guild_vs5", "event will start in 3", bc_map; sleep 1 * .onesec; mapannounce "guild_vs5", "2...", bc_map; sleep 1 * .onesec; mapannounce "guild_vs5", "1...", bc_map; sleep 1 * .onesec; mapannounce "guild_vs5", "Its time to run !!", bc_map; while ( .start ) { .@more += rand(1,2); monster "guild_vs5", 0,0, "Come On Baby!!!", BOMBPORING, 2 + .@more, "", 0; monster "guild_vs5", 0,0, "Come On Baby!!!", BOMBPORING, 2 + .@more, "", 1; monster "guild_vs5", 0,0, "Come On Baby!!!", BOMBPORING, 2 + .@more, "", 2; sleep 5000; } end; OnMapChange: if ( @Queue_Destination_Map$ == "guild_vs5" ) end; OnDeath: OnQuit: queueremove .qid, getcharid(3); if ( queuesize(.qid) > 1 ) end; .start = false; killmonsterall "guild_vs5"; .@it = queueiterator(.qid); .@aid = qiget(.@it); qiclear .@it; announce "Run Or Die: Congratulations ~ the winner is "+ rid2name(.@aid), bc_all; getitem Poring_Coin, 5, .@aid; // winner prize queuedel .qid; sleep 5000; mapwarp "guild_vs5", "prontera", 148,172; end; } guild_vs5 mapflag nowarp guild_vs5 mapflag nowarpto guild_vs5 mapflag noteleport guild_vs5 mapflag nosave SavePoint guild_vs5 mapflag noskill guild_vs5 mapflag nomemo guild_vs5 mapflag nopenalty guild_vs5 mapflag noicewall //guild_vs5 mapflag nobranch