RevScript Lion Sanctum

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Hola a todos,

Hoy les traigo otro script por NetoKain, el Lion Sanctum

Nos iremos primeramente en el Remeres Map Editor, todas las ActionsID seran 40100:

Buscaremos las estatuas de Lions y les colocaremos las ActionID 40100, aqui las posiciones:

Entrada Lions Sanctum
Position
{x = 33137, y = 32352, z = 5}

Salida Lions Sanctum
Position
{x = 33116, y = 32252, z = 10}

Acess Second Floor
Position
{x = 33092, y = 32314, z = 11}

Return First Floor
Position
{x = 33090, y = 32279, z = 12}

Nos iremos en data/scripts y crearemos una carpeta llamada bosses_lions y dentro un archivo llamado acess_lions_sanctum.lua
En el archivo copiaremos lo siguiente:

statues_teleport = {
enter_lion_sanctum = {
position_statue = Position(33137, 32352, 5),
position_teleport = Position(33117, 32252, 10),
},
exit_lion_sanctum = {
position_statue = Position(33116, 32252, 10),
position_teleport = Position(33137, 32353, 5),
},
lion_sanctum_first_floor = {
position_statue = Position(33092, 32314, 11),
position_teleport = Position(33090, 32280, 12),
},
lion_sanctum_second_floor = {
position_statue = Position(33090, 32279, 12),
position_teleport = Position(33092, 32315, 11),
},

}
local lionsStatuesTeleportEnter = Action()
function lionsStatuesTeleportEnter.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local statuePos = item:getPosition()
if statuePos == statues_teleport.enter_lion_sanctum.position_statue then
player:teleportTo(statues_teleport.enter_lion_sanctum.position_teleport)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
return true
elseif statuePos == statues_teleport.exit_lion_sanctum.position_statue then
player:teleportTo(statues_teleport.exit_lion_sanctum.position_teleport)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
return true
elseif statuePos == statues_teleport.lion_sanctum_first_floor.position_statue then
player:teleportTo(statues_teleport.lion_sanctum_first_floor.position_teleport)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
return true
elseif statuePos == statues_teleport.lion_sanctum_second_floor.position_statue then
player:teleportTo(statues_teleport.lion_sanctum_second_floor.position_teleport)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
return true
end
end
lionsStatuesTeleportEnter:aid(40100)
lionsStatuesTeleportEnter:register()

Ahora nos iremos en el Remeres Map editor, en el Lion Sanctum, vamos a crear el acesso a los bosses, inscribe las ActionID conforme a la imagen:

image.thumb.png.45046c86bda2cd08324601c60e667a2a.png

Por cada sala de boss, insertera la misma ActionID que fué insertada anteriormente en sus respectivos pisos conforme a la imagen abajo:

Position
{x = 33154, y = 32245, z = 12}
image.png.d9a293a0ae4bda648f38a9fc425e5701.png

Position
{x = 33148, y = 32283, z = 12}

image.png.8e963ff33831a06fa0c0ddc9d11e15cb.png


Position
{x = 33119, y = 32278, z = 12}
image.png.b600b34d15e34aba937b3eda6cea3515.png

Position
{x = 33087, y = 32239, z = 12}
image.png.501d50468a66f32a77874932e1484923.png

Ahora tendremos una secuencia de scripts, en la misma carpeta bosses_lions, crearemos un archivo llamado lions_sanctum_config.lua y le colocaremos:

