Ir para conteúdo
  • 0

Script para sistema de Resets usando MySQL


erasv

Pergunta

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 para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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. 

Editado por Poccnn
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...