Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
- // -- Warp
- ordeal_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;
- }
- // -- Mapflags
- ordeal_1-1 mapflag nowarp
- ordeal_1-1 mapflag nowarpto
- ordeal_1-1 mapflag noteleport
- ordeal_1-1 mapflag nosave SavePoint
- ordeal_1-1 mapflag nomemo
- ordeal_1-1 mapflag nobranch
- ordeal_1-1 mapflag nopenalty
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement