1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. autosnikers
  2. autosnikers
  3. autosnikers
    Сообщение

    1.4.4 PWChat.localhost

    Описание можно?) конечно
    Сообщение от: autosnikers, 9 ноя 2013 в разделе: PW Решённые вопросы
  4. autosnikers
  5. autosnikers
  6. autosnikers
  7. autosnikers
  8. autosnikers
    Сообщение

    GTA5.

    Графа чуть лучше чем у гта4. Ожидал большего)
    Сообщение от: autosnikers, 6 окт 2013 в разделе: Оффтоп
  9. autosnikers
  10. autosnikers
  11. autosnikers
  12. autosnikers
  13. autosnikers
  14. autosnikers
  15. autosnikers
  16. autosnikers
  17. autosnikers
  18. autosnikers
  19. autosnikers
  20. autosnikers
    У меня вообще грузит, грузит, грузит и не загрузит Взял айпишник где нет сервера - все ок, правда иероглифы были. Взял айпишник руоффа - не работает Логично, если вы ничего не настроили. на тестовый залил его мего трю скрипт чат читался, но без ников, баны и прочую хурму не проверял ну и собственно его скрипт <?php class Chat { const KEY = "24BD-7E04-4595-ED20"; # Не изменяйте ключ const CHAT_FILE = "/home/logs/world2.chat"; # Путь к файлу чата public function __construct($action = null) { header("Content-type: text/html; charset=utf-8"); if($action != null && $_GET["code"] == self::KEY) { switch ($action) { case "getNick": $this->getNick($_GET["id"]); break; case "getNameClan": $this->getNameClan($_GET["id"]); break; case "setBan": $this->setBan($_GET["type"], $_GET["id"], $_GET["sec"], $_GET["reason"]); break; case "sendSystemMessage": $this->sendSystemMessage($_GET["message"]); break; case "getChatFile": $this->getChatFile($_GET["count"]); break; case "getCountString": $this->getCountString(); break; default: die("error"); } } else { die("error"); } } protected function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("i", $data)); } protected function UnPackString($data, $p) { $size = (hexdec(bin2hex(substr($data,$p,1))) >= 128) ? 2 : 1; $octetlen = (hexdec(bin2hex(substr($data,$p, $size))) >= 128) ? hexdec(bin2hex(substr($data,$p, $size)))-32768 : hexdec(bin2hex(substr($data,$p, $size))); $pp = $p; $p += $size + $octetlen; return mb_convert_encoding(substr($data,$pp+$size,$octetlen),"UTF-8","UTF-16LE"); } protected function PackString($data) { $data = iconv("UTF-8", "UTF-16LE", $data); $LnData = strlen($data); if ($LnData <= 128) { $ln = pack("C*", $LnData); return $ln.$data; } else { $ln = pack("n*", $LnData+32768); return $ln.$data; } } protected function length($data) { $PackLn = strlen($data); if($PackLn < 128) { $PackLn = pack("C*", $PackLn); return $PackLn; } else { $PackLn = pack("n*", $PackLn + 32768); return $PackLn; } } protected function getChatFile($count) { exec("tail -n ".$count." ".self::CHAT_FILE."", $array); for($i=0;$i<count($array);$i++) { echo $array[$i]."\n"; } } protected function getCountString() { $file = self::CHAT_FILE; $e = explode(" ", trim(exec("wc -l $file"))); echo $e[0]; } protected function getNick($id) { $data = pack("N*",-1, $id); $redy = $this->cuint(8003).$this->cuint(strlen($data)).$data; $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock,"localhost",29400); socket_set_block($sock); socket_send($sock, $redy, 8192, 0); socket_recv($sock, $rb, 8192, 0); socket_set_nonblock($sock); socket_close($sock); echo $this->UnPackString($rb, 17); } protected function getNameClan($id) { $pack = strrev(pack("S", 32768)).strrev(pack("S", 1)).pack("N", $id); $data = $this->cuint(4608).$this->length($pack).$pack; $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock, "localhost", 29400); socket_set_block($sock); socket_send($sock, $data, 8192, 0); socket_recv($sock, $buf, 8192, 0); socket_set_nonblock($sock); socket_close($sock); if (hexdec(bin2hex(substr($buf,2,1))) >= 128) { $name = $this->UnPackString($buf, 16); } else { $name = $this->UnPackString($buf, 15); } echo $name; } protected function setBan($type, $id, $sec, $reason) { if($type == 101) { $pack = pack("N", 1024).pack("N", 1).pack("N", $id).pack("N", $sec).$this->PackString($reason); $data = $this->cuint(362).$this->length($pack).$pack; } elseif($type == 100) { $pack = pack("N", 1024).pack("N", 830).pack("N", $id).pack("N", $sec).$this->PackString($reason); $data = $this->cuint(360).$this->length($pack).$pack; } $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock, "localhost", 29100); socket_set_block($sock); socket_send($sock, $data, 8192, 0); socket_recv($sock, $buf, 8192, 0); socket_set_nonblock($sock); socket_close($sock); } protected function sendSystemMessage($message) { $message = iconv("UTF-8", "UTF-16LE", $message); $Chanel = pack("C*", 9); $Id = pack("N*", 0); $Emotion = pack("C*", 0); $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 = pack("C*", strlen($Packet)); $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); } public function __destruct() { } } $chat = new Chat($_GET["action"]); ?> На 1.2.6, видимо, другие пакеты. Если необходимо, сделаю поддержку.
    Сообщение от: autosnikers, 6 сен 2013 в разделе: PW Web