может и баян, а может кому пригодится...
где:
iduser - id чара для личного сообщения
chat = тип чата
0 - общий
1 - Мир
2 - Пати
3 - Клан
4 - Пм
6 - Инфо
7 - Торг
9 - Системный
12 - Горн
msg - текст сообщения.
Для системки в игру юзать так: GameMessageSend ( 0, 9, "Всем привет !!!");
Для личного сообщения чару с id=1024: GameMessageSend ( 1024, 4, "Привет !!!");
PHP:
function GameMessageSend( $iduser, $chat, $msg )
{
$Chanel = pack("C*", $chat); // канал
$Id=pack("N*", $iduser);
$Emotion = pack("C*",0); // без эмоций
$Message = iconv("UTF-8", "UTF-16LE", $msg);
$MessageLengh = strlen($Message);
if($MessageLengh < 128)
{
$MessageLengh = pack("C*", $MessageLengh);
}
else
{
$MessageLengh = pack("n*", $MessageLengh + 32768);
}
$Packet = $Chanel.$Emotion.$Id.$MessageLengh.$Message."\x00\x00";
// тут была ошибка
$PacketLen = strlen($Packet);
if($PacketLen < 64)
$PacketLen= strrev(pack("C*", $PacketLen));
else
$PacketLen= strrev(pack("S*", ($PacketLen | 0x8000)));
$type = pack("C",120);
$sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
$sock2=socket_connect($sock, "localhost", "29300");
socket_set_block($sock);
$data = $type.$PacketLen.$Packet;
$sbytes=socket_send($sock, $data, 8192, 0);
$rbytes=socket_recv($sock, $buf, 8192, 0);
socket_set_nonblock($sock);
socket_close($sock);
}
iduser - id чара для личного сообщения
chat = тип чата
0 - общий
1 - Мир
2 - Пати
3 - Клан
4 - Пм
6 - Инфо
7 - Торг
9 - Системный
12 - Горн
msg - текст сообщения.
Для системки в игру юзать так: GameMessageSend ( 0, 9, "Всем привет !!!");
Для личного сообщения чару с id=1024: GameMessageSend ( 1024, 4, "Привет !!!");