Пример #1
0
 /**
  * Outgoing packet handler
  */
 public static function out($client, $packet, $lot = array(), $dontConvert = false, $dontCompress = false)
 {
     $err = null;
     if (false === $dontCompress && isset(UltimaPHP::$socketClients[$client]['compressed']) && true === UltimaPHP::$socketClients[$client]['compressed']) {
         $compression = new Compression();
         $packet = unpack('H*', $compression->compress(strtoupper($packet)))[1];
     }
     if (false === $dontConvert) {
         $packet = Functions::hexToChr($packet);
     } else {
         $packet = $packet;
     }
     if (is_array($lot) && count($lot) == 2 && isset($lot[0]) && isset($lot[1]) && true === $lot[0] && $lot[1] === false) {
         UltimaPHP::$socketClients[$client]['packetLot'] .= $packet;
         $packet = null;
     } else {
         if (is_array($lot) && count($lot) == 2 && isset($lot[0]) && isset($lot[1]) && true === $lot[0] && $lot[1] === true) {
             $packet = UltimaPHP::$socketClients[$client]['packetLot'] . $packet;
             UltimaPHP::$socketClients[$client]['packetLot'] = null;
         }
     }
     if ($packet !== null) {
         if (true === UltimaPHP::$conf['logs']['debug']) {
             echo "Sending packet: " . Functions::strToHex($packet) . "\n\n";
         }
         UltimaPHP::$socketClients[$client]['packets'][] = array('packet' => $packet, 'time' => microtime(true) + 0.001);
     }
 }