eid = $this->getID(); $pk->type = Zombie::NETWORK_ID; $pk->x = $this->x; $pk->y = $this->y; $pk->z = $this->z; $pk->yaw = $this->yaw; $pk->pitch = $this->pitch; $pk->metadata = $this->getData(); $player->dataPacket($pk); $pk = new SetEntityMotionPacket(); $pk->entities = [ [$this->getID(), $this->motionX, $this->motionY, $this->motionZ] ]; $player->dataPacket($pk); parent::spawnTo($player); } public function getData(){ //TODO $flags = 0; $flags |= $this->fireTicks > 0 ? 1 : 0; //$flags |= ($this->crouched === true ? 0b10:0) << 1; //$flags |= ($this->inAction === true ? 0b10000:0); $d = array( 0 => array("type" => 0, "value" => $flags), 1 => array("type" => 1, "value" => $this->airTicks), 16 => array("type" => 0, "value" => 0), 17 => array("type" => 6, "value" => array(0, 0, 0)), ); return $d; } public function getDrops(){ $drops = [ Item::get(Item::FEATHER, 0, 1) ]; if($this->lastDamageCause instanceof EntityDamageByEntityEvent and $this->lastDamageCause->getEntity() instanceof Player){ if(mt_rand(0, 199) < 5){ switch(mt_rand(0, 2)){ case 0: $drops[] = Item::get(Item::IRON_INGOT, 0, 1); break; case 1: $drops[] = Item::get(Item::CARROT, 0, 1); break; case 2: $drops[] = Item::get(Item::POTATO, 0, 1); break; } } } return $drops; } }