public async void OnGainingExperience(GainingExperienceEventArgs ev) { if (Instance.Config.EventsToLog.GainingScp079Experience && (!ev.Player.DoNotTrack || !Instance.Config.ShouldRespectDoNotTrack)) { await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.GainedExperience, ev.Player.Nickname, Instance.Config.ShouldLogUserIds ? ev.Player.UserId : Language.Redacted, ev.Player.Role, ev.Amount, ev.GainType))).ConfigureAwait(false); } }
/// <inheritdoc cref="Exiled.Events.Handlers.Scp079.OnGainingExperience(GainingExperienceEventArgs)"/> internal static void OnGainingExperience(GainingExperienceEventArgs ev) { if (Plugin.Instance.Config.ExperienceGain.TryGetValue(ev.GainType, out float experience)) { ev.Amount += experience; } }
internal void OnScp079GainExperience(GainingExperienceEventArgs ev) { if (!config.Scp.canScp079gainExperience) { ev.IsAllowed = false; } ev.Amount = ev.Amount * config.Scp.scp079experienceMultiplier; }
public void OnSCP079Exp(GainingExperienceEventArgs ev) { try { ResetAFKTime(ev.Player); } catch (Exception e) { Log.Error($"ERROR In OnSCP079Exp(): {e}"); } }
public void ExpGain(GainingExperienceEventArgs ev) { if (plugin.Config.xpboost) { return; } foreach (ExpGainType gainType in plugin.Config.experienceGain.Keys) { if (gainType == ev.GainType) { ev.Amount += plugin.Config.experienceGain[gainType]; } } }
internal void GainingExperience(GainingExperienceEventArgs ev) { if (Plugin.Instance.Config.GainingExperience == "") { return; } string message = Plugin.Instance.Config.GainingExperience.Replace("%player%", ev.Player.ToString()); message = message.Replace("%level%", ev.Player.Level.ToString()); message = message.Replace("%experience%", ev.Player.Experience.ToString()); message = message.Replace("%energy%", ev.Player.Energy.ToString()); if (Plugin.Instance.Config.debug_to_console) { Log.Debug(message: "[ " + Plugin.Instance.Config.scp079_name + "] " + message); } Plugin.sendWebHook(Plugin.Instance.Config.scp079_url, message, Plugin.Instance.Config.scp079_name); }
private static bool Prefix(Scp079PlayerScript __instance, ExpGainType type, RoleType details) { var ev = new GainingExperienceEventArgs(API.Features.Player.Get(__instance.gameObject), type, (float)details); switch (type) { case ExpGainType.KillAssist: case ExpGainType.PocketAssist: { Team team = __instance.GetComponent <CharacterClassManager>().Classes.SafeGet(details).team; int num = 6; switch (team) { case Team.SCP: ev.Amount = __instance.GetManaFromLabel("SCP Kill Assist", __instance.expEarnWays); num = 11; break; case Team.MTF: ev.Amount = __instance.GetManaFromLabel("MTF Kill Assist", __instance.expEarnWays); num = 9; break; case Team.CHI: ev.Amount = __instance.GetManaFromLabel("Chaos Kill Assist", __instance.expEarnWays); num = 8; break; case Team.RSC: ev.Amount = __instance.GetManaFromLabel("Scientist Kill Assist", __instance.expEarnWays); num = 10; break; case Team.CDP: ev.Amount = __instance.GetManaFromLabel("Class-D Kill Assist", __instance.expEarnWays); num = 7; break; default: ev.Amount = 0f; break; } num--; if (type == ExpGainType.PocketAssist) { ev.Amount /= 2f; } break; } case ExpGainType.DirectKill: case ExpGainType.HardwareHack: break; case ExpGainType.AdminCheat: ev.Amount = (float)details; break; case ExpGainType.GeneralInteractions: { switch (details) { case RoleType.ClassD: ev.Amount = __instance.GetManaFromLabel("Door Interaction", __instance.expEarnWays); break; case RoleType.Spectator: ev.Amount = __instance.GetManaFromLabel("Tesla Gate Activation", __instance.expEarnWays); break; case RoleType.Scientist: ev.Amount = __instance.GetManaFromLabel("Lockdown Activation", __instance.expEarnWays); break; case RoleType.Scp079: ev.Amount = __instance.GetManaFromLabel("Elevator Use", __instance.expEarnWays); break; } if (ev.Amount != 0f) { float num4 = 1f / Mathf.Clamp(__instance.levels[__instance.curLvl].manaPerSecond / 1.5f, 1f, 7f); ev.Amount = Mathf.Round(ev.Amount * num4 * 10f) / 10f; } break; } default: return(false); } Scp079.OnGainingExperience(ev); if (ev.IsAllowed && ev.Amount > 0) { __instance.AddExperience(ev.Amount); return(false); } return(false); }
/// <summary> /// Invoked before gaining experience with SCP-079. /// </summary> /// <param name="ev">The <see cref="GainingExperienceEventArgs"/> instance.</param> public static void OnGainingExperience(GainingExperienceEventArgs ev) => GainingExperience.InvokeSafely(ev);