Jump to content
  • 0

Script para sistema de Resets usando MySQL


erasv
 Share

Question

Pessoal, sou novo no XTibia e gostaria de pedir uma ajuda a vocês.

 

Voltei a administrar servidor de Tibia e estava aqui tentando editar uns scripts para usar o comando de !reset.

 

Esse comando funcionou bem no meu Server

local config = {
    backToLevel = 40,
    redskull = false, -- need to be without redskull to reset?
    battle = true, -- need to be without battle to reset?
    pz = false, -- need to be in protect zone to reset?
    stages = {
        {resets = 4, level = 350, premium = 330},
        {resets = 9, level = 355, premium = 340},
        {resets = 14, level = 450, premium = 450},
        {resets = 19, level = 600, premium = 600},
        {resets = 24, level = 800, premium = 800},
        {resets = 29, level = 1000, premium = 1000},
        {resets = 34, level = 1100, premium = 1100},
        {resets = 39, level = 1200, premium = 1200},
        {resets = 44, level = 1300, premium = 1300},
        {resets = 49, level = 1500, premium = 1500},
        {resets = 54, level = 1600, premium = 1600},
        {resets = 59, level = 1650, premium = 1650},
        {resets = 64, level = 1700, premium = 1700},
        {resets = 69, level = 1800, premium = 1800},
        {resets = 74, level = 1850, premium = 1850},
        {resets = 79, level = 1900, premium = 1900},
        {resets = 84, level = 2200, premium = 2200},
        {resets = 89, level = 2500, premium = 2500},
        {resets = 94, level = 5000, premium = 5000},
        {resets = 2^1024, level = 7000, premium = 7000}
    }
}

function onSay(cid, words, param)
    local function getPlayerResets(cid)
        local resets = getPlayerStorageValue(cid, 500)
        return resets < 0 and 0 or resets
    end

    local function doPlayerAddResets(cid, count)
        setPlayerStorageValue(cid, 500, getPlayerResets(cid) + count)
    end

    if config.redskull and getCreatureSkullType(cid) == 4 then
        return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.")
    elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.")
    elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
        return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.")
    end

    local resetLevel = 0
    for x, y in ipairs(config.stages) do
        if getPlayerResets(cid) <= y.resets then
            resetLevel = isPremium(cid) and y.premium or y.level
            break
        end
    end

    if getPlayerLevel(cid) < resetLevel then
        return doPlayerSendCancel(cid, "Voce precida de level " .. resetLevel .. " para o proximo reset.")
    end

    doPlayerAddResets(cid, 1)
    local healthMax, manaMax = getCreatureMaxHealth(cid), getCreatureMaxMana(cid)
    doPlayerAddLevel(cid, -(getPlayerLevel(cid) - config.backToLevel))
    setCreatureMaxHealth(cid, healthMax)
    setCreatureMaxMana(cid, manaMax)
    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Now you have " .. getPlayerResets(cid) .. " " .. (getPlayerResets(cid) == 1 and "reset" or "resets") .. ".")
    return true
end

 

Porém, eu precisava de algumas modificações nele... eu precisava definir alguns pontos de mudança pós o reset, por exemplo, o jogador ganha 10% a mais de xp... esse tipo de coisa.

 

Fora isso, o que eu precisava também (e mais importante) seria que esse reset fosse contabilizado numa row 'resets' da database do meu server que é MySQL.

 

Vocês poderiam, por gentileza, me ajudar ou dar uma luz relacionado a isso?

 

Ficaria muito grato!

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

para aumentar o ganho de xp você pode fazer um creaturescripts para setar um aumento de xp nos players de acordo com o reset deles.

sabe mexer com SQL? é só criar a tabela e inserir as informações nela.
 

Link to comment
Share on other sites

  • 0
Em 28/03/2021 em 02:14, Poccnn disse:

para aumentar o ganho de xp você pode fazer um creaturescripts para setar um aumento de xp nos players de acordo com o reset deles.

sabe mexer com SQL? é só criar a tabela e inserir as informações nela.
 

O problema é que esse comando não está indo para nenhum local na database. Você saberia me dizer como faço pra ir pra uma tabela? Como ficaria o script alterado?

Link to comment
Share on other sites

  • 0
Em 01/04/2021 em 23:52, erasv disse:

O problema é que esse comando não está indo para nenhum local na database. Você saberia me dizer como faço pra ir pra uma tabela? Como ficaria o script alterado?

 

Eu sugiro que tu aprenda SQL.
Como falei anteriormente, tens que ser feito em creaturescripts. 

Edited by Poccnn
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...