Script para sistema de Resets usando MySQL

erasv
Por erasv
em Scripts

erasv

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/03/21Posts: 2

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!

 

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino

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.
 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."

erasv

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/03/21Posts: 2
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?

Poccnn

Enquanto houver armas no mundo, haverá guerra!
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 07/03/16Posts: 1418Gênero: Masculino
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. 

"Deus é amor, mas matou 99,99999% de todos os seres viventes do mundo com o diluvio.

Deus é misericórdia, mas condena as pessoas ao tormento eterno do inferno.

Deus é pai, mas abandonou seus filhos a servidão.

Deus é vida, mas condenou a humanidade a morte.

Deus é o senhor. Senhor das guerras, da morte, do ódio.

 

Ninguém que ame a humanidade, mataria 99,99999% da população, não só de humanos, bem como dos demais animais, por amor. Isso não é amor, é doença, psicose de um sádico que gosta de ver sua 'criação' sofrer e ainda quer 'pagar' de misericordioso, de deus amor.

 

Não quero seu amor; não quero sua misericórdia, não quero ser seu filho, não quero sua vida, não quero que seja meu senhor.

Tu és um psicótico, doente, hipócrita, assassino; não me venha querer se passar por bondoso, amoroso, misericordioso."