Postado Abril 28, 2020 5 anos @Revenant Tenta assim e continua mantendo o valor da storage como um valor menor: local servants = { ['Gorzindel'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['Lokathmor'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['Ghulosh'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['Mazzinor'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['The Scourge Of Oblivion'] = {storage = Storage.Livraria.AcessoSalaFinal} } function onKill(creature, target) local targetMonster = target:getMonster() local player = creature:getPlayer() if not player then return true end if not targetMonster or targetMonster:getMaster() then return true end local bossConfig = servants[targetMonster:getName()] if not bossConfig then return true end player:setStorageValue(bossConfig.storage, player:getStorageValue(bossConfig.storage) + 1) return true end
Postado Abril 28, 2020 5 anos Autor 1 hora atrás, Storm disse: @Revenant Tenta assim e continua mantendo o valor da storage como um valor menor: local servants = { ['Gorzindel'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['Lokathmor'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['Ghulosh'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['Mazzinor'] = {storage = Storage.Livraria.AcessoSalaFinal}, ['The Scourge Of Oblivion'] = {storage = Storage.Livraria.AcessoSalaFinal} } function onKill(creature, target) local targetMonster = target:getMonster() local player = creature:getPlayer() if not player then return true end if not targetMonster or targetMonster:getMaster() then return true end local bossConfig = servants[targetMonster:getName()] if not bossConfig then return true end player:setStorageValue(bossConfig.storage, player:getStorageValue(bossConfig.storage) + 1) return true end De fato, algumas coisas que você me falou me ajudou muito, como por exemplo o número menor no Storage, o principal motivo de não estar funcionando é que para chamadas onKill no creaturescripts é necessário declarar o nome do Script lá em scripts/others/loginEvents.lua O código que estou usando que deu super certo foi esse aqui, o outro problema que surgiu é que ele só vai atualizar o Storage do player que matou, e não de todos que estiverem na sala function onKill(player, target, damage, flags, corpse) if(isMonster(target)) then if(string.lower(getCreatureName(target)) == "Mazzinor" or "Ghulosh" or "Gorzindel" or "Lokathmor" or "Scarlett Etzel") then doCreatureSay(target, "EU RETORNAREI!!! Todos voces sentirao minha vinganca, e trarei MIL ANOS de guerra...", TALKTYPE_ORANGE_1) player:getPosition():sendMagicEffect(math.random(CONST_ME_FIREWORK_YELLOW, CONST_ME_FIREWORK_BLUE)) player:setStorageValue(Storage.Livraria.AcessoSalaFinal, player:getStorageValue(Storage.Livraria.AcessoSalaFinal) + 1) end end return true end Editado Abril 28, 2020 5 anos por Revenant (veja o histórico de edições)
Postado Abril 28, 2020 5 anos @Revenant Não tenho muita experiência com as TFS 1.X, então realmente conheço bem pouco das funções e fica difícil de ajudar. Tenta assim: function onKill(player, target, damage, flags, corpse) if(isMonster(target)) then if(string.lower(getCreatureName(target)) == "Mazzinor" or "Ghulosh" or "Gorzindel" or "Lokathmor" or "Scarlett Etzel") then doCreatureSay(target, "EU RETORNAREI!!! Todos voces sentirao minha vinganca, e trarei MIL ANOS de guerra...", TALKTYPE_ORANGE_1) for _, var in ipairs(target:getTargetList()) do var:setStorageValue(Storage.Livraria.AcessoSalaFinal, var:getStorageValue(Storage.Livraria.AcessoSalaFinal) + 1) var:getPosition():sendMagicEffect(math.random(CONST_ME_FIREWORK_YELLOW, CONST_ME_FIREWORK_BLUE)) end end end return true end
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.