Skip to content

Instantly share code, notes, and snippets.

@TeoTwawki
Last active April 4, 2021 20:04
Show Gist options
  • Save TeoTwawki/dfa6870c9882c132c29b1a703cb05911 to your computer and use it in GitHub Desktop.
Save TeoTwawki/dfa6870c9882c132c29b1a703cb05911 to your computer and use it in GitHub Desktop.
Custom Mob Example

Hand him a mobid+group in Sacrarium with a level range you feel is right and make up an id for the pool.

The drops are 100% either or and handled by script as is pos, no dropid needed.

INSERT INTO `mob_pools` VALUES (ID_HERE,'Ziska','Ziska',115,0x01001D03E900150006005500070016006C003D00,11,1,1,280,100,0,1,0,0,2,9,0,6,131,0,0,0,1,0,20027); -- RNG/WAR
-----------------------------------
-- Area: Sacrarium
-- CNM : Ziska
-----------------------------------
mixins =
{
require("scripts/mixins/job_special"),
require("scripts/mixins/fomor_hate")
}
require("scripts/globals/status")
require("scripts/globals/msg")
-----------------------------------
local entity = {}
entity.onMobInitialize = function(mob)
mob:addMod(xi.mod.REGAIN, 15)
end
entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
between = 10,
chance = 50,
specials =
{
{id = xi.jsa.INVINCIBLE, duration = 20, hpp = 60},
{id = xi.jsa.MIGHTY_STRIKES, duration = 20, hpp = 25},
{id = xi.jsa.EES_SHADE, hpp = 10},
},
})
end
entity.onMobEngaged = function(mob, target)
target:PrintToArea("Teo cursed me to wander this place.. " , dsp.msg.channel.SAY, dsp.msg.area.PARTY, "Ziska")
end
entity.onMobDeath = function(mob, player, isKiller)
if isKiller then
if math.random(100) > 85 then
player:addTreasure(17246, mob) -- Ziska's Crossbow
else
player:addTreasure(11482, mob) -- Eyepatch
end
end
end
entity.onMobDespawn = function(mob)
mob:setRespawnTime(1800 * math.random(2, 6)) -- 1 to 3 hours, in 30 min increments
local nextPos = math.random(7)
switch (nextPos): caseof
{
[1] = function(x) mob:setSpawn(-60, 0, 54, 0) end,
[2] = function(x) mob:setSpawn(140, 3, -99, 0) end,
[3] = function(x) mob:setSpawn(-140, -8, 97, 0) end,
[4] = function(x) mob:setSpawn(172, 7.8, 99, 0) end,
[5] = function(x) mob:setSpawn(180, -8, -93, 0) end,
[6] = function(x) mob:setSpawn(180.5, -6, 67, 0) end,
[7] = function(x) mob:setSpawn(-70, -7.5, -20, 0) end
}
end
return entity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment