public class NetPackageDespawnEntityRebirth : NetPackage { private int entityToUpdate; public NetPackageDespawnEntityRebirth Setup(int _entityToUpdate) { this.entityToUpdate = _entityToUpdate; return this; } public override void read(PooledBinaryReader _br) { this.entityToUpdate = _br.ReadInt32(); } public override void write(PooledBinaryWriter _bw) { base.write(_bw); _bw.Write(this.entityToUpdate); } public override int GetLength() { return 4; } public override void ProcessPackage(World _world, GameManager _callbacks) { //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage START"); if (_world == null) { //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage 1"); return; } /*if (!_world.IsRemote()) { Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage 2"); return; }*/ EntityAlive myEntity = (EntityAlive)_world.GetEntity(this.entityToUpdate); if (myEntity != null) { RebirthUtilities.DespawnEntity(myEntity); } /*if (myEntity != null) { EntityAlive entity = (EntityAlive)myEntity; if (entity != null) { entity.bIsChunkObserver = false; entity.bWillRespawn = false; //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage REMOVED HIRE, hire: " + entity.entityId); int OwnerID = (int)entity.Buffs.GetCustomVar("$Leader"); //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage OwnerID: " + OwnerID); EntityPlayer owner = null; if (OwnerID > 0) { //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage A"); EntityPlayer entityPlayer = (EntityPlayer)entity.world.GetEntity(OwnerID); if (entityPlayer != null) { //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage B"); owner = entityPlayer; if (owner.Companions.IndexOf(entity) >= 0) { //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage C"); owner.Companions.Remove(entity); } } } if (entity.Buffs.GetCustomVar("$Leader") > 0) { entity.lootDropProb = 0; GameManager.Instance.DropContentOfLootContainerServer(BlockValue.Air, new Vector3i(entity.position), entity.entityId); //RebirthUtilities.DropBackpack(myEntity); } RebirthManager.RemoveHire(entity.entityId); GameManager.Instance.World.RemoveEntity(entity.entityId, EnumRemoveEntityReason.Despawned); //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage FOUND THE ENTITY"); } } else { //Log.Out("NetPackageDespawnEntityRebirth-ProcessPackage CAN'T FIND THE ENTITY"); }*/ } }