viewing paste just need some donation | Athena

Posted on the and expires in 13 days, 12 hours, 13 minutes, 59 seconds
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
//===== 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,156,185,5      script  Devil Square Guardian#1 406,{
        set .@gm_level, 99; // 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 "00:00 , 02:00 , 04:00 , 06:00"; // display your times here
                        mes "08:00 , 10:00 , 12:00 , 14:00";
                        mes "16:00 , 18:00 , 20:00 , 22:00";
                        close;
                }
                if (BaseLevel < 70 || Zeny < 20000) { // 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 20,000z";
                        close;
                }
                Zeny -= 20000;
                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 3 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 open 10 Treasure Chests with items, equipment, and rare cards inside!";
                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;
 
OnStartEvent:
OnClock0000:
OnClock0200:
OnClock0400:
OnClock0600:
OnClock0800:
OnClock1000:
OnClock1200:
OnClock1400:
OnClock1600:
OnClock1800:
OnClock2000:
OnClock2200:
        .start = 1;
        disablenpc "ord11-12"; //from npc/warps/pvp.txt
        disablenpc "Devil Square Guardian#2";
        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 5 minutes.", bc_all;
        sleep 600;
        announce "Devil Square will begin in 4 minutes.", bc_all;
        sleep 600;
        announce "Devil Square will begin in 3 minutes.", bc_all;
        sleep 600;
        announce "Devil Square will begin in 2 minutes.", bc_all;
        sleep 600;
        announce "Devil Square will begin in 1 minute.", bc_all;
        sleep 6000;
        announce "Devil Square has STARTED!", bc_all;
        if ( !getmapusers("ordeal_1-1") )
                goto OnStopEvent;
        .start = 2;
        .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--;
        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 = 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--;
        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 2...", bc_map;
                goto OnDevil3;
        }
        end;
 
OnDevil3:
        .round = 3;
        .mob = 58;
        areamonster "ordeal_1-1",183,182,246,244,"[DS] ANOLIAN",1206,15,strnpcinfo(0)+"::OnDevilDead3";
        areamonster "ordeal_1-1",183,182,246,244,"[DS] WANDERER",1208,15,strnpcinfo(0)+"::OnDevilDead3";
        areamonster "ordeal_1-1",183,182,246,244,"[DS] DEVIRUCHI",1109,10,strnpcinfo(0)+"::OnDevilDead3";
        areamonster "ordeal_1-1",183,182,246,244,"[DS] JOKER",1131,15,strnpcinfo(0)+"::OnDevilDead3";
        areamonster "ordeal_1-1",183,182,246,244,"[DS] MOONLIGHT",1150,2,strnpcinfo(0)+"::OnDevilDead3";
        areamonster "ordeal_1-1",183,182,246,244,"[DS] DARK ILLUSION",1302,1,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 Final round ...", bc_map;
                goto OnDevil4;
        }
        end;
 
OnDevil4:
        .@mobid = F_Rand(1086,1115,1150,1159); // CONFIGURE your MVP ID here
        areamonster "ordeal_1-1",183,182,246,244, "[DS] "+ getmonsterinfo(.@mobid, MOB_NAME),.@mobid, 1,strnpcinfo(0)+"::OnDevilDead4";
        end;
 
OnDevilDead4:
        announce "Devil Square : Congratulations ~ You have beat Devil Square.", bc_map;
 
OnStopEvent:
        killmonsterall "ordeal_1-1";
        enablenpc "ord11-12"; //from npc/warps/pvp.txt
        enablenpc "Devil Square Guardian#2";
        .start = .round = .mob = 0;
        end;
}
 
ordeal_1-1,246,245,7    script  Devil Square Guardian#2 406,{
        mes "[Exit]";
        mes "Farewell.";
        close2;
        warp "SavePoint",0,0;
        end;
}
 
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
 
Viewed 1399 times, submitted by AnnieRuru.