if not bosses_lions_config then
bosses_lions_config = {
[40101] = {
center = Position(33157, 32251, 12),
maxRangeX = 7, minRangeX = 8, minRangeY = 9, maxRangeY = 9,
bossResp = Position(33159, 32255, 12),
boss = "yirkas blue scales",
teleportTo = Position(33155, 32245,12),
locked = false,
interval = 20 * 60 * 60,-- 20 hours
storage = Storage.lionsSanctumBosses.lionBoss1,
exit = Position(33123, 32240, 12),
tile_exit = Position(33154, 32245, 12)
},
[40102] = {
center = Position(33087, 32245, 12),
maxRangeX = 4, minRangeX = 4, minRangeY = 8, maxRangeY = 8,
bossResp = Position(33087, 32250, 12),
boss = "katex blood tongue",
teleportTo = Position(33087, 32240, 12),
locked = false,
interval = 20 * 60 * 60,-- 20 hours
storage = Storage.lionsSanctumBosses.lionBoss2,
exit = Position(33123, 32264, 12),
tile_exit = Position(33087, 32239, 12)
},
[40103] = {
center = Position(33152, 32287, 12),
maxRangeX = 8, minRangeX = 8, minRangeY = 8, maxRangeY = 8,
bossResp = Position(33156, 32291, 12),
boss = "srezz yellow eyes",
teleportTo = Position(33149, 32283, 12), --Place where the player will be teleported inside the room
locked = false,
interval = 20 * 60 * 60,-- 20 hours
storage = Storage.lionsSanctumBosses.lionBoss3,
exit = Position(33115, 32252, 12),
tile_exit = Position(33148, 32283, 12)
},
[40104] = {
center = Position(33122, 32283, 12),
maxRangeX = 6, minRangeX = 6, minRangeY = 8, maxRangeY = 8,
bossResp = Position(33122, 32288, 12),
boss = "utua stone sting",
teleportTo = Position(33119, 32279, 12), --Place where the player will be teleported inside the room
locked = false,
interval = 20 * 60 * 60,-- 20 hours
storage = Storage.lionsSanctumBosses.lionBoss4,
exit = Position(33130, 32252, 12),
tile_exit = Position(33119, 32278, 12)
},
}

bosses_lions_config.spawnBoss = function (name, pos)
local boss = Game.createMonster(name, pos, false, true)
if boss then
local c = bosses_lions_config.findByName(name)
c.locked = true
boss:registerEvent('BossLionsDeath')
end
end
bosses_lions_config.findByName = function(name, last)
local i, v = next(bosses_lions_config, last)
if type(v) == 'table' and v.boss == name then
return v
elseif not i then
return nil
end
return bosses_lions_config.findByName(name, i)
end

bosses_lions_config.getRoomCreatures = function(lionsbossroom)
if not lionsbossroom then
return {}
end

