public function Encode(CodeEngine &$buf) { $buf->EncodeInt8($this->DataType); switch ($this->DataType) { case QunPlayerDataType::QPD_Type_Charming: $buf->EncodeInt32($this->Charming->DeltaValue)->EncodeInt32($this->Charming->CurrentValue); break; case QunPlayerDataType::QPD_Type_Achievement: $buf->EncodeInt32($this->Achievement->DeltaValue)->EncodeInt32($this->Achievement->CurrentValue); break; case QunPlayerDataType::QPD_Type_Money: $buf->EncodeInt32($this->Money->DeltaValue)->EncodeInt32($this->Money->DeltaValue); break; case QunPlayerDataType::QPD_Type_HappyBean: $buf->EncodeInt64($this->HappyBean->DeltaValue)->EncodeInt64($this->HappyBean->CurrentValue); break; case QunPlayerDataType::QPD_Type_GameResultChange: $buf->EncodeInt32($this->GameResultChange->DeltaGamePoint)->EncodeInt32($this->GameResultChange->DeltaWinRound)->EncodeInt32($this->GameResultChange->DeltaLossRound)->EncodeInt32($this->GameResultChange->DeltaDrawRound)->EncodeInt32($this->GameResultChange->DeltaEscapeRound)->EncodeInt32($this->GameResultChange->DeltaCostTime)->EncodeInt32($this->GameResultChange->GamePoint)->EncodeInt32($this->GameResultChange->WinRound)->EncodeInt32($this->GameResultChange->LossRound)->EncodeInt32($this->GameResultChange->DrawRound)->EncodeInt32($this->GameResultChange->EscapeRound)->EncodeInt32($this->GameResultChange->CostTime); break; } }