-- CONFIGS --
prem = false -- Premium Account necessária para resetar? (true / false)
pz = true -- É preciso estar em Protection Zone para resetar? (true / false)
white = false -- Players com White Skull podem resetar? (true / false)
red = false -- Players com Red Skull podem resetar? (true / false)
black = false -- Players com Black Skull podem resetar? (true / false)
battle = false -- Players com battle podem resetar? (true / false)
teleport = true -- Teleportar o player para o templo após o reset? (true / false)
look = true -- Aparecer resets no look? (true / false)
level = 717217 -- Level necessário para resetar
nlevel = 20000 -- Level que o player ficará após o reset
time = 3 -- Tempo para o player deslogar ao resetar (segundos)
limite = 100 -- Limite de resets (Caso não queira limite, coloque false)
system = "storage" -- Modo do sistema (database / storage)
storage = 39650 -- Storage dos resets
group = 5 -- ID do Group que tem permissão para adicionar resets (6 = god, 5 = cm, 4 = gm, 3 = senior tutor, 2 = tutor)
exhastor = 17138
-- CONFIGS --
------------------------------------------------------------------------------------------------------------------------------------
function getPlayerResets(tid)
if system == "database" then
local a = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..pid..";")
b = a:getDataInt("resets", pid)
return b
elseif system == "storage" then
return getPlayerStorageValue(tid, storage) < 0 and 0 or getPlayerStorageValue(tid, storage)
else
return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")
end
end
function doPlayerAddResets(tid, count)
if system == "database" then
return db.executeQuery("UPDATE `players` SET `resets` = '"..(getPlayerResets(tid)+(count == nil and 1 or count)).."' WHERE `id` = '"..pid.."';")
elseif system == "storage" then
return setPlayerStorageValue(tid, storage, getPlayerResets(tid)+(count == nil and 1 or count))
else
return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")
end
end
function doPlayerReset(tid, count, mid)
if teleport then
doTeleportThing(tid, getTownTemplePosition(getPlayerTown(tid)))
end
local resets = getPlayerResets(tid)
function setResetsInLook(tid)
return db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..(resets+(count == nil and 1 or count)).."]' WHERE `id` = '"..(mid == nil and pid or mid).."';")
end
if system == "database" then
doRemoveCreature(tid)
doPlayerAddResets(tid, count == nil and 1 or count)
elseif system == "storage" then
doPlayerAddResets(tid, count == nil and 1 or count)
doRemoveCreature(tid)
else
return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")
end
db.executeQuery("UPDATE `players` SET `level` = '"..nlevel.."' WHERE `id` = '"..(mid == nil and pid or mid).."';")
if look then
setResetsInLook(tid)
end
end
------------------------------------------------------------------------------------------------------------------------------------
function onSay(cid, words, param)
pid = getPlayerGUID(cid)
if words == "!reset" or words == "!resetar" then
if prem and not isPremium(cid) then
doPlayerSendCancel(cid, "Você precisa ser Premium Account para resetar.") return true
elseif pz and not getTilePzInfo(getCreaturePosition(cid)) then
doPlayerSendCancel(cid, "Você precisa estar em Protection Zone para resetar.") return true
elseif white and getCreatureSkullType(cid) == SKULL_WHITE then
doPlayerSendCancel(cid, "Você precisa estar sem White Skull para resetar.") return true
elseif red and getCreatureSkullType(cid) == SKULL_RED then
doPlayerSendCancel(cid, "Você precisa estar sem Red Skull para resetar.") return true
elseif black and getCreatureSkullType(cid) == SKULL_BLACK then
doPlayerSendCancel(cid, "Você precisa estar sem Black Skull para resetar.") return true
elseif battle and hasCondition(cid, CONDITION_INFIGHT) then
doPlayerSendCancel(cid, "Você precisa estar sem battle para resetar.") return true
elseif getPlayerLevel(cid) < level then
doPlayerSendCancel(cid, "Você precisa ter level "..level.." para resetar.") return true
elseif limite and getPlayerResets(cid) == limite then
doPlayerSendCancel(cid, "Você já está no limite de resets ("..limite..").") return true
elseif exhaustion.check(cid, exhastor) then
doPlayerSendCancel(cid, "Espere "..exhaustion.get(cid, exhastor).." segundos para usar o comando novamente.") return true
end
addEvent(doPlayerReset, time*1000, cid)
doPlayerPopupFYI(cid, "Você resetou com sucesso. Você agora tem "..(getPlayerResets(cid)+1).." resets. Você será deslogad"..(getPlayerSex(cid) >= 1 and "o" or "a").." em "..time.." segundos.")
exhaustion.set(cid, exhastor, time)
elseif words == "/addresets" then
local t = string.explode(param, ",")
if getPlayerGroupId(cid) < group then return false
elseif not t then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parâmetros incorretos. Especifique o nome do player e opcionalmente a quantidade de resets.") return true
elseif not getPlayerByName(t[1]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Player "..t[1].." não encontrado.") return true
elseif t[3] then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parâmetros incorretos. Especifique apenas o nome do player e opcionalmente a quantidade de resets.") return true
end
addEvent(doPlayerReset, time*1000, getPlayerByName(t[1]), t[2] == nil and "1" or t[2], getPlayerGUIDByName(t[1]))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..(t[2] == nil and "1" or t[2]).." resets no player "..getCreatureName(getPlayerByName(t[1]))..". Agora el"..(getPlayerSex(getPlayerByName(t[1])) >= 1 and "e" or "a").." possui "..(getPlayerResets(getPlayerByName(t[1]))+(t[2] == nil and "1" or t[2])).." resets.")
doPlayerPopupFYI(getPlayerByName(t[1]), ""..getCreatureName(cid).." adicionou "..(t[2] == nil and "1" or t[2]).." resets em seu character. Você agora tem "..(getPlayerResets(getPlayerByName(t[1]))+(t[2] == nil and "1" or t[2])).." resets. Você será deslogad"..(getPlayerSex(getPlayerByName(t[1])) >= 1 and "o" or "a").." em "..time.." segundos.")
end
return true
end