//======Name======================================== // Poring Catcher Event //======Version===================================== // 1.0 //======Author(s)=================================== // Sandbox, Clydelion //======Comments==================================== // In loving memory of AstralRO //================================================== prontera,156,184,3 script Poring Catcher Warper 723,{ if ( getgmlevel() >= .gmsetting ) { if ( !.start ) { mes "start the event ?"; next; if ( select( "Yes", "No" ) == 2 ) close; donpcevent strnpcinfo(0)+"::OnStart"; close; } else { mes "Join or Abort the event ?"; next; if ( select( "Join", "Abort" ) == 1 ) { warp "poring_w01", rand(102,104), 101; end; } .skip = 1; awake strnpcinfo(0); // donpcevent strnpcinfo(0)+"::OnEnd"; close; } } else if ( .start == 1 ) { mes "Do you want to join the Poring Catcher Event?"; select ( "Yes" ); warp "poring_w01", rand(102,104), 101; end; } else if ( .start == 2 ) { mes "Too late, the event has already started"; close; } mes "No Event right now"; close; OnInit: .eventlasting = 30*60; // how many seconds the event will last ? default : 30*60 = 30 minutes .gmsetting = 60; // in which level the GMs can control this event ? .fakes = 3; // the amount of fakes poring * 12 * number of players in the maps setarray .rewardwin, 7227, 1; // edit the reward items here .seconds = 1000; // for debug purpose only, how many mili-second = 1 second ? bindatcmd "poring_catcher", strnpcinfo(0)+"::OnStart", .gmsetting, 100; .rewardwinsize = getarraysize( .rewardwin ); getmapxy .map$, .x, .y, 1; mapwarp "poring_w01", .map$, .x, .y; end; OnClock0800: // put all the start timer here OnClock2000: OnStart: .start = 1; announce "Poring Catcher Event: We are going to have a Poring Catcher Event",bc_all,0xFF7F50; sleep 1 * .seconds * !.skip; announce "Poring Catcher Event: For those who want to join, please @warp "+ .map$ +" "+ .x +" "+ .y +"!",bc_all,0xFF7F50; //Edit to where would you place the warper sleep 1 * .seconds * !.skip; announce "Poring Catcher Event: The Warper would be open for 1 minute",bc_all,0xFF7F50; sleep 30 * .seconds * !.skip; announce "Poring Catcher Event: Last 30 Seconds.",bc_all,0xFF7F50; sleep 30 * .seconds * !.skip; announce "Poring Catcher Event: Warper Closed.",bc_all,0xFF7F50; if ( !getmapusers( "poring_w01" ) ) goto OnEnd; .start = 2; mapannounce "poring_w01","We are about to start the Poring Catcher Event.",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","Rules are simple:",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","In a few seconds I'm going to spawn tons of porings..",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","..All you need to do is kill the Poring with the right name..",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","..Which would be Poring.",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","If you kill the wrong one, you're out!",bc_blue; sleep 3 * .seconds * !.skip; mapannounce "poring_w01","That's it.. Now let's get this on!",bc_blue; sleep 3 * .seconds * !.skip; mapannounce "poring_w01","Ready...",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","Get Set..",bc_blue; sleep 1 * .seconds * !.skip; mapannounce "poring_w01","Go!",bc_blue; sleep 1 * .seconds * !.skip; areamonster "poring_w01",95,108,113,87,"Poring",1002,1, strnpcinfo(0)+"::OnCorrectKilled"; areamonster "poring_w01",95,108,113,87,"Poking",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Poiring",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Poling",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Porng",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"pH0ur1n6",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"P0ring",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Porong",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Powing",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Poriing",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Boring",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Lolwut!?",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; areamonster "poring_w01",95,108,113,87,"Kill me to win!",1002,3*getmapusers("poring_w01"), strnpcinfo(0)+"::OnFakeKilled"; sleep .eventlasting * .seconds * !.skip; .skip = 0; if ( getmapusers( "poring_w01" ) ) goto OnEnd; end; OnEnd: announce "No one won the Poring Catcher Event!",bc_all,0xFF7F50; killmonsterall "poring_w01"; mapwarp "poring_w01", .map$, .x, .y; .start = 0; end; OnCorrectKilled: for ( .@i = 0; .@i < .rewardwinsize; .@i += 2 ) getitem .rewardwin[ .@i ], .rewardwin[ .@i +1 ]; announce strcharinfo(0) +" won the Poring Catcher Event!",bc_all,0xFF7F50; killmonsterall "poring_w01"; mapwarp "poring_w01", .map$, .x, .y; .start = 0; awake strnpcinfo(0); end; OnFakeKilled: // dispbottom "You killed the wrong Poring! Yerrrrrrrrrrrr out!"; // warp .map$, .x, .y; // if ( !getmapusers( "poring_w01" ) ) 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; } poring_w01 mapflag nopenalty poring_w01 mapflag noloot poring_w01 mapflag noskill poring_w01 mapflag nowarpto poring_w01 mapflag nowarp poring_w01 mapflag noteleport poring_w01 mapflag nomemo poring_w01 mapflag nosave SavePoint poring_w01 mapflag nobranch poring_w01 mapflag nodrop