Packets PHP — различия между версиями

Материал из Perfect World Develop Wiki
Перейти к: навигация, поиск
м (DesmondHume переименовал страницу Packet examples в Packets PHP)
 
Строка 1: Строка 1:
== PHP ==
 
 
* [[Код класса PHP для работы с пакетами|Packet Class PHP]]
 
* [[Код класса PHP для работы с пакетами|Packet Class PHP]]
 
=== Example ===
 
=== Example ===

Текущая версия на 16:09, 19 июня 2018

Example

Get nickname by ID. Packet: GetRoleBaseArg (gamedbd).

<?
include("packet_class.php");
$GetRoleBase = new WritePacket();
$GetRoleBase -> WriteUInt32(-1); // always for gamedbd
$GetRoleBase -> WriteUInt32(1024); // roleid
$GetRoleBase -> Pack(0xBC5); // opcode
 
if (!$GetRoleBase -> Send("localhost", 29400)) // send to gamedbd
return;
 
$GetRoleBase_Re = new ReadPacket($GetRoleBase); // reading packet from stream
$packetinfo = $GetRoleBase_Re -> ReadPacketInfo(); // read opcode and length
$GetRoleBase_Re -> ReadUInt32(); // always
$GetRoleBase_Re -> ReadUInt32(); // retcode
$GetRoleBase_Re -> ReadUByte(); // version
$GetRoleBase_Re -> ReadUInt32(); // id
echo $GetRoleBase_Re -> ReadUString(); // show rolename
?>

Comments on WritePacket

  • Для работы с пакетами gdeliveryd следует установить true значению passestablished.
...
$packet = new WritePacket();
$packet -> passestablished = true;
...
  • Для игнорирования ответного пакета (применительно к пакетам, у которых вообще нет ответных) следует установить false значению getresponse.
...
$packet = new WritePacket();
$packet -> getresponse = false;
...