/** * 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); } }