Ir para conteúdo

[Encerrado] [PEDIDO] Item consumível que dar Velocidade ao player


CaioValverde

Posts Recomendados

Galera gostaria de saber se alguém sabe como criar um item consumível que só possa usar uma vez e que ao utilizar-lo o player ganhe velocidade de movimento (Ande mais rápido), porem quero que fique pra sempre esse efeito...

 

Valendo REP+, grato desde já, Caio Valverde!

Link para o comentário
Compartilhar em outros sites

Tente desta forma:

 

Vá em data/actions/scripts, cre um arquivo chamado sp_use.lua e adicione dentro:

 

 

function onUse(cid)
    local sp = 200

    if getPlayerStorageValue(cid, 14049) < 1 then
        doSendMagicEffect(getThingPos(cid), 14)
        doChangeSpeed(cid, (getCreatureSpeed(cid) + sp))
    else
        doPlayerSendCancel(cid, "Você já obteve a velocidade.")
        return true
    end

    return true
end

 

Em actions.xml adicione a tag:

 

 

<action itemid="ID DO ITEM" event="script" value="sp_use.lua"/>

 

#Boa sorte.

Link para o comentário
Compartilhar em outros sites

edit: retirado ._. não vi q o roksas postou antes

De qualquer maneira, aqui está um q fiz (Testei e funcionou, mas recomendo usar o do roksas)

function onUse(cid, item, frompos, item2, topos)
 
local cfg = {
msg = "Sua speed foi aumentada em 400!",     --Mensagem que vai enviar ao player quando este utilizar o Speed Item.
speed = 400,       --Configure aqui a speed que o player vai receber.
storage = 45459,    --Storage.
}
 
if getPlayerStorageValue(cid, cfg.storage) >= 1 then 
doPlayerSendCancel(cid, "Você só pode utilizar o Speed Item 1x por char...")
return true
end
 
if item.itemid == xxx then       --Substitua xxx pelo ID do item.
setPlayerStorageValue(cid, cfg.storage, 1)
doRemoveItem(item.uid, 1)
doChangeSpeed(cid, (getCreatureSpeed(cid) + cfg.speed))
doPlayerSendTextMessage(cid, 27, cfg.msg)
end
return true
end

EDIT²: Roksas, você não esqueceu de setar a storage no player ao usar o item?

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

Eu só acho, que poderia bota a função de exhaust no script, para nao ocorrer problemas futuramente! \/

 

 

 

 

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

 

function onUse(cid)
local sp = 200
if getPlayerStorageValue(cid, 14049) < 1 then
doSendMagicEffect(getThingPos(cid), 14)
doAddCondition(cid, exhaust)
doChangeSpeed(cid, (getCreatureSpeed(cid) + sp))
else
doPlayerSendCancel(cid, "Você já obteve a velocidade.")
return true
end
return true
end

Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...