Olá pessoal do XTibia, tudo na boa? Após pesquisar muito não consegui encontrar um sistema de reset para usar no servidor de nosso cliente Demolidores então decidi fazer a junção de alguns sistemas e montei também um ranking para Gesior.
Chega de blá blá blá e vamos direto ao script.
1°- Adicione a tag em seu "talkactions.xml";
<talkaction words="!resetar;!reset" event="script" value="reseting.lua"/>
2°- Adicione o arquivo "reseting.lua" ao diretório "/data/talkactions/scripts/";
function onSay(cid, words, param, channel)
config = {
RemainingLvl=8,
exper=4200,
pid=getPlayerGUID(cid),
batle="yes"
}
function getPlayerResets(cid)
resets = getPlayerStorageValue(cid,1021)
if resets < 0 then
resets = 0
end
return resets
end
if (config.batle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.")
return TRUE
end
if (getPlayerStorageValue(cid, 11548) >= os.time()) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"Por medidas de segurança você só pode utilizar este comando em " .. (getPlayerStorageValue(cid, 11548)-os.time()+(0)) .. " segundos.")
return TRUE
end
local healthMax, manaMax = getCreatureMaxHealth(cid), getCreatureMaxMana(cid)
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 85 and getPlayerResets(cid) == 15 then
if getPlayerLevel(cid) >= 16000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 16000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 80 and getPlayerResets(cid) == 14 then
if getPlayerLevel(cid) >= 15000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 15000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 70 and getPlayerResets(cid) == 13 then
if getPlayerLevel(cid) >= 14000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 14000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 65 and getPlayerResets(cid) == 12 then
if getPlayerLevel(cid) >= 13000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 13000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 60 and getPlayerResets(cid) == 11 then
if getPlayerLevel(cid) >= 12000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 12000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 55 and getPlayerResets(cid) == 10 then
if getPlayerLevel(cid) >= 11000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 11000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 50 and getPlayerResets(cid) == 9 then
if getPlayerLevel(cid) >= 10000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 10000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 45 and getPlayerResets(cid) == 8 then
if getPlayerLevel(cid) >= 9000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 9000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 40 and getPlayerResets(cid) == 7 then
if getPlayerLevel(cid) >= 8000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 8000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 35 and getPlayerResets(cid) == 6 then
if getPlayerLevel(cid) >= 7000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 7000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 30 and getPlayerResets(cid) == 5 then
if getPlayerLevel(cid) >= 6000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 6000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 25 and getPlayerResets(cid) == 4 then
if getPlayerLevel(cid) >= 5000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 5000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 20 and getPlayerResets(cid) == 3 then
if getPlayerLevel(cid) >= 4000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 4000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 15 and getPlayerResets(cid) == 2 then
if getPlayerLevel(cid) >= 3000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 3000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 10 and getPlayerResets(cid) == 1 then
if getPlayerLevel(cid) >= 2000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 2000 ou mais para poder resetar.")
end
end
----------------------------------------------------------------------------------------------------------------------------------------
if getPlayerStorageValue(cid,1021) < 5 and getPlayerResets(cid) == 0 then
if getPlayerLevel(cid) >= 1000 then
setPlayerStorageValue(cid,1021,getPlayerResets(cid)+1)
setPlayerStorageValue(cid,11548,os.time()+30)
doPlayerAddLevel(cid, config.RemainingLvl)
setCreatureMaxHealth(cid, healthMax)
setCreatureMaxMana(cid, manaMax)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREWORK_RED)
db.executeQuery("UPDATE `players` SET `reset` = `reset` + 1 WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid,"Você precisa ter level 1000 ou mais para poder resetar.")
end
end
return true
end
3°- Execute a query SQL para criar a coluna "reset" no banco de dados Mysql;
ALTER TABLE `players` ADD `reset` BIGINT(255) NOT NULL DEFAULT '0';
4°- Configure o "index.php" do seu Gesior para receber a página PHP;
<?php
$limitt = 100;
$zap = $SQL->query('SELECT `name`,`level`, `reset` FROM `players` WHERE `group_id` < '.$config['site']['players_group_id_block'].' AND `name` != "Account Manager" ORDER BY `reset` DESC, `level` DESC LIMIT 100;');
$number_of_rows = 0;
$main_content .= '
<center><h2>Reset Ranking</h2></center>
<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>
<tr bgcolor="#af2126">
<td><font color="white">Nome</font></td>
<td><font color="white">Reset</font></td>
<td><font color="white">Level</font></td>
</tr>
';
foreach($zap as $wynik) {
if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; }
$number_of_rows++;
$main_content .= '
<tr bgcolor="'.$bgcolor.'">
<td>
<a href="index.php?subtopic=characters&name='.urlencode($wynik['name']).'">
<b> '.$wynik['name'].' </b></a>
</td>
<td>
'.$wynik['reset'].'
</td>
<td>
'.$wynik['level'].'
</td>
</tr>
';
}
$main_content .= '
</tr>
</table>';
?>
Seria basicamente isto, espero que possa ter contribuído com alguém. Para alterar o numero de resets permitidos é só remover ou adicionar as linhas.




