Ir para conteúdo
  • 0

(Action) Item que da dinheiro


UntFrc

Pergunta

Olá. Eu estou a procura de um script action que quando o player der use em certo item, ele de 10 gold ingots (ID: 9971) pro player, mas que só possa usar o item a cada 24h.

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

9 respostass a esta questão

Posts Recomendados

  • 0

Crie um arquivo .lua em actions/scripts e adicione:

 

function ingot(cid)
setPlayerStorageValue(cid, 15971, -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja pode receber 10 gold ingots novamente!")
end
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid,15971) <= 0 then
doPlayerAddItem(cid,9971,10)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce recebeu 10 gold ingots! Clique no item novamente em 24 horas para receber a recompensa de novo.")
setPlayerStorageValue(cid, 15971, 1)
addEvent(ingot,24*60*60*1000,cid)
elseif getPlayerStorageValue(cid,15971) == 1 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja pegou seus 10 gold ingots diarios! ")
end
return TRUE
end
Agora vá em actions > actions.xml e adicione:
action itemid="ITEMID" event="script" value="NOME DO ARQUIVO LUA.lua"/>

 

 

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

  • 0

Crie um arquivo .lua em actions/scripts e adicione:

 

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid,15930) == -1 then
doPlayerAddItem(cid,9971,10)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce recebeu 10 gold ingots! Clique no item novamente em 24 horas para receber a recompensa de novo.")
setPlayerStorageValue(cid, 15930, 1)
addEvent(ingot,24*60*60*1000,cid)
end
end
function ingot(pos,cid)
setPlayerStorageValue(cid, 15930, -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja pode receber 10 gold ingots novamente!")
end
Agora vá em actions > actions.xml e adicione:
action itemid="ITEMID" event="script" value="NOME DO ARQUIVO LUA.lua"/>

 

 

TOPICO RESOLVIDO , Então nem farei o NPC

 

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

  • 0

Chega a mandar a msg de que pode pegar os 10 gold ingots novamente?

Arrumado e testado por mim.

 

 

Vou colocar e ver. Amanha respondo se deu certo.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Vou colocar e ver. Amanha respondo se deu certo.

Ok, mas eu ja testei. Pode ficar sussa. Se quiser, altera o 24*60*60*1000 para 10*1000 (10 segundos) e da uma olhada, é mais fácil. Dai depois vc volta o valor inicial (24 horas).

Link para o comentário
Compartilhar em outros sites

  • 0

@miguel223 umas dicas para ti, pra quando for fazer algo que precise que o player só possa usar daqui 24 horas, dias, semanas, meses, é bom fazer o uso do os.time(), e atualmente não se usa mais return TRUE, com ele maiúsculo e sim true, sempre é bom também usar as variáveis para fácil manutenção do código, ou para quando um usuário leigo quiser usar o mesmo script para outra coisa, saiba alterar. Eu fiz um código aqui usando o que falei :

_item = 9971 -- ID Item
_quantidade = 10 -- Quantidade a receber
_storage = 45641 -- Não mexer
_time = 24 -- Horas

function onUse(cid)
    if getPlayerStorageValue(cid, _storage) >= os.time() then
        doPlayerSendCancel(cid, "Voce ja pegou seus 10 gold ingots diarios!")
        return false
    end
    doPlayerAddItem(cid, _item, _quantidade)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce recebeu 10 gold ingots! Clique no item novamente em 24 horas para receber a recompensa de novo.")
    setPlayerStorageValue(cid, _storage, os.time() + 60*60*_time)
    return true
end

Também poderíamos usar a biblioteca Math, para pode retornar o quanto tempo falta para o usuário receber o item novamente.

 

E parabéns por estar ajudando a comunidade na área de suporte de scripts, não é todo dia que se vê gente interessada em fazer tal coisa.

 

Ps: Faça o uso de [.code][./code] sem os . para uma melhor visualização do seu código.

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

  • 0

Entendi, vlw as dicas, se quiser me add no skype pra poder me ajudar com a estrutura dos scripts, é miguel_quessada. Eu sei mexer, mas aprendi sozinho, então normalmente não uso uma estrutura "correta".

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...