mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-04 09:10:00 +00:00
protocol 27, added player spawn events after death from new protocol, added EntityEvent constants
This commit is contained in:
parent
51062940c5
commit
9a2170d296
@ -2016,7 +2016,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
|||||||
|
|
||||||
$pk = new EntityEventPacket();
|
$pk = new EntityEventPacket();
|
||||||
$pk->eid = $this->getId();
|
$pk->eid = $this->getId();
|
||||||
$pk->event = 9;
|
$pk->event = EntityEventPacket::USE_ITEM;
|
||||||
$pk->setChannel(Network::CHANNEL_WORLD_EVENTS);
|
$pk->setChannel(Network::CHANNEL_WORLD_EVENTS);
|
||||||
$this->dataPacket($pk);
|
$this->dataPacket($pk);
|
||||||
Server::broadcastPacket($this->getViewers(), $pk);
|
Server::broadcastPacket($this->getViewers(), $pk);
|
||||||
@ -2309,7 +2309,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
|||||||
|
|
||||||
$pk = new EntityEventPacket();
|
$pk = new EntityEventPacket();
|
||||||
$pk->eid = $this->getId();
|
$pk->eid = $this->getId();
|
||||||
$pk->event = 9;
|
$pk->event = EntityEventPacket::USE_ITEM;
|
||||||
$pk->setChannel(Network::CHANNEL_WORLD_EVENTS);
|
$pk->setChannel(Network::CHANNEL_WORLD_EVENTS);
|
||||||
$this->dataPacket($pk);
|
$this->dataPacket($pk);
|
||||||
Server::broadcastPacket($this->getViewers(), $pk);
|
Server::broadcastPacket($this->getViewers(), $pk);
|
||||||
@ -3020,7 +3020,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
|||||||
}elseif($this->getLastDamageCause() === $source and $this->spawned){
|
}elseif($this->getLastDamageCause() === $source and $this->spawned){
|
||||||
$pk = new EntityEventPacket();
|
$pk = new EntityEventPacket();
|
||||||
$pk->eid = $this->getId();
|
$pk->eid = $this->getId();
|
||||||
$pk->event = 2;
|
$pk->event = EntityEventPacket::HURT_ANIMATION;
|
||||||
$this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
$this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,17 @@ abstract class Living extends Entity implements Damageable{
|
|||||||
$this->setHealth($this->namedtag["Health"]);
|
$this->setHealth($this->namedtag["Health"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setHealth($amount){
|
||||||
|
$wasAlive = $this->isAlive();
|
||||||
|
parent::setHealth($amount);
|
||||||
|
if($this->isAlive() and !$wasAlive){
|
||||||
|
$pk = new EntityEventPacket();
|
||||||
|
$pk->eid = $this->getId();
|
||||||
|
$pk->event = EntityEventPacket::RESPAWN;
|
||||||
|
Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function saveNBT(){
|
public function saveNBT(){
|
||||||
parent::saveNBT();
|
parent::saveNBT();
|
||||||
$this->namedtag->Health = new Short("Health", $this->getHealth());
|
$this->namedtag->Health = new Short("Health", $this->getHealth());
|
||||||
@ -117,7 +128,7 @@ abstract class Living extends Entity implements Damageable{
|
|||||||
|
|
||||||
$pk = new EntityEventPacket();
|
$pk = new EntityEventPacket();
|
||||||
$pk->eid = $this->getId();
|
$pk->eid = $this->getId();
|
||||||
$pk->event = $this->getHealth() <= 0 ? 3 : 2; //Ouch!
|
$pk->event = $this->getHealth() <= 0 ? EntityEventPacket::DEATH_ANIMATION : EntityEventPacket::HURT_ANIMATION; //Ouch!
|
||||||
Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
||||||
|
|
||||||
$this->attackTime = 10; //0.5 seconds cooldown
|
$this->attackTime = 10; //0.5 seconds cooldown
|
||||||
|
@ -67,7 +67,7 @@ class Squid extends WaterAnimal implements Ageable{
|
|||||||
|
|
||||||
$pk = new EntityEventPacket();
|
$pk = new EntityEventPacket();
|
||||||
$pk->eid = $this->getId();
|
$pk->eid = $this->getId();
|
||||||
$pk->event = 15;
|
$pk->event = EntityEventPacket::SQUID_INK_CLOUD;
|
||||||
Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,23 @@ namespace pocketmine\network\protocol;
|
|||||||
|
|
||||||
|
|
||||||
class EntityEventPacket extends DataPacket{
|
class EntityEventPacket extends DataPacket{
|
||||||
|
|
||||||
|
const HURT_ANIMATION = 2;
|
||||||
|
const DEATH_ANIMATION = 3;
|
||||||
|
|
||||||
|
const TAME_FAIL = 6;
|
||||||
|
const TAME_SUCCESS = 7;
|
||||||
|
const SHAKE_WET = 8;
|
||||||
|
const USE_ITEM = 9;
|
||||||
|
const EAT_GRASS_ANIMATION = 10;
|
||||||
|
const FISH_HOOK_BUBBLE = 11;
|
||||||
|
const FISH_HOOK_POSITION = 12;
|
||||||
|
const FISH_HOOK_HOOK = 13;
|
||||||
|
const FISH_HOOK_TEASE = 14;
|
||||||
|
const SQUID_INK_CLOUD = 15;
|
||||||
|
const AMBIENT_SOUND = 16;
|
||||||
|
const RESPAWN = 17;
|
||||||
|
|
||||||
public static $pool = [];
|
public static $pool = [];
|
||||||
public static $next = 0;
|
public static $next = 0;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ interface Info{
|
|||||||
/**
|
/**
|
||||||
* Actual Minecraft: PE protocol version
|
* Actual Minecraft: PE protocol version
|
||||||
*/
|
*/
|
||||||
const CURRENT_PROTOCOL = 26;
|
const CURRENT_PROTOCOL = 27;
|
||||||
|
|
||||||
const LOGIN_PACKET = 0x82;
|
const LOGIN_PACKET = 0x82;
|
||||||
const PLAY_STATUS_PACKET = 0x83;
|
const PLAY_STATUS_PACKET = 0x83;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user