Advertisement
hlmbugle

Untitled

Jul 29th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.07 KB | None | 0 0
  1. -----------------------------------
  2. -- Area: Al'Taieu
  3. -- NM: Jailer of Love
  4. -----------------------------------
  5.  
  6. require("scripts/globals/status");
  7. require("scripts/globals/magic");
  8.  
  9. -----------------------------------
  10. -- onMobSpawn Action
  11. -----------------------------------
  12.  
  13. function onMobSpawn(mob)
  14. --setmob SBS
  15. mob:setMod(MOD_REGEN, 500);
  16.  
  17. end;
  18.  
  19. -----------------------------------
  20. -- onMobEngaged
  21. -----------------------------------
  22.  
  23. function onMobEngaged(mob, target)
  24. mob:hideName(false);
  25. mob:untargetable(false);
  26. mob:AnimationSub(6);--SBS
  27. end;
  28.  
  29. -----------------------------------
  30. -- onMobFight Action
  31. -----------------------------------
  32.  
  33. function onMobFight(mob, target)
  34. -- Only 9 Qn'xzomit and 9 Qn'hpemde can be summoned. Ru'phuabo (Sharks) are unlimited.
  35. local XZOMITS = mob:getLocalVar("JoL_Qn_xzomit_Killed");
  36. local HPEMDES = mob:getLocalVar("JoL_Qn_hpemde_Killed");
  37.  
  38. -- Spell selection SBS
  39.  
  40. local lastSpell = mob:getLocalVar("last_spell");
  41.  
  42. if (os.time() - lastSpell > 35) then
  43. local SPELLSCAST = mob:getLocalVar("SPELLSCAST");
  44.  
  45. if (SPELLSCAST == 0) then
  46. local spellTimer = math.random(1,15)
  47. switch (spellTimer):caseof
  48. {
  49. [0] = function (x)
  50. mob:castSpell(157) --Aero IV
  51. mob:setMod(MOD_FIRE_ABSORB, 0);
  52. mob:setMod(MOD_EARTH_ABSORB, 0);
  53. mob:setMod(MOD_WIND_ABSORB, 100);
  54. mob:setMod(MOD_WATER_ABSORB, 0);
  55. mob:setMod(MOD_ICE_ABSORB, 0);
  56. mob:setMod(MOD_LTNG_ABSORB, 0);
  57. mob:setMod(MOD_DARK_ABSORB, 0);
  58. end,
  59. [1] = function (x)
  60. mob:castSpell(147) --Fire IV
  61. mob:setMod(MOD_FIRE_ABSORB, 100);
  62. mob:setMod(MOD_EARTH_ABSORB, 0);
  63. mob:setMod(MOD_WIND_ABSORB, 0);
  64. mob:setMod(MOD_WATER_ABSORB, 0);
  65. mob:setMod(MOD_ICE_ABSORB, 0);
  66. mob:setMod(MOD_LTNG_ABSORB, 0);
  67. mob:setMod(MOD_DARK_ABSORB, 0);
  68. end,
  69. [2] = function (x)
  70. mob:castSpell(152) --Blizzard 4
  71. mob:setMod(MOD_FIRE_ABSORB, 0);
  72. mob:setMod(MOD_EARTH_ABSORB, 0);
  73. mob:setMod(MOD_WIND_ABSORB, 0);
  74. mob:setMod(MOD_WATER_ABSORB, 0);
  75. mob:setMod(MOD_ICE_ABSORB, 100);
  76. mob:setMod(MOD_LTNG_ABSORB, 0);
  77. mob:setMod(MOD_DARK_ABSORB, 0);
  78. end,
  79. [3] = function (x)
  80. mob:castSpell(186) --Aeroga 3
  81. mob:setMod(MOD_FIRE_ABSORB, 0);
  82. mob:setMod(MOD_EARTH_ABSORB, 0);
  83. mob:setMod(MOD_WIND_ABSORB, 100);
  84. mob:setMod(MOD_WATER_ABSORB, 0);
  85. mob:setMod(MOD_ICE_ABSORB, 0);
  86. mob:setMod(MOD_LTNG_ABSORB, 0);
  87. mob:setMod(MOD_DARK_ABSORB, 0);
  88. end,
  89. [4] = function (x)
  90. mob:castSpell(176) --Firaga 3
  91. mob:setMod(MOD_FIRE_ABSORB, 100);
  92. mob:setMod(MOD_EARTH_ABSORB, 0);
  93. mob:setMod(MOD_WIND_ABSORB, 0);
  94. mob:setMod(MOD_WATER_ABSORB, 0);
  95. mob:setMod(MOD_ICE_ABSORB, 0);
  96. mob:setMod(MOD_LTNG_ABSORB, 0);
  97. mob:setMod(MOD_DARK_ABSORB, 0);
  98. end,
  99. [5] = function (x)
  100. mob:castSpell(181) --Blizzaga 3
  101. mob:setMod(MOD_FIRE_ABSORB, 0);
  102. mob:setMod(MOD_EARTH_ABSORB, 0);
  103. mob:setMod(MOD_WIND_ABSORB, 0);
  104. mob:setMod(MOD_WATER_ABSORB, 0);
  105. mob:setMod(MOD_ICE_ABSORB, 100);
  106. mob:setMod(MOD_LTNG_ABSORB, 0);
  107. mob:setMod(MOD_DARK_ABSORB, 0);
  108. end,
  109. [6] = function (x)
  110. mob:castSpell(167) --Thunder 4
  111. mob:setMod(MOD_FIRE_ABSORB, 0);
  112. mob:setMod(MOD_EARTH_ABSORB, 0);
  113. mob:setMod(MOD_WIND_ABSORB, 0);
  114. mob:setMod(MOD_WATER_ABSORB, 0);
  115. mob:setMod(MOD_ICE_ABSORB, 0);
  116. mob:setMod(MOD_LTNG_ABSORB, 100);
  117. mob:setMod(MOD_DARK_ABSORB, 0);
  118. end,
  119. [7] = function (x)
  120. mob:castSpell(196) --Thundaga 3
  121. mob:setMod(MOD_FIRE_ABSORB, 0);
  122. mob:setMod(MOD_EARTH_ABSORB, 0);
  123. mob:setMod(MOD_WIND_ABSORB, 0);
  124. mob:setMod(MOD_WATER_ABSORB, 0);
  125. mob:setMod(MOD_ICE_ABSORB, 0);
  126. mob:setMod(MOD_LTNG_ABSORB, 100);
  127. mob:setMod(MOD_DARK_ABSORB, 0);
  128. end,
  129. [8] = function (x)
  130. mob:castSpell(172) --Water 4
  131. mob:setMod(MOD_FIRE_ABSORB, 0);
  132. mob:setMod(MOD_EARTH_ABSORB, 0);
  133. mob:setMod(MOD_WIND_ABSORB, 0);
  134. mob:setMod(MOD_WATER_ABSORB, 100);
  135. mob:setMod(MOD_ICE_ABSORB, 0);
  136. mob:setMod(MOD_LTNG_ABSORB, 0);
  137. mob:setMod(MOD_DARK_ABSORB, 0);
  138. end,
  139. [9] = function (x)
  140. mob:castSpell(201) --Waterga 3
  141. mob:setMod(MOD_FIRE_ABSORB, 0);
  142. mob:setMod(MOD_EARTH_ABSORB, 0);
  143. mob:setMod(MOD_WIND_ABSORB, 0);
  144. mob:setMod(MOD_WATER_ABSORB, 100);
  145. mob:setMod(MOD_ICE_ABSORB, 0);
  146. mob:setMod(MOD_LTNG_ABSORB, 0);
  147. mob:setMod(MOD_DARK_ABSORB, 0);
  148. end,
  149. [10] = function(x)
  150. mob:castSpell(162) --Stone 4
  151. mob:setMod(MOD_FIRE_ABSORB, 0);
  152. mob:setMod(MOD_EARTH_ABSORB, 100);
  153. mob:setMod(MOD_WIND_ABSORB, 0);
  154. mob:setMod(MOD_WATER_ABSORB, 0);
  155. mob:setMod(MOD_ICE_ABSORB, 0);
  156. mob:setMod(MOD_LTNG_ABSORB, 0);
  157. mob:setMod(MOD_DARK_ABSORB, 0);
  158. end,
  159. [11] = function(x)
  160. mob:castSpell(191) --Stonega3
  161. mob:setMod(MOD_FIRE_ABSORB, 0);
  162. mob:setMod(MOD_EARTH_ABSORB, 100);
  163. mob:setMod(MOD_WIND_ABSORB, 0);
  164. mob:setMod(MOD_WATER_ABSORB, 0);
  165. mob:setMod(MOD_ICE_ABSORB, 0);
  166. mob:setMod(MOD_LTNG_ABSORB, 0);
  167. mob:setMod(MOD_DARK_ABSORB, 0);
  168. end,
  169. [12] = function(x)
  170. mob:castSpell(362) --Bindga 2
  171. mob:setMod(MOD_FIRE_ABSORB, 0);
  172. mob:setMod(MOD_EARTH_ABSORB, 0);
  173. mob:setMod(MOD_WIND_ABSORB, 0);
  174. mob:setMod(MOD_WATER_ABSORB, 0);
  175. mob:setMod(MOD_ICE_ABSORB, 100);
  176. mob:setMod(MOD_LTNG_ABSORB, 0);
  177. mob:setMod(MOD_DARK_ABSORB, 0);
  178. end,
  179. [13] = function(x)
  180. mob:castSpell(366) --Graviga
  181. mob:setMod(MOD_FIRE_ABSORB, 0);
  182. mob:setMod(MOD_EARTH_ABSORB, 0);
  183. mob:setMod(MOD_WIND_ABSORB, 100);
  184. mob:setMod(MOD_WATER_ABSORB, 0);
  185. mob:setMod(MOD_ICE_ABSORB, 0);
  186. mob:setMod(MOD_LTNG_ABSORB, 0);
  187. mob:setMod(MOD_DARK_ABSORB, 0);
  188. end,
  189. [14] = function(x)
  190. mob:castSpell(360) --Dispelga
  191. mob:setMod(MOD_FIRE_ABSORB, 0);
  192. mob:setMod(MOD_EARTH_ABSORB, 0);
  193. mob:setMod(MOD_WIND_ABSORB, 0);
  194. mob:setMod(MOD_WATER_ABSORB, 0);
  195. mob:setMod(MOD_ICE_ABSORB, 0);
  196. mob:setMod(MOD_LTNG_ABSORB, 0);
  197. mob:setMod(MOD_DARK_ABSORB, 100);
  198. end,
  199. [15] = function(x)
  200. mob:castSpell(274) --Sleepga 2
  201. mob:setMod(MOD_FIRE_ABSORB, 0);
  202. mob:setMod(MOD_EARTH_ABSORB, 0);
  203. mob:setMod(MOD_WIND_ABSORB, 0);
  204. mob:setMod(MOD_WATER_ABSORB, 0);
  205. mob:setMod(MOD_ICE_ABSORB, 0);
  206. mob:setMod(MOD_LTNG_ABSORB, 0);
  207. mob:setMod(MOD_DARK_ABSORB, 100);
  208. end
  209. }
  210.  
  211. mob:setLocalVar("last_spell", os.time());
  212. mob:setLocalVar("SPELLSCAST", 1);
  213.  
  214. elseif (SPELLSCAST >= 1) then
  215. mob:setLocalVar("SPELLSCAST", 0);
  216. end
  217. end
  218.  
  219. ---------------------------------------------------------------------
  220.  
  221. -- Increment these by 1 each time they are slain, in that mobs onMobDeath() script.
  222. if (mob:getLocalVar("JoL_Regen_Reduction") == 0) then
  223. if (mob:getLocalVar("JoL_Qn_xzomit_Killed") == 9
  224. and mob:getLocalVar("JoL_Qn_hpemde_Killed") == 9) then
  225. mob:setLocalVar("JoL_Regen_Reduction", 1);
  226. end
  227. end
  228.  
  229. -- SBS Fix Regen to post-pet spawn number
  230.  
  231. if (mob:getLocalVar("JoL_Regen_Reduction") == 1) then
  232. mob:setMod(MOD_REGEN, 100);
  233. end
  234.  
  235. ----------------------------------------------------------------------
  236.  
  237. local lastPop = mob:getLocalVar("pop_pets");
  238. if (os.time() - lastPop > 150) then
  239. local SPAWNS = mob:getLocalVar("SPAWNS");
  240. local phuabo1 = GetMobAction(16912849);
  241. local phuabo2 = GetMobAction(16912852);
  242. local phuabo3 = GetMobAction(16912855);
  243.  
  244. if (SPAWNS == 0) then -- Spawns first 3 xzomit
  245. SpawnMob(16912858, 300):updateEnmity(target);
  246. SpawnMob(16912859, 300):updateEnmity(target);
  247. SpawnMob(16912860, 300):updateEnmity(target);
  248. mob:setLocalVar("pop_pets", os.time());
  249. mob:setLocalVar("SPAWNS", 1);
  250. elseif (SPAWNS == 1) then -- spawns first 3 hpemde
  251. SpawnMob(16912867, 300):updateEnmity(target);
  252. SpawnMob(16912868, 300):updateEnmity(target);
  253. SpawnMob(16912869, 300):updateEnmity(target);
  254. mob:setLocalVar("pop_pets", os.time());
  255. mob:setLocalVar("SPAWNS", 2);
  256. mob:setLocalVar("JoL_Qn_xzomit_Killed", 3);--SBS
  257. elseif (SPAWNS == 2) then -- spawns first 3 phuabo
  258. SpawnMob(16912849, 300):updateEnmity(target);
  259. SpawnMob(16912850, 300):updateEnmity(target);
  260. SpawnMob(16912851, 300):updateEnmity(target);
  261. mob:setLocalVar("pop_pets", os.time());
  262. mob:setLocalVar("SPAWNS", 3);
  263. mob:setLocalVar("JoL_Qn_hpemde_Killed", 3);
  264. elseif (SPAWNS == 3) then -- Spawns second 3 xzomit
  265. SpawnMob(16912861, 300):updateEnmity(target);
  266. SpawnMob(16912862, 300):updateEnmity(target);
  267. SpawnMob(16912863, 300):updateEnmity(target);
  268. mob:setLocalVar("pop_pets", os.time());
  269. mob:setLocalVar("SPAWNS", 4);
  270. elseif (SPAWNS == 4) then -- spawns second 3 hpemde
  271. SpawnMob(16912870, 300):updateEnmity(target);
  272. SpawnMob(16912871, 300):updateEnmity(target);
  273. SpawnMob(16912872, 300):updateEnmity(target);
  274. mob:setLocalVar("pop_pets", os.time());
  275. mob:setLocalVar("SPAWNS", 5);
  276. mob:setLocalVar("JoL_Qn_xzomit_Killed", 6);
  277. elseif (SPAWNS == 5) then -- spawns second 3 phuabo
  278. SpawnMob(16912852, 300):updateEnmity(target);
  279. SpawnMob(16912853, 300):updateEnmity(target);
  280. SpawnMob(16912854, 300):updateEnmity(target);
  281. mob:setLocalVar("pop_pets", os.time());
  282. mob:setLocalVar("SPAWNS", 6);
  283. mob:setLocalVar("JoL_Qn_hpemde_Killed", 6);
  284. elseif (SPAWNS == 6) then -- Spawns last 3 xzomit
  285. SpawnMob(16912864, 300):updateEnmity(target);
  286. SpawnMob(16912865, 300):updateEnmity(target);
  287. SpawnMob(16912866, 300):updateEnmity(target);
  288. mob:setLocalVar("pop_pets", os.time());
  289. mob:setLocalVar("SPAWNS", 7);
  290. elseif (SPAWNS == 7) then -- spawns last 3 hpemde
  291. SpawnMob(16912873, 300):updateEnmity(target);
  292. SpawnMob(16912874, 300):updateEnmity(target);
  293. SpawnMob(16912875, 300):updateEnmity(target);
  294. mob:setLocalVar("pop_pets", os.time());
  295. mob:setLocalVar("SPAWNS", 8);
  296. mob:setLocalVar("JoL_Qn_xzomit_Killed", 9);
  297. elseif (SPAWNS >= 8) then -- switch to ONLY popping phuabo (still up to 3 at a time)
  298. if (phuabo1 == ACTION_NONE or phuabo1 == ACTION_SPAWN) then
  299. SpawnMob(16912849, 300):updateEnmity(target);
  300. SpawnMob(16912850, 300):updateEnmity(target);
  301. SpawnMob(16912851, 300):updateEnmity(target);
  302. mob:setLocalVar("pop_pets", os.time());
  303. mob:setLocalVar("JoL_Qn_hpemde_Killed", 9);
  304. elseif (phuabo2 == ACTION_NONE or phuabo2 == ACTION_SPAWN) then
  305. SpawnMob(16912852, 300):updateEnmity(target);
  306. SpawnMob(16912853, 300):updateEnmity(target);
  307. SpawnMob(16912854, 300):updateEnmity(target);
  308. mob:setLocalVar("pop_pets", os.time());
  309. elseif (phuabo3 == ACTION_NONE or phuabo3 == ACTION_SPAWN) then
  310. SpawnMob(16912855, 300):updateEnmity(target);
  311. SpawnMob(16912856, 300):updateEnmity(target);
  312. SpawnMob(16912857, 300):updateEnmity(target);
  313. mob:setLocalVar("pop_pets", os.time());
  314. --SBS Set to stop popping pets if all 9 of any species are alive
  315.  
  316. end
  317. end
  318. end
  319. end;
  320.  
  321. -----------------------------------
  322. -- onMobDespawn
  323. -----------------------------------
  324.  
  325. function onMobDespawn(mob)
  326. local AV_CHANCE = 100; --set back to 25 after testing JoL mobs killed variables/regen effects on AV
  327. if (AV_CHANCE > math.random(0,99)) then
  328. SpawnMob(16912876, 180);
  329. end
  330. end;
  331.  
  332. -----------------------------------
  333. -- onMobDeath
  334. -----------------------------------
  335.  
  336. function onMobDeath(mob, player, isKiller)
  337. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement