Ir para conteúdo

Featured Replies

Postado

Bom dia galerinha do tk 

coloquei um script de Dodge em items que achei aki no tk no meu otserv

 

Ate ai tudo bem

 

mas quando eu add os dodge no item fica dando erro quando o player loga e desloga com o dodge no set

ItemAttribute::serialize]: Invalid data type.

 

0:37 You see a Extreme Mage Cape (Arm:350, magic level +10, protection all +4%).
It can only be wielded properly by master sorcerers, elder druids, zedeky winzards, new zedeky sorcs, elite zedeky sorcs, zedeky darks, new zedeky druids, elite zedeky druids, ultimate zedeky sorcs
and ultimate zedeky druids.
It weighs 18.00 oz.
[Dodge: 10%]
ItemID: [12672].
 

alguem pode ajudar corrigir esse erro??

 

script actions

 

local function getItemDodgePercent(itemuid)
    return getItemAttribute(itemuid, "dodgePercent") or 0
end

local function setItemDodgePercent(uid, percent)
    doItemSetAttribute(uid, "description", "[Dodge: "..percent.."%]")
    doItemSetAttribute(uid, "dodgePercent", percent)
end

local t = { 
    
    [8303] = 50, -- [ItemID] = Porcentagem
    [12672] = 10 
    
}

local remove_item = TRUE -- Remover o item ao usar se sim coloque TRUE se não FALSE

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos = getCreaturePosition(cid)
    if t[itemEx.itemid] then
        local get_Item = t[itemEx.itemid]
        
        if getItemDodgePercent(itemEx.uid) == get_Item then
            doPlayerSendTextMessage(cid, 27, "Esse item já foi refinado")
            doSendMagicEffect(pos, 2)
            return false 
        else
            setItemDodgePercent(itemEx.uid, get_Item)
            doPlayerSendTextMessage(cid, 27, "Sucesso!")
            doSendMagicEffect(pos, 9)
            if remove_item == TRUE then
                doRemoveItem(item.uid, 1)
                return true
            end
            return true
        end
    else
        doPlayerSendTextMessage(cid, 27, "Esse item não pode ser refinado")
        doSendMagicEffect(pos, 2)
        return false 
    end
    return true
end

 

 

script mod

 

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Dodge System" version="0.1" author="Night Wolf" contact="" enabled="yes">
<event type="login" name="registerDodge" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid,"dodge")
return true
end
]]></event>


<event type="statschange" name="dodge" event="script"><![CDATA[


function onStatsChange(cid, attacker, type, combat, value)
if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isCreature(attacker) then
    local max = 50
    local slotPos = {1,2,3,4,5,6,7,8,9} 
    local percent = 0.5
    local dodgePercent = 0


for i = 1, #slotPos do
if getPlayerSlotItem(cid, slotPos).uid > 1 then
if getItemDodgePercent(getPlayerSlotItem(cid, slotPos).uid) then
dodgePercent = dodgePercent + getItemDodgePercent(getPlayerSlotItem(cid, slotPos).uid)
end
end
end
if dodgePercent >= max then dodgePercent = max end
if dodgePercent >= math.random (0,100) then
value = math.ceil(value*(percent))
doTargetCombatHealth(attacker, cid, combat, -value, -value, 255)
doSendAnimatedText(getCreaturePos(cid), "DODGE", 6)
return false
end
end
return true
end]]></event>
</mod>

 

 

script libs

 

function getItemDodgePercent(itemuid)
return getItemAttribute(itemuid, "dodgePercent")
end
function doPlayerAddDodgeItem(cid, itemid, percent)
local item = doPlayerAddItem(cid, itemid)
doItemSetAttribute(item, "description", "[Dodge: "..percent.."%]")
doItemSetAttribute(item, "dodgePercent", percent)
end

 

 

 

 

 

Editado por mullino (veja o histórico de edições)

  • 6 months later...
Postado

Erro similar comigo... mais eu uso o script original do post do @xWhiteWolf

Ao deslogar com o player...

[ItemAttribute::serialize]: Invalid data type.

E ao logar...
[Warning - IOLoginData::loadItems] Unserialize error for item with id (qualquer equip)

 

Somente dá erro no nome do item +1, +2, etc...

Os valores da descrição da porcentagem do Dodge são mantidos perfeitamente...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo