public class NetPackageForceTeleportRebirth : NetPackage { private int entityToUpdate; public NetPackageForceTeleportRebirth 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("NetPackageForceTeleportRebirth-ProcessPackage START"); if (_world == null) { //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 1"); return; } /*if (!_world.IsRemote()) { //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 2"); return; }*/ Entity myEntity = _world.GetEntity(this.entityToUpdate); if (myEntity != null) { //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 3"); if (myEntity is EntityNPCRebirth) { //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 4"); EntityNPCRebirth follower = (EntityNPCRebirth)myEntity; if (follower.LeaderUtils.Owner) { //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 5"); //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage 6"); bool hasFireBuff = follower.Buffs.HasBuff("buffBurningFlamingArrow") || follower.Buffs.HasBuff("buffBurningMolotov") || follower.Buffs.HasBuff("buffBurningEnvironmentHack") || follower.Buffs.HasBuff("buffBurningEnvironment") || follower.Buffs.HasBuff("buffBurningElement") || follower.Buffs.HasBuff("buffIsOnFire") || follower.Buffs.HasBuff("FuriousRamsayFireZombieAoEDamage") || follower.Buffs.HasBuff("FuriousRamsayFireZombieAoEDamageDisplay") || follower.Buffs.HasBuff("FuriousRamsayAddBurningEnemyBoss") || follower.Buffs.HasBuff("FuriousRamsayBurningTrapDamage"); // On Fire if (hasFireBuff && follower.Buffs.GetCustomVar("CurrentOrder") == (int)EntityUtilities.Orders.Follow) { ItemValue itemBoiledWater = ItemClass.GetItem("drinkJarBoiledWater", false); ItemClass itemClassBoiledWater = itemBoiledWater.ItemClass; int itemCountBoiledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemBoiledWater, -1, -1, false); int itemCount2BoiledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemBoiledWater, false, -1, -1); if (itemClassBoiledWater != null) { itemCountBoiledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemBoiledWater, -1, -1, false); itemCount2BoiledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemBoiledWater, false, -1, -1); } ItemValue itemDistilledWater = ItemClass.GetItem("drinkJarPureMineralWater", false); ItemClass itemClassDistilledWater = itemDistilledWater.ItemClass; int itemCountDistilledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemDistilledWater, -1, -1, false); int itemCount2DistilledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemDistilledWater, false, -1, -1); if (itemClassDistilledWater != null) { itemCountDistilledWater = follower.LeaderUtils.Owner.bag.GetItemCount(itemDistilledWater, -1, -1, false); itemCount2DistilledWater = follower.LeaderUtils.Owner.inventory.GetItemCount(itemDistilledWater, false, -1, -1); } if ((itemCountDistilledWater + itemCount2DistilledWater) > 0) { if (itemCount2DistilledWater > 0) { follower.LeaderUtils.Owner.inventory.DecItem(itemDistilledWater, 1, false); } else { follower.LeaderUtils.Owner.bag.DecItem(itemDistilledWater, 1, false); } //LocalPlayerUI.GetUIForPlayer(entityPlayer).xui.CollectedItemList.RemoveItemStack(new ItemStack(itemDistilledWater, 1)); follower.Buffs.AddBuff("buffExtinguishFire"); follower.Buffs.RemoveBuff("buffBurningFlamingArrow"); follower.Buffs.RemoveBuff("buffBurningMolotov"); follower.Buffs.RemoveBuff("buffBurningEnvironmentHack"); follower.Buffs.RemoveBuff("buffBurningEnvironment"); follower.Buffs.RemoveBuff("buffBurningElement"); follower.Buffs.RemoveBuff("buffIsOnFire"); follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamage"); follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamageDisplay"); follower.Buffs.RemoveBuff("FuriousRamsayAddBurningEnemyBoss"); follower.Buffs.RemoveBuff("FuriousRamsayBurningTrapDamage"); } else { if ((itemCountBoiledWater + itemCount2BoiledWater) > 0) { if (itemCount2BoiledWater > 0) { follower.LeaderUtils.Owner.inventory.DecItem(itemBoiledWater, 1, false); } else { follower.LeaderUtils.Owner.bag.DecItem(itemBoiledWater, 1, false); } //LocalPlayerUI.GetUIForPlayer(entityPlayer).xui.CollectedItemList.RemoveItemStack(new ItemStack(itemBoiledWater, 1)); follower.Buffs.AddBuff("buffExtinguishFire"); follower.Buffs.RemoveBuff("buffBurningFlamingArrow"); follower.Buffs.RemoveBuff("buffBurningMolotov"); follower.Buffs.RemoveBuff("buffBurningEnvironmentHack"); follower.Buffs.RemoveBuff("buffBurningEnvironment"); follower.Buffs.RemoveBuff("buffBurningElement"); follower.Buffs.RemoveBuff("buffIsOnFire"); follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamage"); follower.Buffs.RemoveBuff("FuriousRamsayFireZombieAoEDamageDisplay"); follower.Buffs.RemoveBuff("FuriousRamsayAddBurningEnemyBoss"); follower.Buffs.RemoveBuff("FuriousRamsayBurningTrapDamage"); } } } follower.Buffs.SetCustomVar("$FR_NPC_ForceTeleport", 1f); follower.Buffs.AddBuff("FuriousRamsayStandStill"); follower.TeleportToPlayer(follower.LeaderUtils.Owner, false); } } } else { //Log.Out("NetPackageForceTeleportRebirth-ProcessPackage CAN'T FIND THE ENTITY"); } } }