Ejemplo n.º 1
0
 public function serial(MemStream $s)
 {
     // CGenderInfo
     $gi = function (&$var) use($s) {
         $var = new \stdClass();
         $nbItems = 7;
         $s->serial_string($var->Items, $nbItems);
         $s->serial_string($var->Skelfilename);
         $s->serial_string($var->AnimSetBaseName);
         $s->serial_string($var->LodCharacterName);
         $s->serial_float($var->LodCharacterDistance);
         $s->serial_float($var->CharacterScalePos);
         $var->GroundFX = array();
         $s->serial_uint32($nbItems);
         for ($nb = 0; $nb < $nbItems; $nb++) {
             $row = new \stdClass();
             $s->serial_uint32($row->GroundID);
             $s->Serial_string($row->FXName);
             $var->GroundFX[] = $row;
         }
         for ($nb = 0; $nb < 8; $nb++) {
             $s->serial_float($var->BlendShapeMin[$nb]);
             $s->serial_float($var->BlendShapeMax[$nb]);
         }
         $s->serial_float($var->NamePosZLow);
         $s->serial_float($var->NamePosZNormal);
         $s->serial_float($var->NamePosZHigh);
     };
     $numCharacteristice = 8;
     $s->serial_byte($this->CharacStartValue, 8);
     $gi($this->GenderInfos[0]);
     $gi($this->GenderInfos[1]);
     $s->serial_byte($this->People);
     $s->serial_byte($this->Skin);
     $s->serial_string($this->Automaton);
     $this->BodyToBone = new \stdClass();
     $s->serial_string($this->BodyToBone->Head);
     $s->serial_string($this->BodyToBone->Chest);
     $s->serial_string($this->BodyToBone->LeftArm);
     $s->serial_string($this->BodyToBone->RightArm);
     $s->serial_string($this->BodyToBone->LeftHand);
     $s->serial_string($this->BodyToBone->RightHand);
     $s->serial_string($this->BodyToBone->LeftLeg);
     $s->serial_string($this->BodyToBone->RightLeg);
     $s->serial_string($this->BodyToBone->LeftFoot);
     $s->serial_string($this->BodyToBone->RightFoot);
     $s->serial_uint32($nbItems);
     $s->serial_int_string($this->AttackLists, $nbItems);
 }
Ejemplo n.º 2
0
 public function serial(MemStream $s)
 {
     $s->serial_byte($this->Gender);
     $s->serial_uint32($this->Race);
     $s->serial_string($this->SkelFilename);
     $s->serial_string($this->AnimSetBaseName);
     $s->serial_string($this->Automaton);
     $s->serial_float($this->Scale);
     $s->serial_uint32($this->SoundFamily);
     $s->serial_uint32($this->SoundVariation);
     $s->serial_string($this->LodCharacterName);
     $s->serial_float($this->LodCharacterDistance);
     $s->serial_byte($this->Selectable);
     $s->serial_byte($this->Talkable);
     $s->serial_byte($this->Attackable);
     $s->serial_byte($this->Givable);
     $s->serial_byte($this->Mountable);
     $s->serial_byte($this->Turn);
     $s->serial_byte($this->SelectableBySpace);
     $s->serial_uint32($this->HLState);
     $s->serial_float($this->CharacterScalePos);
     $s->serial_float($this->NamePosZLow);
     $s->serial_float($this->NamePosZNormal);
     $s->serial_float($this->NamePosZHigh);
     $s->serial_string($this->Fame);
     // CEquipment::serial()
     $eq = function (&$row) use($s) {
         $row = new \stdClass();
         $s->serial_string($row->Item);
         $s->serial_byte($row->Texture);
         $s->serial_byte($row->Color);
         $s->serial_string($row->BindPoint);
     };
     $eq($this->Body);
     $eq($this->Legs);
     $eq($this->Arms);
     $eq($this->Hands);
     $eq($this->Feet);
     $eq($this->Head);
     $eq($this->Face);
     $eq($this->ObjectInRightHand);
     $eq($this->ObjectInLeftHand);
     $s->serial_byte($this->HairColor);
     $s->serial_byte($this->Skin);
     $s->serial_byte($this->EyesColor);
     $s->serial_float($this->DistToFront);
     $s->serial_float($this->DistToBack);
     $s->serial_float($this->DistToSide);
     $s->serial_float($this->ColRadius);
     $s->serial_float($this->ColHeight);
     $s->serial_float($this->ColLength);
     $s->serial_float($this->ColWidth);
     $s->serial_float($this->MaxSpeed);
     $s->serial_float($this->ClipRadius);
     $s->serial_float($this->ClipHeight);
     $s->serial_uint32($nbItems);
     $s->serial_string($this->AlternativeClothes, $nbItems);
     $this->HairItemList = array();
     $s->serial_uint32($nbItems);
     for ($nb = 0; $nb < $nbItems; $nb++) {
         $eq($this->HairItemList[$nb]);
     }
     $this->GroundFX = array();
     $s->serial_uint32($nbItems);
     for ($nb = 0; $nb < $nbItems; $nb++) {
         $row = new \stdClass();
         $s->serial_uint32($row->GroundID);
         $s->Serial_string($row->FXName);
         $this->GroundFX[] = $row;
     }
     $s->serial_byte($this->DisplayOSD);
     $s->serial_string($this->StaticFX);
     $this->BodyToBone = new \stdClass();
     $s->serial_string($this->BodyToBone->Head);
     $s->serial_string($this->BodyToBone->Chest);
     $s->serial_string($this->BodyToBone->LeftArm);
     $s->serial_string($this->BodyToBone->RightArm);
     $s->serial_string($this->BodyToBone->LeftHand);
     $s->serial_string($this->BodyToBone->RightHand);
     $s->serial_string($this->BodyToBone->LeftLeg);
     $s->serial_string($this->BodyToBone->RightLeg);
     $s->serial_string($this->BodyToBone->LeftFoot);
     $s->serial_string($this->BodyToBone->RightFoot);
     $s->serial_uint32($nbItems);
     $s->serial_string($this->AttackLists, $nbItems);
     // bot object flags
     $s->serial_byte($this->DisplayInRadar);
     $s->serial_byte($this->DisplayOSDName);
     $s->serial_byte($this->DisplayOSDBars);
     $s->serial_byte($this->DisplayOSDForceOver);
     $s->serial_byte($this->Traversable);
     $s->serial_byte($this->RegionForce);
     $s->serial_byte($this->ForceLevel);
     $s->serial_short($this->Level);
     $this->ProjectileCastRay = array();
     $s->serial_uint32($nbItems);
     for ($nb = 0; $nb < $nbItems; $nb++) {
         $row = new \stdClass();
         $s->serial_float($row->Origin, 3);
         $s->serial_float($row->Pos, 3);
         $this->ProjectileCastRay[] = $row;
     }
     $s->serial_byte($this->R2Npc);
 }