Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 public function Encode(CodeEngine &$buf)
 {
     $length = 2 * 3 + 1 + 4 * 7 + $this->ExtGameInfo->getLength() + $this->GameConfig->getLength();
     $buf->EncodeInt16($length)->EncodeInt16($this->GameID)->EncodeInt8($this->Level)->EncodeInt32($this->Point)->EncodeInt32($this->WinRound)->EncodeInt32($this->LoseRound)->EncodeInt32($this->DrawRound)->EncodeInt32($this->EscapeRound)->EncodeInt32($this->OrgID)->EncodeInt16($this->Position)->EncodeInt32($this->TotalSecs)->EncodeString($this->LastDate);
     $this->ExtGameInfo->Encode($buf);
     $this->GameConfig->Encode($buf);
 }
Exemplo n.º 3
0
 public function Encode(CodeEngine &$buf)
 {
     $buf->EncodeInt8($this->DataType);
     switch ($this->DataType) {
         case PlayerActionDataType::PAD_TYPE_LOGIN:
             $buf->EncodeInt32($this->DataValue->LoginCount);
             $buf->EncodeInt16($this->DataValue->HallServerId);
             $buf->EncodeInt32($this->DataValue->HallPlayerId);
             break;
     }
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 public function Encode(CodeEngine &$buf, $BecomeVIPTime = null)
 {
     $len = 0;
     if (!is_null($BecomeVIPTime)) {
         $len += 4;
     }
     $len += 2 + 4 + 4 + 4 + 4 + strlen($this->VIPTips) + 4;
     $buf->EncodeInt16($len)->EncodeInt32($this->GameVipExpireTime)->EncodeInt32($this->GameVIPScore)->EncodeInt32($this->GameVIPLevel)->EncodeInt32($this->NextUpdateVIPLevelTime)->EncodeString($this->VIPTips)->EncodeInt32($this->GameVIPType);
     if (!is_null($BecomeVIPTime)) {
         $buf->EncodeInt32($BecomeVIPTime);
     }
     return $len;
 }
Exemplo n.º 6
0
 public function Encode(CodeEngine &$buf)
 {
     # 模拟编码VipData 获得长度
     $ttemp = new CodeEngine();
     $len = 13 * 4 + 8 + 1 + strlen($this->ValidDate) + strlen($this->LastLoginDate) + strlen($this->LastConsumeDate) + strlen($this->DescString) + strlen($this->LastLoginDate) + 4 * count($this->Others) + $this->WebQunData->DataSize + $this->VipData->Encode($ttemp);
     # 目的就是为了得到长度
     $buf->EncodeInt16($len)->EncodeInt32($this->Coin)->EncodeInt32($this->LoginCount)->EncodeInt32($this->OfflineCount)->EncodeInt32($this->Charming)->EncodeInt32($this->Achievement)->EncodeInt64($this->HappyBean)->EncodeInt32($this->BlackLevel)->EncodeString($this->ValidDate)->EncodeInt32($this->PunishMethod)->EncodeString($this->LastLoginDate)->EncodeInt32($this->LastLoginIP)->EncodeString($this->DescString)->EncodeString($this->LastConsumeDate)->EncodeInt32($this->MiscFlag)->EncodeInt32($this->HappyBean_Daily_PresentedCount)->EncodeInt32($this->HappyBean_Daily_LastPresentedTime)->EncodeInt16($this->WebQunData->DataSize)->EncodeMemory($this->WebQunData->WebQunInfo, $this->WebQunData->DataSize);
     for ($i = 0; $i < count($this->Others); $i++) {
         $buf->EncodeInt32($this->Others[$i]);
     }
     $buf->EncodeInt32($this->FirstLoginDatetime);
     $this->VipData->Encode($buf);
     $buf->EncodeInt32($this->IDCard)->EncodeInt8($this->Sex)->EncodeInt16($this->BirThday->Year)->EncodeInt16($this->BirThday->Month)->EncodeInt16($this->BirThday->Day);
 }
Exemplo n.º 7
0
 public function Encode(CodeEngine &$buf)
 {
     $buf->EncodeInt16(2 + 4 + 4 + 4)->EncodeInt32($this->ServiceID)->EncodeInt32($this->TimeChg)->EncodeInt32($this->ExpireTime);
 }
Exemplo n.º 8
0
 public static function encode_item_info(CodeEngine &$buf, ItemInfo $ii)
 {
     $buf->EncodeInt16(2 + 4 + 2 + 4 + 2 + 4 + 1)->EncodeInt32($ii->ItemID)->EncodeInt16($ii->ItemType)->EncodeInt32($ii->Count)->EncodeInt16($ii->GameID)->EncodeInt32($ii->ExpiredTime)->EncodeInt8($ii->UpdateMode);
 }
Exemplo n.º 9
0
 public function Encode(CodeEngine &$buf)
 {
     $buf->EncodeInt16($this->getLength())->EncodeInt16($this->ExtIndex)->EncodeInt8($this->UpdateMode)->EncodeInt32($this->ExtVal);
     return $this;
 }
Exemplo n.º 10
0
 public static function encode_goods_info(CodeEngine &$buf, GoodsInfo $gi)
 {
     # 首先先是总共的字段长度,然后再加上所有的其他参数
     $buf->EncodeInt16(2 + 4 + 4 + 4)->EncodeInt32($gi->GoodsID)->EncodeInt32($gi->Count)->EncodeInt32($gi->Price);
 }