ARC เป็นคลาส PHP ที่มีน้ำหนักเบาซึ่งช่วยให้คุณเชื่อมต่อและส่งคำสั่งไปยังเซิร์ฟเวอร์ Battleye ของคุณได้อย่างง่ายดายรวมถึง ARMA 3 , ARMA 2 และ ARMA 2: OA Game Servers
ARC 2.2 ต้องใช้ PHP 5.4 หรือสูงกว่าเท่านั้น!
หากคุณยังไม่ได้ดาวน์โหลดนักแต่งเพลง
$ curl -s http://getcomposer.org/installer | phpตอนนี้ต้องการและติดตั้งอาร์ค
$ composer require nizarii/arma-rcon-class
$ composer install เลือกการเปิดตัวและรวมอาร์คในโครงการของคุณ: require_once 'arc.php'; -
หลังจากติดตั้ง ARC คุณสามารถใช้ ARC ได้อย่างง่ายดายตามที่แสดงด้านล่าง มันจะสร้างการเชื่อมต่อใหม่และรับรองความถูกต้อง โดยอัตโนมัติ
use Nizarii ARC ;
$ rcon = new ARC (string $ ServerIP , string $ RConPassword [, int $ Port = 2302 [, array $ Options = array ()]]); คุณสามารถส่งคำสั่งด้วยฟังก์ชัน command()
//...
$ rcon -> command ( ' YourCommand ' ); อาร์คจะโยน Exception หากมีอะไรผิดพลาด คุณอาจต้องการห่อรหัสของคุณในการ ลองบล็อก
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 ()}" ;
} โปรดพิจารณาว่า ARC ตรวจสอบเฉพาะว่าคำสั่งถูก ส่งสำเร็จ ผ่านซ็อกเก็ตไปยังเซิร์ฟเวอร์หรือไม่ ไม่ได้ ตรวจสอบว่าเซิร์ฟเวอร์คำสั่งถูก ดำเนินการ หรือไม่
ตัวเลือกสามารถส่งผ่านไปยังอาร์คเป็นอาร์เรย์ผ่านพารามิเตอร์ที่สี่ของตัวสร้าง ขณะนี้มีตัวเลือกต่อไปนี้:
int timeoutSec = 1 : ตั้งค่าการหมดเวลาในการเชื่อมต่อbool autosavebans = false : บันทึก bans.txt โดยอัตโนมัติหลังจากผู้เล่นถูกแบนหรือไม่ได้รับการรับรองbool debug = false : เปิดโหมดการดีบักใช้งานได้เฉพาะกับ "SocketLoop ()" และ "SocketLoopClose ()" คำแนะนำสำหรับตัวเลือกใหม่ยินดีต้อนรับเสมอ! -
การใช้งานขั้นพื้นฐาน:
use Nizarii ARC ;
$ rcon = new ARC ( ' 127.0.0.1 ' , ' RConPassword ' , 2322 , [
' timeoutSec ' => 2
]);
//... ARC มีฟังก์ชั่นมากมายในการส่งคำสั่ง Battleye ได้ง่ายขึ้น หลังจากสร้างการเชื่อมต่อใหม่ตามที่อธิบายไว้ข้างต้นคุณสามารถใช้ฟังก์ชั่นเหล่านี้ได้:
string command(string $command) : ส่งคำสั่งใด ๆ ไปยังเซิร์ฟเวอร์ Battleyestring getPlayers() : ส่งคืนรายการกับผู้เล่นทุกคนซึ่งปัจจุบันอยู่บนเซิร์ฟเวอร์array getPlayersArray() : เหมือนกับ "getPlayers ()" แต่จัดรูปแบบรายการเป็นอาร์เรย์string getMissions() : รับรายการภารกิจที่มีอยู่บนเซิร์ฟเวอร์string getBans() : รับรายการของ BE BE Server Bans ทั้งหมดarray getBansArray() : ได้รับอาเรย์ของแบนทั้งหมดobject kickPlayer(int $player [, string $reason = 'Admin Kick']) : เตะผู้เล่นที่อยู่บนเซิร์ฟเวอร์ในปัจจุบันobject sayGlobal(string $message) : ส่งข้อความทั่วโลกไปยังผู้เล่นทุกคนobject sayPlayer(int $player, string $message) : ส่งข้อความไปยังผู้เล่นเฉพาะobject loadScripts() : โหลดไฟล์ "scripts.txt" โดยไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์object maxPing(int $ping) : เปลี่ยนค่า maxping หากผู้เล่นมี ping สูงกว่าเขาจะถูกเตะจากเซิร์ฟเวอร์object changePassword(string $password) : เปลี่ยนรหัสผ่าน RCONobject loadBans() : (RE) โหลด BE BAN LIST จาก "Bans.txt"object banPlayer(string $player [, string $reason = 'Banned' [, int $time = 0]]) : ห้ามผู้เล่นเป็น GUID จากเซิร์ฟเวอร์ (ถ้าเวลาคือ 0 การห้ามจะถาวร)object addBan(string $player [, string $reason = 'Banned' [, int $time = 0]]) : เช่นเดียวกับ "banplayer ()" แต่อนุญาตให้ห้ามผู้เล่นที่ไม่ได้อยู่บนเซิร์ฟเวอร์ในปัจจุบันobject removeBan(int $banid) : ลบการห้ามobject writeBans() : ลบแบนที่หมดอายุออกจากไฟล์ Bansobject getBEServerVersion() : รับเวอร์ชันปัจจุบันของ BE Serverdisconnect() : ปิดการเชื่อมต่อปัจจุบันobject reconnect() : ปิดการเชื่อมต่อปัจจุบัน & สร้างใหม่resource getSocket() : รับซ็อกเก็ตซึ่ง ARC ใช้เพื่อส่งคำสั่งไปยังเซิร์ฟเวอร์boolean socketLoop(int $loop = -1) : รับกระแสซ็อกเก็ตคงที่ $ loop คือจำนวนลูปที่จะทำงานจนกว่าจะออกจากวิธีการ โปรดทราบว่าลำดับจะถูกรีเซ็ต ตั้งค่าการวนรอบที่ไม่มีที่สิ้นสุดโดยค่าเริ่มต้นboolean socketLoopClose(int $loop = -1) : คล้ายกับ "socketloop ()" แต่ตัดการเชื่อมต่อหลังจากวนลูป ตั้งค่าการวนรอบที่ไม่มีที่สิ้นสุดโดยค่าเริ่มต้นarray readPackageRaw(string $msg) : ทำแพ็คเกจรูปแบบ Bettleye ที่อ่านได้สำหรับโปรแกรมของคุณ ใช้ $ msg พร้อมส่วนหัวที่อ่านไม่ได้และสตริงที่ไม่ได้แก้ไข อาร์เรย์จะเริ่มเป็น [0] => "ff" เมื่อมีส่วนหัวที่ถูกต้อง ค่าอาร์เรย์ [1] มีข้อมูลที่สำคัญที่ต้องการการดูแลสำหรับการเชื่อมต่อของคุณ สำหรับข้อมูลเพิ่มเติมคลิกที่นี่ ดูที่นี่สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง Battleye
ขอบคุณผู้มีส่วนร่วมทุกคนสำหรับการส่งปัญหาและรหัสที่มีส่วนร่วมรวมถึง:
ผู้มีส่วนร่วมใหม่ยินดีต้อนรับเสมอ❤
อาร์คได้รับใบอนุญาตภายใต้ ใบอนุญาต MIT ดูไฟล์ LICENSE สำหรับข้อมูลเพิ่มเติม