Exemple #1
0
 public function Decode(CodeEngine &$buf)
 {
     $playercommonSize = 0;
     $outlength = 0;
     $len = $buf->DecodeInt16();
     $outlength += 2;
     $this->setCoin($buf->DecodeInt32());
     $outlength += 4;
     $this->setLoginCount($buf->DecodeInt32());
     $outlength += 4;
     $this->setOfflineCount($buf->DecodeInt32());
     $outlength += 4;
     $this->setCharming($buf->DecodeInt32());
     $outlength += 4;
     $this->setAchievement($buf->DecodeInt32());
     $outlength += 4;
     $this->setHappyBean($buf->DecodeInt64());
     $outlength += 8;
     $this->setBlackLevel($buf->DecodeInt32());
     $outlength += 4;
     $this->setValidDate($buf->DecodeString());
     $outlength += strlen($this->ValidDate) + 2;
     $this->setPunishMethod($buf->DecodeInt32());
     $outlength += 4;
     $this->setLastLoginDate($buf->DecodeString());
     $outlength += strlen($this->LastLoginDate) + 2;
     $this->setLastLoginIP($buf->DecodeInt32());
     $outlength += 4;
     $this->setDescString($buf->DecodeString());
     $outlength += strlen($this->DescString) + 2;
     $this->setLastConsumeDate($buf->DecodeString());
     $outlength += strlen($this->LastConsumeDate) + 2;
     $this->setMiscFlag($buf->DecodeInt32());
     $outlength += 4;
     $this->setHappyBeanDailyPresentedCount($buf->DecodeInt32());
     $outlength += 4;
     $this->setHappyBeanDailyLastPresentedTime($buf->DecodeInt32());
     $outlength += 4;
     $t = new WebQunData();
     $t->DataSize = $buf->DecodeInt16();
     $outlength += 2;
     $t->WebQunInfo = $buf->DecodeMemory($t->DataSize);
     $outlength += $t->DataSize;
     $this->setWebQunData($t);
     # 如何获取Others的长度
     # 卡住了 貌似有逻辑问题
     $this->Others = array();
     for ($i = 0; $i < player_data_other_count; $i++) {
         $this->Others[] = $buf->DecodeInt32();
     }
     $outlength += player_data_other_count * 4;
     $this->FirstLoginDatetime = $buf->DecodeInt32();
     $outlength += 4;
     $tt = new VipData();
     $r = $tt->Decode($buf);
     $this->setVipData($tt);
     $outlength += $r;
     $this->setIDCard($buf->DecodeString());
     $outlength += strlen($this->IDCard) + 2;
     $this->setSex($buf->DecodeInt8());
     $outlength += 1;
     $ttt = new Birthday();
     $ttt->setYear($buf->DecodeInt16());
     $outlength += 2;
     $ttt->setMonth($buf->DecodeInt16());
     $outlength += 2;
     $ttt->setDay($buf->DecodeInt16());
     $outlength += 2;
     $this->setBirThday($ttt);
     $playercommonSize = $len - $outlength;
     if ($playercommonSize > 0) {
         $buf->DecodeMemory($playercommonSize);
     }
     return $len;
 }