Hello, i want set player as Zombie (id 32), like disguise. but disguise was outdated and use old API. So, can anyone give me a clue to make it? PHP: public function onPacketSend(DataPacketSendEvent $event){ if(isset($event->getPacket()->eid)){ if($this->own->isDisguised($event->getPacket()->eid)){ if($event->getPacket() instanceof MovePlayerPacket){ $pk = new MoveEntityPacket; $pk->x = $event->getPacket()->x; $pk->y = $event->getPacket()->y; $pk->z = $event->getPacket()->z; $pk->pitch = $event->getPacket()->pitch; $pk->yaw = $event->getPacket()->yaw; $event->getPlayer()->dataPacket($pk); $event->setCancelled(); }elseif($event->getPacket() instanceof AddPlayerPacket){ $pk = new AddEntityPacket; $pk->eid = $event->getPacket()->eid; $pk->type = $this->own->mobs[$event->getPacket()->eid]->getType(); $pk->x = $event->getPacket()->x; $pk->y = $event->getPacket()->y; $pk->z = $event->getPacket()->z; $pk->pitch = $event->getPacket()->pitch; $pk->yaw = $event->getPacket()->yaw; $flags = 0; $flags |= 1 << Entity::DATA_FLAG_CAN_SHOW_NAMETAG; $flags |= 1 << Entity::DATA_FLAG_ALWAYS_SHOW_NAMETAG; $pk->metadata = [ Entity::DATA_NAMETAG => [Entity::DATA_TYPE_STRING, $event->getPlayer()->getName()], Entity::DATA_FLAGS=>[Entity::DATA_TYPE_BYTE,$flags], Entity::DATA_LEAD_HOLDER_EID => [Entity::DATA_TYPE_LONG, -1], ]; $event->getPlayer()->dataPacket($pk); $event->setCancelled(); } } } } i took it from disguise source and i try to edit. thanks to someone who make better way and tell to us here.
PHP: public function onMove(PlayerMoveEvent $e) { $en = $e->getPlayer(); $zombie = new AddEntityPacket(); $zombie->type = 32; $zombie->eid = $en->getId(); $zombie->metadata = []; $zombie->speedX = 0; $zombie->speedY = 0; $zombie->speedZ = 0; $zombie->x = $en->x; $zombie->y = $en->y; $zombie->z = $en->z; $en->dataPacket($zombie); } My question, how to replace us (Player / Human) as a Zombie.
Set the player invisible and spawn a zombie where the player is. Map the position of the zombie with the position of the player.
okay now i get it. but motion of zombie is really bad, and if we try first person view, we still see the head of zombie in our screen
i try this, maybe someone can give me more information about it and fix what my fault: Spoiler PHP: public function onMove(PlayerMoveEvent $e) { $en = $e->getPlayer(); $zombie = new AddEntityPacket(); $zombie->type = 32; $zombie->eid = $en->getId(); $zombie->metadata = []; $zombie->speedX = 0; $zombie->speedY = 0; $zombie->speedZ = 0; $zombie->x = $en->x; $zombie->y = $en->y; $zombie->z = $en->z; $move = new MoveEntityPacket(); $move->eid = $zombie->eid; $move->x = $zombie->x; $move->y = $zombie->y; $move->z = $zombie->z; $move->yaw = $en->yaw; $move->pitch = $en->pitch; $remove = new RemoveEntityPacket(); $remove->eid = $en->getId(); $motion = new SetEntityMotionPacket(); $motion->eid = $zombie->eid; $motion->motionX = $en->motionX; $motion->motionY = $en->motionY; $motion->motionZ = $en->motionZ; $en->dataPacket($remove); $en->dataPacket($zombie); $en->dataPacket($move); }