Ir para conteúdo

Featured Replies

Postado

Alguém possui um script de move que quando um jogador se mover em certo tile, uma skill dele upa como se tivesse treinando com os dunny. 

 

Exemplo: Vou em um tile equipado com algum item e ao andar naquele tile, minha skill vai subindo como se tivesse treinando

  • Respostas 15
  • Visualizações 560
  • 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

Postado
  • Diretor
15 minutos atrás, HexusAlphos disse:

Alguém possui um script de move que quando um jogador se mover em certo tile, uma skill dele upa como se tivesse treinando com os dunny. 

 

Exemplo: Vou em um tile equipado com algum item e ao andar naquele tile, minha skill vai subindo como se tivesse treinando

function onStepIn(creature, item, position, fromPosition)
    local skillToTrain = SKILL_SWORD -- Substitua SKILL_SWORD pela habilidade que você deseja treinar
    local minSkill = 10 -- Substitua 10 pelo valor mínimo da habilidade para começar a treinar
    local gainChance = 50 -- Chance de ganhar skill, em porcentagem
    local requiredItemID = 1234 -- Substitua 1234 pelo ID do item necessário para treinar

    if creature:isPlayer() then
        local player = creature:getPlayer()
        
        -- Verifica se o jogador está equipado com o item necessário
        if player:getSlotItem(CONST_SLOT_RIGHT) and player:getSlotItem(CONST_SLOT_RIGHT):getId() == requiredItemID then
            local skillLevel = player:getSkillLevel(skillToTrain)

            if skillLevel >= minSkill then
                -- Verifica se o jogador ganha skill
                if math.random(100) <= gainChance then
                    player:addSkillTries(skillToTrain, 1)
                    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                else
                    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                end
            else
                player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não tem a habilidade necessária para treinar aqui.")
            end
        else
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você precisa estar equipado com o item necessário para treinar aqui.")
        end
    end
    return true
end

 

Ou pra cada vocação

 

function onStepIn(creature, item, position, fromPosition)
    if creature:isPlayer() then
        local player = creature:getPlayer()
        local vocation = player:getVocation():getId()

        -- Defina as habilidades correspondentes para cada vocação
        local skillsToTrain = {
            [VOCATION_NONE] = {SKILL_SWORD, SKILL_SHIELD}, -- Vocação sem classe
            [VOCATION_KNIGHT] = {SKILL_SWORD, SKILL_SHIELD}, -- Cavaleiro
            [VOCATION_PALADIN] = {SKILL_DISTANCE}, -- Paladino
            [VOCATION_SORCERER] = {SKILL_MAGLEVEL}, -- Sorcerer
            [VOCATION_DRUID] = {SKILL_MAGLEVEL}, -- Druida
            [VOCATION_MASTER_SORCERER] = {SKILL_MAGLEVEL}, -- Mestre dos Sorcerer
            [VOCATION_ELDER_DRUID] = {SKILL_MAGLEVEL} -- Mestre dos Druid
        }

        local minSkill = 10 -- Substitua 10 pelo valor mínimo da habilidade para começar a treinar
        local gainChance = 50 -- Chance de ganhar skill, em porcentagem
        local requiredItemID = 1234 -- Substitua 1234 pelo ID do item necessário para treinar

        if skillsToTrain[vocation] then
            for _, skillToTrain in ipairs(skillsToTrain[vocation]) do
                local skillLevel = player:getSkillLevel(skillToTrain)

                if skillLevel >= minSkill then
                    -- Verifica se o jogador está equipado com o item necessário
                    if player:getSlotItem(CONST_SLOT_RIGHT) and player:getSlotItem(CONST_SLOT_RIGHT):getId() == requiredItemID then
                        -- Verifica se o jogador ganha skill
                        if math.random(100) <= gainChance then
                            player:addSkillTries(skillToTrain, 1)
                            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                        else
                            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                        end
                    else
                        player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você precisa estar equipado com o item necessário para treinar aqui.")
                    end
                else
                    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não tem a habilidade necessária para treinar aqui.")
                end
            end
        else
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Esta vocação não pode treinar aqui.")
        end
    end
    return true
end

 

 

 

 

Postado
  • Autor

Wow, valeu

Uma dúvida meio que leiga da minha parte, essa parte 

 local gainChance = 50 -- Chance de ganhar skill, em porcentagem

