Jump to content
Close
Fir3element

Action%25252525252525252525252FTalkaction [talkaction] !comprar skill/magiclevel

Recommended Posts

  • Nome: Comprar skill/magic level
  • Versão testada: TFS 0.3.6pl1 / 0.4 / 0.3.7
  • Créditos: fireelement
  • Exemplo de uso:
  • !comprar club
  • !comprar magiclevel

Vá em data/talkactions/talkactions.xml e adicione essa tag:

    <talkaction words="!comprar;/comprar" event="script" value="comprar.lua"/>

Agora vá em data/talkactions/scripts/ e crie um arquivo com o nome comprar.lua e cole isso nele:

local config = {
    protectZone = "sim", -- Precisa estar em PZ para usar o comando?

    skill = {
        item = 9971, -- Item removido
        quantidade = 10, -- Quantidade
        quantidadeskill = 10, -- Skill adicionada
        limiteskill = 350 -- Limite
    },

    magicLevel = {
        item = 9971, -- Item removido
        quantidade = 15, -- Quantidade
        quantidademl = 5, -- Magic level adicionado
        limitedeml = 200 -- Limite
    },

    skillID = { -- ID das skills
        ["club"] = SKILL_CLUB,
        ["sword"]= SKILL_SWORD,
        ["axe"] = SKILL_AXE,
        ["distance"] = SKILL_DISTANCE,
        ["shielding"] = SKILL_SHIELD
    },

    vocationSkill = { -- Vocações que pode comprar x skill
        ["club"] = {4, 8},
        ["sword"] = {4, 8},
        ["axe"] = {4, 8},
        ["distance"] = {3, 7},
        ["shielding"] = {4, 8}
    },

    vocationMagicLevel = {1, 2, 5, 6}, -- Vocações que pode comprar magic level

    delay = {
        skill = {
            storage = 45,
            duration = 5 -- Tempo para comprar skill novamente
        },

        magicLevel = {
            storage = 97,
            duration = 5 -- Tempo para comprar magic level novamente
        }
    }
}

function onSay(cid, words, param, channel)
    if config.protectZone == "sim" and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Você precisa estar em protection zone para comprar.")
    end

    if param == "magiclevel" then
        if getPlayerMagLevel(cid) < config.magicLevel.limitedeml then
            if isInArray(config.vocationMagicLevel, getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.magicLevel.item, config.magicLevel.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.magicLevel.storage)) >= config.delay.magicLevel.duration then
                        setPlayerStorageValue(cid, config.delay.magicLevel.storage, os.time())
                        doRemoveCreature(cid, true)
                        local playerId = getPlayerGUID(cid)
                        db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + " .. config.magicLevel.quantidademl .. " WHERE `id` = " .. playerId)
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.magicLevel.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar magic level.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de magic level.")
        end
    elseif config.skillID[string.lower(param)] then
        if getPlayerSkill(cid, config.skillID[string.lower(param)]) < config.skill.limiteskill then
            if isInArray(config.vocationSkill[string.lower(param)], getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.skill.item, config.skill.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.skill.storage)) >= config.delay.skill.duration then
                        setPlayerStorageValue(cid, config.delay.skill.storage, os.time())
                        doRemoveCreature(cid, true)
                        local playerId = getPlayerGUID(cid)
                        db.executeQuery("UPDATE `player_skills` SET `value` = `value` + " .. config.skill.quantidadeskill .. " WHERE `player_id` = " .. playerId .. " and `skillid` = " .. config.skillID[string.lower(param)])
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.skill.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar este skill.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de skill.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Possíveis parâmetros: club, sword, axe, distance, shielding, magiclevel.")
    end
    return true
end

Edited by fireelement (see edit history)

"É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, mesmo expondo-se a derrota, do que formar fila com os pobres de espírito que nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que não conhece vitória nem derrota." Theodore Roosevelt

Share this post


Link to post
Share on other sites

Hm..

Script bem elaborado :P

Curti, é isso ai maninho está de parabéns !



 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Share this post


Link to post
Share on other sites

Ótimo script,obrigado por compartilhar conosco.

E que continue compartilhando seus trabalhos !

Obrigado.Att GuuhTorres.



Atenciosamente,

Gustavo H. Torres

Share this post


Link to post
Share on other sites

Aqui não funcionou.

o magic level funcionou porém skill sword, axe e club ele gasta as barras porém não sobe o skill


