Jump to content

Reset System sem Logout


Recommended Posts

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.

Link to comment
Share on other sites

×
×
  • Create New...