• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[Gesior Acc][CreatureEvent] Kill Statistics like real Tibia.com [TFS 0.3.5]

QuaS

Cykotitan Pwned =/
Joined
Sep 11, 2008
Messages
838
Reaction score
28
Location
Poland/ Wroclaw
Hello i would like to show you Kill Statistics (monsters).

I think about it:

2yy5l6h.jpg


So let's go.

Open killstatistics.php in htdocs/

Put there:

PHP:
<?PHP
//CONFIG
$mysql_user = "user";
$mysql_pass = "password";
$mysql_database = "database";
$mysql_host = "localhost";
//END OF CONFIG


$numberlist = 0;
$timenow = time();
$dayago = $timenow - 86400;
$weekago = $timenow - (86400 * 7);

mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die ("Could not connect to a MySQL server");
mysql_select_db($mysql_database);
$deaths_data = mysql_query('SELECT name FROM environment_killers;');
$data1 = mysql_fetch_assoc($deaths_data);
$x = 100;
$x1 = $x/6;
$x2 = $x/3;
$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'> <TD CLASS=white width="'.$x2.'%"></TD><TD CLASS=white width="'.$x2.'%" colspan=2><B><font color="'.$config['site']['lightborder'].'">Last Day</B></TD><TD CLASS=white width="'.$x2.'%" colspan=2><B><font color="'.$config['site']['lightborder'].'">This Week</B></TD></TR>';
$main_content .= '<TR BGCOLOR='.$config['site']['vdarkborder'].'> <TD><B><font color="'.$config['site']['lightborder'].'">Race</B></TD><TD><B><font color="'.$config['site']['lightborder'].'">Killed Players</B></TD><TD><B><font color="'.$config['site']['lightborder'].'">Killed by Players</B></TD><TD><B><font color="'.$config['site']['lightborder'].'">Killed Players</B></TD><TD><B><font color="'.$config['site']['lightborder'].'">Killed by Players</B></TD></TR>';
$delete_old = $SQL->query('SELECT * FROM killed_monsters where date < '.$weekago.';');
if(!empty($delete_old))
{
	foreach($delete_old as $del)
	{
	$old = $del['date'];
	if ($old < $weekago)
	{
	mysql_query('DELETE FROM `killed_monsters` WHERE id = '.$del['id'].';');
	}
	}
}

if(!empty($deaths_data))
$available_monsters = $SQL->query('SELECT name FROM z_monsters GROUP by name;');
{

	foreach($available_monsters as $monstrums)
	{
	
	/* Killed Players By Monsters  Daily */
	$killers_monsters = mysql_query('SELECT COUNT(name) as liczba FROM environment_killers,player_deaths,killers where player_deaths.id = killers.death_id and killers.id = environment_killers.kill_id and name LIKE "%'.$monstrums[name].'" and date > '.$dayago.';');
	$count1 = mysql_fetch_assoc($killers_monsters);
	$count = $count1['liczba'];
	
	/* Killed Players By Monsters Weekly */
	$killers_monsters1 = mysql_query('SELECT COUNT(name) as liczba FROM environment_killers,player_deaths,killers where player_deaths.id = killers.death_id and killers.id = environment_killers.kill_id and name LIKE "%'.$monstrums[name].'" and date > '.$weekago.';');
	$count3 = mysql_fetch_assoc($killers_monsters1);
	$count2 = $count3['liczba'];
	
	/* Killed Monsters By Players Weekly */
	$player_killers = mysql_query('SELECT COUNT(name) as liczba FROM killed_monsters where name LIKE "%'.$monstrums[name].'" and date > '.$weekago.';');
	$count5 = mysql_fetch_assoc($player_killers);
	$count4 = $count5['liczba'];
	
	/* Killed Monsters By Players Daily */
	$player_killers1 = mysql_query('SELECT COUNT(name) as liczba FROM killed_monsters where name LIKE "%'.$monstrums[name].'" and date > '.$dayago.';');
	$count7 = mysql_fetch_assoc($player_killers1);
	$count6 = $count7['liczba'];
	
	$displayday_kp = 0;
	$displayweek_kp = 0;
	$displayday_pk = 0;
	$displayweek_pk = 0;
	
	if ($count == 0)
	{
	$displayday_kp = 0;
	}
	else
	{
	$displayday_kp = 1;
	}
	
	if ($count2 == 0)
	{
	$displayweek_kp = 0;
	}
	else
	{
	$displayweek_kp = 1;
	}
	
	if ($count4 == 0)
	{
	$displayweek_pk = 0;
	}
	else
	{
	$displayweek_pk = 1;
	}
	
	if ($count6 == 0)
	{
	$displayday_pk = 0;
	}
	else
	{
	$displayday_pk = 1;
	}
	if (($displayday_kp == 1) or ($displayweek_kp == 1) or ($displayweek_pk == 1) or ($displayday_pk == 1))
	{
		if(!empty($killers_monsters))
		{
		$numberlist++;
		if(is_int($numberlist / 2))
		{
			$bgcolor = $config['site']['darkborder'];
		}
		else
		{
			$bgcolor = $config['site']['lightborder'];
		}
		// By QuaS~
		$main_content .= '<TR BGCOLOR='.$bgcolor.'> <TD><B><font CLASS = "white">'.$monstrums[name].'</B></TD><TD><B><font CLASS = "white">'.$count.'</B></TD><TD><B><font CLASS = "white">'.$count6.'</B></TD><TD><B><font CLASS = "white">'.$count2.'</B></TD><TD><B><font CLASS = "white">'.$count4.'</B></TD></TR>';

		}
	}		
		
		}
		}
	
$main_content .= '</TABLE>';
?>

Important!
Configure this part:
PHP:
//CONFIG
$mysql_user = "user";
$mysql_pass = "password";
$mysql_database = "database";
$mysql_host = "localhost";
//END OF CONFIG

Save File.

Enter ots_path/data/creatureevents/scripts

Create file counter.lua. Put there:
Lua:
function onKill(cid, target, lastHit)
local monster = getCreatureName(target)
if isMonster(target) == TRUE then
	db.executeQuery("INSERT INTO killed_monsters (`name`, `date`) VALUES\n('".. monster .."',".. os.time() ..");")

	end
	return TRUE
end

Open login.lua. put there before "return true":
Lua:
registerCreatureEvent(cid, "Counter")

now open creatureevents.xml and put there:
Lua:
<event type="kill" name="Counter" script="counter.lua"/>


And Last Step. Enter Ur Database and Click "SQL". Paste and execute There:
PHP:
CREATE TABLE killed_monsters 
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
date BIGINT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE = InnoDB


And That IS All.. IT should work [only TFS 0.3.5!]

Rep me if u like it;)

QuaS~
 
Last edited by a moderator:
fail, do not use this if you have many players on server!
Code:
db.executeQuery!!!!

better solution would be using storages ;p
 
no. i think it won't lagg server, cuz in one moments there are many queries executed by engine, so 2 - 10 more is no diffrence.
 
It will lagg.

I had fountain on serv that say what monsters has been killed recently (1-2 sec ago) and it was so spammed at 100 players, so imagine how many queries would that be.
 
It will lagg.

I had fountain on serv that say what monsters has been killed recently (1-2 sec ago) and it was so spammed at 100 players, so imagine how many queries would that be.

Script by chojra; ]
 
Its nice but it will lagg like fuck + a lot of db queries isnt recommended for the stability of tfs
 
I make new Topic Kill Statistics and have error

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\counter.php on line 18

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\counter.php on line 41


????
 
Back
Top