• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

PHP Scripters LOOK AT THIS!

Zonet

Web Developer
Joined
Sep 1, 2008
Messages
4,393
Reaction score
52
Location
Tibia VS RL-life, guess whos back?
Here's my script, it shows the VIP stats how many onlines total VIP etc.. VIP = premium

here is it.. i need it to work with ALPHA! HELP!

PHP:
<?php 
$vipPlayers = 0; 
$vipOnlinePlayers = 0; 
$players = new OTS_Players_List(); 
echo '<table border="0" cellspacing="1" cellpadding="4" width="100%">'; 
echo '<tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>'; 
foreach($players as $index => $player) 
{ 
    $account = $player->getAccount(); 
    if($account->getCustomField('premdays') > 0) 
    { 
        $vipPlayers++; 
        if($player->getCustomField('online') > 0) 
        { 
            $vipOnlinePlayers++; 
            $bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
            echo '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.$player->getName().'">'.$player->getName().'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
        } 
    } 
} 
echo '</table'; 

echo '<br/>'; 

echo '<table border="0" cellspacing="1" cellpadding="4" width="100%">'; 
    echo '<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>'; 
    echo '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are'.$vipPlayers.'</td>VIP player on my servername</tr>'; 
    echo '<tr bgcolor="'.$config['site']['darkborder'].'"><td>Currently<b>'.$vipOnlinePlayers.'</b>VIP players online</td></tr>'; 
echo '</table'; 
?>
 
Last edited:
Here's my script, it shows the VIP stats how many onlines total VIP etc.. VIP = premium