Quer dizer que será 50% de chance do jogador ganhar 1 nível a cada vez que passar no tile?

Postado
  • Diretor
1 minuto atrás, HexusAlphos disse:

Wow, valeu

Uma dúvida meio que leiga da minha parte, essa parte 


 local gainChance = 50 -- Chance de ganhar skill, em porcentagem

Quer dizer que será 50% de chance do jogador ganhar 1 nível a cada vez que passar no tile?

S

Postado
1 hora atrás, L3K0T disse:


function onStepIn(creature, item, position, fromPosition)
    local skillToTrain = SKILL_SWORD -- Substitua SKILL_SWORD pela habilidade que você deseja treinar
    local minSkill = 10 -- Substitua 10 pelo valor mínimo da habilidade para começar a treinar
    local gainChance = 50 -- Chance de ganhar skill, em porcentagem
    local requiredItemID = 1234 -- Substitua 1234 pelo ID do item necessário para treinar

    if creature:isPlayer() then
        local player = creature:getPlayer()
        
        -- Verifica se o jogador está equipado com o item necessário
        if player:getSlotItem(CONST_SLOT_RIGHT) and player:getSlotItem(CONST_SLOT_RIGHT):getId() == requiredItemID then
            local skillLevel = player:getSkillLevel(skillToTrain)

            if skillLevel >= minSkill then
                -- Verifica se o jogador ganha skill
                if math.random(100) <= gainChance then
                    player:addSkillTries(skillToTrain, 1)
                    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                else
                    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                end
            else
                player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não tem a habilidade necessária para treinar aqui.")
            end
        else
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você precisa estar equipado com o item necessário para treinar aqui.")
        end
    end
    return true
end

 

Ou pra cada vocação

 



function onStepIn(creature, item, position, fromPosition)
    if creature:isPlayer() then
        local player = creature:getPlayer()
        local vocation = player:getVocation():getId()

        -- Defina as habilidades correspondentes para cada vocação
        local skillsToTrain = {
            [VOCATION_NONE] = {SKILL_SWORD, SKILL_SHIELD}, -- Vocação sem classe
            [VOCATION_KNIGHT] = {SKILL_SWORD, SKILL_SHIELD}, -- Cavaleiro
            [VOCATION_PALADIN] = {SKILL_DISTANCE}, -- Paladino
            [VOCATION_SORCERER] = {SKILL_MAGLEVEL}, -- Sorcerer
            [VOCATION_DRUID] = {SKILL_MAGLEVEL}, -- Druida
            [VOCATION_MASTER_SORCERER] = {SKILL_MAGLEVEL}, -- Mestre dos Sorcerer
            [VOCATION_ELDER_DRUID] = {SKILL_MAGLEVEL} -- Mestre dos Druid
        }

        local minSkill = 10 -- Substitua 10 pelo valor mínimo da habilidade para começar a treinar
        local gainChance = 50 -- Chance de ganhar skill, em porcentagem
        local requiredItemID = 1234 -- Substitua 1234 pelo ID do item necessário para treinar

        if skillsToTrain[vocation] then
            for _, skillToTrain in ipairs(skillsToTrain[vocation]) do
                local skillLevel = player:getSkillLevel(skillToTrain)

                if skillLevel >= minSkill then
                    -- Verifica se o jogador está equipado com o item necessário
                    if player:getSlotItem(CONST_SLOT_RIGHT) and player:getSlotItem(CONST_SLOT_RIGHT):getId() == requiredItemID then
                        -- Verifica se o jogador ganha skill
                        if math.random(100) <= gainChance then
                            player:addSkillTries(skillToTrain, 1)
                            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                        else
                            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não ganhou experiência em " .. getSkillName(skillToTrain) .. ".")
                        end
                    else
                        player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você precisa estar equipado com o item necessário para treinar aqui.")
                    end
                else
                    player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Você não tem a habilidade necessária para treinar aqui.")
                end
            end
        else
            player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Esta vocação não pode treinar aqui.")
        end
    end
    return true
end

 

 

 

 

Você fez o script para TFS 1.x, mas o rapaz pediu especificamente para TFS 0.4. Revise isso.

 

Editado por Mateus Robeerto (veja o histórico de edições)

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