Postado Outubro 8, 2018 6 anos Autor @FlavioHulk Não deu erro na distro, porem eu vou usando infinitamente e não recebo o premio e fica aparecendo que foi resetado a cada use que dou após o primeiro Use. Fiz o teste alterando o "time" para "times" por que "time" tava ficando azul, como se fosse 1 palavra reservada, alterei tbm o tempo para "10000 * 60" pra ver se não era nenhum bug no tempo, não adiantou de nada. Obrigado novamente. Editado Outubro 8, 2018 6 anos por RXSora (veja o histórico de edições)
Postado Outubro 9, 2018 6 anos Solução local config, players = { actionId = 1225, -- Action ID da quest. healthLose = 50, -- Quantidade de life perdido a cada clique. healthTotal = 300, -- Quantidade a ser alcançada de life. reward = { [1] = {itemId = 2160, amount = 100} -- Recompensa itemId e quantidade }, globalStorage = 52220, -- Storage global storagePlayer = 52221, -- Storage do player storageTime = 52222, -- Storage do Tempo time = 10 -- Tempo em segundos }, {} function onUse(player, item, fromPosition, target, toPosition, isHotkey) if item.actionid ~= config.actionId then return false end if Game.getStorageValue(config.globalStorage) > 0 then player:sendCancelMessage('The daily quest has already been made.') return true end if player:getStorageValue(config.storagePlayer) > 0 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The chest is empty.') return true end local difference = config.healthLose player:addHealth( - difference) if player:getExhaustion(config.storageTime) <= 0 then if players[player:getId()] then players[player:getId()] = nil player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Your sacrifice was reseted.') end player:setExhaustion(config.storageTime, config.time) end players[player:getId()] = ((players[player:getId()] == nil and 0 or players[player:getId()]) + config.healthLose) if players[player:getId()] == config.healthTotal then if not player then return false end for i = 1, #config.reward do local rewards = config.reward[i] player:addItem(rewards.itemId, rewards.amount) end Game.setStorageValue(config.globalStorage, 1) player:setStorageValue(config.storagePlayer, 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You did the quest.') for k in pairs(players) do players[k] = nil end end return true end Cara, testei totalmente esse script, e funciona como deveria.. Lembra-se de não dar reload no script, senão a tabela irá resetar !
Postado Outubro 11, 2018 6 anos Autor @FlavioHulk Bom dia, fiquei sem tempo esses dias, chegar em casa hoje vou testar e atualizo aqui Obrigado. @FlavioHulk Funcionou perfeitamente até o momento, Obgd Editado Novembro 6, 2018 6 anos por RXSora (veja o histórico de edições)
Postado Agosto 24, 2019 5 anos Em 09/10/2018 em 02:01, FlavioHulk disse: local config, players = { actionId = 1225, -- Action ID da quest. healthLose = 50, -- Quantidade de life perdido a cada clique. healthTotal = 300, -- Quantidade a ser alcançada de life. reward = { [1] = {itemId = 2160, amount = 100} -- Recompensa itemId e quantidade }, globalStorage = 52220, -- Storage global storagePlayer = 52221, -- Storage do player storageTime = 52222, -- Storage do Tempo time = 10 -- Tempo em segundos }, {} function onUse(player, item, fromPosition, target, toPosition, isHotkey) if item.actionid ~= config.actionId then return false end if Game.getStorageValue(config.globalStorage) > 0 then player:sendCancelMessage('The daily quest has already been made.') return true end if player:getStorageValue(config.storagePlayer) > 0 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The chest is empty.') return true end local difference = config.healthLose player:addHealth( - difference) if player:getExhaustion(config.storageTime) <= 0 then if players[player:getId()] then players[player:getId()] = nil player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Your sacrifice was reseted.') end player:setExhaustion(config.storageTime, config.time) end players[player:getId()] = ((players[player:getId()] == nil and 0 or players[player:getId()]) + config.healthLose) if players[player:getId()] == config.healthTotal then if not player then return false end for i = 1, #config.reward do local rewards = config.reward[i] player:addItem(rewards.itemId, rewards.amount) end Game.setStorageValue(config.globalStorage, 1) player:setStorageValue(config.storagePlayer, 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You did the quest.') for k in pairs(players) do players[k] = nil end end return true end Cara, testei totalmente esse script, e funciona como deveria.. Lembra-se de não dar reload no script, senão a tabela irá resetar ! poderia atualizar esse script para tfs 0.4 por favor?
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.