private void Events_OnZombieDamaging(Zombie nativeZombie, ref ushort damageAmount, ref Vector3 ragdoll, ref ERagdollEffect ragdollEffect, ref bool trackKill, ref bool dropLoot, ref EZombieStunOverride stunOverride, out bool cancel) { UnturnedZombie zombie = new UnturnedZombie(nativeZombie); UnturnedZombieDamagingEvent @event; if (damageAmount >= zombie.Health) { @event = new UnturnedZombieDyingEvent(zombie, damageAmount, ragdoll, ragdollEffect, trackKill, dropLoot, stunOverride); } else { @event = new UnturnedZombieDamagingEvent(zombie, damageAmount, ragdoll, ragdollEffect, trackKill, dropLoot, stunOverride); } Emit(@event); damageAmount = @event.DamageAmount; ragdoll = @event.Ragdoll; ragdollEffect = @event.RagdollEffect; trackKill = @event.TrackKill; dropLoot = @event.DropLoot; stunOverride = @event.StunOverride; cancel = @event.IsCancelled; }
private void Events_OnAnimalDamaging(Animal nativeAnimal, ref ushort amount, ref Vector3 ragdoll, ref ERagdollEffect ragdollEffect, ref bool trackKill, ref bool dropLoot, out bool cancel) { UnturnedAnimal animal = new UnturnedAnimal(nativeAnimal); UnturnedAnimalDamagingEvent @event; if (amount >= animal.Health) { @event = new UnturnedAnimalDyingEvent(animal, amount, ragdoll.ToSystemVector(), ragdollEffect, trackKill, dropLoot); } else { @event = new UnturnedAnimalDamagingEvent(animal, amount, ragdoll.ToSystemVector(), ragdollEffect, trackKill, dropLoot); } Emit(@event); amount = @event.DamageAmount; ragdoll = @event.Ragdoll.ToUnityVector(); ragdollEffect = @event.RagdollEffect; trackKill = @event.TrackKill; dropLoot = @event.DropLoot; cancel = @event.IsCancelled; }
public UnturnedAnimalDamagingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, CSteamID instigator) : base(animal) { DamageAmount = damageAmount; Ragdoll = ragdoll; RagdollEffect = ragdollEffect; Instigator = instigator; }
public UnturnedAnimalDamagingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, bool trackKill, bool dropLoot) : base(animal) { DamageAmount = damageAmount; Ragdoll = ragdoll; RagdollEffect = ragdollEffect; TrackKill = trackKill; DropLoot = dropLoot; }
public UnturnedZombieDamagingEvent(UnturnedZombie zombie, UnturnedPlayer?user, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, EZombieStunOverride stunOverride) : base(zombie) { DamageAmount = damageAmount; Instigator = user; Ragdoll = ragdoll; RagdollEffect = ragdollEffect; StunOverride = stunOverride; }
private static bool AskDamage(Animal __instance, ref ushort amount, ref Vector3 newRagdoll, ref ERagdollEffect ragdollEffect, ref bool trackKill, ref bool dropLoot) { bool cancel = false; if (amount == 0 || __instance.isDead) { return(false); } OnAnimalDamaging?.Invoke(__instance, ref amount, ref newRagdoll, ref ragdollEffect, ref trackKill, ref dropLoot, out cancel); return(!cancel); }
private static bool AskDamage(Zombie __instance, ref ushort amount, ref Vector3 newRagdoll, ref ERagdollEffect ragdollEffect, ref bool trackKill, ref bool dropLoot, ref EZombieStunOverride stunOverride) { if (amount == 0 || __instance.isDead) { return(true); } bool cancel = false; OnZombieDamaging?.Invoke(__instance, ref amount, ref newRagdoll, ref ragdollEffect, ref trackKill, ref dropLoot, ref stunOverride, out cancel); return(!cancel); }
public UnturnedAnimalDyingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, CSteamID instigator) : base(animal, damageAmount, ragdoll, ragdollEffect, instigator) { }
public static void Prefix(byte amount, Vector3 newRagdoll, EDeathCause newCause, ELimb newLimb, CSteamID newKiller, ref EPlayerKill kill, bool trackKill, ERagdollEffect newRagdollEffect, bool canCauseBleeding, PlayerLife __instance) { Player ply = __instance.channel.owner.player; if (ply is null) { return; } if (amount >= ply.life.health && ply.clothing.vest == 1013) { ply.clothing.askWearVest(0, 0, new byte[0], true); InventorySearch foundVest = ply.inventory.has(1013); if (foundVest is null) { return; } ply.inventory.removeItem(foundVest.page, ply.inventory.getIndex(foundVest.page, foundVest.jar.x, foundVest.jar.y)); ExplosionParameters explodParams = new ExplosionParameters(ply.transform.position, 10f, EDeathCause.KILL, CSteamID.Nil); explodParams.penetrateBuildables = true; explodParams.playerDamage = 150; explodParams.damageRadius = 32; explodParams.barricadeDamage = 1000; List <EPlayerKill> deadPlayers = new List <EPlayerKill>(); EffectManager.sendEffect(45, byte.MaxValue, byte.MaxValue, byte.MaxValue, ply.transform.position); DamageTool.explode(explodParams, out deadPlayers); } }
public UnturnedZombieDyingEvent(UnturnedZombie zombie, UnturnedPlayer?player, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, EZombieStunOverride stunOverride) : base(zombie, player, damageAmount, ragdoll, ragdollEffect, stunOverride) { }
public UnturnedAnimalDyingEvent(UnturnedAnimal animal, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, bool trackKill, bool dropLoot) : base(animal, damageAmount, ragdoll, ragdollEffect, trackKill, dropLoot) { }
public static void Prefix(byte amount, Vector3 newRagdoll, EDeathCause newCause, ELimb newLimb, CSteamID newKiller, ref EPlayerKill kill, bool trackKill, ERagdollEffect newRagdollEffect, bool canCauseBleeding, PlayerLife __instance) { Player ply = __instance.channel.owner.player; if (ply is null) return; if (amount >= ply.life.health) { Transform deathboxTransform = BarricadeManager.dropBarricade(new Barricade(1283),ply.transform, ply.transform.position, 0f, 0f, 0f, (ulong) ply.channel.owner.playerID.steamID, 0UL); byte x; byte y; ushort plant; ushort index; BarricadeRegion region; if (!BarricadeManager.tryGetInfo(deathboxTransform, out x, out y, out plant, out index, out region)) return; InteractableStorage storage = deathboxTransform.GetComponent<InteractableStorage>(); storage.items.resize(10, 10); for (byte page = 0; page < 6; page++) { for (byte i = 0; i < ply.inventory.items[page].getItemCount(); i++) { ItemJar item = ply.inventory.items[page].getItem(i); storage.items.tryAddItem(item.item); } } TTTPlayer.ClearInventoryUnsafe(__instance.channel.owner); // Clears clothing to prevent players aqquiring detective vest ect. } }
public UnturnedZombieDyingEvent(UnturnedZombie zombie, ushort damageAmount, Vector3 ragdoll, ERagdollEffect ragdollEffect, bool trackKill, bool dropLoot, EZombieStunOverride stunOverride) : base(zombie, damageAmount, ragdoll, ragdollEffect, trackKill, dropLoot, stunOverride) { }