[1] | 1 | //===== eAthena Script ======================================= |
---|
| 2 | //= War of Emperium Guild Template File |
---|
| 3 | //===== By: ================================================== |
---|
| 4 | //= L0ne_W0lf |
---|
| 5 | //===== Current Version: ===================================== |
---|
| 6 | //= 1.4 |
---|
| 7 | //===== Compatible With: ===================================== |
---|
| 8 | //= eAthena SVN |
---|
| 9 | //===== Description: ========================================= |
---|
| 10 | //= [ Aegis Conversion] |
---|
| 11 | //= ---------------------------------------------------------- |
---|
| 12 | //= - THIS FILE IS REQUIRED FOR GUILD CASTLES TO FUNCTION. |
---|
| 13 | //= ---------------------------------------------------------- |
---|
| 14 | //= - Enables AGIT Manager inside Guild Strongholds. |
---|
| 15 | //= Visible Name required: Agit |
---|
| 16 | //= Manages the various functions used in and out of WoE. |
---|
| 17 | //= |
---|
| 18 | //= - Enables Stewards inside Guild Strongholds which let's |
---|
| 19 | //= the guild master invest in Defense and Economy, and |
---|
| 20 | //= to summon guardians, a Kafra, and enter master's room. |
---|
| 21 | //= |
---|
| 22 | //= - Guardian Spawning Template |
---|
| 23 | //= Visible Name required: Guardian |
---|
| 24 | //= Spawn guardians when guild castle data is recieved. |
---|
| 25 | //= |
---|
| 26 | //= - Enables Kafra Services inside Guild Strongholds. |
---|
| 27 | //= Visible Name required: Kafra Staff |
---|
| 28 | //= Storage, Guild Storage, Teleport Service, Cart rental. |
---|
| 29 | //= |
---|
| 30 | //= - Treasure Room Protection and Chest spawning. |
---|
| 31 | //= Chests will NOT be saved anymore in the event of crashes. |
---|
| 32 | //= Treasures will NOT spawn on a location that already has |
---|
| 33 | //= treasure chest spawned. |
---|
| 34 | //===== Additional Comments: ================================= |
---|
| 35 | //= 1.0 First Version. No longer uses functions. [L0ne_W0lf] |
---|
| 36 | //= 1.1 Daily investement will now be reset. [L0ne_W0lf] |
---|
| 37 | //= Template will no longer try to spawn chests. |
---|
| 38 | //= 1.2 Fixed Eco Invest option charging twice. [L0ne_W0lf] |
---|
| 39 | //= 1.3 Fixed a loading flag emblem for Payon 1. [L0ne_W0lf] |
---|
| 40 | //= Fixed two typos regarding Guild Steward name. |
---|
| 41 | //= 1.4 Fixed a typo in defense investment. [L0ne_W0lf] |
---|
| 42 | //============================================================ |
---|
| 43 | |
---|
| 44 | // AGIT Manager Template |
---|
| 45 | //============================================================ |
---|
| 46 | - script Gld_Agit_Manager::Gld_Agit_Manager -1,{ |
---|
| 47 | end; |
---|
| 48 | |
---|
| 49 | // Load (or reload) specific information for a castle. |
---|
| 50 | OnInterIfInitOnce: |
---|
| 51 | if (strnpcinfo(2) == "aldeg_cas01") { GetCastleData "aldeg_cas01",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 52 | else if (strnpcinfo(2) == "aldeg_cas02") { GetCastleData "aldeg_cas02",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 53 | else if (strnpcinfo(2) == "aldeg_cas03") { GetCastleData "aldeg_cas03",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 54 | else if (strnpcinfo(2) == "aldeg_cas04") { GetCastleData "aldeg_cas04",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 55 | else if (strnpcinfo(2) == "aldeg_cas05") { GetCastleData "aldeg_cas05",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 56 | else if (strnpcinfo(2) == "gefg_cas01") { GetCastleData "gefg_cas01",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 57 | else if (strnpcinfo(2) == "gefg_cas02") { GetCastleData "gefg_cas02",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 58 | else if (strnpcinfo(2) == "gefg_cas03") { GetCastleData "gefg_cas03",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 59 | else if (strnpcinfo(2) == "gefg_cas04") { GetCastleData "gefg_cas04",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 60 | else if (strnpcinfo(2) == "gefg_cas05") { GetCastleData "gefg_cas05",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 61 | else if (strnpcinfo(2) == "payg_cas01") { GetCastleData "payg_cas01",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 62 | else if (strnpcinfo(2) == "payg_cas02") { GetCastleData "payg_cas02",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 63 | else if (strnpcinfo(2) == "payg_cas03") { GetCastleData "payg_cas03",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 64 | else if (strnpcinfo(2) == "payg_cas04") { GetCastleData "payg_cas04",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 65 | else if (strnpcinfo(2) == "payg_cas05") { GetCastleData "payg_cas05",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 66 | else if (strnpcinfo(2) == "prtg_cas01") { GetCastleData "prtg_cas01",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 67 | else if (strnpcinfo(2) == "prtg_cas02") { GetCastleData "prtg_cas02",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 68 | else if (strnpcinfo(2) == "prtg_cas03") { GetCastleData "prtg_cas03",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 69 | else if (strnpcinfo(2) == "prtg_cas04") { GetCastleData "prtg_cas04",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 70 | else if (strnpcinfo(2) == "prtg_cas05") { GetCastleData "prtg_cas05",0,strnpcinfo(0)+"::OnRecvCastle"; } |
---|
| 71 | // Add custom Guild Castles here. |
---|
| 72 | else { |
---|
| 73 | end; |
---|
| 74 | } |
---|
| 75 | end; |
---|
| 76 | |
---|
| 77 | // War of Emperium has started. |
---|
| 78 | OnAgitStart: |
---|
| 79 | if (strnpcinfo(0) == "Gld_Agit_Manager") end; |
---|
| 80 | MapRespawnGuildID strnpcinfo(2),GetCastleData(strnpcinfo(2),1),2; |
---|
| 81 | GvgOn strnpcinfo(2); |
---|
| 82 | |
---|
| 83 | // Spawn (fall through), or respawn the Emperium once it has been broken. |
---|
| 84 | OnStartArena: |
---|
| 85 | // OnAgitStart will fall through and spawn the Emperium. |
---|
| 86 | if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; } |
---|
| 87 | else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; } |
---|
| 88 | else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; } |
---|
| 89 | else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; } |
---|
| 90 | else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; } |
---|
| 91 | else if (strnpcinfo(2) == "gefg_cas01") { setarray .@emproom[0],197,181; } |
---|
| 92 | else if (strnpcinfo(2) == "gefg_cas02") { setarray .@emproom[0],176,178; } |
---|
| 93 | else if (strnpcinfo(2) == "gefg_cas03") { setarray .@emproom[0],244,166; } |
---|
| 94 | else if (strnpcinfo(2) == "gefg_cas04") { setarray .@emproom[0],174,177; } |
---|
| 95 | else if (strnpcinfo(2) == "gefg_cas05") { setarray .@emproom[0],194,184; } |
---|
| 96 | else if (strnpcinfo(2) == "payg_cas01") { setarray .@emproom[0],138,138; } |
---|
| 97 | else if (strnpcinfo(2) == "payg_cas02") { setarray .@emproom[0],38,25; } |
---|
| 98 | else if (strnpcinfo(2) == "payg_cas03") { setarray .@emproom[0],268,264; } |
---|
| 99 | else if (strnpcinfo(2) == "payg_cas04") { setarray .@emproom[0],270,28; } |
---|
| 100 | else if (strnpcinfo(2) == "payg_cas05") { setarray .@emproom[0],30,30; } |
---|
| 101 | else if (strnpcinfo(2) == "prtg_cas01") { setarray .@emproom[0],197,197; } |
---|
| 102 | else if (strnpcinfo(2) == "prtg_cas02") { setarray .@emproom[0],157,174; } |
---|
| 103 | else if (strnpcinfo(2) == "prtg_cas03") { setarray .@emproom[0],16,220; } |
---|
| 104 | else if (strnpcinfo(2) == "prtg_cas04") { setarray .@emproom[0],291,14; } |
---|
| 105 | else if (strnpcinfo(2) == "prtg_cas05") { setarray .@emproom[0],266,266; } |
---|
| 106 | // Add custom Guild Castles here. |
---|
| 107 | else { |
---|
| 108 | end; |
---|
| 109 | } |
---|
| 110 | if (!mobcount(strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak")) { |
---|
| 111 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak"; |
---|
| 112 | } |
---|
| 113 | end; |
---|
| 114 | |
---|
| 115 | // The Emperium has been broken. |
---|
| 116 | OnAgitBreak: |
---|
| 117 | set .@GID,getcharid(2); |
---|
| 118 | // Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen) |
---|
| 119 | if (.@GID <= 0) { |
---|
| 120 | set .@notice$,"Character "+strcharinfo(0)+" ("+getcharid(0)+") broke the Emperium in Castle: "+strnpcinfo(2)+" while guildless. No data will be saved and Emperium respawned."; |
---|
| 121 | logmes .@notice$; debugmes .@notice$; |
---|
| 122 | donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena"; |
---|
| 123 | end; |
---|
| 124 | } |
---|
| 125 | // Adjust Economy Invest Level for Castle |
---|
| 126 | set .@Economy,GetCastleData(strnpcinfo(2),2) - 5; |
---|
| 127 | if (.@Economy < 0) set .@Economy, 0; |
---|
| 128 | SetCastleData strnpcinfo(2), 2, .@Economy; |
---|
| 129 | // Adjust Defense Invest Level for Castle |
---|
| 130 | set .@Defence,GetCastleData(strnpcinfo(2),3) - 5; |
---|
| 131 | if (.@Defence < 0) set .@Defence, 0; |
---|
| 132 | SetCastleData strnpcinfo(2), 3, .@Defence; |
---|
| 133 | |
---|
| 134 | // Set new Castle Occupant |
---|
| 135 | SetCastleData strnpcinfo(2),1, .@GID; |
---|
| 136 | |
---|
| 137 | // Announce that the Emperium is destroyed, and respawn all but new castle-occupants. |
---|
| 138 | mapannounce strnpcinfo(2),"The emperium has been destroyed.",bc_map,"0x00CCFF"; |
---|
| 139 | MapRespawnGuildID strnpcinfo(2),.@GID,2; |
---|
| 140 | |
---|
| 141 | // Refresh castle data, disable Kafra and reset Invest information. |
---|
| 142 | GetCastleData strnpcinfo(2),0,strnpcinfo(0)+"::OnRecvCastle"; |
---|
| 143 | disablenpc "Kafra Staff#"+strnpcinfo(2); |
---|
| 144 | for( set .@i, 4; .@i <= 9; set .@i, .@i+1 ) { |
---|
| 145 | SetCastleData strnpcinfo(2), .@i, 0; |
---|
| 146 | } |
---|
| 147 | // Erase Guardian Database information if the new owners do not have Guardian Research. |
---|
| 148 | if( getgdskilllv(.@GID,10002) == 0 ) { |
---|
| 149 | for( set .@i, 10; .@i <= 17; set .@i, .@i+1 ) { |
---|
| 150 | SetCastleData strnpcinfo(2), .@i, 0; |
---|
| 151 | } |
---|
| 152 | } |
---|
| 153 | // Respawn the Emperium, and display new owners. |
---|
| 154 | if (agitcheck()) { |
---|
| 155 | sleep 500; // Slow down script execution slightly. |
---|
| 156 | donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena"; |
---|
| 157 | } |
---|
| 158 | sleep getbattleflag("gvg_eliminate_time"); |
---|
| 159 | announce "The [" + getcastlename(strnpcinfo(2)) + "] castle has been conquered by the [" + getguildName(.@GID) + "] guild.",bc_all; |
---|
| 160 | end; |
---|
| 161 | |
---|
| 162 | // War of Emperium has ended. |
---|
| 163 | OnAgitEnd: |
---|
| 164 | if (strnpcinfo(0) == "Gld_Agit_Manager") end; |
---|
| 165 | GvgOff strnpcinfo(2); |
---|
| 166 | // If the castle has no owner at the end of WoE, do not kill Emperium. |
---|
| 167 | if (GetCastleData(strnpcinfo(2),1)) { |
---|
| 168 | KillMonster strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak"; |
---|
| 169 | } |
---|
| 170 | end; |
---|
| 171 | |
---|
| 172 | // Occupying Guild has been disbanded. |
---|
| 173 | OnGuildBreak: |
---|
| 174 | if (strnpcinfo(0) == "Gld_Agit_Manager") end; |
---|
| 175 | // Kill guardians, disable the Kafra, and set owner to 0. |
---|
| 176 | killmonster strnpcinfo(2),"Guardian#"+strnpcinfo(2)+"::OnGuardianDied"; |
---|
| 177 | disablenpc "Kafra Staff#"+strnpcinfo(2); |
---|
| 178 | SetCastleData strnpcinfo(2),0,0; |
---|
| 179 | // Wait before refreshing guild information. |
---|
| 180 | sleep getbattleflag("gvg_eliminate_time"); |
---|
| 181 | Announce "Guild Base [" + GetCastleName(strnpcinfo(2)) + "] has been abandoned.",0; |
---|
| 182 | GetCastleData strnpcinfo(2),0,strnpcinfo(0)+"::OnRecvCastle"; |
---|
| 183 | end; |
---|
| 184 | |
---|
| 185 | OnRecvCastle: |
---|
| 186 | RequestGuildInfo GetCastleData(strnpcinfo(2),1); |
---|
| 187 | |
---|
| 188 | // Spawn Monsters if the castle is empty. |
---|
| 189 | set .@GID, GetCastleData(strnpcinfo(2),1); |
---|
| 190 | if (.@GID == 0) { |
---|
| 191 | killmonsterall strnpcinfo(2); |
---|
| 192 | if (compare(strnpcinfo(2),"aldeg")) { |
---|
| 193 | // Normal Spawns |
---|
| 194 | monster strnpcinfo(2),0,0,"Evil Druid",1117,10; |
---|
| 195 | monster strnpcinfo(2),0,0,"Khalitzburg",1132,4; |
---|
| 196 | monster strnpcinfo(2),0,0,"Abysmal Knight",1219,2; |
---|
| 197 | monster strnpcinfo(2),0,0,"Executioner",1205,1; |
---|
| 198 | monster strnpcinfo(2),0,0,"Penomena",1216,10; |
---|
| 199 | monster strnpcinfo(2),0,0,"Alarm",1193,18; |
---|
| 200 | monster strnpcinfo(2),0,0,"Clock",1269,9; |
---|
| 201 | monster strnpcinfo(2),0,0,"Raydric Archer",1276,7; |
---|
| 202 | monster strnpcinfo(2),0,0,"Wanderer",1208,3; |
---|
| 203 | monster strnpcinfo(2),0,0,"Alice",1275,1; |
---|
| 204 | monster strnpcinfo(2),0,0,"Bloody Knight",1268,1; |
---|
| 205 | monster strnpcinfo(2),0,0,"Dark Lord",1272,1; |
---|
| 206 | // Set Emperium room spawn coordinates and spawn monsters. |
---|
| 207 | if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; } |
---|
| 208 | else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; } |
---|
| 209 | else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; } |
---|
| 210 | else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; } |
---|
| 211 | else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; } |
---|
| 212 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Dark Lord",1272,1; |
---|
| 213 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Tower Keeper",1270,4; |
---|
| 214 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Bloody Knight",1268,1; |
---|
| 215 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Abysmal Knight",1219,1; |
---|
| 216 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; |
---|
| 217 | } |
---|
| 218 | else if (compare(strnpcinfo(2),"gefg")) { |
---|
| 219 | // Normal Spawns |
---|
| 220 | monster strnpcinfo(2),0,0,"Evil Druid",1117,10; |
---|
| 221 | monster strnpcinfo(2),0,0,"Wind Ghost",1263,11; |
---|
| 222 | monster strnpcinfo(2),0,0,"Bathory",1102,10; |
---|
| 223 | monster strnpcinfo(2),0,0,"Jakk",1130,10; |
---|
| 224 | monster strnpcinfo(2),0,0,"Marduk",1140,20; |
---|
| 225 | monster strnpcinfo(2),0,0,"Raydric",1163,9; |
---|
| 226 | monster strnpcinfo(2),0,0,"Alice",1275,1; |
---|
| 227 | monster strnpcinfo(2),0,0,"Abysmal Knight",1219,1; |
---|
| 228 | monster strnpcinfo(2),0,0,"Moonlight Flower",1150,1; |
---|
| 229 | monster strnpcinfo(2),0,0,"Phreeoni",1159,1; |
---|
| 230 | // Set Emperium room spawn coordinates and spawn monsters. |
---|
| 231 | if (strnpcinfo(2) == "gefg_cas01") { setarray .@emproom[0],197,181; } |
---|
| 232 | else if (strnpcinfo(2) == "gefg_cas02") { setarray .@emproom[0],176,178; } |
---|
| 233 | else if (strnpcinfo(2) == "gefg_cas03") { setarray .@emproom[0],244,166; } |
---|
| 234 | else if (strnpcinfo(2) == "gefg_cas04") { setarray .@emproom[0],174,177; } |
---|
| 235 | else if (strnpcinfo(2) == "gefg_cas05") { setarray .@emproom[0],194,184; } |
---|
| 236 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Mysteltainn",1203,1; |
---|
| 237 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Orc Hero",1087,1; |
---|
| 238 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"High Orc",1213,10; |
---|
| 239 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Orc Archer",1189,10; |
---|
| 240 | } |
---|
| 241 | else if (compare(strnpcinfo(2),"payg")) { |
---|
| 242 | // Normal Spawns |
---|
| 243 | monster strnpcinfo(2),0,0,"Greatest General",1277,9; |
---|
| 244 | monster strnpcinfo(2),0,0,"Wanderer",1208,10; |
---|
| 245 | monster strnpcinfo(2),0,0,"Mutant Dragonoid",1262,5; |
---|
| 246 | monster strnpcinfo(2),0,0,"Bathory",1102,5; |
---|
| 247 | monster strnpcinfo(2),0,0,"Moonlight Flower",1150,1; |
---|
| 248 | monster strnpcinfo(2),0,0,"Eddga",1115,1; |
---|
| 249 | monster strnpcinfo(2),0,0,"Horong",1129,11; |
---|
| 250 | monster strnpcinfo(2),0,0,"Raydric Archer",1276,5; |
---|
| 251 | monster strnpcinfo(2),0,0,"Kobold Archer",1282,4; |
---|
| 252 | monster strnpcinfo(2),0,0,"Gargoyle",1253,5; |
---|
| 253 | // Set Emperium room spawn coordinates and spawn monsters. |
---|
| 254 | if (strnpcinfo(2) == "payg_cas01") { setarray .@emproom[0],138,138; } |
---|
| 255 | else if (strnpcinfo(2) == "payg_cas02") { setarray .@emproom[0],38,25; } |
---|
| 256 | else if (strnpcinfo(2) == "payg_cas03") { setarray .@emproom[0],268,264; } |
---|
| 257 | else if (strnpcinfo(2) == "payg_cas04") { setarray .@emproom[0],270,28; } |
---|
| 258 | else if (strnpcinfo(2) == "payg_cas05") { setarray .@emproom[0],30,30; } |
---|
| 259 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Moonlight Flower",1150,1; |
---|
| 260 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Eddga",1115,1; |
---|
| 261 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Wanderer",1208,6; |
---|
| 262 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; |
---|
| 263 | } |
---|
| 264 | else if (compare(strnpcinfo(2),"prtg")) { |
---|
| 265 | // Normal Spawns |
---|
| 266 | monster strnpcinfo(2),0,0,"Raydric",1163,1; |
---|
| 267 | monster strnpcinfo(2),0,0,"Khalitzburg",1132,10; |
---|
| 268 | monster strnpcinfo(2),0,0,"Abysmal Knight",1219,5; |
---|
| 269 | monster strnpcinfo(2),0,0,"Bloody Knight",1268,5; |
---|
| 270 | monster strnpcinfo(2),0,0,"Stormy Knight",1251,1; |
---|
| 271 | monster strnpcinfo(2),0,0,"Hatii",1252,1; |
---|
| 272 | monster strnpcinfo(2),0,0,"Raydric Archer",1276,5; |
---|
| 273 | monster strnpcinfo(2),0,0,"Gryphon",1259,2; |
---|
| 274 | monster strnpcinfo(2),0,0,"Chimera",1283,3; |
---|
| 275 | monster strnpcinfo(2),0,0,"Alice",1275,1; |
---|
| 276 | monster strnpcinfo(2),0,0,"Zealotus",1200,1; |
---|
| 277 | // Set Emperium room spawn coordinates and spawn monsters. |
---|
| 278 | if (strnpcinfo(2) == "prtg_cas01") { setarray .@emproom[0],197,197; } |
---|
| 279 | else if (strnpcinfo(2) == "prtg_cas02") { setarray .@emproom[0],157,174; } |
---|
| 280 | else if (strnpcinfo(2) == "prtg_cas03") { setarray .@emproom[0],16,220; } |
---|
| 281 | else if (strnpcinfo(2) == "prtg_cas04") { setarray .@emproom[0],291,14; } |
---|
| 282 | else if (strnpcinfo(2) == "prtg_cas05") { setarray .@emproom[0],266,266; } |
---|
| 283 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Guardian Knight",1268,1; |
---|
| 284 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Guardian Master",1251,1; |
---|
| 285 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Hatii",1252,1; |
---|
| 286 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Guardian Knight",1219,1; |
---|
| 287 | monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Archer",1276,5; |
---|
| 288 | } |
---|
| 289 | // Add custom Guild Castles here. |
---|
| 290 | else { |
---|
| 291 | end; |
---|
| 292 | } |
---|
| 293 | donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena"; |
---|
| 294 | // Disable Kafra Staff... |
---|
| 295 | disablenpc "Kafra Staff#"+strnpcinfo(2); |
---|
| 296 | end; |
---|
| 297 | } |
---|
| 298 | else { |
---|
| 299 | // Otherwise place the guild emblem on flags. |
---|
| 300 | if (strnpcinfo(2) == "aldeg_cas01") { donpcevent "::OnRecvCastleA01"; } |
---|
| 301 | else if (strnpcinfo(2) == "aldeg_cas02") { donpcevent "::OnRecvCastleA02"; } |
---|
| 302 | else if (strnpcinfo(2) == "aldeg_cas03") { donpcevent "::OnRecvCastleA03"; } |
---|
| 303 | else if (strnpcinfo(2) == "aldeg_cas04") { donpcevent "::OnRecvCastleA04"; } |
---|
| 304 | else if (strnpcinfo(2) == "aldeg_cas05") { donpcevent "::OnRecvCastleA05"; } |
---|
| 305 | else if (strnpcinfo(2) == "gefg_cas01") { donpcevent "::OnRecvCastleG01"; } |
---|
| 306 | else if (strnpcinfo(2) == "gefg_cas02") { donpcevent "::OnRecvCastleG02"; } |
---|
| 307 | else if (strnpcinfo(2) == "gefg_cas03") { donpcevent "::OnRecvCastleG03"; } |
---|
| 308 | else if (strnpcinfo(2) == "gefg_cas04") { donpcevent "::OnRecvCastleG04"; } |
---|
| 309 | else if (strnpcinfo(2) == "gefg_cas05") { donpcevent "::OnRecvCastleG05"; } |
---|
| 310 | else if (strnpcinfo(2) == "payg_cas01") { donpcevent "::OnRecvCastlePy01"; } |
---|
| 311 | else if (strnpcinfo(2) == "payg_cas02") { donpcevent "::OnRecvCastlePy02"; } |
---|
| 312 | else if (strnpcinfo(2) == "payg_cas03") { donpcevent "::OnRecvCastlePy03"; } |
---|
| 313 | else if (strnpcinfo(2) == "payg_cas04") { donpcevent "::OnRecvCastlePy04"; } |
---|
| 314 | else if (strnpcinfo(2) == "payg_cas05") { donpcevent "::OnRecvCastlePy05"; } |
---|
| 315 | else if (strnpcinfo(2) == "prtg_cas01") { donpcevent "::OnRecvCastlePt01"; } |
---|
| 316 | else if (strnpcinfo(2) == "prtg_cas02") { donpcevent "::OnRecvCastlePt02"; } |
---|
| 317 | else if (strnpcinfo(2) == "prtg_cas03") { donpcevent "::OnRecvCastlePt03"; } |
---|
| 318 | else if (strnpcinfo(2) == "prtg_cas04") { donpcevent "::OnRecvCastlePt04"; } |
---|
| 319 | else if (strnpcinfo(2) == "prtg_cas05") { donpcevent "::OnRecvCastlePt05"; } |
---|
| 320 | // Add custom Guild Castles here. |
---|
| 321 | else { |
---|
| 322 | end; |
---|
| 323 | } |
---|
| 324 | // And load purchased Guardian in castles. |
---|
| 325 | donpcevent "Guardian#"+strnpcinfo(2)+"::OnSpawnGuardians"; |
---|
| 326 | // And display Kafra if purchased. |
---|
| 327 | if (GetCastleData(strnpcinfo(2),9) < 1) disablenpc "Kafra Staff#"+strnpcinfo(2); |
---|
| 328 | } |
---|
| 329 | end; |
---|
| 330 | } |
---|
| 331 | |
---|
| 332 | // Guild Steward Template |
---|
| 333 | //============================================================ |
---|
| 334 | - script Gld_Mngr_Template::Gld_Mngr_Template -1,{ |
---|
| 335 | // What is the Display Name of the NPC? |
---|
| 336 | set .@name$,strnpcinfo(1); |
---|
| 337 | |
---|
| 338 | // Store the Guild ID of castle occupant. |
---|
| 339 | set .@GID, GetCastleData(strnpcinfo(2),1); |
---|
| 340 | |
---|
| 341 | // Define the types of guardians on a per castle basis. |
---|
| 342 | // 1 - Soldier Guardian; 2 - Archer Guardian; 3 - Knight Guardian |
---|
| 343 | // Define the x spawn point for each uardian. |
---|
| 344 | // [0] = 1st guardian's x spawn point. |
---|
| 345 | // Define the y spawn point for each guardian. |
---|
| 346 | // [0] = 1st guardian's y spawn point. |
---|
| 347 | // Define the coordinates of the "Treasure Room." |
---|
| 348 | // Aldebaran (Luina) Castles |
---|
| 349 | if (strnpcinfo(2) == "aldeg_cas01") { |
---|
| 350 | setarray .@guardiantype[0],1,2,2,2,2,3,3,3; |
---|
| 351 | setarray .@guardianposx[0],17,39,38,45,21,218,213,73; |
---|
| 352 | setarray .@guardianposy[0],218,208,196,228,194,24,24,70; |
---|
| 353 | setarray .@masterroom[0],113,223; |
---|
| 354 | } |
---|
| 355 | else if (strnpcinfo(2) == "aldeg_cas02") { |
---|
| 356 | setarray .@guardiantype[0],3,3,3,1,1,2,2,2; |
---|
| 357 | setarray .@guardianposx[0],27,88,117,60,51,21,36,210; |
---|
| 358 | setarray .@guardianposy[0],184,43,46,202,183,177,183,7; |
---|
| 359 | setarray .@masterroom[0],134,225; |
---|
| 360 | } |
---|
| 361 | else if (strnpcinfo(2) == "aldeg_cas03") { |
---|
| 362 | setarray .@guardiantype[0],3,3,1,1,1,2,2,2; |
---|
| 363 | setarray .@guardianposx[0],90,116,86,116,64,212,195,110; |
---|
| 364 | setarray .@guardianposy[0],112,112,120,76,103,160,151,217; |
---|
| 365 | setarray .@masterroom[0],229,267; |
---|
| 366 | } |
---|
| 367 | else if (strnpcinfo(2) == "aldeg_cas04") { |
---|
| 368 | setarray .@guardiantype[0],2,2,2,1,1,1,3,3; |
---|
| 369 | setarray .@guardianposx[0],187,192,148,145,169,198,48,55; |
---|
| 370 | setarray .@guardianposy[0],100,42,88,209,53,77,72,88; |
---|
| 371 | setarray .@masterroom[0],83,17; |
---|
| 372 | } |
---|
| 373 | else if (strnpcinfo(2) == "aldeg_cas05") { |
---|
| 374 | setarray .@guardiantype[0],2,2,1,1,3,3,3,3; |
---|
| 375 | setarray .@guardianposx[0],51,188,157,157,27,145,156,41; |
---|
| 376 | setarray .@guardianposy[0],202,79,192,74,221,78,73,112; |
---|
| 377 | setarray .@masterroom[0],64,8; |
---|
| 378 | } |
---|
| 379 | // Geffen (Britoniah) Castles |
---|
| 380 | else if (strnpcinfo(2) == "gefg_cas01") { |
---|
| 381 | setarray .@guardiantype[0],1,1,1,2,2,3,3,3; |
---|
| 382 | setarray .@guardianposx[0],67,184,62,36,50,50,189,200; |
---|
| 383 | setarray .@guardianposy[0],179,20,41,186,186,67,41,167; |
---|
| 384 | setarray .@masterroom[0],152,117; |
---|
| 385 | } |
---|
| 386 | else if (strnpcinfo(2) == "gefg_cas02") { |
---|
| 387 | setarray .@guardiantype[0],1,1,1,2,2,3,3,3; |
---|
| 388 | setarray .@guardianposx[0],64,56,166,35,20,19,166,159; |
---|
| 389 | setarray .@guardianposy[0],168,41,25,148,150,41,42,188; |
---|
| 390 | setarray .@masterroom[0],145,115; |
---|
| 391 | } |
---|
| 392 | else if (strnpcinfo(2) == "gefg_cas03") { |
---|
| 393 | setarray .@guardiantype[0],2,2,1,1,1,3,3,3; |
---|
| 394 | setarray .@guardianposx[0],48,113,48,157,243,157,234,238; |
---|
| 395 | setarray .@guardianposy[0],176,214,207,62,41,45,25,160; |
---|
| 396 | setarray .@masterroom[0],275,289; |
---|
| 397 | } |
---|
| 398 | else if (strnpcinfo(2) == "gefg_cas04") { |
---|
| 399 | setarray .@guardiantype[0],2,2,1,1,1,3,3,3; |
---|
| 400 | setarray .@guardianposx[0],53,31,49,29,147,57,160,148; |
---|
| 401 | setarray .@guardianposy[0],191,178,220,46,65,46,50,189; |
---|
| 402 | setarray .@masterroom[0],116,123; |
---|
| 403 | } |
---|
| 404 | else if (strnpcinfo(2) == "gefg_cas05") { |
---|
| 405 | setarray .@guardiantype[0],2,2,1,1,1,3,3,3; |
---|
| 406 | setarray .@guardianposx[0],45,71,72,66,177,66,177,193; |
---|
| 407 | setarray .@guardianposy[0],149,163,142,47,50,17,35,166; |
---|
| 408 | setarray .@masterroom[0],149,106; |
---|
| 409 | } |
---|
| 410 | // Payon (Baulder) Castles |
---|
| 411 | else if (strnpcinfo(2) == "payg_cas01") { |
---|
| 412 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 413 | setarray .@guardianposx[0],229,225,222,99,65,36,51,138; |
---|
| 414 | setarray .@guardianposy[0],92,80,111,45,31,127,144,133; |
---|
| 415 | setarray .@masterroom[0],295,8; |
---|
| 416 | } |
---|
| 417 | else if (strnpcinfo(2) == "payg_cas02") { |
---|
| 418 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 419 | setarray .@guardianposx[0],237,228,210,57,42,287,264,27; |
---|
| 420 | setarray .@guardianposy[0],54,72,41,241,241,257,272,20; |
---|
| 421 | setarray .@masterroom[0],141,149; |
---|
| 422 | } |
---|
| 423 | else if (strnpcinfo(2) == "payg_cas03") { |
---|
| 424 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 425 | setarray .@guardianposx[0],245,269,36,41,39,19,37,268; |
---|
| 426 | setarray .@guardianposy[0],37,51,39,39,65,276,277,244; |
---|
| 427 | setarray .@masterroom[0],163,167; |
---|
| 428 | } |
---|
| 429 | else if (strnpcinfo(2) == "payg_cas04") { |
---|
| 430 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 431 | setarray .@guardianposx[0],251,232,231,32,32,35,36,270; |
---|
| 432 | setarray .@guardianposy[0],212,212,175,287,232,45,17,41; |
---|
| 433 | setarray .@masterroom[0],151,47; |
---|
| 434 | } |
---|
| 435 | else if (strnpcinfo(2) == "payg_cas05") { |
---|
| 436 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 437 | setarray .@guardianposx[0],19,33,266,266,263,263,250,36; |
---|
| 438 | setarray .@guardianposy[0],279,260,234,279,37,21,22,36; |
---|
| 439 | setarray .@masterroom[0],153,137; |
---|
| 440 | } |
---|
| 441 | // Prontera (Valkyrie Realms) Castles |
---|
| 442 | else if (strnpcinfo(2) == "prtg_cas01") { |
---|
| 443 | setarray .@guardiantype[0],1,1,1,2,2,3,3,3; |
---|
| 444 | setarray .@guardianposx[0],182,182,153,59,50,184,196,107; |
---|
| 445 | setarray .@guardianposy[0],62,116,86,28,36,183,189,179; |
---|
| 446 | setarray .@masterroom[0],15,209; |
---|
| 447 | } |
---|
| 448 | else if (strnpcinfo(2) == "prtg_cas02") { |
---|
| 449 | setarray .@guardiantype[0],3,3,3,1,1,2,2,2; |
---|
| 450 | setarray .@guardianposx[0],161,153,178,71,49,64,7,75; |
---|
| 451 | setarray .@guardianposy[0],161,161,44,75,28,186,196,175; |
---|
| 452 | setarray .@masterroom[0],207,229; |
---|
| 453 | } |
---|
| 454 | else if (strnpcinfo(2) == "prtg_cas03") { |
---|
| 455 | setarray .@guardiantype[0],3,3,3,1,1,2,2,2; |
---|
| 456 | setarray .@guardianposx[0],191,137,45,50,41,191,179,191; |
---|
| 457 | setarray .@guardianposy[0],190,190,99,87,87,42,43,72; |
---|
| 458 | setarray .@masterroom[0],190,130; |
---|
| 459 | } |
---|
| 460 | else if (strnpcinfo(2) == "prtg_cas04") { |
---|
| 461 | setarray .@guardiantype[0],3,3,3,1,1,1,2,2; |
---|
| 462 | setarray .@guardianposx[0],276,274,246,38,29,33,78,36; |
---|
| 463 | setarray .@guardianposy[0],14,35,246,240,240,258,48,61; |
---|
| 464 | setarray .@masterroom[0],275,160; |
---|
| 465 | } |
---|
| 466 | else if (strnpcinfo(2) == "prtg_cas05") { |
---|
| 467 | setarray .@guardiantype[0],3,3,3,1,1,1,2,2; |
---|
| 468 | setarray .@guardianposx[0],266,287,245,236,251,278,32,44; |
---|
| 469 | setarray .@guardianposy[0],262,280,250,63,63,253,253,248; |
---|
| 470 | setarray .@masterroom[0],281,176; |
---|
| 471 | } |
---|
| 472 | // Add custom Guild Castles here. |
---|
| 473 | else { |
---|
| 474 | end; |
---|
| 475 | } |
---|
| 476 | |
---|
| 477 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 478 | if (.@GID == 0) { |
---|
| 479 | mes "I'm waiting for my master to return."; |
---|
| 480 | mes "If you wish to speak with him, you will have to wait as well. "; |
---|
| 481 | close; |
---|
| 482 | } |
---|
| 483 | if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)){ |
---|
| 484 | mes "I am loyal and I will follow my master ^ff0000" + getguildmaster(.@GID) + "^000000. We are Guardians! We defend to the bitter end!"; |
---|
| 485 | close; |
---|
| 486 | } |
---|
| 487 | mes "Welcome. My honorable master, ^ff0000" + getguildmaster(.@GID) + "^000000..."; |
---|
| 488 | mes "Whatever you need, I am at your service. I will be faithful in my duties."; |
---|
| 489 | next; |
---|
| 490 | switch(select("castle briefing:Invest in commercial growth:Invest in safeguard:Summon Guardian:Employ / discharge storehouse staff:Go into Master's room")) { |
---|
| 491 | case 1: |
---|
| 492 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 493 | mes "I will report the Castle briefing, Master."; |
---|
| 494 | mes " "; |
---|
| 495 | mes " ^0000ffNow, commercial growth level is " + GetCastleData(strnpcinfo(2),2) + "."; |
---|
| 496 | if (GetCastleData(strnpcinfo(2),4)) { |
---|
| 497 | mes " You invested " + GetCastleData(strnpcinfo(2),4) + "times in last 1 day."; |
---|
| 498 | } |
---|
| 499 | mes " Now, safeguard level is " + GetCastleData(strnpcinfo(2),3) + ".^000000"; |
---|
| 500 | if (GetCastleData(strnpcinfo(2),5)) { |
---|
| 501 | mes " ^0000ff- You invested " + GetCastleData(strnpcinfo(2),5) + "times in last 1 day.^000000"; |
---|
| 502 | } |
---|
| 503 | mes " "; |
---|
| 504 | mes "That's all to report, Master."; |
---|
| 505 | close; |
---|
| 506 | case 2: |
---|
| 507 | set .@Economy,GetCastleData(strnpcinfo(2),2); |
---|
| 508 | if(.@Economy < 8) set .@eco_invest,10000; |
---|
| 509 | if(.@Economy >= 8) set .@eco_invest,20000; |
---|
| 510 | if(.@Economy >= 16) set .@eco_invest,40000; |
---|
| 511 | if(.@Economy >= 25) set .@eco_invest,80000; |
---|
| 512 | if(.@Economy >= 34) set .@eco_invest,160000; |
---|
| 513 | if(.@Economy >= 44) set .@eco_invest,320000; |
---|
| 514 | if(.@Economy >= 54) set .@eco_invest,640000; |
---|
| 515 | if(.@Economy >= 65) set .@eco_invest,1280000; |
---|
| 516 | if(.@Economy >= 76) set .@eco_invest,2560000; |
---|
| 517 | if(.@Economy >= 88) set .@eco_invest,5120000; |
---|
| 518 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 519 | mes "If you raise commercial growth, the quantity of goods made by the guild will increase. So if you want a prosperous future, investment will be required."; |
---|
| 520 | mes " "; |
---|
| 521 | mes "Originally you can invest just once but if you pay more money, you can invest twice."; |
---|
| 522 | mes " "; |
---|
| 523 | if (.@Economy == 100) { |
---|
| 524 | mes "^ff0000But the commercial growth level of our castle is peaked at 100%. It doesn't need any more investment. As I expected you have a great acumen, Master.^000000"; |
---|
| 525 | close; |
---|
| 526 | } |
---|
| 527 | if (GetCastleData(strnpcinfo(2),4) == 2) { |
---|
| 528 | mes "^ff0000But you already invested twice today so you cannot invest any more.^000000 I expect our riches to increase in growth level."; |
---|
| 529 | close; |
---|
| 530 | } |
---|
| 531 | if (GetCastleData(strnpcinfo(2),4) == 0) { |
---|
| 532 | mes "Now the needed investment amount is ^ff0000" + .@eco_invest + "^000000 zeny. Will you invest?"; |
---|
| 533 | } |
---|
| 534 | else { |
---|
| 535 | mes "You've invested once today... if you wish to invest once more, ^ff0000" + .@eco_invest + "^000000 more zeny will be needed."; |
---|
| 536 | } |
---|
| 537 | next; |
---|
| 538 | switch(select("Invest in commercial growth:Cancel")) { |
---|
| 539 | case 1: |
---|
| 540 | if (Zeny < .@eco_invest) { |
---|
| 541 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 542 | mes "I'm sorry but there is not enough zeny to invest. You will have to try again when you have the funds, Master."; |
---|
| 543 | close; |
---|
| 544 | } |
---|
| 545 | set zeny,zeny-.@eco_invest; |
---|
| 546 | SetCastleData strnpcinfo(2),4,GetCastleData(strnpcinfo(2),4)+1; |
---|
| 547 | SetCastleData strnpcinfo(2),2,.@Economy + 1 + (.@Economy<99 && rand(2) && getgdskilllv(.@GID,10014)); |
---|
| 548 | mes "[ Steward " + .@name$ + "]"; |
---|
| 549 | mes "We finished the investment safely. I expect that our growth level will be increased by tomorrow."; |
---|
| 550 | close; |
---|
| 551 | case 2: |
---|
| 552 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 553 | mes "I'll do as you bid, my master... There is no hurry. We will do our best."; |
---|
| 554 | close; |
---|
| 555 | } |
---|
| 556 | case 3: |
---|
| 557 | set .@Defence,GetCastleData(strnpcinfo(2),3); |
---|
| 558 | if(.@Defence < 8) set .@def_invest,20000; |
---|
| 559 | if(.@Defence >= 8) set .@def_invest,40000; |
---|
| 560 | if(.@Defence >= 16) set .@def_invest,80000; |
---|
| 561 | if(.@Defence >= 25) set .@def_invest,160000; |
---|
| 562 | if(.@Defence >= 34) set .@def_invest,320000; |
---|
| 563 | if(.@Defence >= 44) set .@def_invest,640000; |
---|
| 564 | if(.@Defence >= 54) set .@def_invest,1280000; |
---|
| 565 | if(.@Defence >= 65) set .@def_invest,2560000; |
---|
| 566 | if(.@Defence >= 76) set .@def_invest,5120000; |
---|
| 567 | if(.@Defence >= 88) set .@def_invest,10240000; |
---|
| 568 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 569 | mes "If you raise the safeguard, the durability of the Guardians and emperium will increase. So if you expect more defenses in battles, investment will be required."; |
---|
| 570 | mes " "; |
---|
| 571 | mes "Originally you can invest just once but if you pay more money, you can invest twice."; |
---|
| 572 | mes " "; |
---|
| 573 | if (.@Defence == 100) { |
---|
| 574 | mes "^ff0000But the safeguard level of our castle is peaked at 100%. It doesn't need any more investment. As I expected you have a great acumen, Master.^000000"; |
---|
| 575 | close; |
---|
| 576 | } |
---|
| 577 | if (GetCastleData(strnpcinfo(2),5) == 2) { |
---|
| 578 | mes "^ff0000But you already invested twice today so you cannot invest any more.^000000 I expect our riches to increase in growth level."; |
---|
| 579 | close; |
---|
| 580 | } |
---|
| 581 | if (GetCastleData(strnpcinfo(2),5) == 0) { |
---|
| 582 | mes "Now the needed investment amount is ^ff0000" + .@def_invest + "^000000 zeny. Will you invest?"; |
---|
| 583 | } |
---|
| 584 | else { |
---|
| 585 | mes "You've invested once today... if you wish to invest once more, ^ff0000" + .@def_invest + "^000000 more zeny will be needed."; |
---|
| 586 | } |
---|
| 587 | next; |
---|
| 588 | switch(select("Invest in safeguard.:Cancel")) { |
---|
| 589 | case 1: |
---|
| 590 | if (Zeny < .@def_invest) { |
---|
| 591 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 592 | mes "I'm sorry but there is not enough zeny to invest. You will have to try again when you have the funds, Master."; |
---|
| 593 | close; |
---|
| 594 | } |
---|
| 595 | set zeny,zeny-.@def_invest; |
---|
| 596 | SetCastleData strnpcinfo(2),5,GetCastleData(strnpcinfo(2),5)+1; |
---|
| 597 | SetCastleData strnpcinfo(2),3,.@Defence+1; |
---|
| 598 | mes "[ Steward " + .@name$ + "]"; |
---|
| 599 | mes "We finished the investment safely. I expect that the safeguard level will be increased by tomorrow."; |
---|
| 600 | close; |
---|
| 601 | case 2: |
---|
| 602 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 603 | mes "I'll do as you bid, my master... There is no hurry. We will do our best."; |
---|
| 604 | close; |
---|
| 605 | |
---|
| 606 | } |
---|
| 607 | case 4: |
---|
| 608 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 609 | mes "Will you summon a Guardian? It'll be a protector to defend us loyally."; |
---|
| 610 | mes "Please select a guardian to defend us."; |
---|
| 611 | next; |
---|
| 612 | for( set .@i, 0; .@i <= 7 ; set .@i, .@i+1 ) { |
---|
| 613 | if (.@guardiantype[.@i] == 1) { set .@type$,"Guardian Soldier"; } |
---|
| 614 | else if (.@guardiantype[.@i] == 2) { set .@type$,"Guardian Archer"; } |
---|
| 615 | else { set .@type$,"Guardian Knight"; } |
---|
| 616 | if (guardianinfo(strnpcinfo(2),.@i,0)) { |
---|
| 617 | setarray .@gname$[.@i], .@type$ + " - Implemented (" + guardianinfo(strnpcinfo(2),.@i,2) + "/" + guardianinfo(strnpcinfo(2),.@i,1) + ")"; |
---|
| 618 | } |
---|
| 619 | else { |
---|
| 620 | setarray .@gname$[.@i], .@type$ + " - Not Implemented"; |
---|
| 621 | } |
---|
| 622 | } |
---|
| 623 | set .@menu$,.@gname$[0]+":"+.@gname$[1]+":"+.@gname$[2]+":"+.@gname$[3]+":"+.@gname$[4]+":"+.@gname$[5]+":"+.@gname$[6]+":"+.@gname$[7]; |
---|
| 624 | set .@GDnum,select(.@menu$)+9; |
---|
| 625 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 626 | mes "Will you summon the chosen guardian? 10000 zeny is required to summon."; |
---|
| 627 | next; |
---|
| 628 | switch(select("Summon:Cancel")) { |
---|
| 629 | case 1: |
---|
| 630 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 631 | if (getgdskilllv(.@GID,10002) == 0) { |
---|
| 632 | mes "Master, we have not the resources to Summon the Guardian. If you want to accumulate them, you have to learn the Guild skill, We failed to summon the Guardian."; |
---|
| 633 | close; |
---|
| 634 | } |
---|
| 635 | if (GetCastleData(strnpcinfo(2),.@GDnum) == 1) { |
---|
| 636 | mes "Master, you already have summoned that Guardian. We cannot summon another."; |
---|
| 637 | close; |
---|
| 638 | } |
---|
| 639 | |
---|
| 640 | if (Zeny < 1000) { |
---|
| 641 | mes "Well... I'm sorry but we don't have funds to summon the Guardian. We failed to summon the Guardian."; |
---|
| 642 | close; |
---|
| 643 | } |
---|
| 644 | set zeny,zeny-10000; |
---|
| 645 | SetCastleData strnpcinfo(2),.@GDnum,1; // mark as 'installed' |
---|
| 646 | set .@UseGID,.@GDnum - 10; |
---|
| 647 | if (.@guardiantype[.@UseGID] == 1) { set .@type,1287; } |
---|
| 648 | else if (.@guardiantype[.@UseGID] == 2) { set .@type,1285; } |
---|
| 649 | else { set .@type,1286; } |
---|
| 650 | guardian strnpcinfo(2),.@guardianposx[.@UseGID],.@guardianposy[.@UseGID],strmobinfo(2,.@type),.@type,"Guardian#"+strnpcinfo(2)+"::OnGuardianDied",.@UseGID; |
---|
| 651 | mes "We completed the summoning of the Guardian. Our defenses are now increased with it in place."; |
---|
| 652 | close; |
---|
| 653 | case 2: |
---|
| 654 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 655 | mes "I did as you ordered. But please remember if you the have money to spare, it'll be better to set it up."; |
---|
| 656 | close; |
---|
| 657 | } |
---|
| 658 | case 5: |
---|
| 659 | if (GetCastleData(strnpcinfo(2),9) == 1) { |
---|
| 660 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 661 | mes "Now about the Kafra staff... Will you discharge the Kafra staff?"; |
---|
| 662 | next; |
---|
| 663 | switch(select("Discharge:Cancel")) { |
---|
| 664 | case 1: |
---|
| 665 | cutin "kafra_01",2; |
---|
| 666 | mes "[ Hired Kafra staff ]"; |
---|
| 667 | mes "I worked so hard... How can this be, Master?... I'll work harder if you're displeased... Please reconsider, Master."; |
---|
| 668 | next; |
---|
| 669 | switch(select("Discharge:Cancel")) { |
---|
| 670 | case 1: |
---|
| 671 | mes "[ Hired Kafra staff ]"; |
---|
| 672 | mes "Oh, my god! This is nonsense!"; |
---|
| 673 | next; |
---|
| 674 | cutin "kafra_01",255; |
---|
| 675 | break; |
---|
| 676 | case 2: |
---|
| 677 | mes "[ Hired Kafra staff ]"; |
---|
| 678 | mes "I'll work harder... Thank you!"; |
---|
| 679 | close2; |
---|
| 680 | cutin "kafra_01",255; |
---|
| 681 | end; |
---|
| 682 | } |
---|
| 683 | case 2: |
---|
| 684 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 685 | mes "Those Kafra are hard workers. I thought it would be best to keep the staff."; |
---|
| 686 | close; |
---|
| 687 | } |
---|
| 688 | disablenpc "Kafra Staff#"+strnpcinfo(2); |
---|
| 689 | SetCastleData strnpcinfo(2),9,0; |
---|
| 690 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 691 | mes "...."; |
---|
| 692 | mes "Discharged Kafra staff... But... are you displeased with something?"; |
---|
| 693 | close; |
---|
| 694 | } |
---|
| 695 | else { |
---|
| 696 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 697 | mes "Will you contract with the Kafra head office to hire Kafra staff in our castle?"; |
---|
| 698 | mes "^ff0000 10000zeny is needed to hire. "; |
---|
| 699 | next; |
---|
| 700 | switch(select("Hire.:Cancel")) { |
---|
| 701 | case 1: |
---|
| 702 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 703 | if (getgdskilllv(.@GID,10001) == 0) { |
---|
| 704 | mes "Master, we cannot hire Kafra staff because we didn't make a contract with the Kafra head office. If you want to make a contract with the Kafra head office, you have to learn the Guild skill."; |
---|
| 705 | close; |
---|
| 706 | } |
---|
| 707 | if (Zeny < 10000) { |
---|
| 708 | mes "Well... I'm sorry but we don't have enough funds. We are unable to hire the Kafra staff."; |
---|
| 709 | close; |
---|
| 710 | } |
---|
| 711 | set zeny,zeny-10000; |
---|
| 712 | enablenpc "Kafra Staff#"+strnpcinfo(2); |
---|
| 713 | SetCastleData strnpcinfo(2),9,1; |
---|
| 714 | mes "We finished making the contract with the Kafra head office successfully. We hired a Kafra staff."; |
---|
| 715 | next; |
---|
| 716 | cutin "kafra_01",2; |
---|
| 717 | mes "[ Hired Kafra staff ]"; |
---|
| 718 | mes "How do you do? I'm a dispatched Kafra from head office."; |
---|
| 719 | mes "I'll do my best to upkeep the reputation of Guild."; |
---|
| 720 | next; |
---|
| 721 | cutin "kafra_01",255 ; |
---|
| 722 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 723 | mes "The contract term of the hired Kafra staff is 1 month and after this term, you will have to pay an additional charge."; |
---|
| 724 | mes "It will be useful for our members."; |
---|
| 725 | close; |
---|
| 726 | case 2: |
---|
| 727 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 728 | mes "I did as you ordered, but some of our members will be unhappy. It will be better to hire a Kafra staff quickly."; |
---|
| 729 | close; |
---|
| 730 | } |
---|
| 731 | } |
---|
| 732 | case 6: |
---|
| 733 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 734 | mes "Do you want to visit the room where our valuables are stored?"; |
---|
| 735 | mes "That room is restricted to you... you are the only one with access to it."; |
---|
| 736 | next; |
---|
| 737 | switch(select("Go into Master's room.:Cancel")) { |
---|
| 738 | case 1: |
---|
| 739 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 740 | mes "Please follow me, I will show you the secret passage."; |
---|
| 741 | mes "When you wish to return, pull this lever here..."; |
---|
| 742 | close2; |
---|
| 743 | warp strnpcinfo(2),.@masterroom[0],.@masterroom[1]; |
---|
| 744 | end; |
---|
| 745 | case 2: |
---|
| 746 | mes "[ Steward " + .@name$ + " ]"; |
---|
| 747 | mes "Goods are produced once a day... if you don't make use of them, they will not produce."; |
---|
| 748 | mes "Therefore it would be better that you remove them over time for the Guild."; |
---|
| 749 | close; |
---|
| 750 | } |
---|
| 751 | } |
---|
| 752 | } |
---|
| 753 | |
---|
| 754 | |
---|
| 755 | // Guardian Spawner Template |
---|
| 756 | //============================================================ |
---|
| 757 | - script Gld_Guard_Template::Gld_Guard_Template -1,{ |
---|
| 758 | // Spawn Guardians in castles |
---|
| 759 | // When adding new castles, ensure that the coordinates coincide |
---|
| 760 | // with the coordinates defined in the Guild Steward template. |
---|
| 761 | OnSpawnGuardians: |
---|
| 762 | // Define the types of guardians on a per castle basis. |
---|
| 763 | // 1 - Soldier Guardian; 2 - Archer Guardian; 3 - Knight Guardian |
---|
| 764 | // Define the x spawn point for each uardian. |
---|
| 765 | // [0] = 1st guardian's x spawn point. |
---|
| 766 | // Define the y spawn point for each uardian. |
---|
| 767 | // [0] = 1st guardian's y spawn point. |
---|
| 768 | // Aldebaran (Luina) Castles |
---|
| 769 | if (strnpcinfo(2) == "aldeg_cas01") { |
---|
| 770 | setarray .@guardiantype[0],1,2,2,2,2,3,3,3; |
---|
| 771 | setarray .@guardianposx[0],17,39,38,45,21,218,213,73; |
---|
| 772 | setarray .@guardianposy[0],218,208,196,228,194,24,24,70; |
---|
| 773 | } |
---|
| 774 | else if (strnpcinfo(2) == "aldeg_cas02") { |
---|
| 775 | setarray .@guardiantype[0],3,3,3,1,1,2,2,2; |
---|
| 776 | setarray .@guardianposx[0],27,88,117,60,51,21,36,210; |
---|
| 777 | setarray .@guardianposy[0],184,43,46,202,183,177,183,7; |
---|
| 778 | } |
---|
| 779 | else if (strnpcinfo(2) == "aldeg_cas03") { |
---|
| 780 | setarray .@guardiantype[0],3,3,1,1,1,2,2,2; |
---|
| 781 | setarray .@guardianposx[0],90,116,86,116,64,212,195,110; |
---|
| 782 | setarray .@guardianposy[0],112,112,120,76,103,160,151,217; |
---|
| 783 | } |
---|
| 784 | else if (strnpcinfo(2) == "aldeg_cas04") { |
---|
| 785 | setarray .@guardiantype[0],2,2,2,1,1,1,3,3; |
---|
| 786 | setarray .@guardianposx[0],187,192,148,145,169,198,48,55; |
---|
| 787 | setarray .@guardianposy[0],100,42,88,209,53,77,72,88; |
---|
| 788 | } |
---|
| 789 | else if (strnpcinfo(2) == "aldeg_cas05") { |
---|
| 790 | setarray .@guardiantype[0],2,2,1,1,3,3,3,3; |
---|
| 791 | setarray .@guardianposx[0],51,188,157,157,27,145,156,41; |
---|
| 792 | setarray .@guardianposy[0],202,79,192,74,221,78,73,112; |
---|
| 793 | } |
---|
| 794 | // Geffen (Britoniah) Castles |
---|
| 795 | else if (strnpcinfo(2) == "gefg_cas01") { |
---|
| 796 | setarray .@guardiantype[0],1,1,1,2,2,3,3,3; |
---|
| 797 | setarray .@guardianposx[0],67,184,62,36,50,50,189,200; |
---|
| 798 | setarray .@guardianposy[0],179,20,41,186,186,67,41,167; |
---|
| 799 | } |
---|
| 800 | else if (strnpcinfo(2) == "gefg_cas02") { |
---|
| 801 | setarray .@guardiantype[0],1,1,1,2,2,3,3,3; |
---|
| 802 | setarray .@guardianposx[0],64,56,166,35,20,19,166,159; |
---|
| 803 | setarray .@guardianposy[0],168,41,25,148,150,41,42,188; |
---|
| 804 | } |
---|
| 805 | else if (strnpcinfo(2) == "gefg_cas03") { |
---|
| 806 | setarray .@guardiantype[0],2,2,1,1,1,3,3,3; |
---|
| 807 | setarray .@guardianposx[0],48,113,48,157,243,157,234,238; |
---|
| 808 | setarray .@guardianposy[0],176,214,207,62,41,45,25,160; |
---|
| 809 | } |
---|
| 810 | else if (strnpcinfo(2) == "gefg_cas04") { |
---|
| 811 | setarray .@guardiantype[0],2,2,1,1,1,3,3,3; |
---|
| 812 | setarray .@guardianposx[0],53,31,49,29,147,57,160,148; |
---|
| 813 | setarray .@guardianposy[0],191,178,220,46,65,46,50,189; |
---|
| 814 | } |
---|
| 815 | else if (strnpcinfo(2) == "gefg_cas05") { |
---|
| 816 | setarray .@guardiantype[0],2,2,1,1,1,3,3,3; |
---|
| 817 | setarray .@guardianposx[0],45,71,72,66,177,66,177,193; |
---|
| 818 | setarray .@guardianposy[0],149,163,142,47,50,17,35,166; |
---|
| 819 | } |
---|
| 820 | // Payon (Baulder) Castles |
---|
| 821 | else if (strnpcinfo(2) == "payg_cas01") { |
---|
| 822 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 823 | setarray .@guardianposx[0],229,225,222,99,65,36,51,138; |
---|
| 824 | setarray .@guardianposy[0],92,80,111,45,31,127,144,133; |
---|
| 825 | } |
---|
| 826 | else if (strnpcinfo(2) == "payg_cas02") { |
---|
| 827 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 828 | setarray .@guardianposx[0],237,228,210,57,42,287,264,27; |
---|
| 829 | setarray .@guardianposy[0],54,72,41,241,241,257,272,20; |
---|
| 830 | } |
---|
| 831 | else if (strnpcinfo(2) == "payg_cas03") { |
---|
| 832 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 833 | setarray .@guardianposx[0],245,269,36,41,39,19,37,268; |
---|
| 834 | setarray .@guardianposy[0],37,51,39,39,65,276,277,244; |
---|
| 835 | } |
---|
| 836 | else if (strnpcinfo(2) == "payg_cas04") { |
---|
| 837 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 838 | setarray .@guardianposx[0],251,232,231,32,32,35,36,270; |
---|
| 839 | setarray .@guardianposy[0],212,212,175,287,232,45,17,41; |
---|
| 840 | } |
---|
| 841 | else if (strnpcinfo(2) == "payg_cas05") { |
---|
| 842 | setarray .@guardiantype[0],2,2,2,2,2,2,2,3; |
---|
| 843 | setarray .@guardianposx[0],19,33,266,266,263,263,250,36; |
---|
| 844 | setarray .@guardianposy[0],279,260,234,279,37,21,22,36; |
---|
| 845 | } |
---|
| 846 | // Prontera (Valkyrie Realms) Castles |
---|
| 847 | else if (strnpcinfo(2) == "prtg_cas01") { |
---|
| 848 | setarray .@guardiantype[0],1,1,1,2,2,3,3,3; |
---|
| 849 | setarray .@guardianposx[0],182,182,153,59,50,184,196,107; |
---|
| 850 | setarray .@guardianposy[0],62,116,86,28,36,183,189,179; |
---|
| 851 | } |
---|
| 852 | else if (strnpcinfo(2) == "prtg_cas02") { |
---|
| 853 | setarray .@guardiantype[0],3,3,3,1,1,2,2,2; |
---|
| 854 | setarray .@guardianposx[0],161,153,178,71,49,64,7,75; |
---|
| 855 | setarray .@guardianposy[0],161,161,44,75,28,186,196,175; |
---|
| 856 | } |
---|
| 857 | else if (strnpcinfo(2) == "prtg_cas03") { |
---|
| 858 | setarray .@guardiantype[0],3,3,3,1,1,2,2,2; |
---|
| 859 | setarray .@guardianposx[0],191,137,45,50,41,191,179,191; |
---|
| 860 | setarray .@guardianposy[0],190,190,99,87,87,42,43,72; |
---|
| 861 | } |
---|
| 862 | else if (strnpcinfo(2) == "prtg_cas04") { |
---|
| 863 | setarray .@guardiantype[0],3,3,3,1,1,1,2,2; |
---|
| 864 | setarray .@guardianposx[0],276,274,246,38,29,33,78,36; |
---|
| 865 | setarray .@guardianposy[0],14,35,246,240,240,258,48,61; |
---|
| 866 | } |
---|
| 867 | else if (strnpcinfo(2) == "prtg_cas05") { |
---|
| 868 | setarray .@guardiantype[0],3,3,3,1,1,1,2,2; |
---|
| 869 | setarray .@guardianposx[0],266,287,245,236,251,278,32,44; |
---|
| 870 | setarray .@guardianposy[0],262,280,250,63,63,253,253,248; |
---|
| 871 | } |
---|
| 872 | // Add custom Guild Castles here. |
---|
| 873 | else { |
---|
| 874 | end; |
---|
| 875 | } |
---|
| 876 | |
---|
| 877 | // Kill all existing guardians before spawning new ones. |
---|
| 878 | // This should prevent duplicating Guardians when char Server disconnects. |
---|
| 879 | killmonster strnpcinfo(2),strnpcinfo(0)+"::OnGuardianDied"; |
---|
| 880 | |
---|
| 881 | for( set .@i, 0; .@i <= 7 ; set .@i, .@i+1 ) { |
---|
| 882 | set .@UseGID,.@i + 10; |
---|
| 883 | if (.@guardiantype[.@i] == 1) { set .@type,1287; } |
---|
| 884 | else if (.@guardiantype[.@i] == 2) { set .@type,1285; } |
---|
| 885 | else { set .@type,1286; } |
---|
| 886 | if (GetCastleData(strnpcinfo(2),.@UseGID)) { |
---|
| 887 | guardian strnpcinfo(2),.@guardianposx[.@i],.@guardianposy[.@i],strmobinfo(2,.@type),.@type,"Guardian#"+strnpcinfo(2)+"::OnGuardianDied",.@i; |
---|
| 888 | } |
---|
| 889 | } |
---|
| 890 | end; |
---|
| 891 | |
---|
| 892 | OnGuardianDied: |
---|
| 893 | end; |
---|
| 894 | } |
---|
| 895 | |
---|
| 896 | // Kafra Template |
---|
| 897 | //============================================================ |
---|
| 898 | - script Gld_Kafra_Template::Gld_Kafra_Template -1,{ |
---|
| 899 | // Store the Guild ID of castle occupant. |
---|
| 900 | set .@GID, GetCastleData(strnpcinfo(2),1); |
---|
| 901 | |
---|
| 902 | if (compare(strnpcinfo(2),"aldeg")) { |
---|
| 903 | setarray .@destination$[0],"Al De Baran","aldebaran"; |
---|
| 904 | setarray .@coordinates[0],132,103; |
---|
| 905 | } |
---|
| 906 | else if (compare(strnpcinfo(2),"gefg")) { |
---|
| 907 | setarray .@destination$[0],"Geffen","geffen"; |
---|
| 908 | setarray .@coordinates[0],120,39; |
---|
| 909 | } |
---|
| 910 | else if (compare(strnpcinfo(2),"payg")) { |
---|
| 911 | setarray .@destination$[0],"Payon","payon"; |
---|
| 912 | setarray .@coordinates[0],70,100; |
---|
| 913 | } |
---|
| 914 | else if (compare(strnpcinfo(2),"prtg")) { |
---|
| 915 | setarray .@destination$[0],"Prontera","prontera"; |
---|
| 916 | setarray .@coordinates[0],116,72; |
---|
| 917 | } |
---|
| 918 | // Add custom Guild Castles here. |
---|
| 919 | else { |
---|
| 920 | end; |
---|
| 921 | } |
---|
| 922 | |
---|
| 923 | cutin "kafra_01",2; |
---|
| 924 | if (getcharid(2) == .@GID) { |
---|
| 925 | mes "[Kafra staff]"; |
---|
| 926 | mes "Welcome. ^ff0000" + getguildname(.@GID) + "^000000 Member."; |
---|
| 927 | mes "The Kafra Coporation will stay with you wherever you go."; |
---|
| 928 | next; |
---|
| 929 | switch(select("Use Storage:Use Guild Storage:Use Warp Service:Rent a Cart:Cancel")) { |
---|
| 930 | case 1: |
---|
| 931 | if (basicskillcheck() && getskilllv("NV_BASIC") < 6) { |
---|
| 932 | mes "[Kafra staff]"; |
---|
| 933 | mes "I am sorry but you have to be at least Novice skill level 6 if you want to use the storage."; |
---|
| 934 | } |
---|
| 935 | else { |
---|
| 936 | callfunc("F_CheckKafCode"); //check your storage password, if set |
---|
| 937 | openstorage; |
---|
| 938 | } |
---|
| 939 | break; |
---|
| 940 | case 2: |
---|
| 941 | // Unofficial, but since it's already been in eA for ages |
---|
| 942 | // and used, I can't exactly remove it, now, can I? >:( |
---|
| 943 | if(guildopenstorage(0) == 1){ |
---|
| 944 | mes "[Kafra Employee]"; |
---|
| 945 | mes "I'm sorry but another guild member is using the guild storage"; |
---|
| 946 | mes "right now. Please wait until that person is finished."; |
---|
| 947 | close2; |
---|
| 948 | cutin "", 255; |
---|
| 949 | end; |
---|
| 950 | } |
---|
| 951 | cutin "", 255; |
---|
| 952 | close; |
---|
| 953 | case 3: |
---|
| 954 | mes "[Kafra staff]"; |
---|
| 955 | mes "Please let me know your destination."; |
---|
| 956 | next; |
---|
| 957 | switch(select(.@destination$ + " ^880000200 ^000000z:Cancel")) { |
---|
| 958 | case 1: |
---|
| 959 | if (Zeny < 200) { |
---|
| 960 | mes "[Kafra staff]"; |
---|
| 961 | mes "You don't have enough money. Please check again."; |
---|
| 962 | } |
---|
| 963 | else { |
---|
| 964 | set zeny,zeny-200; |
---|
| 965 | set kf_10_pit,kf_10_pit+2; |
---|
| 966 | cutin "kafra_01",255; |
---|
| 967 | warp .@destination$[1],.@coordinates[0],.@coordinates[1]; |
---|
| 968 | end; |
---|
| 969 | } |
---|
| 970 | break; |
---|
| 971 | case 2: |
---|
| 972 | break; |
---|
| 973 | } |
---|
| 974 | break; |
---|
| 975 | case 4: |
---|
| 976 | if(baseClass != Job_Merchant){ |
---|
| 977 | mes "[Kafra staff]"; |
---|
| 978 | mes "I am sorry. The Cart Service is only provided for the Merchant and Blacksmith class."; |
---|
| 979 | } |
---|
| 980 | else if(checkcart() == 1){ |
---|
| 981 | mes "[Kafra staff]"; |
---|
| 982 | mes "You have a cart equipped already."; |
---|
| 983 | } |
---|
| 984 | else { |
---|
| 985 | mes "[Kafra staff]" ; |
---|
| 986 | mes "The cart fee is 800 zeny. Do you want to rent a cart?"; |
---|
| 987 | next; |
---|
| 988 | switch(select("Yes.:Cancel.")) { |
---|
| 989 | case 1: |
---|
| 990 | if (Zeny < 800) { |
---|
| 991 | mes "[Kafra staff]"; |
---|
| 992 | mes "You don't have enough Money. You need 800 Zeny to rent a cart."; |
---|
| 993 | } |
---|
| 994 | else { |
---|
| 995 | close2; |
---|
| 996 | cutin "kafra_01",255; |
---|
| 997 | set kf_10_pit,kf_10_pit+8; |
---|
| 998 | set zeny,zeny-800; |
---|
| 999 | setcart; |
---|
| 1000 | end; |
---|
| 1001 | } |
---|
| 1002 | break; |
---|
| 1003 | case 2: |
---|
| 1004 | break; |
---|
| 1005 | } |
---|
| 1006 | } |
---|
| 1007 | break; |
---|
| 1008 | case 5: |
---|
| 1009 | mes "[Kafra staff]"; |
---|
| 1010 | mes "The Kafra corp. always tries to give the best service."; |
---|
| 1011 | mes "Thank you for using Kafra corp. Please come again."; |
---|
| 1012 | } |
---|
| 1013 | } |
---|
| 1014 | else { |
---|
| 1015 | mes "[Kafra staff]"; |
---|
| 1016 | mes "I am instructed to service only for the ^ff0000" + getguildname(.@GID) + "^000000 Guild. Please try another Kafra staff member around here. Sorry for the inconvenience."; |
---|
| 1017 | } |
---|
| 1018 | close2; |
---|
| 1019 | cutin "kafra_01",255; |
---|
| 1020 | end; |
---|
| 1021 | } |
---|
| 1022 | |
---|
| 1023 | // Guild Dungeon Switch Template |
---|
| 1024 | //============================================================ |
---|
| 1025 | - script Gld_Dun_Template::Gld_Dun_Template -1,{ |
---|
| 1026 | // Store the Guild ID of castle occupant. |
---|
| 1027 | set .@GID, GetCastleData(strnpcinfo(2),1); |
---|
| 1028 | |
---|
| 1029 | // Pick what Dungeon I should warp too, and where in that dungeon. |
---|
| 1030 | if (compare(strnpcinfo(2),"aldeg")) { |
---|
| 1031 | set .@destination$,"gld_dun02"; |
---|
| 1032 | if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],32,122; |
---|
| 1033 | else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],79,32; |
---|
| 1034 | else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],165,38; |
---|
| 1035 | else if (compare(strnpcinfo(2),"cas04")) setarray .@coordinates[0],160,148; |
---|
| 1036 | else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],103,169; |
---|
| 1037 | } |
---|
| 1038 | else if (compare(strnpcinfo(2),"gefg")) { |
---|
| 1039 | set .@destination$,"gld_dun04"; |
---|
| 1040 | if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],39,258; |
---|
| 1041 | else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],125,270; |
---|
| 1042 | else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],268,251; |
---|
| 1043 | else if (compare(strnpcinfo(2),"cas04")) setarray .@coordinates[0],268,108; |
---|
| 1044 | else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],230,35; |
---|
| 1045 | } |
---|
| 1046 | else if (compare(strnpcinfo(2),"payg")) { |
---|
| 1047 | set .@destination$,"gld_dun01"; |
---|
| 1048 | if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],186,165; |
---|
| 1049 | else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],54,165; |
---|
| 1050 | else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],54,39; |
---|
| 1051 | else if (compare(strnpcinfo(2),"cas04")) setarray .@coordinates[0],186,39; |
---|
| 1052 | else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],223,202; |
---|
| 1053 | } |
---|
| 1054 | else if (compare(strnpcinfo(2),"prtg")) { |
---|
| 1055 | set .@destination$,"gld_dun03"; |
---|
| 1056 | if (compare(strnpcinfo(2),"cas01")) setarray .@coordinates[0],28,251; |
---|
| 1057 | else if (compare(strnpcinfo(2),"cas02")) setarray .@coordinates[0],164,268; |
---|
| 1058 | else if (compare(strnpcinfo(2),"cas03")) setarray .@coordinates[0],164,179; |
---|
| 1059 | else if (compare(strnpcinfo(2),"cas04")) setarray .@coordinates[0],268,203; |
---|
| 1060 | else if (compare(strnpcinfo(2),"cas05")) setarray .@coordinates[0],199,28; |
---|
| 1061 | } |
---|
| 1062 | // Add custom Guild Castles here. |
---|
| 1063 | else { |
---|
| 1064 | end; |
---|
| 1065 | } |
---|
| 1066 | |
---|
| 1067 | if (.@GID == 0) { |
---|
| 1068 | mes "[ Echoing Voice ]"; |
---|
| 1069 | mes " ' The one who can overcome an ordeal and show true bravery... will find the way... ' "; |
---|
| 1070 | close; |
---|
| 1071 | } |
---|
| 1072 | else { |
---|
| 1073 | mes "[ Echoing Voice ]"; |
---|
| 1074 | mes " ' Only the one who can show true bravery can take this test. '"; |
---|
| 1075 | next; |
---|
| 1076 | mes " "; |
---|
| 1077 | mes "There's a small lever. Will you pull it?"; |
---|
| 1078 | next; |
---|
| 1079 | switch(select("Pull.:Do not.")) { |
---|
| 1080 | case 1: |
---|
| 1081 | if ((getcharid(2) == .@GID)) { |
---|
| 1082 | warp .@destination$,.@coordinates[0],.@coordinates[1]; |
---|
| 1083 | end; |
---|
| 1084 | } |
---|
| 1085 | else { |
---|
| 1086 | mes " "; |
---|
| 1087 | mes " Nothing happened."; |
---|
| 1088 | close; |
---|
| 1089 | } |
---|
| 1090 | case 2: |
---|
| 1091 | close; |
---|
| 1092 | } |
---|
| 1093 | } |
---|
| 1094 | } |
---|
| 1095 | |
---|
| 1096 | // Treasure Room Protection Template |
---|
| 1097 | //============================================================ |
---|
| 1098 | - script Gld_Trea_Protect::Gld_Trea_Protect -1,{ |
---|
| 1099 | //OnTouch2: |
---|
| 1100 | OnTouch: |
---|
| 1101 | // Store the Guild ID of castle occupant. |
---|
| 1102 | set .@GID, GetCastleData(strnpcinfo(2),1); |
---|
| 1103 | |
---|
| 1104 | if (strcharinfo(0) != getguildmaster(.@GID)) { |
---|
| 1105 | if (compare(strnpcinfo(2),"aldeg")) { |
---|
| 1106 | warp "aldebaran",132,103; |
---|
| 1107 | } |
---|
| 1108 | else if (compare(strnpcinfo(2),"gefg")) { |
---|
| 1109 | warp "geffen",120,39; |
---|
| 1110 | } |
---|
| 1111 | else if (compare(strnpcinfo(2),"payg")) { |
---|
| 1112 | warp "payon",70,100; |
---|
| 1113 | } |
---|
| 1114 | else if (compare(strnpcinfo(2),"prtg")) { |
---|
| 1115 | warp "prontera",116,72; |
---|
| 1116 | } |
---|
| 1117 | // Add custom Guild Castles here. |
---|
| 1118 | else { |
---|
| 1119 | end; |
---|
| 1120 | } |
---|
| 1121 | } |
---|
| 1122 | end; |
---|
| 1123 | } |
---|
| 1124 | |
---|
| 1125 | // Treasure Room Spawn Template |
---|
| 1126 | //============================================================ |
---|
| 1127 | - script Gld_Trea_Spawn::Gld_Trea_Spawn -1,{ |
---|
| 1128 | end; |
---|
| 1129 | |
---|
| 1130 | OnClock0001: |
---|
| 1131 | // Do nothing if this script is the template. |
---|
| 1132 | if (strnpcinfo(1) == "Gld_Trea_Spawn") end; |
---|
| 1133 | |
---|
| 1134 | // If there is no owner, do nothing. |
---|
| 1135 | if (!GetCastleData(strnpcinfo(2),1)) end; |
---|
| 1136 | |
---|
| 1137 | // Is there Economy in this castle? |
---|
| 1138 | set .@Treasure,GetCastleData(strnpcinfo(2),2)/5+4; |
---|
| 1139 | |
---|
| 1140 | // Set information |
---|
| 1141 | if (strnpcinfo(2) == "aldeg_cas01") { |
---|
| 1142 | set .@treasurebox,1324; |
---|
| 1143 | setarray .@treasurex[0],115,122,115,122,116,117,118,119,120,121,121,121,121,121,121,120,119,118,117,116,116,116,116,116; |
---|
| 1144 | setarray .@treasurey[0],226,226,219,219,225,225,225,225,225,225,224,223,222,221,220,220,220,220,220,220,221,222,223,224; |
---|
| 1145 | } |
---|
| 1146 | else if (strnpcinfo(2) == "aldeg_cas02") { |
---|
| 1147 | set .@treasurebox,1326; |
---|
| 1148 | setarray .@treasurex[0],134,135,135,134,132,133,134,135,136,137,137,137,137,137,137,136,135,134,133,132,132,132,132,132; |
---|
| 1149 | setarray .@treasurey[0],231,231,230,230,233,233,233,233,233,233,232,231,230,229,228,228,228,228,228,228,229,230,231,232; |
---|
| 1150 | } |
---|
| 1151 | else if (strnpcinfo(2) == "aldeg_cas03") { |
---|
| 1152 | set .@treasurebox,1328; |
---|
| 1153 | setarray .@treasurex[0],224,225,225,224,222,223,224,225,226,227,227,227,227,227,227,226,225,224,223,222,222,222,222,222; |
---|
| 1154 | setarray .@treasurey[0],269,269,268,268,271,271,271,271,271,271,270,269,268,267,266,266,266,266,266,266,267,268,269,270; |
---|
| 1155 | } |
---|
| 1156 | else if (strnpcinfo(2) == "aldeg_cas04") { |
---|
| 1157 | set .@treasurebox,1330; |
---|
| 1158 | setarray .@treasurex[0],84,85,85,84,82,83,84,85,86,87,87,87,87,87,87,86,85,84,83,82,82,82,82,82; |
---|
| 1159 | setarray .@treasurey[0],13,13,12,12,15,15,15,15,15,15,14,13,12,11,10,10,10,10,10,10,11,12,13,14; |
---|
| 1160 | } |
---|
| 1161 | else if (strnpcinfo(2) == "aldeg_cas05") { |
---|
| 1162 | set .@treasurebox,1332; |
---|
| 1163 | setarray .@treasurex[0],61,62,62,61,59,60,61,62,63,64,64,64,64,64,64,63,62,61,60,59,59,59,59,59; |
---|
| 1164 | setarray .@treasurey[0],12,12,11,11,14,14,14,14,14,14,13,12,11,10,9,9,9,9,9,9,10,11,12,13; |
---|
| 1165 | } |
---|
| 1166 | else if (strnpcinfo(2) == "gefg_cas01") { |
---|
| 1167 | set .@treasurebox,1334; |
---|
| 1168 | setarray .@treasurex[0],153,154,154,153,151,152,153,154,155,156,156,156,156,156,156,155,154,153,152,151,151,151,151,151; |
---|
| 1169 | setarray .@treasurey[0],113,113,112,112,115,115,115,115,115,115,114,113,112,111,110,110,110,110,110,110,111,112,113,114; |
---|
| 1170 | } |
---|
| 1171 | else if (strnpcinfo(2) == "gefg_cas02") { |
---|
| 1172 | set .@treasurebox,1336; |
---|
| 1173 | setarray .@treasurex[0],139,140,140,139,137,138,139,140,141,142,142,142,142,142,142,141,140,139,138,137,137,137,137,137; |
---|
| 1174 | setarray .@treasurey[0],115,115,114,114,117,117,117,117,117,117,116,115,114,113,112,112,112,112,112,112,113,114,115,116; |
---|
| 1175 | } |
---|
| 1176 | else if (strnpcinfo(2) == "gefg_cas03") { |
---|
| 1177 | set .@treasurebox,1338; |
---|
| 1178 | setarray .@treasurex[0],269,270,270,269,267,268,269,270,271,272,272,272,272,272,272,271,270,269,268,267,267,267,267,267; |
---|
| 1179 | setarray .@treasurey[0],291,291,290,290,293,293,293,293,293,293,292,291,290,289,288,288,288,288,288,288,289,290,291,292; |
---|
| 1180 | } |
---|
| 1181 | else if (strnpcinfo(2) == "gefg_cas04") { |
---|
| 1182 | set .@treasurebox,1340; |
---|
| 1183 | setarray .@treasurex[0],115,116,116,115,113,114,115,116,117,118,118,118,118,118,118,117,116,115,114,113,113,113,113,113; |
---|
| 1184 | setarray .@treasurey[0],119,119,118,118,121,121,121,121,121,121,120,119,118,117,116,116,116,116,116,116,117,118,119,120; |
---|
| 1185 | } |
---|
| 1186 | else if (strnpcinfo(2) == "gefg_cas05") { |
---|
| 1187 | set .@treasurebox,1342; |
---|
| 1188 | setarray .@treasurex[0],143,144,144,143,141,142,143,144,145,146,146,146,146,146,146,145,144,143,142,141,141,141,141,141; |
---|
| 1189 | setarray .@treasurey[0],110,110,109,109,112,112,112,112,112,112,111,110,109,108,107,107,107,107,107,107,108,109,110,111; |
---|
| 1190 | } |
---|
| 1191 | else if (strnpcinfo(2) == "payg_cas01") { |
---|
| 1192 | set .@treasurebox,1344; |
---|
| 1193 | setarray .@treasurex[0],289,292,292,289,288,289,290,291,292,293,293,293,293,293,293,292,291,290,289,288,288,288,288,288; |
---|
| 1194 | setarray .@treasurey[0],10,10,7,7,11,11,11,11,11,11,10,9,8,7,6,6,6,6,6,6,7,8,9,10; |
---|
| 1195 | } |
---|
| 1196 | else if (strnpcinfo(2) == "payg_cas02") { |
---|
| 1197 | set .@treasurebox,1346; |
---|
| 1198 | setarray .@treasurex[0],143,146,146,143,142,143,144,145,146,147,147,147,147,147,147,146,145,144,143,142,142,142,142,142; |
---|
| 1199 | setarray .@treasurey[0],146,146,143,143,147,147,147,147,147,147,146,145,144,143,142,142,142,142,142,142,143,144,145,146; |
---|
| 1200 | } |
---|
| 1201 | else if (strnpcinfo(2) == "payg_cas03") { |
---|
| 1202 | set .@treasurebox,1348; |
---|
| 1203 | setarray .@treasurex[0],158,159,159,158,156,157,158,159,160,161,161,161,161,161,161,160,159,158,157,156,156,156,156,156; |
---|
| 1204 | setarray .@treasurey[0],169,169,168,168,171,171,171,171,171,171,170,169,168,167,166,166,166,166,166,166,167,168,169,170; |
---|
| 1205 | } |
---|
| 1206 | else if (strnpcinfo(2) == "payg_cas04") { |
---|
| 1207 | set .@treasurebox,1350; |
---|
| 1208 | setarray .@treasurex[0],146,147,147,146,144,145,146,147,148,149,149,149,149,149,149,148,147,146,145,144,144,144,144,144; |
---|
| 1209 | setarray .@treasurey[0],48,48,47,47,50,50,50,50,50,50,49,48,47,46,45,45,45,45,45,45,46,47,48,49; |
---|
| 1210 | } |
---|
| 1211 | else if (strnpcinfo(2) == "payg_cas05") { |
---|
| 1212 | set .@treasurebox,1352; |
---|
| 1213 | setarray .@treasurex[0],155,158,158,155,154,155,156,157,158,159,159,159,159,159,159,158,157,156,155,154,154,154,154,154; |
---|
| 1214 | setarray .@treasurey[0],134,134,131,131,135,135,135,135,135,135,134,133,132,131,130,130,130,130,130,130,131,132,133,134; |
---|
| 1215 | } |
---|
| 1216 | else if (strnpcinfo(2) == "prtg_cas01") { |
---|
| 1217 | set .@treasurebox,1354; |
---|
| 1218 | setarray .@treasurex[0],10,11,11,10,8,9,10,11,12,13,13,13,13,13,13,12,11,10,9,8,8,8,8,8; |
---|
| 1219 | setarray .@treasurey[0],209,209,208,208,211,211,211,211,211,211,210,209,208,207,206,206,206,206,206,206,207,208,209,210; |
---|
| 1220 | } |
---|
| 1221 | else if (strnpcinfo(2) == "prtg_cas02") { |
---|
| 1222 | set .@treasurebox,1356; |
---|
| 1223 | setarray .@treasurex[0],201,202,202,201,199,200,201,202,203,204,204,204,204,204,204,203,202,201,200,199,199,199,199,199; |
---|
| 1224 | setarray .@treasurey[0],228,228,227,227,230,230,230,230,230,230,229,228,227,226,225,225,225,225,225,225,226,227,228,229; |
---|
| 1225 | } |
---|
| 1226 | else if (strnpcinfo(2) == "prtg_cas03") { |
---|
| 1227 | set .@treasurebox,1358; |
---|
| 1228 | setarray .@treasurex[0],187,188,188,187,185,186,187,188,189,190,190,190,190,190,190,189,188,187,186,185,185,185,185,185; |
---|
| 1229 | setarray .@treasurey[0],132,132,131,131,134,134,134,134,134,134,133,132,131,130,129,129,129,129,129,129,130,131,132,133; |
---|
| 1230 | } |
---|
| 1231 | else if (strnpcinfo(2) == "prtg_cas04") { |
---|
| 1232 | set .@treasurebox,1360; |
---|
| 1233 | setarray .@treasurex[0],269,270,270,269,267,268,269,270,271,272,272,272,272,272,272,271,270,269,268,267,267,267,267,267; |
---|
| 1234 | setarray .@treasurey[0],162,162,161,161,164,164,164,164,164,164,163,162,161,160,159,159,159,159,159,159,160,161,162,163; |
---|
| 1235 | } |
---|
| 1236 | else if (strnpcinfo(2) == "prtg_cas05") { |
---|
| 1237 | set .@treasurebox,1362; |
---|
| 1238 | setarray .@treasurex[0],275,276,276,275,273,274,275,276,277,278,278,278,278,278,278,277,276,275,274,273,273,273,273,273; |
---|
| 1239 | setarray .@treasurey[0],178,178,177,177,180,180,180,180,180,180,179,178,177,176,175,175,175,175,175,175,176,177,178,179; |
---|
| 1240 | } |
---|
| 1241 | // Add custom Guild Castles here. |
---|
| 1242 | else { |
---|
| 1243 | end; |
---|
| 1244 | } |
---|
| 1245 | |
---|
| 1246 | // Reset daily investment limit. |
---|
| 1247 | setcastledata strnpcinfo(2),4,0; |
---|
| 1248 | setcastledata strnpcinfo(2),5,0; |
---|
| 1249 | |
---|
| 1250 | // Spawn boxes in proper order. |
---|
| 1251 | for (set .@i,0; .@i <= .@Treasure ; set .@i,.@i+1) { |
---|
| 1252 | // set treasure box ID |
---|
| 1253 | set .@boxid, .@treasurebox + (.@i+2) % 2; |
---|
| 1254 | set .@box,1 << .@i; |
---|
| 1255 | // Spawn or do not spawn chests if one already exists. |
---|
| 1256 | if ((getd("$@"+strnpcinfo(2)+"_treasure") & .@box) == 0) { |
---|
| 1257 | monster strnpcinfo(2),.@treasurex[.@i],.@treasurey[.@i],"Treasure Chest",.@boxid,1,"Treasure#"+strnpcinfo(2)+"::OnTreasureDied"+.@i; |
---|
| 1258 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") | .@box; |
---|
| 1259 | } |
---|
| 1260 | } |
---|
| 1261 | end; |
---|
| 1262 | |
---|
| 1263 | // Individual "You killed a chest" events to ensure proper spawning at the change of day. |
---|
| 1264 | OnTreasureDied0: |
---|
| 1265 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~1; |
---|
| 1266 | end; |
---|
| 1267 | OnTreasureDied1: |
---|
| 1268 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~2; |
---|
| 1269 | end; |
---|
| 1270 | OnTreasureDied2: |
---|
| 1271 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~4; |
---|
| 1272 | end; |
---|
| 1273 | OnTreasureDied3: |
---|
| 1274 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~8; |
---|
| 1275 | end; |
---|
| 1276 | OnTreasureDied4: |
---|
| 1277 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~16; |
---|
| 1278 | end; |
---|
| 1279 | OnTreasureDied5: |
---|
| 1280 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~32; |
---|
| 1281 | end; |
---|
| 1282 | OnTreasureDied6: |
---|
| 1283 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~64; |
---|
| 1284 | end; |
---|
| 1285 | OnTreasureDied7: |
---|
| 1286 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~128; |
---|
| 1287 | end; |
---|
| 1288 | OnTreasureDied8: |
---|
| 1289 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~256; |
---|
| 1290 | end; |
---|
| 1291 | OnTreasureDied9: |
---|
| 1292 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~512; |
---|
| 1293 | end; |
---|
| 1294 | OnTreasureDied10: |
---|
| 1295 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~1024; |
---|
| 1296 | end; |
---|
| 1297 | OnTreasureDied11: |
---|
| 1298 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~2048; |
---|
| 1299 | end; |
---|
| 1300 | OnTreasureDied12: |
---|
| 1301 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~4096; |
---|
| 1302 | end; |
---|
| 1303 | OnTreasureDied13: |
---|
| 1304 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~8192; |
---|
| 1305 | end; |
---|
| 1306 | OnTreasureDied14: |
---|
| 1307 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~16384; |
---|
| 1308 | end; |
---|
| 1309 | OnTreasureDied15: |
---|
| 1310 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~32768; |
---|
| 1311 | end; |
---|
| 1312 | OnTreasureDied16: |
---|
| 1313 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~65536; |
---|
| 1314 | end; |
---|
| 1315 | OnTreasureDied17: |
---|
| 1316 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~131072; |
---|
| 1317 | end; |
---|
| 1318 | OnTreasureDied18: |
---|
| 1319 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~262144; |
---|
| 1320 | end; |
---|
| 1321 | OnTreasureDied19: |
---|
| 1322 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~524288; |
---|
| 1323 | end; |
---|
| 1324 | OnTreasureDied20: |
---|
| 1325 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~1048576; |
---|
| 1326 | end; |
---|
| 1327 | OnTreasureDied21: |
---|
| 1328 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~2097152; |
---|
| 1329 | end; |
---|
| 1330 | OnTreasureDied22: |
---|
| 1331 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~4194304; |
---|
| 1332 | end; |
---|
| 1333 | OnTreasureDied23: |
---|
| 1334 | setd "$@"+strnpcinfo(2)+"_treasure",getd("$@"+strnpcinfo(2)+"_treasure") & ~8388608; |
---|
| 1335 | end; |
---|
| 1336 | } |
---|