Ir para conteúdo

Featured Replies

Postado

Fala galera do TK,

 

Bom como o título já diz, estou usando um sistema de dodge system e o item que estou utilizando é um item duplicado no otb até ai tudo certo, porém quando vou usar ele no Tibia ele não faz absolutamente nada, nenhum erro na distro nada, apenas não usa.

 

actions.xml

	<action itemid="12685" event="script" value="a/dodgesulphur.lua"/>

actions/scripts/a/dodgesulphur.lua

local config = {
   effectonuse = 29, -- efeito que sai
   levelscrit = 100,  --- leveis que terão
   storagecrit = 98798644 -- storage que será verificado
   }
   
function onUse(cid, item, frompos, item2, topos)
    if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then
   doRemoveItem(item.uid, 1)
doSendMagicEffect(topos,config.effectonuse)
doPlayerSendTextMessage(cid,22,"Voce elevou seus dodges para ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/100].")
setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1)
elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then
doPlayerSendTextMessage(cid,22,"Voce ja chegou no nivel Maximo de Dodges.\nParabéns.")
    return 0
    end
return 1
end

creaturescripts.xml

	<event type="StatsChange" name="Dodge" event="script" value="a/dodge.lua"/>

creaturescripts/scripts/a/dodge.lua

local storagedodge = 98798644 -- storage do dodge
local cor = 250 -- cor do texto
local effect = 31 -- id do magic effect 
local msg = "Dodge!" -- msg
 
local dodge = { 
    {min = 1, max = 10, chance = 6}, -- se o dodge tiver entre 1 e 2 tem 10% de chance de da dodge.
    {min = 11, max = 20, chance = 9}, -- vocês pode adicionar mas se quiserem
    {min = 21, max = 40, chance = 12},
    {min = 41, max = 50, chance = 15},
    {min = 51, max = 70, chance = 18},
    {min = 71, max = 90, chance = 21},
    {min = 91, max = 100, chance = 24},
    {min = 101, max = math.huge, chance = 28}
}
 
function onStatsChange(cid, attacker, type, combat, value)
    if not isCreature(cid) then
        return false
    end
    for _, tudo in pairs(dodge) do
        if getPlayerStorageValue(cid, storagedodge) >= tudo.min and getPlayerStorageValue(cid, storagedodge) <= tudo.max then
            local chancex = math.random(1, 100)
            if chancex <= tudo.chance then
                if combat ~= COMBAT_HEALING then
                    doSendMagicEffect(getCreaturePosition(cid), effect)
                    doSendAnimatedText(getCreaturePosition(cid), msg, cor)
                    return false
                end
            end
        end
    end
    return true
end

creaturescripts/scripts/login.lua

	registerCreatureEvent(cid, "Dodge")

items/items.xml

	<item id="12685" article="a" name="dodge stone" plural="dodge stones">
		<attribute key="weight" value="15" />
	</item>

está ai o código que estou usando porém, como já tinha comentado, ao usar o item não acontece nada!

 

OBS: Se eu usar outro item ele funciona, porém eu queria que fosse o item duplicado que eu fiz no itemeditor (Para não haver clones, ou drop dentro do map, monstros etc)!

 

itemsotb.thumb.png.ce65cd325e3fab4a17eccff789e96c5f.png

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

Postado
local config = {
   effectonuse = 29, -- efeito que sai
   levelscrit = 100,  --- leveis que terão
   storagecrit = 98798644 -- storage que será verificado
   }
   
function onUse(cid, item, frompos, item2, topos)
print("Item esta sendo usado")
if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then
	doRemoveItem(item.uid, 1)
	doSendMagicEffect(topos,config.effectonuse)
	doPlayerSendTextMessage(cid,22,"Voce elevou seus dodges para ["..(getPlayerStorageValue(cid, 					config.storagecrit)+1).."/100].")
	setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1)
elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then
	doPlayerSendTextMessage(cid,22,"Voce ja chegou no nivel Maximo de Dodges.\nParabéns.")
    return false
    end
return true
end

Testa a script e da usa no item caso não não mostrar nada no console ao usar o item você registrou errrado

Postado
  • Autor
23 horas atrás, DboExplorer disse:

local config = {
   effectonuse = 29, -- efeito que sai
   levelscrit = 100,  --- leveis que terão
   storagecrit = 98798644 -- storage que será verificado
   }
   
function onUse(cid, item, frompos, item2, topos)
print("Item esta sendo usado")
if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then
	doRemoveItem(item.uid, 1)
	doSendMagicEffect(topos,config.effectonuse)
	doPlayerSendTextMessage(cid,22,"Voce elevou seus dodges para ["..(getPlayerStorageValue(cid, 					config.storagecrit)+1).."/100].")
	setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1)
elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then
	doPlayerSendTextMessage(cid,22,"Voce ja chegou no nivel Maximo de Dodges.\nParabéns.")
    return false
    end
return true
end

Testa a script e da usa no item caso não não mostrar nada no console ao usar o item você registrou errrado

Não sei o que aconteceu, dupliquei outro item da items.otb e deu certo! obrigado por tentar ajudar!

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo