Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== rAthena Script =======================================
- //= Devil Square
- //===== By: ==================================================
- //= Kirlein, Stillhard (translation), AnnieRuru (rewrite)
- //===== Current Version: =====================================
- //= 1.0
- //===== Compatible With: =====================================
- //= rAthena Project
- //===== Description: =========================================
- //= Devil Square, based on the event in MU Online.
- //= Defeat three waves of monsters for treasure.
- //===== Additional Comments: =================================
- //= 1.0 First version, edited. [Euphy]
- //============================================================
- prontera,204,181,4 script Devil Square Guardian#1 406,{
- set .@gm_level, 60; // GM level required to start/stop the event
- mes "[ Devil Square Guardian ]";
- mes "This is the entrance to ^FF0000Devil Square^000000.";
- mes "If you fail or die, the door will close and you must wait until the event starts again to re-enter.";
- next;
- switch(select("Enter.:Information.:" + ((getgmlevel() >= .@gm_level) ? "GM Menu." : "") + ":Cancel.")) {
- case 1:
- if (.start != 1) { // registration period
- mes "[ Devil Square Guardian ]";
- mes "Devil Square is now closed.";
- mes "It will open at these times:";
- mes "- ^FF000008.00^000000 p.m ( Except active WoE )"; // display your times here
- close;
- }
- if (BaseLevel < 70 || Zeny < 5000000) { // requirements
- mes "[ Devil Square Guardian ]";
- mes "You do not meet the requirements to enter Devil Square.";
- mes " ";
- mes "Requirements:";
- mes " - Base Level 70";
- mes " - Registration fee 10.000.000z";
- close;
- }
- set Zeny, Zeny -10000000;
- announce strcharinfo(0)+" has entered Devil Square.", bc_npc;
- percentheal 100,100;
- warp "ordeal_1-1",183,182;
- close;
- case 2:
- mes "[ Devil Square Guardian ]";
- mes "Inside, you will encounter 5 waves of monsters. The monsters will grow stronger with each wave.";
- next;
- mes "[ Devil Square Guardian ]";
- mes "If you defeat all the enemies, you will be given the opportunity to :";
- mes "- 10 ^0000FFTreasure Chest^000000";
- mes "- 300x ^0000FF"+getitemname(7539)+"^000000";
- mes "- 300x ^0000FF"+getitemname(7227)+"^000000";
- mes "- 50x ^0000FF"+getitemname(12103)+"^000000";
- mes "- 10.000 ^0000FFCash Points^000000";
- mes "- 1x ^0000FF"+getitemname(674)+"^000000";
- close;
- case 3:
- mes "[ Devil Square Guardian ]";
- switch (.start) { // event states
- case 0: mes "Devil Square has not yet started."; break;
- case 1: mes "Devil Square is currently accepting participants."; break;
- case 2: mes "Devil Square Event is currently running on Round "+ .round +" with "+ .mob +" monsters remaining."; break;
- }
- next;
- switch(select("Start event.:Stop event.:Cancel.")) {
- case 1:
- mes "[ Devil Square Guardian ]";
- if (.start)
- mes "Devil Square has already started.";
- else {
- mes "Starting Devil Square...";
- donpcevent strnpcinfo(0)+"::OnStartEvent";
- }
- close;
- case 2:
- mes "[ Devil Square Guardian ]";
- if (!.start)
- mes "Devil Square has not yet started.";
- else {
- mes "Stopping Devil Square...";
- donpcevent strnpcinfo(0)+"::OnStopEvent";
- }
- close;
- case 3:
- break;
- }
- break;
- case 4:
- break;
- }
- mes "[ Devil Square Guardian ]";
- mes "Farewell.";
- close;
- OnClock2001:
- OnStartEvent:
- if (agitcheck() || agitcheck2()) { end; }
- .start = 1;
- disablenpc "ord11-12"; //from npc/warps/pvp.txt
- disablenpc "Devil Square Guardian#2";
- enablenpc "Devil Square Healer#1";
- mapannounce "ordeal_1-1","Devil Square is now closed.", bc_map;
- getmapxy .@map$, .@x, .@y, UNITTYPE_NPC;
- mapwarp "ordeal_1-1", .@map$, .@x, .@y;
- killmonsterall "ordeal_1-1";
- announce "Devil Square is OPEN. The event will begin in 3 minutes.", bc_all;
- sleep 60000;
- announce "Devil Square will begin in 2 minutes.", bc_all;
- sleep 60000;
- announce "Devil Square will begin in 1 minute.", bc_all;
- sleep 55000;
- announce "Devil Square will begin in 5 seconds.", bc_all;
- sleep 1000;
- announce "Devil Square will begin in 4 seconds.", bc_all;
- sleep 1000;
- announce "Devil Square will begin in 3 seconds.", bc_all;
- sleep 1000;
- announce "Devil Square will begin in 2 seconds.", bc_all;
- sleep 1000;
- announce "Devil Square will begin in 1 second.", bc_all;
- sleep 1000;
- announce "Devil Square has STARTED!", bc_all;
- disablenpc "Devil Square Healer#1";
- if ( !getmapusers("ordeal_1-1") )
- goto OnStopEvent;
- .start = 2;
- .round = 1;
- .mob = 100;
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC WARRIOR",1023,15,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC SKELETON",1152,10,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC ZOMBIE",1153,10,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC ARCHER",1189,15,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH ORC",1213,15,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] SMOKING ORC",1235,15,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC LADY",1273,15,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC LORD",1190,10,strnpcinfo(0)+"::OnDevilDead1";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ORC HERO",1087,2,strnpcinfo(0)+"::OnDevilDead1";
- end;
- OnDevilDead1:
- .mob--;
- if ( .mob == 25 || .mob == 5 )
- announce "Devil Square : "+ .mob +" monsters remaining in round 1.", bc_map;
- else if ( .mob <= 0 ) {
- announce "Devil Square is entering round 2...", bc_map;
- goto OnDevil2;
- }
- end;
- OnDevil2:
- .round = 2;
- .mob = 100;
- areamonster "ordeal_1-1",183,182,246,244,"[DS] SEEKER",1774,15,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] AGAV",1769,15,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ECHIO",1770,15,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ISILLA",1772,10,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] VANBERK",1771,10,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] BEHOLDER",1633,10,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] GREMLIN",1632,10,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] HODREMLIN",1773,10,strnpcinfo(0)+"::OnDevilDead2";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] GLOOM UNDER NIGHT",1768,5,strnpcinfo(0)+"::OnDevilDead2";
- end;
- OnDevilDead2:
- .mob--;
- if ( .mob == 25 || .mob == 5 )
- announce "Devil Square : "+ .mob +" monsters remaining in round 2.", bc_map;
- else if ( .mob <= 0 ) {
- announce "Devil Square is entering round 3...", bc_map;
- goto OnDevil3;
- }
- end;
- OnDevil3:
- .round = 3;
- .mob = 100;
- areamonster "ordeal_1-1",183,182,246,244,"[DS] NOVUS",1715,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] NOVUS",1718,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] MIMIC",1191,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ANCIENT MIMIC",1699,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] PENOMENA",1216,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] FERUS",1714,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] FERUS",1717,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ACIDUS",1713,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ACIDUS",1716,10,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] HYDROLANCER",1720,5,strnpcinfo(0)+"::OnDevilDead3";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] DETARDEURUS",1719,5,strnpcinfo(0)+"::OnDevilDead3";
- end;
- OnDevilDead3:
- .mob--;
- if ( .mob == 25 || .mob == 5 )
- announce "Devil Square : "+ .mob +" monsters remaining in round 3.", bc_map;
- else if ( .mob <= 0 ) {
- announce "Devil Square is entering round 4...", bc_map;
- goto OnDevil4;
- }
- end;
- OnDevil4:
- .round = 4;
- .mob = 100;
- areamonster "ordeal_1-1",183,182,246,244,"[DS] SWORD MASTER",1829,15,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] BOW MASTER",1830,15,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] SALAMANDER",1831,15,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] KASA",1833,10,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] MAGMARING",1836,10,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] IMP",1837,10,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] KNOCKER",1838,10,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] BYORGUE",1839,10,strnpcinfo(0)+"::OnDevilDead4";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] IFRIT",1832,5,strnpcinfo(0)+"::OnDevilDead4";
- end;
- OnDevilDead4:
- .mob--;
- if ( .mob == 25 || .mob == 5 )
- announce "Devil Square : "+ .mob +" monsters remaining in round 4.", bc_map;
- else if ( .mob <= 0 ) {
- announce "Devil Square is entering round 5...", bc_map;
- goto OnDevil5;
- }
- end;
- OnDevil5:
- .round = 5;
- .mob = 95;
- areamonster "ordeal_1-1",183,182,246,244,"[DS] PLASMA",1693,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] DAME OF SENTINEL",1700,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] MISTRESS OF SHELTER",1701,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] BARONESS OF RETRIBUTION",1702,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] LADY SOLACE",1703,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] ODIUM OF THANATOS",1704,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] DESPERO OF THANATOS",1705,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] MAERO OF THANATOS",1706,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] DOLOR OF THANATOS",1707,10,strnpcinfo(0)+"::OnDevilDead5";
- areamonster "ordeal_1-1",183,182,246,244,"[DS] MEMORY OF THANATOS",1708,5,strnpcinfo(0)+"::OnDevilDead5";
- end;
- OnDevilDead5:
- .mob--;
- if ( .mob == 25 || .mob == 5 )
- announce "Devil Square : "+ .mob +" monsters remaining in the final round.", bc_map;
- else if ( .mob <= 0 ) {
- announce "Devil Square : CONGRATULATIONS. These 10 Treasure Chests are yours.", bc_map;
- goto OnDevil6;
- }
- end;
- OnDevil6:
- .round = 6;
- .mob = 10;
- monster "ordeal_1-1",231,250,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",234,247,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",237,244,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",240,241,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",243,238,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",246,235,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",249,232,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",252,229,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",249,241,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- monster "ordeal_1-1",240,249,"Treasure Chest",1363,1,strnpcinfo(0)+"::OnTreasureDead";
- end;
- OnTreasureDead:
- .mob--;
- announce "Devil Square : "+ strcharinfo(0) +" has opened the Treasure Chest at Devil Square.", bc_all;
- if ( .mob <= 0 )
- goto OnStopEvent;
- end;
- OnStopEvent:
- killmonsterall "ordeal_1-1";
- enablenpc "ord11-12"; //from npc/warps/pvp.txt
- enablenpc "Devil Square Guardian#2";
- .start = .round = .mob = 0;
- end;
- OnInit:
- waitingroom "Devil Square",0;
- end;
- }
- ordeal_1-1,246,245,7 script Devil Square Guardian#2 406,{
- mes "[ Devil Square Guardian ]";
- mes "Farewell.";
- mes "And this your final reward";
- if(checkweight(2504,1) == 0 ) goto L_OverWeight;
- close2;
- getitem 7227,300;
- getitem 7539,300;
- getitem 12103,100;
- getitem 674,1;
- set #CASHPOINTS,#CASHPOINTS+10000;
- dispbottom "Gained 10.000 Cash Points. Current Cash Points: " + #CASHPOINTS;
- warp "prontera",156,166;
- end;
- L_OverWeight:
- mes "[ Devil Square Guardian ]";
- mes "Over weight !!";
- close;
- }
- ordeal_1-1,185,178,5 script Devil Square Healer#1 742,{
- switch(BaseJob){
- Case Job_Alchemist:
- set $spirit, 445;
- break;
- Case Job_Monk:
- set $spirit, 447;
- break;
- Case Job_Star_Gladiator:
- set $spirit, 448;
- break;
- Case Job_Sage:
- set $spirit, 449;
- break;
- Case Job_Crusader:
- set $spirit, 450;
- break;
- Case Job_SuperNovice:
- set $spirit, 451;
- break;
- Case Job_Knight:
- set $spirit, 452;
- break;
- Case Job_Wizard:
- set $spirit, 453;
- break;
- Case Job_Priest:
- set $spirit, 454;
- break;
- Case Job_Bard:
- Case Job_Dancer:
- set $spirit, 455;
- break;
- Case Job_Rogue:
- set $spirit, 456;
- break;
- Case Job_Assassin:
- set $spirit, 457;
- break;
- Case Job_Blacksmith:
- set $spirit, 458;
- break;
- Case Job_Hunter:
- set $spirit, 460;
- break;
- Case Job_Soul_Linker:
- set $spirit, 461;
- break;
- default:
- if ( upper == 1 && level < 70 )
- set $spirit, 494;
- }
- npctalk "Hyper Buffer !!";
- skilleffect 383,0; sc_start SC_WINDWALK,600000,10;
- skilleffect 34,0; sc_start SC_BLESSING,600000,10;
- skilleffect 29,0; sc_start SC_INCREASEAGI,600000,10;
- skilleffect 74,0; sc_start SC_MAGNIFICAT,600000,5;
- skilleffect 75,0; sc_start SC_GLORIA,600000,5;
- skilleffect 66,0; sc_start SC_IMPOSITIO,600000,5;
- skilleffect 67,0; sc_start SC_SUFFRAGIUM,600000,3;
- skilleffect 234,0; sc_start SC_CP_WEAPON,600000,5;
- skilleffect 235,0; sc_start SC_CP_SHIELD,600000,5;
- skilleffect 236,0; sc_start SC_CP_ARMOR,600000,5;
- skilleffect 237,0; sc_start SC_CP_HELM,600000,5;
- skilleffect 361,0; sc_start SC_ASSUMPTIO,120000,5;
- sc_start4 SC_SPIRIT, 360000, 5, $spirit,0,0;
- skilleffect $spirit,0;
- sc_start SC_STRFood,3600000,10;
- sc_start SC_AGIFood,3600000,10;
- sc_start SC_VITFood,3600000,10;
- sc_start SC_INTFood,3600000,10;
- sc_start SC_DEXFood,3600000,10;
- sc_start SC_LUKFood,3600000,10;
- //specialeffect2 593;
- //specialeffect2 594;
- //specialeffect2 595;
- //specialeffect2 596;
- //specialeffect2 597;
- //specialeffect2 598;
- sc_end sc_stone;
- sc_end sc_freeze;
- sc_end sc_SCeep;
- sc_end sc_curse;
- sc_end sc_silence;
- sc_end sc_confusion;
- sc_end sc_blind;
- sc_end sc_bleeding;
- sc_end sc_decreaseagi;
- sc_end sc_poison;
- sc_end sc_hallucination;
- sc_end sc_stripweapon;
- sc_end sc_striparmor;
- sc_end sc_striphelm;
- sc_end sc_stripshield;
- specialeffect2 209;
- while (getbrokenid(1)) {
- repair(1);
- set .@i, .@i +1;
- }
- if (.@i) dispbottom .@i + " Items Repaired. ";
- getinventorylist;
- set @identify, 0;
- for(set @i, 0; @i < @inventorylist_count; set @i, @i +
- 1)
- {
- if (@inventorylist_identify[@i] == 0) set @identify,
- @identify + 1;
- }
- getinventorylist;
- set @identified, 0;
- for(set @i, 0; @i < @inventorylist_count; set @i, @i +
- 1)
- {
- if (@inventorylist_identify[@i] == 0)
- {
- delitem2 @inventorylist_id[@i],1,0,0,0,0,0,0,0;
- getitem @inventorylist_id[@i],1;
- set @identified, @identified + 1;
- }
- }
- specialeffect2 338;
- percentheal 100,100;
- dispbottom "Thank you for used our facilities";
- }
- ordeal_1-1 mapflag nowarp
- ordeal_1-1 mapflag nowarpto
- ordeal_1-1 mapflag noteleport
- ordeal_1-1 mapflag monster_noteleport
- ordeal_1-1 mapflag nosave SavePoint
- ordeal_1-1 mapflag nomemo
- ordeal_1-1 mapflag nobranch
- ordeal_1-1 mapflag nopenalty
- ordeal_1-1 mapflag noicewall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement