prontera,150,188,4 script Devil Square Guardian 414,{function Ondevil2;function Ondevil3;function Ondevil4;mes"[Devil Square Guardian]";mes"Welcome to the entrance door to ^FF0000Devil Square^000000!";mes"If you fail or die, the door will be closed and you will have to wait until it starts to open again.";next;if(select("Enter", "Mechanics / How to Play", "Cancel ")==3){mes"[Devil Square Guardian]";mes"See ya";close;}elseif( @menu==2){// Infomes"[Devil Square Guardian]";mes"^FF0000READ and MAKE SURE you understand my rules before you enter!^000000";mes" ";mes"1. There are 3 levels of monsters you'll encounter. One level per round.";mes"2. Each level and round, the enemies to be summoned will be stronger. You need to kill them to proceed to the next round.";mes"3. Players who will succeed to stay after 3 rounds will get the opportunity to open ^B5AA0E10x Treasure Boxes^000000 with items, equips, and rare cards inside! The survivor/s will also get another prize when leaving the event map!";mes"4. Registration fee costs 20,000z.";mes"5. Minimum base level is 90.";mes"6. The maximum number of participants is up to 30.";close;}elseif( .start!=1){// timemes"[Devil Square Guardian]";mes"I'm sorry but the Devil Square is currently closed. It'll be open again at:";mes"";mes"^2B00FF12:00 in the midnight^000000"; // display your time heremes"^2B00FF10:00 in the morning^000000";mes"^2B00FF03:00 in the afternoon^000000";mes"^2B00FF08:00 in the evening^000000";close;}elseif( baselevel < 90 || zeny < 20000){// requirementmes"[Devil Square Guardian]";mes"Minimum base level to enter is 90";mes"The registration fee is 20,000z.";close;}elseif( .register_num >= .register_limit){// room FULLmes"[Devil Square Guardian]";mes"I'm sorry but the Devil Square is currently FULL.";mes"Maximum participants to enter is "+ .register_limit+" players";close;} zeny = zeny -20000;announcestrcharinfo(0)+" has entered the Devil Square", bc_npc;percentheal100,100;warp"ordeal_1-1",183,182; .register_aid[ .register_num]=getcharid(3); .register_num++;end;OnInit: .register_limit=30; // maximum amount of players can play in this event .ann_survive=60000; // the rate at which announce the players that still survive in devil square, in mili-secondsbindatcmd"devilsquare", strnpcinfo(0)+"::Onatcmd", 99,100;end;Onatcmd:if(compare( .@atcmd_parameters$, "on") || compare( .@atcmd_parameters$, "start")){if( .start)dispbottom"Devil Square Event has already started.";elsegoto L_Start;}elseif(compare( .@atcmd_parameters$, "off") || compare( .@atcmd_parameters$, "end")){if(!.start)dispbottom"Devil Square Event hasn't started yet.";elsegoto L_End;}elseif(!.start){dispbottom"Devil Square Event is currently not running.";dispbottom"Use "+ .@atcmd_command$ +" on | start to start the event.";dispbottom"Use "+ .@atcmd_command$ +" off | end to end this event";}elseif( .start==1)dispbottom"Devil Square Event is currently accepting participants.";elsedispbottom"Devil Square Event is currently running. Currently on Round "+ .round+" with "+ .mob+" mobs left.";end;L_Start:OnClock0000:// yeah I know about OnMinute ... it just that more people knows better using OnClockOnClock0800:OnClock1500:OnClock2000:if( .start)end; .start=1;disablenpc"Exit#DS";disablenpc"ord11-12";mapannounce"ordeal_1-1","Devil Square is now closed", bc_map;getmapxy .@map$, .@x, .@y, 1;mapwarp"ordeal_1-1", .@map$, .@x, .@y;killmonsterall"ordeal_1-1";announce"Devil Square is OPENED NOW! 3 minutes until it starts!", bc_all;sleep60000;announce"Devil Square will begin in 2 minutes..", bc_all;sleep60000;announce"Devil Square will begin in 1 minutes..", bc_all;sleep60000;announce"Devil Square starts now!", bc_all;if(!.register_num)goto L_End; .start=2;donpceventstrnpcinfo(0)+"::OnSurvive"; .round=1; .mob=75;areamonster"ordeal_1-1",183,182,246,244,"[DS] SOLDIER SKELETON",1028,10,strnpcinfo(0)+"::Ondevildead";areamonster"ordeal_1-1",183,182,246,244,"[DS] ORC ARCHER",1189,15,strnpcinfo(0)+"::Ondevildead";areamonster"ordeal_1-1",183,182,246,244,"[DS] SANDMAN",1165,10,strnpcinfo(0)+"::Ondevildead";areamonster"ordeal_1-1",183,182,246,244,"[DS] ARCHER SKELETON",1016,15,strnpcinfo(0)+"::Ondevildead";areamonster"ordeal_1-1",183,182,246,244,"[DS] MINOROUS",1149,15,strnpcinfo(0)+"::Ondevildead";areamonster"ordeal_1-1",183,182,246,244,"[DS] REQUIEM",1164,10,strnpcinfo(0)+"::Ondevildead";end;Ondevildead: .mob--;dispbottom .mob;if( .mob==25 || .mob==5)mapannounce"ordeal_1-1","Devil Square: "+ .mob+" mobs to enter the 2nd round!", bc_map;elseif(!.mob){announce"Devil Square will now enter the 2nd round!", bc_all;sleep10000; Ondevil2;}end;Ondevil2: .round=2; .mob=70;areamonster"ordeal_1-1",183,182,246,244,"[DS] GARGOYLE",1253,15,strnpcinfo(0)+"::Ondevildead2";areamonster"ordeal_1-1",183,182,246,244,"[DS] ALARM",1193,10,strnpcinfo(0)+"::Ondevildead2";areamonster"ordeal_1-1",183,182,246,244,"[DS] HIGH ORC",1213,10,strnpcinfo(0)+"::Ondevildead2";areamonster"ordeal_1-1",183,182,246,244,"[DS] INJUSTICE",1257,10,strnpcinfo(0)+"::Ondevildead2";areamonster"ordeal_1-1",183,182,246,244,"[DS] MIMIC",1191,15,strnpcinfo(0)+"::Ondevildead2";areamonster"ordeal_1-1",183,182,246,244,"[DS] WRAITH",1192,10,strnpcinfo(0)+"::Ondevildead2";end;Ondevildead2: .mob--;dispbottom .mob;if( .mob==25 || .mob==5)mapannounce"ordeal_1-1","Devil Square: "+ .mob+" mobs left to enter the 3rd round!", bc_map;elseif(!.mob){announce"Devil Square will now enter the 3rd round!", bc_all;sleep10000; Ondevil3;}end;Ondevil3: .round=3; .mob=38;areamonster"ordeal_1-1",183,182,246,244,"[DS] ANOLIAN",1206,10,strnpcinfo(0)+"::Ondevildead3";areamonster"ordeal_1-1",183,182,246,244,"[DS] WANDERER",1208,10,strnpcinfo(0)+"::Ondevildead3";areamonster"ordeal_1-1",183,182,246,244,"[DS] DEVIRUCHI",1109,5,strnpcinfo(0)+"::Ondevildead3";areamonster"ordeal_1-1",183,182,246,244,"[DS] JOKER",1131,10,strnpcinfo(0)+"::Ondevildead3";areamonster"ordeal_1-1",183,182,246,244,"[DS] MOONLIGHT",1150,1,strnpcinfo(0)+"::Ondevildead3";areamonster"ordeal_1-1",183,182,246,244,"[DS] DARK ILLUSION",1302,2,strnpcinfo(0)+"::Ondevildead3";end;Ondevildead3: .mob--;dispbottom .mob;if( .mob==25 || .mob==5)mapannounce"ordeal_1-1","Devil Square: "+ .mob+" mobs left to VICTORY", bc_map;elseif(!.mob){announce"Devil Square: Congratulations survivor/s! 10x Treasure Boxes will all be yours now!", bc_all;sleep10000; Ondevil4;}end;Ondevil4:atcommand"@skillsoff"; .round=4; .mob=10;monster"ordeal_1-1",231,250,"Treasure Box",1324,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",234,247,"Treasure Box",1328,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",237,244,"Treasure Box",1332,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",240,241,"Treasure Box",1336,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",243,238,"Treasure Box",1340,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",246,235,"Treasure Box",1344,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",249,232,"Treasure Box",1348,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",252,229,"Treasure Box",1352,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",249,241,"Treasure Box",1356,1,strnpcinfo(0)+"::Onboxdead";monster"ordeal_1-1",240,249,"Treasure Box",1360,1,strnpcinfo(0)+"::Onboxdead";end;Onboxdead: .mob--;dispbottom .mob;announce"Devil Square: "+strcharinfo(0)+" has opened the treasure box at Devil Square", bc_all;if(!.mob)goto L_End;end;L_End:killmonsterall"ordeal_1-1";enablenpc"Exit#DS";deletearray .register_aid;atcommand"@skillson"; .start= .round= .mob= .register_num=0;end;OnPCDieEvent:OnPCLogoutEvent:if( .start&&strcharinfo(3)=="ordeal_1-1"){while( .register_aid[.@i]!=getcharid(3)&& .@i < .register_num) .@i++;deletearray .register_aid[.@i], 1; .register_num--;if(!.register_num){announce"All players failed to survive at Devil Square! Try again next time!", bc_all;killmonsterall"ordeal_1-1";goto L_End;}}end;OnSurvive:while( .start==2){mapannounce"ordeal_1-1", .register_num+" survivors at Devil Square!", bc_map;sleep .ann_survive;}end;}ordeal_1-1,246,245,5 script Exit#DS 413,{mes"[Devil Square Guardian]";mes"Congratulations for winning! Here's another bonus! See ya again!";getitem6153,700;next;warp"SavePoint", 0,0 ;close;}ordeal_1-1 mapflag nowarpordeal_1-1 mapflag monster_noteleportordeal_1-1 mapflag nowarptoordeal_1-1 mapflag noteleportordeal_1-1 mapflag nosave SavePointordeal_1-1 mapflag nomemoordeal_1-1 mapflag nobranchordeal_1-1 mapflag nopenaltyordeal_1-1 mapflag noicewallordeal_1-1 mapflag item_noequip