98 lines
3.2 KiB
C#
98 lines
3.2 KiB
C#
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");
|
|
}*/
|
|
}
|
|
}
|
|
|