JonatasLucasf 60 Postado Maio 7, 2015 Share Postado Maio 7, 2015 então galera gostaria de pedir fazendo favor alguém poderia fazer um script de uma quest bem simples que funciona em tfs 1.1 que é so clikar no bau receber o item e uma mensagem você recebeu X item. Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/ Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Maio 7, 2015 Share Postado Maio 7, 2015 (editado) ^ sim. @Bruno Neste loop, id assumiria o valor dos indexes da tabela e qtd, as tabelas contendo ID e quantidade. Assim, o correto seria: Sim, você está certo, eu sempre testo antes de falar merda, mais aqui no trampo é praticamente impossível, eu tinha me perdido na indexação, lua está sendo uma aventura pra mim hahaha! @@zipter98 Na verdade, Lua não é uma linguagem puramente orientada a objetos, ela fornece meta-mecanismos para que possa ser feita a implementação de classes e herança. De qualquer forma, agora está funcionando em tfs 1.1 hahaha: local quest = { items = { {2394, 1}, -- { id, quantidade } {2160, 1} }, sto = 98770 -- storage da quest. } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local queststatus = player:getStorageValue(quest.sto) if queststatus ~= 1 then for _, item in pairs(quest.items) do player:addItem(item[1], item[2]) end player:sendTextMessage(MESSAGE_INFO_DESCR, "Parabens! Voce completou a quest.") player:setStorageValue(quest.sto, 1) else player:sendTextMessage(MESSAGE_INFO_DESCR, "Desculpe! Voce ja completou esta quest.") end return true end Editado Maio 7, 2015 por Bruno Minervino Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650470 Compartilhar em outros sites More sharing options...
0 Krono 128 Postado Maio 7, 2015 Share Postado Maio 7, 2015 Se não estou enganado, basta colocar no baú o action id 2000 e unique id o id do item. Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650421 Compartilhar em outros sites More sharing options...
0 Wend ll 268 Postado Maio 7, 2015 Share Postado Maio 7, 2015 Faça oque o krono disse ou tente assim: function onUse(cid, item, frompos, item2, topos) if item.uid == 20006 then queststatus = getPlayerStorageValue(cid,98770) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Voce completou essa quest.") doPlayerAddItem(cid,2394,20) setPlayerStorageValue(cid,98770,1) else doPlayerSendTextMessage(cid,22,"Voce Ja Concluiu A Quest.") end else return 0 end return 1 end ali onde está doPlayerAddItem(cid,2394,20) é onde você irar altera o ID do item e a quantidade Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650428 Compartilhar em outros sites More sharing options...
0 gabrielbsales 174 Postado Maio 7, 2015 Share Postado Maio 7, 2015 (editado) Apesar de a resposta da @AnnaFeeh não estar errada, acho que fica mais bonito assim: function onUse(cid, item, frompos, item2, topos) local quest = { items = { --items que o player irá receber {2394, 1}, {2160, 1}, }, sto = 98770 --98770 é a storage da quest. } local queststatus = getPlayerStorageValue(cid, quest.sto) if queststatus ~= 1 then for id, items in pairs(quest.items) do doPlayerAddItem(cid, items[1], items[2]) end doPlayerSendTextMessage(cid, 22, "Voce completou essa quest.") setPlayerStorageValue(cid, quest.sto, 1) else doPlayerSendTextMessage(cid, 22, "Voce Ja Concluiu A Quest.") end return 1 end Editado Maio 7, 2015 por Bruno Minervino Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650441 Compartilhar em outros sites More sharing options...
0 Bruno 536 Postado Maio 7, 2015 Share Postado Maio 7, 2015 (editado) Apesar de a resposta da @AnnaFeeh não estar errada, acho que fica mais bonito assim: [...] Na verdade, a correção que você fez, ainda sim está mal indexada. 1º Procure definir variáveis de configuração fora da função. 2º Use retornos verdadeiros ou falsos, usando 0 e 1 da certo, porém quando a função requer um valor booleano para realizar tal ação, não vai fazer efeito. Olhe: local quest = { items = { {2394, 1}, -- { id, quantidade } {2160, 1} }, sto = 98770 -- storage da quest. } function onUse(cid, item, frompos, item2, topos) local queststatus = getPlayerStorageValue(cid, quest.sto) if queststatus ~= 1 then for _, item in pairs(quest.items) do doPlayerAddItem(cid, item[1], item[2]) end doPlayerSendTextMessage(cid, 22, "Voce completou essa quest.") setPlayerStorageValue(cid, quest.sto, 1) else doPlayerSendTextMessage(cid, 22, "Voce Ja Concluiu A Quest.") end return true end Peço desculpas, acabei editando seu post sem querer. @EDIT: agora que vi, o autor pediu com compatibilidade para o tfs 1.1, segue: local quest = { items = { {2394, 1}, -- { id, quantidade } {2160, 1} }, sto = 98770 -- storage da quest. } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local queststatus = player:getStorageValue(quest.sto) if queststatus ~= 1 then for _, item in pairs(quest.items) do player:addItem(item[1], item[2]) end player:sendTextMessage(MESSAGE_INFO_DESCR, "Parabens! Voce completou a quest.") player:setStorageValue(quest.sto, 1) else player:sendTextMessage(MESSAGE_INFO_DESCR, "Desculpe! Voce ja completou esta quest.") end return true end Editado Maio 7, 2015 por Bruno Minervino Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650444 Compartilhar em outros sites More sharing options...
0 gabrielbsales 174 Postado Maio 7, 2015 Share Postado Maio 7, 2015 Na verdade, a correção que você fez, ainda sim está incorreta. 1º Procure definir variáveis de configuração fora da função. 2º Se você já usou um loop para percorrer a variável items, você não precisa jogar um valor fixo, e sim o valor atual de cada linha, ambos definidas no loop. 3º Use retornos verdadeiros ou falsos, usando 0 e 1 da certo, porém quando a função requer um valor booleano para realizar tal ação, não vai fazer efeito. Olhe: local quest = { items = { {2394, 1}, -- { id, quantidade } {2160, 1} }, sto = 98770 -- storage da quest. } function onUse(cid, item, frompos, item2, topos) local queststatus = getPlayerStorageValue(cid, quest.sto) if queststatus ~= 1 then for id, qtd in pairs(quest.items) do doPlayerAddItem(cid, id, qtd) end doPlayerSendTextMessage(cid, 22, "Voce completou essa quest.") setPlayerStorageValue(cid, quest.sto, 1) else doPlayerSendTextMessage(cid, 22, "Voce Ja Concluiu A Quest.") end return true end Peço desculpas, acabei editando seu post sem querer. @EDIT: agora que vi, o autor pediu com compatibilidade para o tfs 1.1, segue: local quest = { items = { {2394, 1}, -- { id, quantidade } {2160, 1} }, sto = 98770 -- storage da quest. } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local queststatus = player:getStorageValue(quest.sto) if queststatus ~= 1 then for id, qtd in pairs(quest.items) do player:addItem(id, qtd) end player:sendTextMessage(MESSAGE_INFO_DESCR, "Parabens! Voce completou a quest.") player:setStorageValue(quest.sto, 1) else player:sendTextMessage(MESSAGE_INFO_DESCR, "Desculpe! Voce ja completou esta quest.") end return true end Só não usei um valor de retorno booleano pois não era necessário, mas não tava bom mesmo. Uma pergunta, TFS 1.1 é orientado a objetos? Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650466 Compartilhar em outros sites More sharing options...
0 zipter98 1102 Postado Maio 7, 2015 Share Postado Maio 7, 2015 ^ sim. @Bruno Neste loop, id assumiria o valor dos indexes da tabela e qtd, as tabelas contendo ID e quantidade. Assim, o correto seria: local quest = { items = { {2394, 1}, -- { id, quantidade } {2160, 1} }, sto = 98770 -- storage da quest. } function onUse(player, item, fromPosition, target, toPosition, isHotkey) local queststatus = player:getStorageValue(quest.sto) if queststatus ~= 1 then for _, item in pairs(quest.items) do player:addItem(item[1], item[2]) end player:sendTextMessage(MESSAGE_INFO_DESCR, "Parabens! Voce completou a quest.") player:setStorageValue(quest.sto, 1) else player:sendTextMessage(MESSAGE_INFO_DESCR, "Desculpe! Voce ja completou esta quest.") end return true end Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650467 Compartilhar em outros sites More sharing options...
0 JonatasLucasf 60 Postado Maio 7, 2015 Autor Share Postado Maio 7, 2015 (editado) quando chegar em casa testo aproveitando os scripters presente , da uma olhada aqui http://www.xtibia.com/forum/topic/233733-sistema-de-task-mounts/#entry1650212 @OBRIGADO A TODOS FUNCIONOU Editado Maio 8, 2015 por JonatasLucasf Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650480 Compartilhar em outros sites More sharing options...
0 Furabio 258 Postado Maio 8, 2015 Share Postado Maio 8, 2015 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário https://xtibia.com/forum/topic/233764-quest-simples/#findComment-1650683 Compartilhar em outros sites More sharing options...
Pergunta
JonatasLucasf 60
então galera gostaria de pedir fazendo favor alguém poderia fazer um script de uma quest bem simples que funciona em tfs 1.1 que é so clikar no bau receber o item e uma mensagem você recebeu X item.
Link para o comentário
https://xtibia.com/forum/topic/233764-quest-simples/Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados