Advertisement
hlmbugle

Untitled

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