private static bool checkForPowerupCollection(Entity bonus) { if (!bonus.HasField("isPowerupDrop")) { return(false); } //if (!Utilities.isEntDefined(bonus)) return false; foreach (Entity players in Players) { if (!players.IsAlive || players.Origin.DistanceTo(bonus.Origin) > 65 || players.SessionTeam != "allies") { continue; } if ((players.GetField <bool>("isDown") || AIZ.isWeaponDeathMachine(players.CurrentWeapon)) && bonus.GetField <string>("type") == "gun") { continue; } activateBonusDrop(players, bonus); if (bonus.HasField("attachedFX")) { Entity fx = bonus.GetField <Entity>("attachedFX"); fx.Delete(); bonus.ClearField("attachedFX"); } bonus.ClearField("isPowerupDrop"); if (bonus.GetField <string>("type") != "nuke" && bonus.GetField <string>("type") != "freeze") { PlayFX(AIZ.fx_powerupCollect, bonus.Origin, Vector3.Zero, Vector3.Zero); bonus.Delete(); } return(false); } return(true); }
private static void doBotDamage(int damage, Entity player, string weapon, Entity botHitbox, string MOD, Vector3 point, bool skipFeedback = false) { int hitDamage; if (AIZ.weaponIsUpgrade(weapon)) { hitDamage = damage / 2; //Base upgraded damage } else if (AIZ.isHellMap) { hitDamage = damage / 2; //Hellmap damage } else { hitDamage = damage / (1 + ((int)roundSystem.Wave / 2)); //Base damage } if (MOD == "MOD_MELEE") { hitDamage = damage / (((int)roundSystem.Wave + 1) / 2); //Melee damage } if (weapon == "iw5_p99_mp_tactical_xmags" && MOD == "MOD_MELEE") { hitDamage = 350; //P99 Upgraded damage } if (weapon == "iw5_riotshield_mp") { hitDamage = damage * 2; //Upgraded shield } if (AIZ.isWeaponDeathMachine(weapon)) { hitDamage = damage * 4; } if (MOD != "MOD_MELEE") { if (weapon.Contains("iw5_deserteagle_mp") || weapon == "at4_mp" || weapon.Contains("iw5_44magnum_mp") || weapon.StartsWith("iw5_mp412")) { hitDamage = damage; //Specials damage } //Weapon tweaks if (AIZ.isSniper(weapon) || weapon.Contains("iw5_dragunov_mp")) { hitDamage = (damage *= 2); //Sniper damage } if (AIZ.isShotgun(weapon)) { hitDamage = (int)(hitDamage * 4f); //Shotgun multiplier } if (weapon == "gl_mp") { hitDamage = 10000; //GL } else if (weapon == "iw5_xm25_mp") { hitDamage = damage; } else if (weapon == "xm25_mp") { hitDamage = damage * 2; } else if (weapon == "iw5_mk14_mp") { hitDamage *= 2; } else if (weapon.StartsWith("iw5_mk14_mp_reflex_xmags_camo11")) { hitDamage *= 3; } else if (weapon == "iw5_1887_mp_camo11") { hitDamage = 100; } else if (weapon == "iw5_mk12spr_mp_acog_xmags") { hitDamage = 500; //Heli Sniper damage } //if (weapon == "uav_strike_missile_mp") hitDamage = damage;//Thundergun } if (MOD == "MOD_HEADSHOT") { hitDamage *= 3; } else if (MOD == "MOD_PASSTHRU") { hitDamage = damage; //Script usage } else if ((MOD == "MOD_EXPLOSIVE" || MOD == "MOD_GRENADE_SPLASH") && botHitbox.GetField <int>("damageTaken") >= botHitbox.GetField <int>("currentHealth") * 0.7f && botHitbox.GetField <Entity>("parent").HasField("head")) { botToCrawler(botHitbox); } if (instaKillTime > 0 && !botHitbox.HasField("isBoss")) { botHitbox.SetField("damageTaken", botHitbox.GetField <int>("currentHealth")); } else { botHitbox.SetField("damageTaken", botHitbox.GetField <int>("damageTaken") + hitDamage); } if ((botHitbox.GetField <int>("damageTaken") >= botHitbox.GetField <int>("currentHealth") * 0.85f && MOD == "MOD_HEADSHOT" && botHitbox.GetField <Entity>("parent").HasField("head")) || (instaKillTime > 0 && botHitbox.GetField <Entity>("parent").HasField("head"))) { Entity head = botHitbox.GetField <Entity>("parent").GetField <Entity>("head"); head.Hide(); botHitbox.GetField <Entity>("parent").GetField <Entity>("headHitbox").SetCanDamage(false); PlayFX(AIZ.fx_headshotBlood, head.Origin); if (instaKillTime == 0) { OnInterval(1000, () => runBotBleedout(player, botHitbox)); } } if (!AIZ.isPlayer(player) || !player.HasField("isDown")) { return; } if (!botHitbox.GetField <Entity>("parent").GetField <bool>("primedForNuke")) { int pointGain = 10; if (doublePointsTime > 0) { pointGain *= 2; } if (MOD != "MOD_PASSTHRU") { player.SetField("cash", player.GetField <int>("cash") + pointGain); hud.scorePopup(player, pointGain); } AIZ.addRank(player, pointGain); } if (skipFeedback || !AIZ.isPlayer(player) || !player.HasField("hud_damageFeedback")) { return; } HudElem combatHighFeedback = player.GetField <HudElem>("hud_damageFeedback"); combatHighFeedback.Alpha = 1; player.PlayLocalSound("MP_hit_alert"); combatHighFeedback.FadeOverTime(1); combatHighFeedback.Alpha = 0; }