diff --git a/data/actions/actions.xml b/data/actions/actions.xml index a249405..8202fe6 100644 --- a/data/actions/actions.xml +++ b/data/actions/actions.xml @@ -188,6 +188,8 @@ + + diff --git a/data/actions/scripts/misc/skinning_dusting.lua b/data/actions/scripts/misc/skinning_dusting.lua new file mode 100644 index 0000000..e21dd38 --- /dev/null +++ b/data/actions/scripts/misc/skinning_dusting.lua @@ -0,0 +1,80 @@ +local config = { + [5908] = { + -- Minotaurs + [4011] = {value = 25000, newItem = 5878}, + [4047] = {value = 25000, newItem = 5878}, + [4057] = {value = 25000, newItem = 5878}, + [4052] = {value = 25000, newItem = 5878}, + + -- Low Class Lizards + [4321] = {value = 25000, newItem = 5876}, + [4327] = {value = 25000, newItem = 5876}, + [4324] = {value = 25000, newItem = 5876}, + + -- Dragons + [4025] = {value = 25000, newItem = 5877}, + + -- Dragon Lords + [4062] = {value = 25000, newItem = 5948}, + + -- Behemoths + [4112] = {value = 35000, newItem = 5893}, + + -- Bone Beasts + [4212] = {value = 25000, newItem = 5925}, + }, + [5942] = { + -- Demon + [4097] = {value = 25000, newItem = 5906}, + + -- Vampires + [4137] = {value = 25000, newItem = 5905} + } +} + +function onUse(player, item, fromPosition, target, toPosition, isHotkey) + local skin = config[item.itemid][target.itemid] + if not skin then + return false + end + + local random, effect, transform = math.random(1, 100000), CONST_ME_MAGIC_GREEN, true + if type(skin[1]) == 'table' then + local _skin + for i = 1, #skin do + _skin = skin[i] + if random <= _skin.value then + if isInArray({7441, 7442, 7444, 7445}, target.itemid) then + player:addItem(_skin.newItem, _skin.amount or 1) + effect = CONST_ME_HITAREA + else + player:addItem(_skin.newItem, _skin.amount or 1) + end + break + end + end + + elseif random <= skin.value then + if isInArray({7441, 7442, 7444, 7445}, target.itemid) then + player:addItem(skin.newItem, skin.amount or 1) + effect = CONST_ME_HITAREA + else + player:addItem(skin.newItem, skin.amount or 1) + end + else + if isInArray({7441, 7442, 7444, 7445}, target.itemid) then + player:say('The attempt of sculpting failed miserably.', TALKTYPE_MONSTER_SAY) + effect = CONST_ME_HITAREA + else + effect = CONST_ME_POFF + end + end + + toPosition:sendMagicEffect(effect) + if transform then + target:transform(skin.after or target.itemid + 1) + target:decay() + end + + return true +end \ No newline at end of file diff --git a/data/items/items.srv b/data/items/items.srv index 5b7233d..d5d5a01 100644 --- a/data/items/items.srv +++ b/data/items/items.srv @@ -19675,8 +19675,8 @@ Attributes = {Capacity=7,FluidSource=BLOOD,ExpireTarget=4322,TotalExpireTime=12 TypeID = 4322 Name = "a dead lizard templar" -Flags = {Corpse,Expire} -Attributes = {ExpireTarget=4323,TotalExpireTime=1200} +Flags = {Container,Corpse,Expire} +Attributes = {Capacity=7,ExpireTarget=4323,TotalExpireTime=1200} TypeID = 4323 Name = "a dead lizard templar" @@ -19690,8 +19690,8 @@ Attributes = {Capacity=7,FluidSource=BLOOD,ExpireTarget=4325,TotalExpireTime=12 TypeID = 4325 Name = "a dead lizard sentinel" -Flags = {Corpse,Expire} -Attributes = {ExpireTarget=4326,TotalExpireTime=1200} +Flags = {Container,Corpse,Expire} +Attributes = {Capacity=7,ExpireTarget=4326,TotalExpireTime=1200} TypeID = 4326 Name = "a dead lizard sentinel" @@ -19705,8 +19705,8 @@ Attributes = {Capacity=7,FluidSource=BLOOD,ExpireTarget=4328,TotalExpireTime=12 TypeID = 4328 Name = "a dead lizard snakecharmer" -Flags = {Corpse,Expire} -Attributes = {ExpireTarget=4329,TotalExpireTime=1200} +Flags = {Container,Corpse,Expire} +Attributes = {Capacity=7,ExpireTarget=4329,TotalExpireTime=1200} TypeID = 4329 Name = "a dead lizard snakecharmer"