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>
	';
?>

LEAVE A REPLY

Please enter your comment!
Please enter your name here