Postado Março 10, 2023 2 anos Eu utilizo o TFS 1.4.2 Criei esse topico pq estou tentando fazer um comando ou npc que consiga trocar a vocação do player para uma vocação nova que criei, mas queria resetar, vida, mana, ml, skills e o storage 378378 (resets), mas ele cobra o dinheiro, troca a classe mas não remove os skills e ml =/ Meu servidor é 1.4.2 TFS 10.98 Citar function onSay(cid, words, param, channel) local player = Player(cid) local cost = 10000 -- o custo em gold coins do serviço local resetsNeeded = 10 -- o número de resets necessários para a troca de vocação local newVocationId = 9 -- o ID da nova vocação que você criou if not player then return false end -- Verifique se o jogador tem o número necessário de resets if player:getStorageValue(378378) < resetsNeeded then player:sendCancelMessage("Você precisa de " .. resetsNeeded .. " resets para realizar esta troca de vocação.") return false end -- Verifique se o jogador tem gold coins suficientes para pagar pelo serviço if player:getMoney() < cost then player:sendCancelMessage("Você precisa de " .. cost .. " gold coins para realizar esta troca de vocação.") return false end -- Remova os gold coins e resets do jogador player:removeMoney(cost) player:setStorageValue(378378, player:getStorageValue(378378) - resetsNeeded) -- Altere a vocação do jogador para a nova vocação player:setVocation(Vocation(newVocationId)) -- Configure as estatísticas do jogador player:setStorageValue(PlayerStorageKeys.promotion, 0) player:setMagicLevel(0) player:setSkill(SKILL_FIST, 10) player:setSkill(SKILL_CLUB, 10) player:setSkill(SKILL_SWORD, 10) player:setSkill(SKILL_AXE, 10) player:setSkill(SKILL_DISTANCE, 10) player:setMaxHealth(180) player:setMaxMana(80) player:setMaxCapacity(1000) -- Envie uma mensagem ao jogador confirmando a troca de vocação player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você trocou de vocação com sucesso!") return true end Editado Março 10, 2023 2 anos por Gabriel485 (veja o histórico de edições)
Postado Março 15, 2023 2 anos Diretor Não testei mais deve te ajudar em algo só configurar a vocação. function onSay(player, words, param) local playerVocation = player:getVocation() local newVocation = VocationType[13] -- 13 é o ID da nova vocação criada if player:getLevel() < 8 then player:sendCancelMessage("You need to be at least level 8 to change vocations.") return false end if playerVocation == newVocation then player:sendCancelMessage("You are already in this vocation.") return false end local cost = 10000 -- o custo para mudar de vocação if not player:removeMoney(cost) then player:sendCancelMessage("You need " .. cost .. " gold coins to change vocations.") return false end player:setVocation(newVocation) player:addHealth(player:getMaxHealth()) player:addMana(player:getMaxMana()) player:setMaxStorage(378378, 0) -- Define todos os skills para o valor inicial da nova vocação for skill = SKILL_FIST, SKILL_FISHING do player:setSkillLevel(skill, newVocation:getSkillBaseLevel(skill)) end -- Define o magic level para o valor inicial da nova vocação player:setMagicLevel(newVocation:getMagicLevel()) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) player:sendTextMessage(MESSAGE_INFO_DESCR, "You are now a " .. newVocation:getName() .. ".") return false end Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
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.