Share this post


Link to post
Share on other sites

aqui funcionou somento o magiclevel, os demais nao funcionarao ( sword, axe, club, shield, dist)


Share this post


Link to post
Share on other sites

QUAIS AS VANTAGENS DO ADMINISTRADOR NESTE COMANDO?


Edited by ricardo3 (see edit history)

Share this post


Link to post
Share on other sites

Script atualizado, arrumei os bugs!



"É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, mesmo expondo-se a derrota, do que formar fila com os pobres de espírito que nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que não conhece vitória nem derrota." Theodore Roosevelt

Share this post


Link to post
Share on other sites
@fireelement Poderia disponibilizar esse para tfs 1.0? ou se você tiver outro sistema de !comprar para tfs 1.0 ficarei agradecido :D

Share this post


Link to post
Share on other sites
Em 05/01/2012 22:50:32, fireelement disse:
  • Nome: Comprar skill/magic level
  • Versão testada: TFS 0.3.6pl1 / 0.4 / 0.3.7
  • Créditos: fireelement
  • Exemplo de uso:
  • !comprar club
  • !comprar magiclevel

Vá em data/talkactions/talkactions.xml e adicione essa tag:


    <talkaction words="!comprar;/comprar" event="script" value="comprar.lua"/>

Agora vá em data/talkactions/scripts/ e crie um arquivo com o nome comprar.lua e cole isso nele:


local config = {
    protectZone = "sim", -- Precisa estar em PZ para usar o comando?

    skill = {
        item = 9971, -- Item removido
        quantidade = 10, -- Quantidade
        quantidadeskill = 10, -- Skill adicionada
        limiteskill = 350 -- Limite
    },

    magicLevel = {
        item = 9971, -- Item removido
        quantidade = 15, -- Quantidade
        quantidademl = 5, -- Magic level adicionado
        limitedeml = 200 -- Limite
    },

    skillID = { -- ID das skills
        ["club"] = SKILL_CLUB,
        ["sword"]= SKILL_SWORD,
        ["axe"] = SKILL_AXE,
        ["distance"] = SKILL_DISTANCE,
        ["shielding"] = SKILL_SHIELD
    },

    vocationSkill = { -- Vocações que pode comprar x skill
        ["club"] = {4, 8},
        ["sword"] = {4, 8},
        ["axe"] = {4, 8},
        ["distance"] = {3, 7},
        ["shielding"] = {4, 8}
    },

    vocationMagicLevel = {1, 2, 5, 6}, -- Vocações que pode comprar magic level

    delay = {
        skill = {
            storage = 45,
            duration = 5 -- Tempo para comprar skill novamente
        },

        magicLevel = {
            storage = 97,
            duration = 5 -- Tempo para comprar magic level novamente
        }
    }
}

function onSay(cid, words, param, channel)
    if config.protectZone == "sim" and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Você precisa estar em protection zone para comprar.")
    end

    if param == "magiclevel" then
        if getPlayerMagLevel(cid) < config.magicLevel.limitedeml then
            if isInArray(config.vocationMagicLevel, getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.magicLevel.item, config.magicLevel.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.magicLevel.storage)) >= config.delay.magicLevel.duration then
                        setPlayerStorageValue(cid, config.delay.magicLevel.storage, os.time())
                        doRemoveCreature(cid, true)
                        local playerId = getPlayerGUID(cid)
                        db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + " .. config.magicLevel.quantidademl .. " WHERE `id` = " .. playerId)
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.magicLevel.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar magic level.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de magic level.")
        end
    elseif config.skillID[string.lower(param)] then
        if getPlayerSkill(cid, config.skillID[string.lower(param)]) < config.skill.limiteskill then
            if isInArray(config.vocationSkill[string.lower(param)], getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.skill.item, config.skill.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.skill.storage)) >= config.delay.skill.duration then
                        setPlayerStorageValue(cid, config.delay.skill.storage, os.time())
                        doRemoveCreature(cid, true)
                        local playerId = getPlayerGUID(cid)
                        db.executeQuery("UPDATE `player_skills` SET `value` = `value` + " .. config.skill.quantidadeskill .. " WHERE `player_id` = " .. playerId .. " and `skillid` = " .. config.skillID[string.lower(param)])
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.skill.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar este skill.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de skill.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Possíveis parâmetros: club, sword, axe, distance, shielding, magiclevel.")
    end
    return true
