prontera,156,184,3 script Poring Catcher Warper 1_SHADOW_NPC,{ mes "Do you want to join the Poring Catcher Event?"; select ( "Yes" ); warp getvariableofnpc( .eventmap$, "poring_catcher" ), rand(102,104), 101;; end; } - script poring_catcher FAKE_NPC,{ OnInit: .eventlasting = 30*60; // how many seconds the event will last ? default : 30*60 = 30 minutes .gmsetting = 60; // in which level the GMs can start this event ? The GM can end the event faster by killing porings without getting freeze .fakes = 3; // spawn the fake poring = .fakes * 12 types * number of players in the maps .eventmap$ = "poring_w01"; // the name of the map where the event runs setarray .rewardwin, 501, 10, 502, 10; // edit the reward items here .onesec = 1000; // for debug purpose only, set to 100 to make announcement faster bindatcmd "poring_catcher", strnpcinfo(0)+"::OnStart", .gmsetting, 100; .rewardwinsize = getarraysize( .rewardwin ); getmapxy .map$, .x, .y, 1, "Poring Catcher Warper"; mapwarp .eventmap$, .map$, .x, .y; disablenpc "Poring Catcher Warper"; setarray .@mapflag, mf_nopenalty, mf_nomobloot, mf_nomvploot, mf_noskill, mf_nowarpto, mf_noteleport, mf_nomemo, mf_nosave, mf_nobranch, mf_nodrop; .@mapflagsize = getarraysize( .@mapflag ); for ( .@i = 0; .@i < .@mapflagsize; .@i++ ) setmapflag .eventmap$, .@mapflag[.@i]; end; OnStart: OnClock0705: // put all the start timer here OnClock1105: OnClock1905: OnClock2305: enablenpc "Poring Catcher Warper"; announce "Poring Catcher Event: We are going to have a Poring Catcher Event",bc_all,0xFF7F50; sleep 1 * .onesec; announce "Poring Catcher Event: For those who want to join, please come to Prontera!",bc_all,0xFF7F50; //Edit to where would you place the warper sleep 1 * .onesec; announce "Poring Catcher Event: The Warper would be open for 1 minute",bc_all,0xFF7F50; sleep 30 * .onesec; announce "Poring Catcher Event: Last 30 Seconds.",bc_all,0xFF7F50; sleep 30 * .onesec; announce "Poring Catcher Event: Warper Closed.",bc_all,0xFF7F50; disablenpc "Poring Catcher Warper"; if ( !getmapusers( .eventmap$ ) ) end; mapannounce .eventmap$,"We are about to start the Poring Catcher Event.",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"Rules are simple:",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"In a few seconds I'm going to spawn tons of porings..",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"..All you need to do is kill the Poring with the right name..",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"..Which would be Poring.",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"If you kill the wrong one, you will be freeze for seconds!",bc_blue; sleep 3 * .onesec; mapannounce .eventmap$,"That's it.. Now let's get this on!",bc_blue; sleep 3 * .onesec; mapannounce .eventmap$,"Ready...",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"Get Set..",bc_blue; sleep 1 * .onesec; mapannounce .eventmap$,"Go!",bc_blue; sleep 1 * .onesec; areamonster .eventmap$,95,108,113,87,"Poring",1002,1, strnpcinfo(0)+"::OnCorrectKilled"; .@amount = .fakes * getmapusers(.eventmap$); areamonster .eventmap$,95,108,113,87,"Poking",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Poiring",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Poling",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Porng",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"pH0ur1n6",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"P0ring",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Porong",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Powing",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Poriing",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Boring",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Lolwut!?",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; areamonster .eventmap$,95,108,113,87,"Kill me to win!",1002,.@amount, strnpcinfo(0)+"::OnFakeKilled"; sleep .eventlasting * 1000; if ( getstrlen(.winner$) ) announce .winner$ +" won the Poring Catcher Event!",bc_all,0xFF7F50; else if ( getmapusers( .eventmap$ ) ) announce "No one won the Poring Catcher Event!",bc_all,0xFF7F50; killmonsterall .eventmap$; sleep 5000; mapwarp .eventmap$, .map$, .x, .y; .winner$ = ""; end; OnCorrectKilled: for ( .@i = 0; .@i < .rewardwinsize; .@i += 2 ) getitem .rewardwin[ .@i ], .rewardwin[ .@i +1 ]; .winner$ = strcharinfo(0); awake strnpcinfo(0); end; OnFakeKilled: // dispbottom "You killed the wrong Poring! Yerrrrrrrrrrrr out!"; // warp .map$, .x, .y; // if ( !getmapusers( .eventmap$ ) ) goto OnEnd; dispbottom "You killed the wrong Poring!"; sc_start2 SC_FREEZE, 9000,0,10000; // 9 seconds to freeze // sc_start2 SC_STONE, 9000,0,10000; // sc_start2 SC_STUN, 9000,0,10000; // sc_start2 SC_SLEEP, 9000,0,10000; end; }