----------------------------------- -- Area: Al'Taieu -- NM: Jailer of Love ----------------------------------- require("scripts/globals/status"); require("scripts/globals/magic"); ----------------------------------- -- onMobSpawn Action ----------------------------------- function onMobSpawn(mob) --setmob mob:setMod(MOD_REGEN, 500);--SBS mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end; ----------------------------------- -- onMobEngaged ----------------------------------- function onMobEngaged(mob, target) mob:hideName(false); mob:untargetable(false); mob:AnimationSub(6);--SBS end; ----------------------------------- -- onMobFight Action ----------------------------------- function onMobFight(mob, target) -- Only 9 Qn'xzomit and 9 Qn'hpemde can be summoned. Ru'phuabo (Sharks) are unlimited. local XZOMITS = mob:getLocalVar("JoL_Qn_xzomit_Killed"); local HPEMDES = mob:getLocalVar("JoL_Qn_hpemde_Killed"); -- Spell selection SBS local lastSpell = mob:getLocalVar("last_spell"); if (os.time() - lastSpell > 20) then local SPELLSCAST = mob:getLocalVar("SPELLSCAST"); if (SPELLSCAST == 0) then local spellTimer = math.random(1,2) switch (spellTimer):caseof { [0] = function (x) mob:castSpell(157) --Aero IV mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 100); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [1] = function (x) mob:castSpell(147) --Fire IV mob:setMod(MOD_FIRE_ABSORB, 100); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [2] = function (x) mob:castSpell(152) --Blizzard 4 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 100); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [3] = function (x) mob:castSpell(186) --Aeroga 3 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 100); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [4] = function (x) mob:castSpell(176) --Firaga 3 mob:setMod(MOD_FIRE_ABSORB, 100); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [5] = function (x) mob:castSpell(181) --Blizzaga 3 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 100); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [6] = function (x) mob:castSpell(167) --Thunder 4 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 100); mob:setMod(MOD_DARK_ABSORB, 0); end, [7] = function (x) mob:castSpell(196) --Thundaga 3 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 100); mob:setMod(MOD_DARK_ABSORB, 0); end, [8] = function (x) mob:castSpell(172) --Water 4 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 100); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [9] = function (x) mob:castSpell(201) --Waterga 3 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 100); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [10] = function(x) mob:castSpell(162) --Stone 4 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 100); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [11] = function(x) mob:castSpell(191) --Stonega3 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 100); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [12] = function(x) mob:castSpell(362) --Bindga 2 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 100); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [13] = function(x) mob:castSpell(366) --Graviga mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 100); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 0); end, [14] = function(x) mob:castSpell(360) --Dispelga mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 100); end, [15] = function(x) mob:castSpell(274) --Sleepga 2 mob:setMod(MOD_FIRE_ABSORB, 0); mob:setMod(MOD_EARTH_ABSORB, 0); mob:setMod(MOD_WIND_ABSORB, 0); mob:setMod(MOD_WATER_ABSORB, 0); mob:setMod(MOD_ICE_ABSORB, 0); mob:setMod(MOD_LIGHTNING_ABSORB, 0); mob:setMod(MOD_DARK_ABSORB, 100); end, } mob:setLocalVar("last_spell", os.time()); mob:setLocalVar("SPELLSCAST", 1); elseif (SPELLSCAST >= 1) then mob:setLocalVar("SPELLSCAST", 0); end end --------------------------------------------------------------------- -- Increment these by 1 each time they are slain, in that mobs onMobDeath() script. if (mob:getLocalVar("JoL_Regen_Reduction") == 0) then if (mob:getLocalVar("JoL_Qn_xzomit_Killed") == 9 and mob:getLocalVar("JoL_Qn_hpemde_Killed") == 9) then mob:setLocalVar("JoL_Regen_Reduction", 1); end end if (mob:getLocalVar("JoL_Regen_Reduction") == 1) then --SBS mob:setMod(MOD_REGEN, 100); end local lastPop = mob:getLocalVar("pop_pets"); if (os.time() - lastPop > 150) then local SPAWNS = mob:getLocalVar("SPAWNS"); local phuabo1 = GetMobAction(16912849); local phuabo2 = GetMobAction(16912852); local phuabo3 = GetMobAction(16912855); if (SPAWNS == 0) then -- Spawns first 3 xzomit SpawnMob(16912858, 300):updateEnmity(target); SpawnMob(16912859, 300):updateEnmity(target); SpawnMob(16912860, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 1); elseif (SPAWNS == 1) then -- spawns first 3 hpemde SpawnMob(16912867, 300):updateEnmity(target); SpawnMob(16912868, 300):updateEnmity(target); SpawnMob(16912869, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 2); mob:setLocalVar("JoL_Qn_xzomit_Killed", 3);--SBS elseif (SPAWNS == 2) then -- spawns first 3 phuabo SpawnMob(16912849, 300):updateEnmity(target); SpawnMob(16912850, 300):updateEnmity(target); SpawnMob(16912851, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 3); mob:setLocalVar("JoL_Qn_hpemde_Killed", 3); elseif (SPAWNS == 3) then -- Spawns second 3 xzomit SpawnMob(16912861, 300):updateEnmity(target); SpawnMob(16912862, 300):updateEnmity(target); SpawnMob(16912863, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 4); elseif (SPAWNS == 4) then -- spawns second 3 hpemde SpawnMob(16912870, 300):updateEnmity(target); SpawnMob(16912871, 300):updateEnmity(target); SpawnMob(16912872, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 5); mob:setLocalVar("JoL_Qn_xzomit_Killed", 6); elseif (SPAWNS == 5) then -- spawns second 3 phuabo SpawnMob(16912852, 300):updateEnmity(target); SpawnMob(16912853, 300):updateEnmity(target); SpawnMob(16912854, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 6); mob:setLocalVar("JoL_Qn_hpemde_Killed", 6); elseif (SPAWNS == 6) then -- Spawns last 3 xzomit SpawnMob(16912864, 300):updateEnmity(target); SpawnMob(16912865, 300):updateEnmity(target); SpawnMob(16912866, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 7); elseif (SPAWNS == 7) then -- spawns last 3 hpemde SpawnMob(16912873, 300):updateEnmity(target); SpawnMob(16912874, 300):updateEnmity(target); SpawnMob(16912875, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("SPAWNS", 8); mob:setLocalVar("JoL_Qn_xzomit_Killed", 9); elseif (SPAWNS >= 8) then -- switch to ONLY popping phuabo (still up to 3 at a time) if (phuabo1 == ACTION_NONE or phuabo1 == ACTION_SPAWN) then SpawnMob(16912849, 300):updateEnmity(target); SpawnMob(16912850, 300):updateEnmity(target); SpawnMob(16912851, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); mob:setLocalVar("JoL_Qn_hpemde_Killed", 9); elseif (phuabo2 == ACTION_NONE or phuabo2 == ACTION_SPAWN) then SpawnMob(16912852, 300):updateEnmity(target); SpawnMob(16912853, 300):updateEnmity(target); SpawnMob(16912854, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); elseif (phuabo3 == ACTION_NONE or phuabo3 == ACTION_SPAWN) then SpawnMob(16912855, 300):updateEnmity(target); SpawnMob(16912856, 300):updateEnmity(target); SpawnMob(16912857, 300):updateEnmity(target); mob:setLocalVar("pop_pets", os.time()); end end end end; ----------------------------------- -- onMobDespawn ----------------------------------- function onMobDespawn(mob) local AV_CHANCE = 100; --set back to 25 after testing JoL mobs killed variables/regen effects on AV if (AV_CHANCE > math.random(0,99)) then SpawnMob(16912876, 180); end end; ----------------------------------- -- onMobDeath ----------------------------------- function onMobDeath(mob, player, isKiller) end;