here is it.. i need it to work with ALPHA! HELP!
Try this if you use MySQL (i'm not sure about SQLite) [tested with newest acc. maker, work if you use this code as subpage in acc. maker ( $main_content .= )]:
PHP:
<?php
$vipPlayers = 0;
$vipOnlinePlayers = 0;
$players = $SQL->query('SELECT `players`.`name`,`players`.`online`,`players`.`level`,`players`.`vocation`,`players`.`promotion`,`accounts`.`premdays`,`accounts`.`lastday` FROM `accounts`, `players` WHERE `players`.`account_id` = `accounts`.`id` AND `players`.`deleted` = 0 AND `accounts`.`premdays` > 0 ORDER BY `name`');
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>';
foreach($players as $player)
	if(isPremium($player['premdays'], $player['lastday'])) //check 'is it really premium account'
	{
		$vipPlayers++; 
		if($player['online'] > 0)
		{
			$vipOnlinePlayers++; 
			$bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
			$main_content .= '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
		}
	}
$main_content .= '</table><br/>
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are <b>'.$vipPlayers.'</b> VIP player(s) on my servername.</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td>Currently <b>'.$vipOnlinePlayers.'</b> VIP player(s) online.</td></tr>
</table'; 
?>
 
Last edited:
"Who is online?" + VIP players counter, players with vip are first at list.
PHP:
<?php
$playersOnline = 0;   
$vipPlayers = 0;
$vipOnlinePlayers = 0;
$players = $SQL->query('SELECT `players`.`name`,`players`.`online`,`players`.`level`,`players`.`vocation`,`players`.`promotion`,`accounts`.`premdays`,`accounts`.`lastday` FROM `accounts`, `players` WHERE `players`.`account_id` = `accounts`.`id` AND `players`.`deleted` = 0 ORDER BY `name`');
foreach($players as $player)
{
	$bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
    if(isPremium($player['premdays'], $player['lastday'])) //check 'is it really premium account'
    {
        $vipPlayers++; 
        if($player['online'] > 0)
        {
			$playersOnline++;
            $vipOnlinePlayers++; 
            $premium_list .= '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
        }
    }
	elseif($player['online'] > 0)
	{
		$playersOnline++;
		$facc_list .= '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
	}
}
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are <b>'.$vipPlayers.'</b> VIP player(s) on my servername.</td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are <b>'.playersOnline.'</b> ( <b>'.$vipOnlinePlayers.'</b> with VIP account) player(s) online on my servername.</td></tr>
</table>'; 
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>'.$pacc_list.$facc_list.'</table><br/>';
?>
 
I maked this script for you some time ago, i forgot to send you newest version. ;x
PHP:
<?php 
$vipPlayers = 0; 
$vipOnlinePlayers = 0; 
$players = new OTS_Players_List(); 
foreach($players as $index => $player) 
{ 
    $account = $player->getAccount(); 
    if($account->getCustomField('premdays') > 0) 
    { 
        $vipPlayers++; 
        if($player->getCustomField('online') > 0) 
        { 
            $vipOnlinePlayers++; 
            $bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
            $vipList = '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.$player->getName().'">'.$player->getName().'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
        } 
    } 
} 
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">'; 
    $main_content .= '<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>'; 
    $main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are'.$vipPlayers.'</td>VIP player on my servername</tr>'; 
    $main_content .= '<tr bgcolor="'.$config['site']['darkborder'].'"><td>Currently<b>'.$vipOnlinePlayers.'</b>VIP players online</td></tr>'; 
$main_content .= '</table><br/>'; 
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">'; 
    $main_content .= '<tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>';
    $main_content .= $vipList;
$main_content .= '</table>'; 
?>
 
PHP:
$players = new OTS_Players_List(); 
foreach($players as $index => $player) 
{ 
    $account = $player->getAccount();
With 20,000 players in database it will load....
PHP:
$accounts = OTS_Account_List();
foreach($accounts as $account)
   echo $account->getId();
13,000 accounts in database, 2x2.53GHz, 2 GB ram, load time: 3.5 seconds
If you load OTS_Players_List() [12.500 players in db] and then use $player->getAccount() for every player.. 12.500 queries to mysql?
---------------
Razor script...
Players: 12.500, Accounts: 12.000
Load time: 13.8933 seconds, 14.0543 seconds, 13.4786 seconds (2x2.33GHz, 2 gb ram)
---------------
My script from last post:
Load time: 4.7375 seconds
--------------
New script (stats are above vip players list):
PHP:
<?php
$vipPlayers = 0;
$vipOnlinePlayers = 0;
$players = $SQL->query('SELECT `players`.`name`,`players`.`online`,`players`.`level`,`players`.`vocation`,`players`.`promotion`,`accounts`.`premdays`,`accounts`.`lastday` FROM `accounts`, `players` WHERE `players`.`account_id` = `accounts`.`id` AND `players`.`deleted` = 0 AND `accounts`.`premdays` > 0 ORDER BY `name`');
foreach($players as $player)
    if(isPremium($player['premdays'], $player['lastday'])) //check 'is it really premium account'
    {
        $vipPlayers++; 
        if($player['online'] > 0)
        {
            $vipOnlinePlayers++; 
            $bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
            $players_list .= '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
        }
    }
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are <b>'.$vipPlayers.'</b> VIP player(s) on my servername.</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td>Currently <b>'.$vipOnlinePlayers.'</b> VIP player(s) online.</td></tr>
</table><br /><table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>'.$players_list .'</table><br/>';
?>
Load time: 0.0583 seconds

Decide what you need :D
 
if you load ots_players_list() [12.500 players in db] and then use $player->getaccount() for every player.. 12.500 queries to mysql?
---------------
razor script...
Players: 12.500, accounts: 12.000
load time: 13.8933 seconds, 14.0543 seconds, 13.4786 seconds (2x2.33ghz, 2 gb ram)
---------------
my script from last post:
Load time: 4.7375 seconds
load time: 0.0583 seconds

decide what you need :d

hahahaha.
 
PHP:
$players = new OTS_Players_List(); 
foreach($players as $index => $player) 
{ 
    $account = $player->getAccount();
With 20,000 players in database it will load....
PHP:
$accounts = OTS_Account_List();
foreach($accounts as $account)
   echo $account->getId();
13,000 accounts in database, 2x2.53GHz, 2 GB ram, load time: 3.5 seconds
If you load OTS_Players_List() [12.500 players in db] and then use $player->getAccount() for every player.. 12.500 queries to mysql?
---------------
Razor script...
Players: 12.500, Accounts: 12.000
Load time: 13.8933 seconds, 14.0543 seconds, 13.4786 seconds (2x2.33GHz, 2 gb ram)
---------------
My script from last post:
Load time: 4.7375 seconds
--------------
New script (stats are above vip players list):
PHP:
<?php
$vipPlayers = 0;
$vipOnlinePlayers = 0;
$players = $SQL->query('SELECT `players`.`name`,`players`.`online`,`players`.`level`,`players`.`vocation`,`players`.`promotion`,`accounts`.`premdays`,`accounts`.`lastday` FROM `accounts`, `players` WHERE `players`.`account_id` = `accounts`.`id` AND `players`.`deleted` = 0 AND `accounts`.`premdays` > 0 ORDER BY `name`');
foreach($players as $player)
    if(isPremium($player['premdays'], $player['lastday'])) //check 'is it really premium account'
    {
        $vipPlayers++; 
        if($player['online'] > 0)
        {
            $vipOnlinePlayers++; 
            $bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
            $players_list .= '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
        }
    }
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are <b>'.$vipPlayers.'</b> VIP player(s) on my servername.</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td>Currently <b>'.$vipOnlinePlayers.'</b> VIP player(s) online.</td></tr>
</table><br /><table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>'.$players_list .'</table><br/>';
?>
Load time: 0.0583 seconds

Decide what you need :D
Gesior you forgot about this, "Best and very fast vip list by Gesior"
I can touch you? Please.
Bueheehehe
 
Last edited:
you can't it's php script there no are storage values:P
Actually, you couldn't be more wrong. ; ) All the storages are saved inside a table called player_storage. So it IS possible to extract any storage value of your choice.
 
I'd love to, but as I wrote in another topic earlier today - you are using gesior's AAC system, which I believe is coded in an ugly way (not speaking of POT, which I haven't had the time/stamina to look through yet). Therefor it would be rather hard for me to do such.

Best would be to either contact gesior or wrzasq himself. Good luck mate.
 
PHP:
$players = new OTS_Players_List(); 
foreach($players as $index => $player) 
{ 
    $account = $player->getAccount();
With 20,000 players in database it will load....
PHP:
$accounts = OTS_Account_List();
foreach($accounts as $account)
   echo $account->getId();
13,000 accounts in database, 2x2.53GHz, 2 GB ram, load time: 3.5 seconds
If you load OTS_Players_List() [12.500 players in db] and then use $player->getAccount() for every player.. 12.500 queries to mysql?
---------------
Razor script...
Players: 12.500, Accounts: 12.000
Load time: 13.8933 seconds, 14.0543 seconds, 13.4786 seconds (2x2.33GHz, 2 gb ram)
---------------
My script from last post:
Load time: 4.7375 seconds
--------------
New script (stats are above vip players list):
PHP:
<?php
$vipPlayers = 0;
$vipOnlinePlayers = 0;
$players = $SQL->query('SELECT `players`.`name`,`players`.`online`,`players`.`level`,`players`.`vocation`,`players`.`promotion`,`accounts`.`premdays`,`accounts`.`lastday` FROM `accounts`, `players` WHERE `players`.`account_id` = `accounts`.`id` AND `players`.`deleted` = 0 AND `accounts`.`premdays` > 0 ORDER BY `name`');
foreach($players as $player)
    if(isPremium($player['premdays'], $player['lastday'])) //check 'is it really premium account'
    {
        $vipPlayers++; 
        if($player['online'] > 0)
        {
            $vipOnlinePlayers++; 
            $bgcolor = ($vipOnlinePlayers % 2) ? $config['site']['darkborder'] : $config['site']['lightborder']; 
            $players_list .= '<tr bgcolor="'.$bgcolor.'"><td><a href=index.php?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[$player['promotion']][$player['vocation']].'</TD></TR>';
        }
    }
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td><b><font color="white">Stats</font></b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are <b>'.$vipPlayers.'</b> VIP player(s) on my servername.</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td>Currently <b>'.$vipOnlinePlayers.'</b> VIP player(s) online.</td></tr>
</table><br /><table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="70%"><b><font color="white">Name</font></b></td><td width="10%"><b><font color="white">Level</font></b></td><td width="20%"><b><font color="white">Vocation</font></b></td></tr>'.$players_list .'</table><br/>';
?>
Load time: 0.0583 seconds

Decide what you need :D

What have you to prove with it? :) Razor haven't says anywhere "Look my script is better than your!" ... so why u post that shitty bechmark, also first on other computer, second on next. POT is not really fast library, Wrzasq haven't project good enought it. Ouuu... please, learn to write nice and clean code, seriously.
 
Back
Top