1@spa,189,205,5 script Devil Square 406,{ // -- Name set .@ds_name$,"Devil Square"; if( BaseLevel < 90 ) { mes "[ Devil Square Guardian ]"; mes "Only users between Levels ^ff000090 ~ 99^000000 can enter this Dungeon."; close; } mes "[ Devil Square Guardian ]"; mes "Welcome to the entrance door to ^FF0000" + .@ds_name$ + "^000000"; next; switch( select("Reserve the " + .@ds_name$ + " and enter:Enter the Dungeon:Leave") ) { case 1: set .@party_id, getcharid(1); // ----------------------------- if( .@party_id == 0 ) { mes "[ Devil Square Guardian ]"; mes "You need to be in a group."; close; } if( getpartyleader(.@party_id,2) != getcharid(0) ) { mes "[ Devil Square Guardian ]"; mes "Only the party leader can register for " + .@ds_name$ + "."; close; } if( DSquare_Timer >= gettimetick(2) ) { mes "[ Devil Square Guardian ]"; mes "You cannot enter " + .@ds_name$ + " again until ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000"; //close; } if( Zeny < 100000 ) { mes "[ Devil Square Guardian ]"; mes "...I'm sorry, not enough zeny."; close; } set .ds_instance, instance_create(.@ds_name$, .@party_id); if( .ds_instance == -1 ) { mes "[ Devil Square Guardian ]"; mes "Your group is already registered on a Memorial Dungeon."; close; } else if( .ds_instance < 0 ) { mes "[ Devil Square Guardian ]"; mes "Instance creation failed: " + .ds_instance; mes "Please report this to a Game Master."; close; } if( instance_attachmap( "ordeal_1-1",.ds_instance ) == "" ){ npctalk "Devil Square reservation failed."; mes "- ^FF0000Reservation Failed!^000000"; instance_destroy( .ds_instance ); close; } instance_attach( .ds_instance ); set 'dsparty_id, getcharid(1); set 'dsnext_open, gettimetick(2) + 7200; // Next allowed open time for players deletearray 'dsMembers[0],127; set DSquare_Timer, 'dsnext_open; set 'dsMembers[0], getcharid(0); // Stores First Char ID set 'dsNext_i, 1; set Zeny, Zeny - 100000; instance_init( .ds_instance ); //warp warp instance_mapname("ordeal_1-1"),245,245; close; case 2: if( has_instance("ordeal_1-1") == "" ) { mes "[ Devil Square Guardian ]"; mes "Instance Dungeon " + .@ds_name$ + " does not exist."; mes "You are not registered for DS."; close; } instance_attach(.ds_instance); for( set .@i, 0; .@i < 'dsNext_i; set .@i, .@i + 1 ) { if( getcharid(0) == 'dsMembers[.@i] ) break; } if( .@i == 'dsNext_i ) { if( DSquare_Timer >= gettimetick(2) ) { // User joined the party but has Devil Square Delay mes "[ Devil Square Guardian ]"; mes "You cannot enter " + .@ds_name$ + " again until ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000"; close; } else if( 'dsNext_i == 127 ) { // This party has invited lots of users to join Devil Square mes "[ Devil Square Guardian ]"; mes "No more users can enter " + .@ds_name$ + " registered with this party."; close; } else { // Add this new user to the member list set DSquare_Timer, 'next_open; set 'dsMembers['dsNext_i], getcharid(0); set 'dsNext_i, 'dsNext_i + 1; } } warp instance_mapname("ordeal_1-1"),245,245; end; case 3: close; }}function script Time2Str { set .@Time_Left, getarg(0) - gettimetick(2); set .@Days, .@Time_Left / 86400; set .@Time_Left, .@Time_Left - (.@Days * 86400); set .@Hours, .@Time_Left / 3600; set .@Time_Left, .@Time_Left - (.@Hours * 3600); set .@Minutes, .@Time_Left / 60; set .@Time_Left, .@Time_Left - (.@Minutes * 60); set .@Time$, ""; if( .@Days > 1 ) set .@Time$, .@Time$ + .@Days + " days, "; else if( .@Days > 0 ) set .@Time$, .@Time$ + .@Days + " day, "; if( .@Hours > 1 ) set .@Time$, .@Time$ + .@Hours + " hours, "; else if( .@Hours > 0 ) set .@Time$, .@Time$ + .@Hours + " hour, "; if( .@Minutes > 1 ) set .@Time$, .@Time$ + .@Minutes + " minutes, "; else if( .@Minutes > 0 ) set .@Time$, .@Time$ + .@Minutes + " minute, "; if( .@Time_Left > 1 || .@Time_Left == 0 ) set .@Time$, .@Time$ + .@Time_Left + " seconds."; else if( .@Time_Left == 1 ) set .@Time$, .@Time$ + .@Time_Left + " second."; return .@Time$;}ordeal_1-1,44,155,0 script HiddenNpc::HiddenNpc -1,{ end;OnDisable: killmonster instance_mapname("ordeal_1-1"),instance_npcname("HiddenNpc")+"::OnDevilDead"; end;OnInstanceInit: areamonster "ordeal_1-1",183,182,246,244,"[DS] ALICEL",1735,25,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "ordeal_1-1",183,182,246,244,"[DS] ALIOT",1736,15,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHDAM",1668,15,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "ordeal_1-1",183,182,246,244,"[DS] CONSTANT",1745,20,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "ordeal_1-1",183,182,246,244,"[DS] DARK PRIEST",1198,4,instance_npcname("HiddenNpc")+"::OnDevilDead"; areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHANGELING",1388,1,instance_npcname("HiddenNpc")+"::OnDevilDead"; end;OnDevilDead: set .@mobnumber,80; set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 55 ) instance_announce 0, "Devil Square : 25 mobs to enter the 2nd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 75 ) instance_announce 0, "Devil Square : 5 mobs to enter 2nd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 80 ) { instance_announce 0, "Devil Square : will enter to 2nd round!!!",bc_map,"0xffff00"; callsub OnDevilRound_2; } end;OnDevilRound_2: areamonster "ordeal_1-1",183,182,246,244,"[DS] DROSERA",1781,20,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "ordeal_1-1",183,182,246,244,"[DS] NECROMANCER",1870,30,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "ordeal_1-1",183,182,246,244,"[DS] RETRIBUTION",1702,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "ordeal_1-1",183,182,246,244,"[DS] OBSERVATION",1700,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "ordeal_1-1",183,182,246,244,"[DS] LADY SOLACE",1703,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; areamonster "ordeal_1-1",183,182,246,244,"[DS] SHELTER",1701,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2"; end;OnDevilDead_2: set .@mobnumber,70; set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_2"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 45 ) instance_announce 0, "Devil Square : 25 mobs to enter the 3rd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 65 ) instance_announce 0, "Devil Square : 5 mobs to enter the 3rd round..",bc_map,"0xffff00"; if( .@mob_dead_number == 70 ) { instance_announce 0, "Devil Square : will enter to 3rd round!!!",bc_map,"0xffff00"; callsub OnDevilRound_3; } end;OnDevilRound_3: areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1673,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1672,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1671,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1670,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH PRIEST MAGARETA",1637,6,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1921,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1918,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1920,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1919,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3"; end;OnDevilDead_3: set .@mobnumber,58; set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_3"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 33 ) instance_announce 0, "Devil Square : 25 mobs to enter the 4th round..",bc_map,"0xffff00"; if( .@mob_dead_number == 53 ) instance_announce 0, "Devil Square : 5 mobs to enter the 4th round..",bc_map,"0xffff00"; if( .@mob_dead_number == 58 ) { instance_announce 0, "Devil Square : will enter to 4th round!!!!!!",bc_map,"0xffff00"; donpcevent instance_npcname("dswarp-12")+"::OnEnable"; callsub OnDevilRound_4; } end; OnDevilRound_4: areamonster "ordeal_1-1",149,148,149,148,"[DS] Entweihen Crothen",1957,1,instance_npcname("HiddenNpc")+"::OnDevilDead_4"; areamonster "ordeal_1-1",135,135,165,165,"[DS] Thorny Skeleton",1958,11,instance_npcname("HiddenNpc")+"::OnDevilDead_4"; end; OnDevilDead_4: set .@mobnumber,12; set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_4"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; if( .@mob_dead_number == 12 ) { instance_announce 0, "Devil Square : CONGRATULATION - 10 Treasure Boxs will be yours now",bc_map,"0xffff00"; donpcevent instance_npcname("dswarp-12")+"::OnInstanceInit"; donpcevent instance_npcname("dswarp-11")+"::OnEnable"; callsub OnDevilRound_5; // Treasure Spawn Round } end;OnDevilRound_5: monster "ordeal_1-1",231,250,"Treasure Box",1324,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",234,247,"Treasure Box",1328,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",237,244,"Treasure Box",1332,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",240,241,"Treasure Box",1336,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",243,238,"Treasure Box",1340,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",246,235,"Treasure Box",1344,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",249,232,"Treasure Box",1348,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",252,229,"Treasure Box",1352,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",249,241,"Treasure Box",1356,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; monster "ordeal_1-1",240,249,"Treasure Box",1360,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5"; end;OnDevilDead_5: set .@mobnumber,10; set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_5"); set .@mob_dead_number,.@mobnumber - .@mob_cnumber; instance_announce 0, "Devil Square : "+ strcharinfo(0) +" has opened the treasure box at Devil Square",bc_map,"0xffff00"; if( .@mob_dead_number == 10 ) { donpcevent instance_npcname("HiddenNpc")+"::OnDestroyInstance"; getpartymember getcharid(1),2; copyarray .@partymemberaid, $@partymemberaid, $@partymembercount; detachrid; for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) { if (attachrid(.@partymemberaid[.@i])) callfunc("AddPoints", getcharid(3), 5); detachrid; } } end; OnDestroyInstance: initnpctimer; end;OnTimer500: instance_announce 0, "Devil Square will be closed in few seconds..", bc_map, 0xCCFF00; end;OnTimer19000: instance_warpall "prontera", 100,100; end; OnTimer22500: stopnpctimer; instance_destroy(instance_id()); end; }// -- Warpordeal_1-1,168,168,0 script #dswarp-11::dswarp-11 45,0,0,{OnInstanceInit: disablenpc instance_npcname("dswarp-11"); end;OnEnable: enablenpc instance_npcname("dswarp-11"); end;OnTouch: warp "ordeal_1-1",189,189; end;}ordeal_1-1,184,184,0 script #dswarp-12::dswarp-12 45,0,0,{OnInstanceInit: disablenpc instance_npcname("dswarp-12"); end;OnEnable: enablenpc instance_npcname("dswarp-12"); end;OnTouch: mes "[ Devil Square Guardian ]"; mes "Are you ready..?"; if( select("Ready, GO!!!", "Nope") != 1 ) close; close2; warp "ordeal_1-1",163,163; end;}// -- Mapflagsordeal_1-1 mapflag nowarpordeal_1-1 mapflag nowarptoordeal_1-1 mapflag noteleportordeal_1-1 mapflag nosave SavePointordeal_1-1 mapflag nomemoordeal_1-1 mapflag nobranchordeal_1-1 mapflag nopenalty