[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/**
* This API connects directly to the server, without any need for any
* middlemen connections.
* Your server must have fsockopen enabled in order to access the
* functions that have been made available from this.
*
* @package sampAPI
* @version 1.2
* @author David Weston <westie@typefish.co.uk>
* @copyright 2010; http://www.typefish.co.uk/licences/
*/[/COLOR]
[URL="http://www.php.net/class"]class[/URL] SampQueryAPI
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]/**
* @ignore
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #0000BB]$rSocket[/COLOR] [COLOR= #007700]=[/COLOR] false[COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/**
* @ignore
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #0000BB]$aServer[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[COLOR= #FF8000]/**
* Creation of the server class.
*
* @param string $sServer Server IP, or hostname.
* @param integer $iPort Server port
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] __construct[COLOR= #007700]([/COLOR][COLOR= #0000BB]$sServer[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iPort[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]7777[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #FF8000]/* Fill some arrays. */[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$sServer[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$iPort[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/* Start the connection. */[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/fsockopen"]fsockopen[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]udp://[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$iError[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$sError[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700]] =[/COLOR] false[COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/socket_set_timeout"]socket_set_timeout[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]SAMP[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] &[/COLOR] [COLOR= #0000BB]0xFF[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] >>[/COLOR] [COLOR= #0000BB]8[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0xFF[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]p4150[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/fwrite"]fwrite[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$sPacket[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]))
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]5[/COLOR][COLOR= #007700]) ==[/COLOR] [COLOR= #DD0000]p4150[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700]] =[/COLOR] true[COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL][COLOR= #007700];
}
}[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700]] =[/COLOR] false[COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* @ignore
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] __destruct[COLOR= #007700]()
{
@[/COLOR][URL="http://www.php.net/fclose"]fclose[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Used to tell if the server is ready to accept queries.
*
* If false is returned, then it is suggested that you remove the
* class from active use, so that you can reload the class if needs
* be.
*
* @return bool true if success, false if failure.
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] isOnline[COLOR= #007700]()
{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700]]) ?[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]4[/COLOR][COLOR= #007700]] :[/COLOR] false[COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* This function is used to get the server information.
*
* FORUMCODE0
*
* @return array Array of server information.
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] getInfo[COLOR= #007700]()
{
@[/COLOR][URL="http://www.php.net/fwrite"]fwrite[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]createPacket[COLOR= #007700]([/COLOR][COLOR= #DD0000]i[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]11[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]password[/COLOR][COLOR= #007700]] = (integer)[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]players[/COLOR][COLOR= #007700]] = (integer)[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]toInteger[COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]maxplayers[/COLOR][COLOR= #007700]] = (integer)[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]toInteger[COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700])[/COLOR] [URL="http://www.php.net/return"]return[/URL] [COLOR= #007700]-[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]hostname[/COLOR][COLOR= #007700]] = (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]gamemode[/COLOR][COLOR= #007700]] = (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]mapname[/COLOR][COLOR= #007700]] = (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* This function gets a basic list of all the players on the server.
*
* Note as of 0.3.0, the amount of players that can be retrieved is
* limited to 100. This means if there are more players than 100,
* then no data will be returned, and it will be a blank array.
*
* FORUMCODE1
*
* @return array Array of player information.
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] getBasicPlayers[COLOR= #007700]()
{
@[/COLOR][URL="http://www.php.net/fwrite"]fwrite[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]createPacket[COLOR= #007700]([/COLOR][COLOR= #DD0000]c[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]11[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$iPlayerCount[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$iPlayerCount[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$iIndex[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$iIndex[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$iPlayerCount[/COLOR][COLOR= #007700]; ++[/COLOR][COLOR= #0000BB]$iIndex[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][] =[/COLOR] [URL="http://www.php.net/array"]array[/URL]
[COLOR= #007700]([/COLOR]
[COLOR= #DD0000]"nickname"[/COLOR] [COLOR= #007700]=> (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]),[/COLOR]
[COLOR= #DD0000]"score"[/COLOR] [COLOR= #007700]=> (integer)[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]toInteger[COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700])),
);
}
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* This function gets a detailed list of all the players on the server.
*
* Note as of 0.3.0, the amount of players that can be retrieved is
* limited to 100. This means if there are more players than 100,
* then no data will be returned, and it will be a blank array.
*
* FORUMCODE2
*
* @return array Array of player information.
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] getDetailedPlayers[COLOR= #007700]()
{
@[/COLOR][URL="http://www.php.net/fwrite"]fwrite[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]createPacket[COLOR= #007700]([/COLOR][COLOR= #DD0000]d[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]11[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$iPlayerCount[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$iIndex[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$iIndex[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$iPlayerCount[/COLOR][COLOR= #007700]; ++[/COLOR][COLOR= #0000BB]$iIndex[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$aPlayer[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]playerid[/COLOR][COLOR= #007700]] = (integer)[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aPlayer[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]nickname[/COLOR][COLOR= #007700]] = (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$aPlayer[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]score[/COLOR][COLOR= #007700]] = (integer)[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]toInteger[COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aPlayer[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]ping[/COLOR][COLOR= #007700]] = (integer)[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]toInteger[COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$aPlayer[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/unset"]unset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$aPlayer[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* This function gets all the server rules from the server.
*
* Rules in this context are not player rules, they are client rules,
* like the weather of the server, time, and so on. (Custom rules,
* when supported by a SA-MP plugin, will be included here.)
*
* FORUMCODE3
*
* @return array Array of server rules.
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] getRules[COLOR= #007700]()
{
@[/COLOR][URL="http://www.php.net/fwrite"]fwrite[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]createPacket[COLOR= #007700]([/COLOR][COLOR= #DD0000]r[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]11[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$iRuleCount[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aReturn[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$iIndex[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$iIndex[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$iRuleCount[/COLOR][COLOR= #007700]; ++[/COLOR][COLOR= #0000BB]$iIndex[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sRulename[/COLOR] [COLOR= #007700]= (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$iStrlen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$sRulename[/COLOR][COLOR= #007700]] = (string)[/COLOR] [URL="http://www.php.net/fread"]fread[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]rSocket[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$iStrlen[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$aDetails[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* @ignore
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] toInteger[COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR] [COLOR= #007700]===[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] null[COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]+= ([/COLOR][URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]]));[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]))
{[/COLOR]
[COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]+= ([/COLOR][URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]) <<[/COLOR] [COLOR= #0000BB]8[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]2[/COLOR][COLOR= #007700]]))
{[/COLOR]
[COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]+= ([/COLOR][URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]2[/COLOR][COLOR= #007700]]) <<[/COLOR] [COLOR= #0000BB]16[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]3[/COLOR][COLOR= #007700]]))
{[/COLOR]
[COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]+= ([/COLOR][URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sData[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]3[/COLOR][COLOR= #007700]]) <<[/COLOR] [COLOR= #0000BB]24[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]>=[/COLOR] [COLOR= #0000BB]4294967294[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$iInteger[/COLOR] [COLOR= #007700]-=[/COLOR] [COLOR= #0000BB]4294967296[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$iInteger[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* @ignore
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] createPacket[COLOR= #007700]([/COLOR][COLOR= #0000BB]$sPayload[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]SAMP[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/strtok"]strtok[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000].[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] &[/COLOR] [COLOR= #0000BB]0xFF[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [URL="http://www.php.net/chr"]chr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]aServer[COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] >>[/COLOR] [COLOR= #0000BB]8[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0xFF[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$sPacket[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$sPayload[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$sPacket[/COLOR][COLOR= #007700];
}
}[/COLOR]