end

 

 

 

 

Em 05/01/2012 22:50:32, fireelement disse:
  • Nome: Comprar skill/magic level
  • Versão testada: TFS 0.3.6pl1 / 0.4 / 0.3.7
  • Créditos: fireelement
  • Exemplo de uso:
  • !comprar club
  • !comprar magiclevel

Vá em data/talkactions/talkactions.xml e adicione essa tag:


    <talkaction words="!comprar;/comprar" event="script" value="comprar.lua"/>

Agora vá em data/talkactions/scripts/ e crie um arquivo com o nome comprar.lua e cole isso nele:


local config = {
    protectZone = "sim", -- Precisa estar em PZ para usar o comando?

    skill = {
        item = 9971, -- Item removido
        quantidade = 10, -- Quantidade
        quantidadeskill = 10, -- Skill adicionada
        limiteskill = 350 -- Limite
    },

    magicLevel = {
        item = 9971, -- Item removido
        quantidade = 15, -- Quantidade
        quantidademl = 5, -- Magic level adicionado
        limitedeml = 200 -- Limite
    },

    skillID = { -- ID das skills
        ["club"] = SKILL_CLUB,
        ["sword"]= SKILL_SWORD,
        ["axe"] = SKILL_AXE,
        ["distance"] = SKILL_DISTANCE,
        ["shielding"] = SKILL_SHIELD
    },

    vocationSkill = { -- Vocações que pode comprar x skill
        ["club"] = {4, 8},
        ["sword"] = {4, 8},
        ["axe"] = {4, 8},
        ["distance"] = {3, 7},
        ["shielding"] = {4, 8}
    },

    vocationMagicLevel = {1, 2, 5, 6}, -- Vocações que pode comprar magic level

    delay = {
        skill = {
            storage = 45,
            duration = 5 -- Tempo para comprar skill novamente
        },

        magicLevel = {
            storage = 97,
            duration = 5 -- Tempo para comprar magic level novamente
        }
    }
}

function onSay(cid, words, param, channel)
    if config.protectZone == "sim" and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Você precisa estar em protection zone para comprar.")
    end

    if param == "magiclevel" then
        if getPlayerMagLevel(cid) < config.magicLevel.limitedeml then
            if isInArray(config.vocationMagicLevel, getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.magicLevel.item, config.magicLevel.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.magicLevel.storage)) >= config.delay.magicLevel.duration then
                        setPlayerStorageValue(cid, config.delay.magicLevel.storage, os.time())
                        doRemoveCreature(cid, true)
                        local playerId = getPlayerGUID(cid)
                        db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + " .. config.magicLevel.quantidademl .. " WHERE `id` = " .. playerId)
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.magicLevel.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar magic level.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de magic level.")
        end
    elseif config.skillID[string.lower(param)] then
        if getPlayerSkill(cid, config.skillID[string.lower(param)]) < config.skill.limiteskill then
            if isInArray(config.vocationSkill[string.lower(param)], getPlayerVocation(cid)) then
                if doPlayerRemoveItem(cid, config.skill.item, config.skill.quantidade) then
                    if (os.time() - getPlayerStorageValue(cid, config.delay.skill.storage)) >= config.delay.skill.duration then
                        setPlayerStorageValue(cid, config.delay.skill.storage, os.time())
                        doRemoveCreature(cid, true)
                        local playerId = getPlayerGUID(cid)
                        db.executeQuery("UPDATE `player_skills` SET `value` = `value` + " .. config.skill.quantidadeskill .. " WHERE `player_id` = " .. playerId .. " and `skillid` = " .. config.skillID[string.lower(param)])
                    else
                        doPlayerSendCancel(cid, "Espere " .. config.delay.skill.duration .. " segundos para comprar novamente.")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem o item requerido.")
                end
            else
                doPlayerSendCancel(cid, "Voce não pode comprar este skill.")
            end
        else
            doPlayerSendCancel(cid, "Você chegou no limite de skill.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Possíveis parâmetros: club, sword, axe, distance, shielding, magiclevel.")
    end
    return true
end

 

 

 

Irmao, fiz tudo normal !

o comando funciona normalmente porem nao da o ml !

o char desloga e assim que eu logo o ml continua o mesmo 

me ajuda para eu te dar +REP


Share this post


Link to post
Share on other sites

Ai não teria como adpatar esse comando para um npc ? se tiver poderia fazer pra min por favor ?


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...