 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
RCON API
| |
| Viktor | Дата: Среда, 24.03.2010, 23:40 | Сообщение # 1 |
|
Группа:
I'm V.I.P.
Сообщений: 2936
Награды: 115
Город: деревня
Замечания: 0%
Статус: 
| надо было сделать разбанивалку на сайте, нашел класс, решил поделиться х) Функции: полное описание класса (английский) Code SampRconAPI::__construct( $sServer, $iPort, $sPassword ) SampRconAPI::addressBan( string $sIPAddress ) SampRconAPI::addressUnban( string $sIPAddress ) SampRconAPI::adminSay( string $sMessage ) SampRconAPI::Call( string $sCommand, [float $fDelay = 1.0] ) SampRconAPI::gameChangeMode( string $sGamemode ) SampRconAPI::gameExec( string $sConfig ) SampRconAPI::gameExit( ) SampRconAPI::gameLoadFilterscript( string $sFilterscript ) SampRconAPI::gameNextMode( ) SampRconAPI::gameReloadFilterscript( string $sFilterscript ) SampRconAPI::gameUnloadFilterscript( string $sFilterscript ) SampRconAPI::getCommandList( ) SampRconAPI::getServerVariables( ) SampRconAPI::isOnline( ) SampRconAPI::playerBan( integer $iPlayerID ) SampRconAPI::playerKick( integer $iPlayerID ) SampRconAPI::reloadBans( ) SampRconAPI::reloadLogs( ) SampRconAPI::setGravity( float $fGravity ) SampRconAPI::setWeather( integer $iWeatherID ) пример: Code <?php require "SampRconAPI.php";
$rcon = new SampRconAPI('192.168.4.1', 7777, 'lolarcon');
$rcon->addressBan('192.168.5.1'); // забанить
$rcon->addressUnban('192.168.5.6'); // разбанить
$rcon->reloadBans(); // перезагрузка бан-листа ?> Code <?php
require "SampRconAPI.php";
/* Example 1 */ $rcon = new SampRconAPI('192.168.4.1', 7777, 'lolarcon'); $rcon->Call('your_custom_func_here');
/* Example 2 */ class CustomRcon extends SampRconAPI { public function someFunctionName() { parent::Call('your_custom_func_here'); } }
$rcon = new CustomRcon('192.168.4.1', 7777, 'lolarcon'); $rcon->someFunctionName(); скачать: SampRconAPI: http://files.typefish.co.uk/sa-mp/SampRconAPI.php оригинал(есть еще один интересный класс)
Сообщение отредактировал Viktor - Среда, 24.03.2010, 23:40 |
| |
|
|
| airbreaker | Дата: Четверг, 25.03.2010, 19:53 | Сообщение # 2 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 282
Награды: 11
Город: Мск
Репутация: 290
Замечания: 80%
Статус: 
| хмм код знакомый, он вроде шел с еще каким-то апи, и панелькой управления
Linkum
|
| |
|
|
| SLICK | Дата: Пятница, 26.11.2010, 19:12 | Сообщение # 3 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус: 
| выложите кто то SampRconAPI.php
My works: [GM] RTDM Advertising system Fuel System Artefacts Search (Динамическая сис-ма артефактов)
|
| |
|
|
| Scorpi | Дата: Пятница, 26.11.2010, 19:25 | Сообщение # 4 |
|
Группа:
I'm V.I.P.
Сообщений: 1504
Награды: 33
Репутация: 723
Замечания: 0%
Статус: 
| Code <?php class SampQueryAPI { private $rSocket = false; private $aServer = array();
public function __construct($sServer, $iPort = 7777) { /* Fill some arrays. */ $this->aServer[0] = $sServer; $this->aServer[1] = $iPort; $this->rSocket = @fsockopen('udp://'.$this->aServer[0], $this->aServer[1], $iError, $sError, 2); @socket_set_timeout($this->rSocket, 2); if(!$this->rSocket) { $this->aServer[4] = false; } $sPacket = 'SAMP'; $sPacket .= chr(strtok($this->aServer[0], '.')); $sPacket .= chr(strtok('.')); $sPacket .= chr(strtok('.')); $sPacket .= chr(strtok('.')); $sPacket .= chr($this->aServer[1] & 0xFF); $sPacket .= chr($this->aServer[1] >> 8 & 0xFF); $sPacket .= 'p4150'; @fwrite($this->rSocket, $sPacket); if(@fread($this->rSocket, 15)) { $this->aServer[4] = true; } else { $this->aServer[4] = false; } } public function __destruct() { @fclose($this->rSocket); } public function isOnline() { return $this->aServer[4]; } public function getInfo() { @fwrite($this->rSocket, $this->createPacket('i')); fread($this->rSocket, 11); $aDetails['password'] = (integer) ord(fread($this->rSocket, 1)); $aDetails['players'] = (integer) $this->toInteger(fread($this->rSocket, 2)); $aDetails['maxplayers'] = (integer) $this->toInteger(fread($this->rSocket, 2)); $iStrlen = ord(fread($this->rSocket, 4)); if(!$iStrlen) return -1; $aDetails['hostname'] = (string) fread($this->rSocket, $iStrlen); $iStrlen = ord(fread($this->rSocket, 4)); $aDetails['gamemode'] = (string) fread($this->rSocket, $iStrlen); $iStrlen = ord(fread($this->rSocket, 4)); $aDetails['mapname'] = (string) fread($this->rSocket, $iStrlen); return $aDetails; }
public function getBasicPlayers() { @fwrite($this->rSocket, $this->createPacket('c')); fread($this->rSocket, 11); $iPlayerCount = ord(fread($this->rSocket, 2)); $aDetails = array(); if($iPlayerCount > 0) { for($iIndex = 0; $iIndex < $iPlayerCount; ++$iIndex) { $iStrlen = ord(fread($this->rSocket, 1)); $aDetails[] = array ( "nickname" => (string) fread($this->rSocket, $iStrlen), "score" => (integer) $this->toInteger(fread($this->rSocket, 4)), ); } } return $aDetails; } public function getDetailedPlayers() { @fwrite($this->rSocket, $this->createPacket('d')); fread($this->rSocket, 11); $iPlayerCount = ord(fread($this->rSocket, 2)); $aDetails = array(); for($iIndex = 0; $iIndex < $iPlayerCount; ++$iIndex) { $aPlayer['playerid'] = (integer) ord(fread($this->rSocket, 1)); $iStrlen = ord(fread($this->rSocket, 1)); $aPlayer['nickname'] = (string) fread($this->rSocket, $iStrlen); $aPlayer['score'] = (integer) $this->toInteger(fread($this->rSocket, 4)); $aPlayer['ping'] = (integer) $this->toInteger(fread($this->rSocket, 4)); $aDetails[] = $aPlayer; unset($aPlayer); } return $aDetails; } public function getRules() { @fwrite($this->rSocket, $this->createPacket('r')); fread($this->rSocket, 11); $iRuleCount = ord(fread($this->rSocket, 2)); $aReturn = array(); for($iIndex = 0; $iIndex < $iRuleCount; ++$iIndex) { $iStrlen = ord(fread($this->rSocket, 1)); $sRulename = (string) fread($this->rSocket, $iStrlen); $iStrlen = ord(fread($this->rSocket, 1)); $aDetails[$sRulename] = (string) fread($this->rSocket, $iStrlen); } return $aDetails; } private function toInteger($sData) { $iInteger = 0; $iInteger += (ord($sData[0])); $iInteger += (ord($sData[1]) << 8); $iInteger += (ord($sData[2]) << 16); $iInteger += (ord($sData[3]) << 24); if($iInteger >= 4294967294) { $iInteger -= 4294967296; } return $iInteger; } private function createPacket($sPayload) { $sPacket = 'SAMP'; $sPacket .= chr(strtok($this->aServer[0], '.')); $sPacket .= chr(strtok('.')); $sPacket .= chr(strtok('.')); $sPacket .= chr(strtok('.')); $sPacket .= chr($this->aServer[1] & 0xFF); $sPacket .= chr($this->aServer[1] >> 8 & 0xFF); $sPacket .= $sPayload; return $sPacket; } }
?>
|
| |
|
|
| [RD]Chez | Дата: Пятница, 26.11.2010, 19:31 | Сообщение # 5 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| тащем-то http://forum.sa-mp.com/showthread.php?t=104299&page=9
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| SLICK | Дата: Пятница, 26.11.2010, 19:43 | Сообщение # 6 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус: 
| Scorpi, это у меня уже есть, это SampQueryAPI.. А мне нужно SampRconAPI [RD]Chez, смотрел там, но ссылки уже не рабочие..
My works: [GM] RTDM Advertising system Fuel System Artefacts Search (Динамическая сис-ма артефактов)
|
| |
|
|
| [RD]Chez | Дата: Пятница, 26.11.2010, 19:55 | Сообщение # 7 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: 
| SLICK, я к тому, что лучше там спрашивать.
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
| |
|
|
| SLICK | Дата: Пятница, 26.11.2010, 20:00 | Сообщение # 8 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 603
Награды: 9
Город: Unknown
Репутация: 388
Замечания: 0%
Статус: 
| ясно, поспрашиваю там)
My works: [GM] RTDM Advertising system Fuel System Artefacts Search (Динамическая сис-ма артефактов)
|
| |
|
|
|
 |
|
 | |
| |
|