local ret = {}
local specs = Game.getSpectators(lionsbossroom.center, false, false,
lionsbossroom.minRangeX, lionsbossroom.maxRangeX, lionsbossroom.minRangeY, lionsbossroom.maxRangeY)
for i = 1, #specs do
ret[#ret+1] = specs
end

return ret
end

bosses_lions_config.getRoomOccupant = function(lionsbossroom, ignorePlayer)
local creatures = bosses_lions_config.getRoomCreatures(lionsbossroom)
for i = 1, #creatures do
if creatures:isPlayer() and creatures:getId() ~= ignorePlayer:getId() then
return creatures
end
end

return nil
end

bosses_lions_config.clearArena = function(lionsbossroom)
local spectators, spectator = Game.getSpectators(lionsbossroom.center, false, false,
lionsbossroom.minRangeX, lionsbossroom.maxRangeX, lionsbossroom.minRangeY, lionsbossroom.maxRangeY)
for i = 1, #spectators do
spectator = spectators
if spectator:isPlayer() then
else
spectator:remove()
end
end
end

bosses_lions_config.resetRoom = function(lionsbossroom, msg, releaseRoom)
if releaseRoom then
lionsbossroom.locked = false
end

local spectators = Game.getSpectators(lionsbossroom.center, false, false,
lionsbossroom.minRangeX, lionsbossroom.maxRangeX, lionsbossroom.minRangeY, lionsbossroom.maxRangeY)
for i = 1, #spectators do
if spectators:isPlayer() then
spectators:teleportTo(lionsbossroom.exit)
spectators:sendTextMessage(MESSAGE_EVENT_ADVANCE, msg)
else
spectators:remove()
end
end
end
end


En la misma carpeta, crearemos un archivo llamado bosses_lions.lua, y copiaremos:

local function filter(list, f, i)
if i < #list then
if f(list) then
return list, filter(list, f, i + 1)
else
return filter(list, f, i + 1)
end
elseif list and f(list) then
return list
end
end


local lionBosses = MoveEvent()
function lionBosses.onStepIn(creature, item, pos, fromPosition)
if not creature:isPlayer() then
creature:teleportTo(fromPosition)
return false
end

local lions = bosses_lions_config[item:getActionId()]
if not lions then
return false
end



print(pos.x,pos.y,pos.z)
if Position(pos) == lions.tile_exit then
creature:say("Try again later.", TALKTYPE_MONSTER_SAY, false, player)
creature:setStorageValue(lions.storage, os.time() + lions.interval)
creature:teleportTo(lions.exit)
return false
elseif creature:getStorageValue(lions.storage) > os.time() then
creature:say("You are still exhausted from your last battle.", TALKTYPE_MONSTER_SAY, false, player, fromPosition)
creature:teleportTo(fromPosition)
return false
elseif bosses_lions_config.getRoomOccupant(lions, Player(creature.uid)) then
creature:say("There is still someone else in there. Better wait for a few minutes.", TALKTYPE_MONSTER_SAY, false, player, fromPosition)
creature:teleportTo(fromPosition)
return true
elseif Position(pos) ~= lions.tile_exit then
-- Aqui é necessário criar um evento que kicka o player para fora quando acabar esse tempo, não fiz isso ainda.
creature:say("You have ten minutes to kill and loot this boss, else you will lose that chance and will be kicked out.", TALKTYPE_MONSTER_SAY, false, player, lions.teleportTo)
bosses_lions_config.clearArena(lions)
creature:teleportTo(lions.teleportTo)
bosses_lions_config.spawnBoss(lions.boss, lions.bossResp)
return true
end

end

lionBosses:type("stepin")
lionBosses:aid(40101, 40102, 40103, 40104)
lionBosses:register()


Creareos otro archivo llamado boss_lions_death.lua y copiaremos:

-- After the boss is dead add the 20 hours delay to go in again
local BossLionsDeath = CreatureEvent("BossLionsDeath")
function BossLionsDeath.onDeath(creature, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified)
local info = bosses_lions_config.findByName(creature:getName():lower())
if not info then
return true
end


local spectators = Game.getSpectators(info.center, false, true, info.minRangeX, info.maxRangeX, info.minRangeY, info.maxRangeY)
for i = 1, #spectators do
spectators:setStorageValue(info.storage, os.time() + info.interval)
end
return true
end
BossLionsDeath:register()


Agregaremos las Storages, nos iremos en data/lib/core/storages.lua, el siguiente codigo, debe de estar dentro de la llave "Storage = {", que significa que tiene que estar dentro del codigo y no fuera del parrafo storage,

-- Debajo de Storage = {
--Lion Sanctum Bosses 52396 - 52400
lionsSanctumBosses = {
lionBoss1 = 52396,
lionBoss2 = 52397,
lionBoss3 = 52398,
lionBoss4 = 52399,
lionsSanctumAcessDoors = 52400
},

Nos iremos en data/startup/tables/door_quest.lua y colocaremos el acesso a las puertas por aquellos players que tengan el Storage 52400 con valor 1,

[Storage.lionsSanctumBosses.lionsSanctumAcessDoors] = {
itemId = 36405,
itemPos = {
{x = 33123, y = 32230, z = 12},
{x = 33159, y = 32322, z = 12}
}
}

Ahora colocaremos los Bosses, nos iremos en data/scripts/bosses y crearemos los siguientes archivos:

katex_blood_tongue.lua
local mType = Game.createMonsterType("Katex Blood Tongue")
local monster = {}

monster.description = "a katex blood tongue"
monster.experience = 4900
monster.outfit = {
lookType = 1300,
lookHead = 76,
lookBody = 21,
lookLegs = 93,
lookFeet = 93,
lookAddons = 0,
lookMount = 0
}

monster.health = 6300
monster.maxHealth = 6300
monster.race = "blood"
monster.corpse = 38656
monster.speed = 250
monster.manaCost = 0
monster.maxSummons = 0

monster.changeTarget = {
interval = 4000,
chance = 10
}

monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = true,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 0,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = true,
canWalkOnFire = true,
canWalkOnPoison = true,
pet = false
}

monster.light = {
level = 0,
color = 0
}

monster.voices = {
}

monster.loot = {
{name = "platinum coin", chance = 35000, maxCount = 9},
{name = "ultimate health potion", chance = 25000, maxCount = 3},
{name = "katex' blood", chance = 25000},
{name = "werehyaena nose", chance = 25000},
{name = "werehyaena talisman", chance = 25000},
{name = "green gem", chance = 5000},
{name = "blue gem", chance = 5000},
{name = "gemmed figurine", chance = 5000},
{name = "giant sword", chance = 5000},
{name = "gold ingot", chance = 5000},
{name = "war axe", chance = 5000},
{name = "golden armor", chance = 5000},
{name = "alloy legs", chance = 2500},
{name = "skull helmet", chance = 2500},
{name = "assassin dagger", chance = 2500},
{name = "demon shield", chance = 2500},
{name = "demonrage sword", chance = 2500},
{name = "gold ring", chance = 2500},
{name = "jade hammer", chance = 2500},
{name = "werehyaena trophy", chance = 2500},
{name = "magic plate armor", chance = 2500},
{name = "ornate crossbow", chance = 2500},
{name = "ring of green plasma", chance = 2500},
{name = "spellbook of mind control", chance = 2500},
{name = "spellweaver's robe", chance = 2500},
{name = "red silk flower", chance = 1000},

}

monster.attacks = {
{name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300},
{name ="combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -180, range = 7, radius = 3, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true},
}

monster.defenses = {
defense = 40,
armor = 40
}

monster.elements = {
{type = COMBAT_PHYSICALDAMAGE, percent = 0},
{type = COMBAT_ENERGYDAMAGE, percent = 0},
{type = COMBAT_EARTHDAMAGE, percent = 40},
{type = COMBAT_FIREDAMAGE, percent = 10},
{type = COMBAT_LIFEDRAIN, percent = 0},
{type = COMBAT_MANADRAIN, percent = 0},
{type = COMBAT_DROWNDAMAGE, percent = 0},
{type = COMBAT_ICEDAMAGE, percent = 0},
{type = COMBAT_HOLYDAMAGE , percent = 0},
{type = COMBAT_DEATHDAMAGE , percent = 0}
}

monster.immunities = {
{type = "paralyze", condition = true},
{type = "outfit", condition = false},
{type = "invisible", condition = true},
{type = "bleed", condition = false}
}

mType.onThink = function(monster, interval)
end

mType.onAppear = function(monster, creature)
if monster:getType():isRewardBoss() then
monster:setReward(true)
end
end

mType.onDisappear = function(monster, creature)
end

mType.onMove = function(monster, creature, fromPosition, toPosition)
end

mType.onSay = function(monster, creature, type, message)
end

mType:register(monster)

srezz_yellow_eyes.lua
local mType = Game.createMonsterType("Srezz Yellow Eyes")
local monster = {}

monster.description = "a srezz yellow eyes"
monster.experience = 4800
monster.outfit = {
lookType = 220,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0,
lookMount = 0
}

monster.health = 6200
monster.maxHealth = 6200
monster.race = "blood"
monster.corpse = 6061
monster.speed = 250
monster.manaCost = 0
monster.maxSummons = 0

monster.changeTarget = {
interval = 4000,
chance = 10
}

monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = true,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 0,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = true,
canWalkOnFire = true,
canWalkOnPoison = true,
pet = false
}

monster.light = {
level = 0,
color = 0
}

monster.voices = {
}

monster.loot = {
{name = "platinum coin", chance = 35000, maxCount = 9},
{name = "ultimate health potion", chance = 25000, maxCount = 3},
{name = "snake skin", chance=7000 ,maxCount=2},
{name = "winged tail", chance=4500},
{name = "mastermind potion", chance=5000},
{name = "green gem", chance = 5000},
{name = "blue gem", chance = 5000},
{name = "violet gem", chance=4500},
{name = "blue crystal shard", chance=4000},
{name = "black pearl", chance=5200},
{name = "gemmed figurine", chance = 5000},
{name = "glacier robe", chance=2500},
{name = "glacier kilt", chance=2300},
{name = "giant sword", chance = 5000},
{name = "gold ingot", chance = 5000},
{name = "gold nugget", chance = 5000},
{name = "war axe", chance = 1400},
{name = "demonrage sword", chance = 2500},
{name = "ring of green plasma", chance = 1700},
{name = "red silk flower", chance = 500},
{name = "srezz' eye", chance=1900},
{name = "skull helmet", chance=760},
{name = "raw watermelon tourmaline", chance=760},

}

monster.attacks = {
{name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300},
{name ="combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -180, range = 7, radius = 3, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true},
}

monster.defenses = {
defense = 40,
armor = 40
}

monster.elements = {
{type = COMBAT_PHYSICALDAMAGE, percent = 0},
{type = COMBAT_ENERGYDAMAGE, percent = 15},
{type = COMBAT_EARTHDAMAGE, percent = 40},
{type = COMBAT_FIREDAMAGE, percent = 10},
{type = COMBAT_LIFEDRAIN, percent = 0},
{type = COMBAT_MANADRAIN, percent = 0},
{type = COMBAT_DROWNDAMAGE, percent = 0},
{type = COMBAT_ICEDAMAGE, percent = 0},
{type = COMBAT_HOLYDAMAGE , percent = 0},
{type = COMBAT_DEATHDAMAGE , percent = 0}
}

monster.immunities = {
{type = "paralyze", condition = true},
{type = "outfit", condition = false},
{type = "invisible", condition = true},
{type = "bleed", condition = false}
}

mType.onThink = function(monster, interval)
end

mType.onAppear = function(monster, creature)
if monster:getType():isRewardBoss() then
monster:setReward(true)
end
end

mType.onDisappear = function(monster, creature)
end

mType.onMove = function(monster, creature, fromPosition, toPosition)
end

mType.onSay = function(monster, creature, type, message)
end

mType:register(monster)

utua_stone_sting.lua
local mType = Game.createMonsterType("Utua Stone Sting")
local monster = {}

monster.description = "a utua stone sting"
monster.experience = 5100
monster.outfit = {
lookType = 398,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0,
lookMount = 0
}

monster.health = 6400
monster.maxHealth = 6400
monster.race = "blood"
monster.corpse = 13501
monster.speed = 250
monster.manaCost = 0
monster.maxSummons = 0

monster.changeTarget = {
interval = 4000,
chance = 10
}

monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = true,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 0,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = true,
canWalkOnFire = true,
canWalkOnPoison = true,
pet = false
}

monster.light = {
level = 0,
color = 0
}

monster.voices = {
}

monster.loot = {
{name = "platinum coin", chance = 35000, maxCount = 9},
{name = "ultimate health potion", chance = 25000, maxCount = 3},
{name = "scorpion tail", chance = 25000},
{name = "spellweaver's robe", chance = 2500},
{name = "emerald bangle", chance = 2500},
{name = "green gem", chance = 5000},
{name = "blue gem", chance = 5000},
{name = "violet gem", chance=4500},
{name = "blue crystal shard", chance=4000},
{name = "black pearl", chance=5200},
{name = "gemmed figurine", chance = 5000},
{name = "lightning legs", chance=2500},
{name = "glacier kilt", chance=2300},
{name = "mercenary sword", chance = 5000},
{name = "noble axe", chance = 5000},
{name = "utua's poison", chance = 5000},
{name = "gold ingot", chance = 5000},
{name = "gold nugget", chance = 5000},
{name = "warrior's axe", chance = 1400},
{name = "ring of green plasma", chance = 1700},
{name = "red silk flower", chance = 500},
{name = "skull helmet", chance=760},
{name = "chaos mace", chance=760},
{name = "coral brooch", chance=760},
{name = "crystal mace", chance=760},
{name = "demon shield", chance=760},
{name = "fist on a stick", chance=760},
{name = "guardian axe", chance=760},
{name = "magic plate armor", chance=760},
{name = "raw watermelon tourmaline", chance=760},
}

monster.attacks = {
{name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300},
{name ="combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -180, range = 7, radius = 3, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true},
}

monster.defenses = {
defense = 40,
armor = 40
}

monster.elements = {
{type = COMBAT_PHYSICALDAMAGE, percent = 0},
{type = COMBAT_ENERGYDAMAGE, percent = 15},
{type = COMBAT_EARTHDAMAGE, percent = 40},
{type = COMBAT_FIREDAMAGE, percent = 10},
{type = COMBAT_LIFEDRAIN, percent = 0},
{type = COMBAT_MANADRAIN, percent = 0},
{type = COMBAT_DROWNDAMAGE, percent = 0},
{type = COMBAT_ICEDAMAGE, percent = 0},
{type = COMBAT_HOLYDAMAGE , percent = 0},
{type = COMBAT_DEATHDAMAGE , percent = 0}
}

monster.immunities = {
{type = "paralyze", condition = true},
{type = "outfit", condition = false},
{type = "invisible", condition = true},
{type = "bleed", condition = false}
}

mType.onThink = function(monster, interval)
end

mType.onAppear = function(monster, creature)
if monster:getType():isRewardBoss() then
monster:setReward(true)
end
end

mType.onDisappear = function(monster, creature)
end

mType.onMove = function(monster, creature, fromPosition, toPosition)
end

mType.onSay = function(monster, creature, type, message)
end

mType:register(monster)

yirkas_blue_scales.lua
local mType = Game.createMonsterType("Yirkas Blue Scales")
local monster = {}

monster.description = "a yirkas blue scales"
monster.experience = 4900
monster.outfit = {
lookType = 1196,
lookHead = 95,
lookBody = 95,
lookLegs = 95,
lookFeet = 95,
lookAddons = 3,
lookMount = 0
}

monster.health = 6300
monster.maxHealth = 6300
monster.race = "blood"
monster.corpse = 39032
monster.speed = 250
monster.manaCost = 0
monster.maxSummons = 0

monster.changeTarget = {
interval = 4000,
chance = 10
}

monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = true,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 0,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = true,
canWalkOnFire = true,
canWalkOnPoison = true,
pet = false
}

monster.light = {
level = 0,
color = 0
}

monster.voices = {
}

monster.loot = {
{name = "platinum coin", chance = 35000, maxCount = 9},
{name = "ultimate health potion", chance = 25000, maxCount = 3},
{name = "blue goanna scale", chance = 25000, maxCount = 4},
{name = "green gem", chance = 5000},
{name = "blue gem", chance = 5000},
{name = "gemmed figurine", chance = 5000},
{name = "giant sword", chance = 5000},
{name = "gold ingot", chance = 5000},
{name = "lizard heart", chance = 5000},
{name = "war axe", chance = 5000},
{name = "yirkas' egg", chance = 5000},
{name = "alloy legs", chance = 2500},
{name = "assassin dagger", chance = 2500},
{name = "demon shield", chance = 2500},
{name = "demonrage sword", chance = 2500},
{name = "gold ring", chance = 2500},
{name = "jade hammer", chance = 2500},
{name = "magic plate armor", chance = 2500},
{name = "magma legs", chance = 2500},
{name = "ornate crossbow", chance = 2500},
{name = "ring of green plasma", chance = 2500},
{name = "spellbook of mind control", chance = 2500},
{name = "spellweaver's robe", chance = 2500},
{name = "red silk flower", chance = 1000},

}

monster.attacks = {
{name ="melee", interval = 2000, chance = 100, minDamage =-520, maxDamage = -850, condition = {type = CONDITION_POISON, totalDamage = 15, interval = 4000}},
{name ="combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -180, range = 7, radius = 3, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true},
{name ="combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -490, range = 3, radius = 1, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_EXPLOSIONHIT, target = true}
}

monster.defenses = {
defense = 78,
armor = 78,
{name ="speed", interval = 2000, chance = 5, speedChange = 350, effect = CONST_ME_MAGIC_RED, target = false, duration = 5000}
}

monster.elements = {
{type = COMBAT_PHYSICALDAMAGE, percent = 0},
{type = COMBAT_ENERGYDAMAGE, percent = 15},
{type = COMBAT_EARTHDAMAGE, percent = 40},
{type = COMBAT_FIREDAMAGE, percent = 10},
{type = COMBAT_LIFEDRAIN, percent = 0},
{type = COMBAT_MANADRAIN, percent = 0},
{type = COMBAT_DROWNDAMAGE, percent = 0},
{type = COMBAT_ICEDAMAGE, percent = 0},
{type = COMBAT_HOLYDAMAGE , percent = 0},
{type = COMBAT_DEATHDAMAGE , percent = 0}
}

monster.immunities = {
{type = "paralyze", condition = true},
{type = "outfit", condition = false},
{type = "invisible", condition = true},
{type = "bleed", condition = false}
}

mType.onThink = function(monster, interval)
end

mType.onAppear = function(monster, creature)
if monster:getType():isRewardBoss() then
monster:setReward(true)
end
end

mType.onDisappear = function(monster, creature)
end

mType.onMove = function(monster, creature, fromPosition, toPosition)
end

mType.onSay = function(monster, creature, type, message)
end

mType:register(monster)

Con esto acabamos el Lion Sanctum por NetoKain.
 
Arriba