Postado Abril 9, 2024 1 ano Autor 9 horas atrás, Mateus Robeerto disse: Adicionei o comando "print" para imprimir no console e saber o que aconteceu, etc. Isso vai ajudar bastante. local config = { minSkill = 10, -- Valor mínimo da habilidade para começar a treinar gainChance = 50, -- Chance de ganhar skill, em porcentagem requiredItemID = 2140, -- ID do item necessário para treinar trainInterval = 3000, -- Intervalo de tempo para tentar ganhar skill (em milissegundos) skillsToTrain = { -- Habilidades correspondentes para cada vocação [0] = {1, 2}, -- Vocação sem classe [1] = {1, 2}, -- Knight [2] = {3}, -- Paladin [3] = {4}, -- Sorcerer [4] = {4}, -- Druid [5] = {4}, -- Master Sorcerer [6] = {4} -- Elder Druid } } local skillEvents = {} -- Tabela para armazenar os eventos de treino function isInRange(playerPosition, centerPosition, range) return math.abs(centerPosition.x - playerPosition.x) <= range and math.abs(centerPosition.y - playerPosition.y) <= range and centerPosition.z == playerPosition.z end function onStepIn(cid, item, position, fromPosition) print("Entrou na função onStepIn") if not isPlayer(cid) then print("O personagem não é um jogador") return false end local vocation = getPlayerVocation(cid) print("Vocação do jogador: " .. vocation) if not config.skillsToTrain[vocation] then print("Vocação não encontrada na configuração de treino") return false end for _, skillToTrain in ipairs(config.skillsToTrain[vocation]) do local skillLevel = getPlayerSkillLevel(cid, skillToTrain) print("Nível da habilidade " .. skillToTrain .. ": " .. skillLevel) if skillLevel < config.minSkill then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não tem a habilidade necessária para treinar aqui.") return true end local rightSlotItem = getPlayerSlotItem(cid, CONST_SLOT_RIGHT) if not rightSlotItem or rightSlotItem.itemid ~= config.requiredItemID then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar equipado com o item necessário para treinar aqui.") return true end if skillEvents[cid] then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você já está em treinamento.") return true end skillEvents[cid] = addEvent(function() print("Iniciando evento de treinamento") if not isPlayer(cid) then skillEvents[cid] = nil return end local currentPlayerPosition = getCreaturePosition(cid) if not isInRange(currentPlayerPosition, position, 1) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não está mais na posição correta para treinar.") stopEvent(skillEvents[cid]) skillEvents[cid] = nil return end if math.random(100) <= config.gainChance then doPlayerAddSkillTry(cid, skillToTrain) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você ganhou experiência em " .. getSkillName(skillToTrain) .. ".") else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não ganhou experiência em " .. getSkillName(skillToTrain) .. ".") end end, config.trainInterval) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Iniciando treinamento em " .. getSkillName(skillToTrain) .. "...") end return true end function onLogout(cid) if skillEvents[cid] then stopEvent(skillEvents[cid]) skillEvents[cid] = nil end return true end esse é o erro
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.