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!