Ir para conteúdo

Featured Replies

Postado
  • 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

 

Screenshot_1.thumb.png.aae4f0e9f140d887fddcdda73fa2b065.png

 

esse é o erro

  • Respostas 15
  • Visualizações 554
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • function onStepIn(creature, item, position, fromPosition) local skillToTrain = SKILL_SWORD -- Substitua SKILL_SWORD pela habilidade que você deseja treinar local minSkill = 10 -- Substitua 10

Posted Images

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo