ARC es una clase PHP liviana, que le permite conectar y enviar comandos fácilmente a su servidor Battleye , incluidos ARMA 3 , ARMA 2 y ARMA 2: Servidores de juegos OA .
¡ARC 2.2 solo requiere PHP 5.4 o más!
Si aún no lo ha hecho, descargue el compositor.
$ curl -s http://getcomposer.org/installer | phpAhora requiere e instale el arco.
$ composer require nizarii/arma-rcon-class
$ composer install Elija un lanzamiento e incluya ARC en su proyecto: require_once 'arc.php'; .
Después de instalar ARC, puede usar fácilmente el ARC como se muestra a continuación. Establecerá automáticamente una nueva conexión y se autenticará.
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]); Puede enviar comandos con la función command() .
//...
$ rcon -> command ( ' YourCommand ' ); Arc lanzará una Exception si algo sale mal. Es posible que desee envolver su código en un bloque de captura de prueba .
use Nizarii ARC ;
try {
$ rcon = new ARC ( ' 127.0.0.1 ' , ' password ' );
$ array = $ rcon -> getPlayersArray ();
$ rcon
-> sayGlobal ( ' example ' )
-> kickPlayer ( 1 , ' example ' )
-> sayPlayer ( 0 , ' example ' )
-> disconnect ()
;
$ rcon -> getBans (); // Throws exception, because the connection was closed
} catch ( Exception $ e ) {
echo " Ups! Something went wrong: { $ e -> getMessage ()}" ;
} Considere que ARC solo verifica si el comando se ha enviado correctamente a través del socket al servidor. No verifica si el comando ha sido ejecutado por el servidor.
Las opciones se pueden pasar al arco como una matriz a través del cuarto parámetro del constructor. Las siguientes opciones están actualmente disponibles:
int timeoutSec = 1 : Establece un valor de tiempo de espera en la conexión.bool autosavebans = false : guarda automáticamente bans.txt después de que un jugador está prohibido o sin explotar.bool debug = false : encender el modo de depuración, solo funciona en "Socketloop ()" y "SocketloopClose ()" ¡Las sugerencias para nuevas opciones siempre son bienvenidas! ?
Uso básico:
use Nizarii ARC ;
$ rcon = new ARC ( ' 127.0.0.1 ' , ' RConPassword ' , 2322 , [
' timeoutSec ' => 2
]);
//... ARC presenta muchas funciones para enviar los comandos de Battleye más fáciles. Después de crear una nueva conexión como se explicó anteriormente, puede usar cualquiera de estas funciones:
string command(string $command) : envía cualquier comando al servidor Battleye.string getPlayers() : Devuelve una lista con todos los jugadores, que actualmente están en el servidor.array getPlayersArray() : igual que "getPlayers ()", pero formatea la lista en una matriz.string getMissions() : Obtiene una lista de las misiones disponibles en el servidor.string getBans() : Obtiene una lista de todas las prohibiciones del servidor.array getBansArray() : Obtiene una matriz de todas las prohibiciones.object kickPlayer(int $player [, string $reason = 'Admin Kick']) : patea a un jugador que actualmente está en el servidor.object sayGlobal(string $message) : envía un mensaje global a todos los jugadores.object sayPlayer(int $player, string $message) : envía un mensaje a un reproductor específico.object loadScripts() : carga el archivo "scripts.txt" sin la necesidad de reiniciar el servidor.object maxPing(int $ping) : cambia el valor máximo. Si un jugador tiene un ping más alto, será expulsado del servidor.object changePassword(string $password) : cambia la contraseña RCON.object loadBans() : (re) Carga la lista BE Ban de "bans.txt".object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]]) : Prohibir que un jugador sea GUID del servidor (si el tiempo es 0, la prohibición será permanente).object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]]) : igual que "BanPlayer ()", pero permite prohibir un reproductor que no está actualmente en el servidor.object removeBan(int $banid) : elimina una prohibición.object writeBans() : elimina las prohibiciones caducadas del archivo Bans.object getBEServerVersion() : Obtiene la versión actual del servidor BE.disconnect() : cierra la conexión actual.object reconnect() : cierra la conexión actual y crea una nueva.resource getSocket() : Obtenga el socket, que ARC utiliza para enviar comandos al servidor.boolean socketLoop(int $loop = -1) : obtenga la secuencia de socket constante. $ Loop es el número de bucles que se ejecutarán hasta salir del método. Tenga en cuenta que la secuencia se restablecerá. Establecer en Infinite Looping de forma predeterminada.boolean socketLoopClose(int $loop = -1) : similar como "Socketloop ()", pero se desconecta después del bucle. Establecer en Infinite Looping de forma predeterminada.array readPackageRaw(string $msg) : haga que el paquete de formato Bettleye sea legible para su programa. Use $ MSG con encabezado inseguible y cadena no modificada. La matriz comenzará como [0] => "ff" al tener un encabezado correcto. El valor de la matriz [1] tiene información importante para qué tipo de atención necesita para su conexión. Para obtener más información, haga clic aquí. Vea aquí para obtener más información sobre los comandos de Battleye
Gracias a todos los contribuyentes por enviar problemas y código contribuyente, que incluyen:
Los nuevos contribuyentes siempre son bienvenidos ❤️
ARC tiene licencia bajo la licencia MIT . Vea el archivo LICENSE para obtener más información.