Ir para conteúdo

Featured Replies

Postado

Frags System

 

Ola pessoal, sei que tem alguns scripts de frags system no forum, mas eu achei eles um pouco confusos então decidi fazer o meu e venho por meio deste disponibiliza-lo para quem quiser usar, entaão vamos la:

 

Testado em TFS-0.4

 

Passo 1 - Creature Scripts

Em data/creaturescripts/creature.xml cole isso:

<event type="kill" name="frags" event="script" value="frags.lua"/>

Em data/creaturescripts/scripts crie um arquivo chamado frags.lua e cole isto:

function onKill(cid, target)
	if isPlayer(cid) and isPlayer(target) then
		cont = db.getResult('select `frags` from `players` where name = \''..getPlayerName(cid)..'\'')
		db.query("UPDATE `players` SET `frags` = '"..(cont:getDataInt("frags") + 1).."'  WHERE `name` = '"..getPlayerName(cid).."';")
	end
	return true
end 

Passo 2 - Banco de dados

No seu banco de dados vá em SQL, cole isto e execute:

ALTER TABLE  `players` ADD  `frags` INTEGER NOT NULL DEFAULT 0 

Passo 3 - Ranks gesior:

Vá ate a pasta htdocs do seu xampp procure por highscores.php apague o que esta dentro e cole o seguinte codigo:

<?PHP
$list = $_REQUEST['list'];
$page = $_REQUEST['page'];
 
switch($list)
{
case "fist":
$id = 0;
$list_name = 'Fist Fighting';
break;
case "club":
$id = 1;
$list_name = 'Club Fighting';
break;
case "sword":
$id = 2;
$list_name = 'Sword Fighting';
break;
case "axe":
$id = 3;
$list_name = 'Axe Fighting';
break;
case "distance":
$id = 4;
$list_name = 'Distance Fighting';
break;
case "shield":
$id = 5;
$list_name = 'Shielding';
break;
case "fishing":
$id = 6;
$list_name = 'Fishing';
break;
}
if(count($config['site']['worlds']) > 1)
{
foreach($config['site']['worlds'] as $idd => $world_n)
{
if($idd == (int) $_GET['world'])
{
$world_id = $idd;
$world_name = $world_n;
}
}
}
if(!isset($world_id))
{
$world_id = 0;
$world_name = $config['server']['serverName'];
}
$offset = $page * 100;
if(isset($id))
$skills = $SQL->query('SELECT * FROM players, player_skills WHERE players.world_id = '.$world_id.' AND players.deleted = 0 AND players.group_id < '.$config['site']['players_group_id_block'].' AND players.id = player_skills.player_id AND player_skills.skillid = '.$id.' AND players.account_id != 1 ORDER BY value DESC, count DESC LIMIT 101 OFFSET '.$offset);
else
{
if($list == "magic") 
{
$list_name = 'Magic Level';
$skills = $SQL->query('SELECT * FROM players WHERE players.world_id = '.$world_id.' AND players.deleted = 0 AND players.group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY maglevel DESC, manaspent DESC LIMIT 101 OFFSET '.$offset);
}
elseif($list == "frags") 
{
$list_name = 'Fsrags';
$skills = $SQL->query('SELECT * FROM players WHERE players.world_id = '.$world_id.' AND players.deleted = 0 AND players.group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY frags DESC LIMIT 101 OFFSET '.$offset);
}
else
{
$skills = $SQL->query('SELECT * FROM players WHERE players.world_id = '.$world_id.' AND players.deleted = 0 AND players.group_id < '.$config['site']['players_group_id_block'].' AND account_id != 1 ORDER BY level DESC, experience DESC LIMIT 101 OFFSET '.$offset);
$list_name = 'Experience';
$list = 'experience';
}
}
$main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD><TD><CENTER><H2>Ranking for '.$list_name.' on '.$world_name.'</H2></CENTER><BR>';
if(count($config['site']['worlds']) > 1)
{
$main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD>
<FORM ACTION="index.php?subtopic=highscores&list='.$list.'" METHOD=get><INPUT TYPE=hidden NAME=subtopic VALUE=highscores><INPUT TYPE=hidden NAME=list VALUE=experience>
<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>World Selection</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
<TABLE BORDER=0 CELLPADDING=1><TR><TD>World: </TD><TD><SELECT SIZE="1" NAME="world"><OPTION VALUE="" SELECTED>(choose world)</OPTION>';
foreach($config['site']['worlds'] as $id => $world_n)
{
$main_content .= '<OPTION VALUE="'.$id.'">'.$world_n.'</OPTION>';
}
$main_content .= '</SELECT> </TD><TD><INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18>
</TD></TR></TABLE></TABLE></FORM></TABLE><br>';
}
$main_content .= '<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD WIDTH=10% CLASS=whites><B>Rank</B></TD><TD WIDTH=75% CLASS=whites><B>Name</B></TD><TD WIDTH=15% CLASS=whites><b><center>Level</center></B></TD>';
if($list == "experience") 
{
$main_content .= '<TD CLASS=whites><b><center>Points</center></B></TD>';
}
$main_content .= '</TR><TR>';
foreach($skills as $skill)
{
if($number_of_rows < 100)
{
if($list == "magic")
$skill['value'] = $skill['maglevel'];
if($list == "frags")
$skill['value'] = $skill['frags'];
if($list == "experience")
$skill['value'] = $skill['level'];
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>'.($offset + $number_of_rows).'.</td>
<td>'.$flag.'<a href="index.php?subtopic=characters&name='.urlencode($skill['name']).'">'.$skill['name'].'</a>';
#if(count($config['site']['worlds']) > 1)
# $main_content .= ', '.$config['site']['worlds'][$skill['world_id']];
$main_content .= '</small>';
$main_content .= '</td><td>'.$skill['value'].'</td>';
if($list == "experience") 
$main_content .= '<td>'.number_format($skill['experience'],0).'</td>';
$main_content .= '</tr>';
}
else
$show_link_to_next_page = TRUE;
}
if (!$skill){
$main_content .='
<tr bgcolor="'.$config['site']['darkborder'].'">
<td colspan="4" align="center"><i>'.$config['server']['serverName'].' no have players created on database.</i></td>
</tr>
';}
$main_content .= '</TABLE><TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>';
if($page > 0) 
$main_content .= '<TR><TD WIDTH=100% ALIGN=right VALIGN=bottom><A HREF="index.php?subtopic=highscores&list='.$list.'&world='.$world_id.'&page='.($page - 1).'" CLASS="size_xxs">Previous Page</A></TD></TR>';
if($show_link_to_next_page) 
$main_content .= '<TR><TD WIDTH=100% ALIGN=right VALIGN=bottom><A HREF="index.php?subtopic=highscores&list='.$list.'&world='.$world_id.'&page='.($page + 1).'" CLASS="size_xxs">Next Page</A></TD></TR>';
$main_content .= '</TABLE></TD><TD WIDTH=5%><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=1 HEIGHT=1 BORDER=0></TD><TD WIDTH=15% VALIGN=top ALIGN=right>
<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1>
<TR BGCOLOR="'.$config['site']['vdarkborder'].'">
<TD CLASS=whites><B>Choose a skill</B></TD></TR><TR BGCOLOR="'.$config['site']['lightborder'].'"><TD>
<A HREF="index.php?subtopic=highscores&list=frags&world='.$world_id.'" CLASS="size_xs">Frags</A><BR>
<A HREF="index.php?subtopic=highscores&list=experience&world='.$world_id.'" CLASS="size_xs">Experience</A><BR>
<A HREF="index.php?subtopic=highscores&list=magic&world='.$world_id.'" CLASS="size_xs">Magic</A><BR>
<A HREF="index.php?subtopic=highscores&list=shield&world='.$world_id.'" CLASS="size_xs">Shielding</A><BR>
<A HREF="index.php?subtopic=highscores&list=distance&world='.$world_id.'" CLASS="size_xs">Distance</A><BR>
<A HREF="index.php?subtopic=highscores&list=club&world='.$world_id.'" CLASS="size_xs">Club</A><BR>
<A HREF="index.php?subtopic=highscores&list=sword&world='.$world_id.'" CLASS="size_xs">Sword</A><BR>
<A HREF="index.php?subtopic=highscores&list=axe&world='.$world_id.'" CLASS="size_xs">Axe</A><BR>
<A HREF="index.php?subtopic=highscores&list=fist&world='.$world_id.'" CLASS="size_xs">Fist</A><BR>
<A HREF="index.php?subtopic=highscores&list=fishing&world='.$world_id.'" CLASS="size_xs">Fishing</A><BR>
</TD>
</TR>
</TABLE></TD><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD></TR></TABLE>';
?> 

Passo 4 - Caso queira a talkaction !rank frags

Em data/talkactions/talkactions.xml cole (caso nao exista)

<talkaction words="!rank" script="ranks.lua"/>

Vá em data/talkactions/scripts e crie um arquivo chamado ranks.lua (caso não houver) e cole o seguinte codigo

function getPlayerNameByGUID2(n)
local c = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..n..";")
if c:getID() == -1 then
return "SQL_ERROR["..n.."]"
end
return c:getDataString("name")
end
 
