Esempio n. 1
0
        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;
                    }
                }
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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;
                            }
                        }
                    }
                }
            }
        }
Esempio n. 5
0
        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);
                }
            }
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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;
            }
        }
Esempio n. 9
0
        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);
                }
            }
        }
Esempio n. 10
0
        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));
                }
            }
        }
Esempio n. 11
0
        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
            }
        }
Esempio n. 12
0
        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));
        }
Esempio n. 13
0
 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;
         }
     }
 }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        /// <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);
        }
Esempio n. 16
0
        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);
                    });
                }
            }
        }
Esempio n. 17
0
 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);
 }
Esempio n. 18
0
        /// <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
        }
Esempio n. 19
0
 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>");
                }
            }
        }
Esempio n. 21
0
        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));
                    });
                }
            }
        }
Esempio n. 22
0
        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;
                    }
                }
            }
        }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
        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();
            }
        }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 27
0
        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();
            }
        }
Esempio n. 28
0
        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;
                    }
                }
            }
        }
Esempio n. 29
0
 /// <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);
 }
Esempio n. 30
0
        object OnDeathNotice(string name, EntityEffectSourceData source)
        {
            hurt.BroadcastChat((lang.GetMessage(source.SourceDescriptionKey, this) ?? lang.GetMessage("Unknown", this)).Replace("{Name}", name));

            return(true);
        }
Esempio n. 31
0
        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();
        }