Este é o já conhecido reset system na sua melhor versão, a configuração está toda centralizada:
local config = {
level_remain= 8, — Level para o qual será resetado o personagem
exp_remain= 9300, — Experiência que o personagem voltará a ter
levels_reset= {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000} — Leveis de reset na ordem ex. 1000 — reset 1, 2000 — reset 2
}
Desenvolvido para funcionar com TFS 0.4, versão 8.60.
Para iniciarmos a instalação crie um arquivo chamado reset.lua em sua pasta data/talkactions/scripts:
local config = {
level_remain= 8,
exp_remain= 9300,
levels_reset= {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000}
}
function onSay(cid, words, param, channel)
local player_id = getPlayerGUID(cid)
if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.")
return TRUE
end
local resets = getPlayerResets(cid)
if (getPlayerLevel(cid) >= config.levels_reset[resets+1]) then
setPlayerReset(cid)
else
doPlayerSendTextMessage(cid,22,"Voce nao tem level minimo para o reset.")
end
return true
end
function getPlayerResets()
local reset
local consulta = db.getResult("SELECT `reset` FROM `players` WHERE `id` = "..player_id..";")
if (consulta:getID() ~= -1) then
reset = tonumber(consulta:getDataInt('reset'))
else
return 0
end
return reset
end
function setPlayerReset(cid)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
while (isPlayer(cid)) do
doRemoveCreature(cid)
end
db.query("UPDATE `players` SET `level` = "..config.level_remain..", `experience` = "..config.exp_remain..", `reset` = `reset`+1 WHERE `id` = "..player_id..";")
return true
end
Agora insira a tag xml no arquivo talkactions.xml, na pasta data/talkactions:
<talkaction words="/reset" event="script" value="reseting.lua"/>
Para que a página web possa funcionar precisamos alterar a tabela no banco de dados, para isto execute o SQL query:
ALTER TABLE `players` add `reset` INT NOT NULL;
Basta agora adicionar a página web ao seu menu no site gesior e depois criar o arquivo reset.php:
<?php $limitt = 100; $zap = $SQL->query('SELECT * 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><h1>Reset Ranking</h1></center> <div class="TableContainer"> <div class="CaptionContainer"> <div class="CaptionInnerContainer"> <span class="CaptionEdgeLeftTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span> <span class="CaptionEdgeRightTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span> <span class="CaptionBorderTop" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span> <span class="CaptionVerticalLeft" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span> <div class="Text">Informacoes</div> <span class="CaptionVerticalRight" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span> <span class="CaptionBorderBottom" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span> <span class="CaptionEdgeLeftBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span> <span class="CaptionEdgeRightBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span> </div> </div> <table class="Table1" cellpadding="0" cellspacing="0"> <tbody><tr> <td> <div class="InnerTableContainer"> <table width="100%"> <tbody> <tr style="background-color:#af2126;"> <td class="LabelV150"><b><font color="white">#</font></b></td> <td class="LabelV150"><b><font color="white">Descricao</font></b></td> </tr> <tr style="background-color:'.$config['site']['lightborder'].';"> <td> Como resetar? </td> <td> Utilize o comando "/reset", com o level minimo necessario para o reset. </td> </tr> </tbody></table> </div> </td> </tr> </tbody></table> </div> </br></br> <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> '; ?>