void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { string SDKey = !string.IsNullOrEmpty(source.SourceDescriptionKey) ? source.SourceDescriptionKey : Singleton <GameManager> .Instance.GetDescriptionKey(source.EntitySource); if (SDKey.EndsWith("(P)")) { int FoundPlayers = 0; string KillerName = SDKey.Substring(0, SDKey.Length - 3); Dictionary <uLink.NetworkPlayer, PlayerSession> .Enumerator PlayerSession = GameManager.Instance.GetSessions().GetEnumerator(); while (PlayerSession.MoveNext()) { if (PlayerSession.Current.Value.IPlayer.Name == KillerName) { AlertManager.Instance.GenericTextNotificationServer(lang.GetMessage("kill", this, PlayerSession.Current.Value.SteamId.ToString()).Replace("{PlayerName}", session.IPlayer.Name), PlayerSession.Current.Key); FoundPlayers++; } else if (PlayerSession.Current.Value.IPlayer.Name == session.IPlayer.Name) { AlertManager.Instance.GenericTextNotificationServer(lang.GetMessage("killedby", this, PlayerSession.Current.Value.SteamId.ToString()).Replace("{PlayerName}", KillerName), PlayerSession.Current.Key); FoundPlayers++; } if (FoundPlayers == 2) { break; } } } }
private void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { var attacker = GetPlayerSession(source); if (attacker == null) { var langKey = GetLang(session, source.SourceDescriptionKey); if (langKey != null) { BroadcastInChat(langKey, session.Identity.Name); } else { Puts("Detected unknown lang key: ", source.SourceDescriptionKey); } } else { var hitbox = GetHitbox(source); var distance = GetDistance(session, attacker); var weaponName = GetWeaponName(attacker); if (_isKillCounterInstalled) { var killCounter = KillCounter.Call("AddKill", session, source); BroadcastInChat("PvPKilWithKillCounter", session.Identity.Name, attacker.Identity.Name, killCounter, weaponName, hitbox, distance); } else { BroadcastInChat("PvPKill", session.Identity.Name, attacker.Identity.Name, weaponName, hitbox, distance); } } }
private void IOnTakeDamage(EntityEffectFluid effect, EntityStats target, EntityEffectSourceData source) { if (effect == null || target == null || source?.Value == 0) { return; } var entity = target.GetComponent <AIEntity>(); if (entity != null) { Interface.CallHook("OnEntityTakeDamage", entity, source); return; } var networkView = target.GetComponent <uLinkNetworkView>(); if (networkView == null) { return; } var session = GameManager.Instance.GetSession(networkView.owner); if (session != null) { Interface.CallHook("OnPlayerTakeDamage", session, source); } }
void OnEntityDeath(AnimalStatManager stats, EntityEffectSourceData source) { if (CurrentTask.EntityName == "aiborserver(clone)" || CurrentTask.EntityName == "aiborradserver(clone)" || CurrentTask.EntityName == "aishigiserver(clone)" || CurrentTask.EntityName == "aishigiforestserver(clone)" || CurrentTask.EntityName == "aishigiarcticserver(clone)" || CurrentTask.EntityName == "aitokarserver(clone)" || CurrentTask.EntityName == "aitokarparrotserver(clone)" || CurrentTask.EntityName == "aitokarblueserver(clone)" || CurrentTask.EntityName == "aiyetiforestserver(clone)" || CurrentTask.EntityName == "aiyetiserver(clone)") { if (CurrentTask.EntityName == stats.name) { string SDKey = !string.IsNullOrEmpty(source.SourceDescriptionKey) ? source.SourceDescriptionKey : Singleton <GameManager> .Instance.GetDescriptionKey(source.EntitySource); if (SDKey.EndsWith("(P)")) { string KillerName = SDKey.Substring(0, SDKey.Length - 3); Dictionary <uLink.NetworkPlayer, PlayerSession> .Enumerator PlayerSession = GameManager.Instance.GetSessions().GetEnumerator(); while (PlayerSession.MoveNext()) { if (PlayerSession.Current.Value.IPlayer.Name == KillerName) { AddPlayerCompleteTaskAmount(PlayerSession.Current.Key, PlayerSession.Current.Value.SteamId.ToString(), 1); break; } } } } } }
private void OnPlayerDeath(PlayerSession victim, EntityEffectSourceData source) { if (Convert.ToBoolean(Config["TOP.USERS"])) { Dictionary <string, object> args = new Dictionary <string, object>(); PlayerSession killer = FindPlayer(GetNameOfObject(source.EntitySource)); //PlayerSession killer = null; if (killer != null) { args["player_id"] = killer.SteamId.m_SteamID.ToString(); } else { args["player_id"] = "1"; } args["victim_id"] = victim.SteamId.m_SteamID.ToString(); args["type"] = "kill"; args["time"] = Convert.ToInt32((DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds).ToString(); Stats.Add(args); } }
private void OnPlayerDeath(PlayerSession playerSession, EntityEffectSourceData dataSource) { string name = playerSession.Identity.Name; string SDKey = !string.IsNullOrEmpty(dataSource.SourceDescriptionKey) ? dataSource.SourceDescriptionKey : Singleton <GameManager> .Instance.GetDescriptionKey(dataSource.EntitySource); if (SDKey.EndsWith("(P)")) { string KillerName = SDKey.Substring(0, SDKey.Length - 3); if (KillCounter != null) { var KillerKills = KillCounter.Call("AddKill", playerSession, dataSource); SendMessage("killcounter_player", name, KillerName, (KillerKills ?? "?").ToString()); } else { SendMessage("player", name, KillerName); } } else { if (lang.GetMessage(SDKey, this) == SDKey) { SendMessage("Unknown", name); Puts("Found unknown SourceDescriptionKey: " + SDKey); } else { SendMessage(SDKey, name); } } }
void OnPlayerDeath(PlayerSession session, EntityEffectSourceData dataSource) { if (!arenastart) { return; } string KillerName = GetNameOfObject(dataSource.EntitySource); if (string.IsNullOrEmpty(KillerName)) { return; } KillerName = KillerName.Remove(KillerName.Length - 3); PlayerSession killersession = getSession(KillerName); if (killersession == null) { return; } var prov = FindGP(killersession).Count(); if (prov == 0) { return; } DoAfterDeath(session, killersession); }
private void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { if (!_config.clansWars.takeBalance) { return; } string name = session.Identity.Name; string tmpName = GetNameOfObject(source.EntitySource); if (!tmpName.EndsWith("(P)")) { return; } var sesskiller = getSession(tmpName.Remove(tmpName.Length - 3)); if (sesskiller == null) { return; } if (session.Identity.Clan == null || sesskiller.Identity.Clan == null) { return; } }
private void IOnTakeDamage(EntityEffectFluid effect, EntityStats target, EntityEffectSourceData source) { if (effect == null || target == null || source == null || source.Value.Equals(0f)) { return; } AIEntity entity = target.GetComponent <AIEntity>(); if (entity != null) { Interface.CallHook("OnEntityTakeDamage", entity, source); return; } #if ITEMV2 HNetworkView networkView = target.networkView; #else uLink.NetworkView networkView = target.uLinkNetworkView(); #endif if (networkView != null) { PlayerSession session = GameManager.Instance.GetSession(networkView.owner); if (session != null) { Interface.CallHook("OnPlayerTakeDamage", session, source); } } }
private void OnPlayerDeath(PlayerSession session, EntityEffectSourceData dataSource) { string name = string.Empty; name = session.Identity.Name; string tmpName = GetNameOfObject(dataSource.EntitySource); if (string.IsNullOrEmpty(tmpName)) { return; } var KillerName = tmpName.Remove(tmpName.Length - 3); if (runningman == getSession(name)) { var sessionKiller = getSession(KillerName); if (sessionKiller != null) { Server.Broadcast(lang.GetMessage("msg_killrunner", this) .Replace("{killer}", sessionKiller.Identity.Name) .Replace("{runner}", session.Identity.Name)); RunnerStop(sessionKiller); } else { Server.Broadcast(lang.GetMessage("msg_deathhrunner", this)); } } }
private void OnPlayerTakeDamage(PlayerSession session, EntityEffectSourceData source) { string id = session.SteamId.ToString(); if (protection.Contains(id)) { source.Value = 0f; timer.Once(10f, () => protection.Remove(id)); // TODO: Detect ground instead of timer } }
private PlayerSession GetPlayerSession(EntityEffectSourceData dataSource) { if (dataSource?.EntitySource?.GetComponent <EntityStats>()?.networkView == null) { return(null); } HNetworkView networkView = dataSource.EntitySource.GetComponent <EntityStats>().networkView; return(GameManager.Instance.GetSession(networkView.owner)); }
private void OnPlayerTakeDamage(PlayerSession session, EntityEffectSourceData source) { if (permission.UserHasPermission(session.SteamId.ToString(), "admintools.godmode") || permission.UserHasPermission(session.SteamId.ToString(), "admintools.all") || session.IsAdmin) { if (Godlist.Contains((ulong)session.SteamId)) { source.LastEffectSource = null; } } }
private object IOnEntityEffect(StandardEntityFluidEffect effect, EntityEffectSourceData sourceData, float relativeValue) { if (sourceData == null || effect.ResolveTargetType() != EntityFluidEffectKeyDatabase.Instance?.Health) { return(null); } EntityStats stats = effect.EntityStats; if (stats == null) { return(null); } float newValue = Mathf.Clamp(effect.Value + relativeValue, effect.MinValue, effect.MaxValue); float updatedValue = newValue - effect.Value; sourceData.Value = updatedValue; AIEntity entity = stats.GetComponent <AIEntity>(); if (entity != null) { if (updatedValue > 0) { return(Interface.CallHook("OnEntityHeal", entity, sourceData)); } else if (updatedValue < 0) { return(Interface.CallHook("OnEntityTakeDamage", entity, sourceData)); } return(null); } HNetworkView networkView = stats.networkView; if (networkView != null) { PlayerSession session = GameManager.Instance.GetSession(stats.networkView.owner); if (session != null) { if (updatedValue > 0) { return(Interface.CallHook("OnPlayerHeal", session, sourceData)); } else if (updatedValue < 0) { return(Interface.CallHook("OnPlayerTakeDamage", session, sourceData)); } } } return(null); }
/// <summary> /// Causes the player to die /// </summary> /// <param name="session"></param> public void Kill(PlayerSession session) { var stats = session.WorldPlayerEntity.GetComponent <EntityStats>(); var entityEffectSourceDatum = new EntityEffectSourceData { SourceDescriptionKey = "EntityStats/Sources/Suicide" }; stats.HandleEvent(new EntityEventData { EventType = EEntityEventType.Die }, entityEffectSourceDatum); }
private void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { if (permission.UserHasPermission(session.SteamId.ToString(), "admintools.godmode") || permission.UserHasPermission(session.SteamId.ToString(), "admintools.all") || session.IsAdmin) { string KillName = GetNameOfObject(source.EntitySource); if (KillName != "") { string Killer = KillName.Replace("(P)", ""); if ((bool)Config["KillingInGodBan"] || (bool)Config["KillingInGodKick"]) { PlayerSession person = GetSession(Killer); if (person != null) { ulong ID = (ulong)person.SteamId; if (Godlist.Contains(ID)) { if ((bool)Config["LogKillingInGodMode"]) { globallog.Add("[" + DateTime.Now + "] " + session.Identity.Name + " (" + session.SteamId + ") killed " + person.Identity.Name + " (" + person.SteamId + ") while in GodMode"); SaveGlobalLog(); } if ((bool)Config["KillingInGodKick"]) { GameManager.Instance.KickPlayer(ID.ToString(), Msg("godkill")); } if (!person.IsAdmin) { if ((bool)Config["KillingInGodBan"]) { ConsoleManager.Instance.ExecuteCommand("ban " + ID); GameManager.Instance.KickPlayer(ID.ToString(), Msg("godkill")); } } } } } } if (Godlist.Contains((ulong)session.SteamId)) { EntityStats stats = session.WorldPlayerEntity.GetComponent <EntityStats>(); timer.Once(0.1f, () => { stats.GetFluidEffect(Singleton <RuntimeAssetManager> .Instance.RefList.EntityEffectDatabase.Health).SetValue(100f); }); } } }
private PlayerSession GetPlayerSession(EntityEffectSourceData source) { if (source != null && source.EntitySource != null) { var view = source.EntitySource.GetComponent <HNetworkView>(); if (view != null) { var session = GameManager.Instance.GetSession(view.owner); if (session != null) { return(session); } } } return(null); }
/// <summary> /// Causes the player to die /// </summary> /// <param name="session"></param> public void Kill(PlayerSession session) { EntityStats stats = session.WorldPlayerEntity.GetComponent <EntityStats>(); EntityEffectSourceData entityEffectSourceDatum = new EntityEffectSourceData { SourceDescriptionKey = "EntityStats/Sources/Suicide" }; #if ITEMV2 stats.HandleEvent(new EntityEventDataRaiseEvent { EventType = EEntityEventType.Die }, entityEffectSourceDatum); #else stats.HandleEvent(new EntityEventData { EventType = EEntityEventType.Die }, entityEffectSourceDatum); #endif }
object OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { if (permission.UserHasPermission(session.SteamId.ToString(), "admintools.godmode") || permission.UserHasPermission(session.SteamId.ToString(), "admintools.all")) { string KillName = GetNameOfObject(source.EntitySource); if (KillName != "") { string Killer = KillName.Replace("(P)", ""); if ((bool)Config["KillingInGodBan"] || (bool)Config["KillingInGodKick"]) { PlayerSession person = GetSession(Killer); if (person != null) { ulong ID = (ulong)person.SteamId; if (Godlist.Contains(ID)) { if ((bool)Config["KillingInGodKick"]) { Singleton <GameManager> .Instance.KickPlayer(ID.ToString(), Msg("godkill")); } if (!person.IsAdmin) { if ((bool)Config["KillingInGodBan"]) { ConsoleManager.Instance?.ExecuteCommand("ban " + ID); Singleton <GameManager> .Instance.KickPlayer(ID.ToString(), Msg("godkill")); } } } } } } if (Godlist.Contains((ulong)session.SteamId)) { EntityStats stats = session.WorldPlayerEntity.GetComponent <EntityStats>(); timer.Once(0.1f, () => { stats.GetFluidEffect(EEntityFluidEffectType.Health).SetValue(100f); }); return(false); } } return(null); }
private void OnPlayerDeath(PlayerSession playerSession, EntityEffectSourceData dataSource) { var prefix = $"<color={Config["ServerColor"]}>{Config["ServerName"]}</color>"; var textcolor = $"<color={Config["TextColor"]}>"; string name = playerSession.Name; string KillerName = GetNameOfObject(dataSource.EntitySource); Puts(dataSource.SourceDescriptionKey); if (KillerName == "") { Server.Broadcast(prefix, textcolor + (lang.GetMessage(dataSource.SourceDescriptionKey, this) ?? lang.GetMessage("Unknown", this)).Replace("{Name}", name) + "</color>"); } else if (KillerName == "Creatures/Tokar") { Server.Broadcast(prefix, textcolor + (lang.GetMessage("Creatures/Tokar", this) ?? lang.GetMessage("Unknown", this)).Replace("{Name}", name) + "</color>"); } else if (KillerName == "Machines/Medusa Vine") { Server.Broadcast(prefix, textcolor + (lang.GetMessage("Machines/Medusa Vine", this) ?? lang.GetMessage("Unknown", this)).Replace("{Name}", name) + "</color>"); } else { if (KillerName.Length >= 3) { KillerName = KillerName.Substring(0, KillerName.Length - 3); } if (KillCounter != null) { var killerkills = KillCounter.Call("AddKill", playerSession, dataSource); if (killerkills != null) { Server.Broadcast(prefix, textcolor + (lang.GetMessage(dataSource.SourceDescriptionKey, this) ?? lang.GetMessage("player", this)).Replace("{Name}", name).Replace("{Killer}", KillerName).Replace("{Kills}", killerkills.ToString()) + "</color>"); } else { Server.Broadcast(prefix, textcolor + (lang.GetMessage(dataSource.SourceDescriptionKey, this) ?? lang.GetMessage("player", this)).Replace("{Name}", name).Replace("{Killer}", KillerName) + "</color>"); } } else { Server.Broadcast(prefix, textcolor + (lang.GetMessage(dataSource.SourceDescriptionKey, this) ?? lang.GetMessage("player", this)).Replace("{Name}", name).Replace("{Killer}", KillerName) + "</color>"); } } }
private void OnPlayerDeath(PlayerSession playerSession, EntityEffectSourceData dataSource) { if (CustomDeathMessages == null) { string killer_name = GetNameOfObject(dataSource.EntitySource); if (killer_name.Length >= 3) { killer_name = killer_name.Substring(0, killer_name.Length - 3); } var killerkills = AddKill(playerSession, dataSource); if (killerkills != null) { timer.Once(1f, () => { Server.Broadcast(lang.GetMessage("player", this).Replace("{Name}", killer_name).Replace("{Kills}", killerkills)); }); } } }
void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { string SDKey = !string.IsNullOrEmpty(source.SourceDescriptionKey) ? source.SourceDescriptionKey : Singleton <GameManager> .Instance.GetDescriptionKey(source.EntitySource); if (SDKey.EndsWith("(P)")) { string KillerName = SDKey.Substring(0, SDKey.Length - 3); foreach (IPlayer Player in players.Connected) { if (Player.Name == KillerName) { DynamicConfigFile PlayerData; if (Interface.Oxide.DataFileSystem.ExistsDatafile(Player.Id)) { int KillAmount = 0; PlayerData = Interface.Oxide.DataFileSystem.GetDatafile(Player.Id); if (int.TryParse(PlayerData["Kills"].ToString(), out KillAmount)) { PlayerData["Kills"] = KillAmount++; } else { PlayerData["Kills"] = 1; } } else { PlayerData = Interface.Oxide.DataFileSystem.GetDatafile(Player.Id); PlayerData["Kills"] = 1; } PlayerData.Save(); break; } } } }
string AddKill(PlayerSession playerSession, EntityEffectSourceData dataSource) { string victim_name = playerSession.Name; var victim_steamID = GetSteamID(victim_name); var victim_identity = GameManager.Instance.GetIdentity(victim_steamID); string killer_name = GetNameOfObject(dataSource.EntitySource); if (killer_name != "") { if (killer_name.Length >= 3) { killer_name = killer_name.Substring(0, killer_name.Length - 3); } var killer_steamID = GetSteamID(killer_name); var killer_identity = GameManager.Instance.GetIdentity(killer_steamID); if (killer_identity == null) { return(null); } if (!data.ContainsKey(killer_steamID)) { data.Add(killer_steamID, 0); } if (isValidKill(victim_identity, killer_identity)) { data[killer_steamID] += 1; } SaveData(); var kills = data[killer_steamID].ToString(); return(kills); } return(null); }
void OnPlayerDeath(PlayerSession session, EntityEffectSourceData source) { ulong userID_ulong; string userID; ulong userID_ulong_other; string userID_other; int old = 0; int old_other = 0; PlayerSession session_other = null; string other_name = ""; string name = ""; userID_ulong = session.SteamId.m_SteamID; userID = userID_ulong.ToString(); if (general_Banks.List_accounts.ContainsKey(userID) == true) { old = (int)general_Banks.List_accounts[userID].poket; general_Banks.List_accounts[userID].poket = 0; hurt.SendChatMessage(session, $"{Get_message("Death lost", session.SteamId.ToString()).Replace("{Money}",old.ToString()).Replace("{Money_name}",general_Banks.name_money)}"); other_name = GetNameOfObject(source.EntitySource); name = session.Name; if (other_name != "") { other_name = other_name.Substring(0, other_name.Length - 3); session_other = FindSession(other_name); if (session_other != null) { userID_ulong_other = session_other.SteamId.m_SteamID; userID_other = userID_ulong_other.ToString(); old_other = (int)general_Banks.List_accounts[userID_other].poket; general_Banks.List_accounts[userID_other].poket = old_other + old; hurt.SendChatMessage(session_other, $"{Get_message("Death win", session.SteamId.ToString()).Replace("{Player}",name).Replace("{Money}",old.ToString()).Replace("{Money_name}",general_Banks.name_money)}"); } } SaveDataBanks(); } }
string AddKill(PlayerSession victim, EntityEffectSourceData dataSource) { PlayerSession killer = GetPlayerSession(dataSource); if (killer == null) { return(null); } ulong killer_steamID = killer.SteamId.m_SteamID; if (!data.ContainsKey(killer_steamID)) { data.Add(killer_steamID, 0); } if (IsValidKill(killer, victim)) { data[killer_steamID] += 1; } return(data[killer_steamID].ToString() ?? null); }
void OnPlayerTakeDamage(PlayerSession session, EntityEffectSourceData source) { if (CurrentTask.EntityName == "PlayerDamage") { string SDKey = !string.IsNullOrEmpty(source.SourceDescriptionKey) ? source.SourceDescriptionKey : Singleton <GameManager> .Instance.GetDescriptionKey(source.EntitySource); if (SDKey.EndsWith("(P)")) { string KillerName = SDKey.Substring(0, SDKey.Length - 3); Dictionary <uLink.NetworkPlayer, PlayerSession> .Enumerator PlayerSession = GameManager.Instance.GetSessions().GetEnumerator(); while (PlayerSession.MoveNext()) { if (PlayerSession.Current.Value.IPlayer.Name == KillerName) { AddPlayerCompleteTaskAmount(PlayerSession.Current.Key, PlayerSession.Current.Value.SteamId.ToString(), source.Value); break; } } } } }
void OnPlayerDeath(PlayerSession player, EntityEffectSourceData source) { if (bool.Parse(Config["deathdrop"].ToString())) { var tmpName = GetNameOfObject(source.EntitySource); if (tmpName.Length < 3) { return; } var murdererName = tmpName.Remove(tmpName.Length - 3); var isPlayer = (getSession(murdererName) != null) ? true : false; if (source.EntitySource.name == null || !isPlayer) { return; } var murderer = getSession(murdererName); var murdererId = murderer.SteamId; var deceased = player; var deceasedId = player.SteamId; var deceasedBalance = Wallet(player); //Substract all cash from deceased RemoveCash(deceased, deceasedBalance); hurt.SendChatMessage(deceased, Color(GetMsg("msg_CashLost", player), "bad") .Replace("{deceasedBalance}", deceasedBalance.ToString())); //PrintWarning(deceased + " have lost $" + deceasedBalance + " by dying with cash in their pocket"); //Give all cash to murderer AddCash(murderer, deceasedBalance); hurt.SendChatMessage(murderer, Color(GetMsg("msg_CashWon", player), "good") .Replace("{deceased.Name}", deceased.Name) .Replace("{deceasedBalance}", deceasedBalance.ToString())); SaveData(); } }
private void OnPlayerTakeDamage(PlayerSession session, EntityEffectSourceData source) { string name = session.Identity.Name; string tmpName = GetNameOfObject(source.EntitySource); if (tmpName.EndsWith("(P)")) { var sesskiller = getSession(tmpName.Remove(tmpName.Length - 3)); if (sesskiller == null) { return; } if (sesskiller.Identity.Clan != null) { if (sesskiller.Identity.Clan.GetMemebers().Contains((ulong)session.SteamId)) { Notice(sesskiller, "<color=lime>Это твой союзник!</color>"); source.LastEffectSource = null; } } } }
/// <summary> /// Causes the user's character to die /// </summary> public void Kill() { var component = session.WorldPlayerEntity.GetComponent<EntityStats>(); var entityEffectSourceDatum = new EntityEffectSourceData { SourceDescriptionKey = "EntityStats/Sources/Suicide" }; component.HandleEvent(new EntityEventData { EventType = EEntityEventType.Die }, entityEffectSourceDatum); }
object OnDeathNotice(string name, EntityEffectSourceData source) { hurt.BroadcastChat((lang.GetMessage(source.SourceDescriptionKey, this) ?? lang.GetMessage("Unknown", this)).Replace("{Name}", name)); return(true); }
void OnPlayerDeath(PlayerSession player, EntityEffectSourceData source) { var tmpName = GetNameOfObject(source.EntitySource); if (tmpName.Length < 3) { return; } var murdererName = tmpName.Remove(tmpName.Length - 3); var isPlayer = (getSession(murdererName) != null) ? true : false; if (source.EntitySource.name == null || !isPlayer) { return; } var murderer = getSession(murdererName); var deceased = player; var deceasedId = player.SteamId; var myInClause = new ulong[] { (ulong)murderer.SteamId, (ulong)deceasedId }; DuelData thisDuel = (from x in Duels where myInClause.Contains(x.Accepter) && myInClause.Contains(x.Requester) && x.Winner == 0 select x).FirstOrDefault(); if (thisDuel == null || thisDuel.Accepted != 1 || thisDuel.Winner != 0) { return; } if (isPlayer) { thisDuel.Winner = (ulong)murderer.SteamId; thisDuel.WinnerName = murdererName; PrintWarning(murdererName + " got " + thisDuel.Wager); AddCash(murderer, thisDuel.Wager); //announce the winner. hurt.BroadcastChat(GetMsg("broadcast_DuelWinner", player).Replace("{playerName}", murdererName)); PrintToChat(murderer, GetMsg("msg_DuelWon", player) .Replace("{moneySymbol}", MoneySym) .Replace("{money}", (thisDuel.Wager / 2).ToString())); //Make loser infamouse. //announce that the loser is now infamouse, due to duel laws. //Duels.Remove(thisDuel); Vector3 transportBack = default(Vector3); if (thisDuel.Accepter == (ulong)murderer.SteamId) { transportBack = parseVector3(thisDuel.AccepterPos); } else if (thisDuel.Requester == (ulong)murderer.SteamId) { transportBack = parseVector3(thisDuel.RequesterPos); } float lootTime = float.Parse(GetConf("lootTime", "30").ToString()); PrintToChat(murderer, GetMsg("msg_TransportBackIn", player).Replace("{time}", lootTime.ToString())); timer.Once(lootTime, () => { murderer.WorldPlayerEntity.transform.position = transportBack; }); } SaveData(); }