function onSay(cid, words, param)
	if param == "" or param == "shield" or param == "dist" or param == "fish" or param == "magic" or param == "sword" or param == "fist" or param == "club" or param == "frags" or param == "distance" or param == "shielding" or param == "fishing" or param == "axe" then
	local max = 20
	local letters_to_next = 20
	 
	local skills = {
	['fist'] = 0,
	['club'] = 1,
	['sword'] = 2,
	['axe'] = 3,
	['distance'] = 4,
	['shielding'] = 5,
	['fishing'] = 6,
	['dist'] = 4,
	['shield'] = 5,
	['fish'] = 6,
	}
	local name_now
	local name = "Highscores\n"
	local rkn = 0
	local no_break = 0
	param = string.lower(param)
	dofile('config.lua')
	if param == "" or param == "level" and ( param ~= "magic" and param == "ml") and skills[param] == nil then
	name = name.."\n"
	name = name.."Rank Level - Nome do Jogador\n"
	local v = db.getResult("SELECT `name`, `level`, `experience` FROM `players` WHERE `group_id` <= 2 ORDER BY `experience` DESC LIMIT 0,"..(max)..";")
	repeat
	no_break = no_break +1
	if v:getID() == -1 then
	break
	end
	rkn = rkn+1
	name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))
	space = ""
	for i=1, letters_to_next-l do
	space = space.." "
	end
	name = name..rkn..". "..v:getDataInt("level") .." - "..name_now..space.." ".."\n"
	if no_break >= 20 then
	break
	end
	until v:next() == false
	 
	elseif param == "magic" or param == "ml" then
	name = name.."\n"
	name = name.."Rank Magic - Nome do Jogador\n"
	local v = db.getResult("SELECT `name`, `level`, `maglevel` FROM `players` WHERE `group_id` <= 2 ORDER BY `maglevel` DESC LIMIT 0,"..(max)..";")
	repeat
	if v:getID() == -1 then
	break
	end
	rkn = rkn+1
	name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))
	space = ""
	for i=1, letters_to_next-l do
	space = space.." "
	end
	name = name..rkn..". "..v:getDataInt("maglevel").." - "..name_now..space.." ".." ".."".."\n"
	until v:next() == false

	elseif param == "frag" or param == "frags" then
	name = name.."\n"
	name = name.."Rank Frags - Nome do Jogador\n"
	local v = db.getResult("SELECT `name`, `frags` FROM `players` WHERE `group_id` <= 2 ORDER BY `frags` DESC LIMIT 0,"..(max)..";")
	repeat
	if v:getID() == -1 then
	break
	end
	rkn = rkn+1
	name_now, l = v:getDataString("name"), string.len(v:getDataString("name"))
	space = ""
	for i=1, letters_to_next-l do
	space = space.." "
	end
	name = name..rkn..". "..v:getDataInt("frags").." - "..name_now..space.." ".." ".."".."\n"
	until v:next() == false
	 
	elseif skills[param] ~= nil then
	name = name.."\n"
	name = name.."Rank "..param.." fighting - Nome do Jogador\n"
	local v = db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..skills[param].." ORDER BY `value` DESC;")
	local kk = 0
	 
	repeat
	if kk == max or v:getID() == -1 then
	break
	end
	kk = kk+1
	name_now, l = getPlayerNameByGUID2(v:getDataInt("player_id")), string.len(getPlayerNameByGUID2(v:getDataInt("player_id")))
	space = ""
	for i=1, letters_to_next-l do
	space = space.." "
	end
	 
	if name_now == nil then
	name_now = 'sql error['..v:getDataInt("player_id")..']'
	end
	name = name..kk..". "..v:getDataInt("value").." - "..name_now..space.." \n"
	until v:next() == false
	end
	if name ~= "Highscore\n" then
	doPlayerPopupFYI(cid, name)
	end
 	else
 		return TRUE
 	end
return TRUE
end 

 

Pronto, acabamos de instalar o script no server.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo