public function Encode(CodeEngine &$buf) { #$UnitSize = 2 + 4 + 4 + 2 + strlen($this->Message); //unit size 不包含自身的2个字节 $UnitSize = 4 + 4 + 2 + strlen($this->Message); $buf->EncodeInt16($UnitSize)->EncodeInt32($this->LowVersion)->EncodeInt32($this->HighVersion)->EncodeInt16($this->Size); if ($this->Size > strlen($this->Message)) { $this->Size = strlen($this->Message); } $buf->EncodeMemory($this->Message, $this->Size); return $UnitSize; }
public function Encode(CodeEngine &$buf) { # 计算长度 $length = 2 + 4 * max_game_ext_int_count + 2 + strlen($this->ExtData); $buf->EncodeInt16($length); for ($i = 0; $i < max_game_ext_int_count; $i++) { $buf->EncodeInt32($this->ExtInt[$i]); } $buf->EncodeInt16($this->ExtDataSize); if ($this->ExtDataSize > 0) { $buf->EncodeMemory($this->ExtData, $this->ExtDataSize); } return $length; }