17:55
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Alcoholik  
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 (Динамическая сис-ма артефактов)
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua