UntFrc 27 Postado Março 29, 2016 Share Postado Março 29, 2016 (editado) 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 Março 29, 2016 por Dandjes Link para o comentário Compartilhar em outros sites More sharing options...
0 Str00per 31 Postado Março 29, 2016 Share Postado Março 29, 2016 (editado) Pode ser por NPC,e mais viavel fazer o Script?E qual o ID do Item que deve dar USEFico no aguardo da resposta!! :biggrin: Editado Março 29, 2016 por Str00per Link para o comentário Compartilhar em outros sites More sharing options...
0 miguel223 98 Postado Março 29, 2016 Share Postado Março 29, 2016 (editado) 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 Março 30, 2016 por miguel223 Link para o comentário Compartilhar em outros sites More sharing options...
0 Str00per 31 Postado Março 29, 2016 Share Postado Março 29, 2016 (editado) 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 Março 29, 2016 por Str00per Link para o comentário Compartilhar em outros sites More sharing options...
0 UntFrc 27 Postado Março 30, 2016 Autor Share Postado Março 30, 2016 TOPICO RESOLVIDO , Então nem farei o NPC O cara tentou ai, mas nem funcionou kkkkk Link para o comentário Compartilhar em outros sites More sharing options...
0 miguel223 98 Postado Março 30, 2016 Share Postado Março 30, 2016 Chega a mandar a msg de que pode pegar os 10 gold ingots novamente? Arrumado e testado por mim. Link para o comentário Compartilhar em outros sites More sharing options...
0 UntFrc 27 Postado Março 30, 2016 Autor Share Postado Março 30, 2016 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 More sharing options...
0 miguel223 98 Postado Março 30, 2016 Share Postado Março 30, 2016 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 More sharing options...
0 Furabio 257 Postado Março 31, 2016 Share Postado Março 31, 2016 (editado) @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 Março 31, 2016 por TheSumm Link para o comentário Compartilhar em outros sites More sharing options...
0 miguel223 98 Postado Março 31, 2016 Share Postado Março 31, 2016 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 More sharing options...
Pergunta
UntFrc 27
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 DandjesLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados