Пример #1
0
 public void Player_Died(Exiled.Events.EventArgs.DiedEventArgs ev)
 {
     if (ev.Killer != ev.Target)
     {
         if (!plugin.PerformAction($"KILL_{ev.Target.Role}", ev.Killer))
         {
             plugin.PerformAction($"KILL_ANY", ev.Killer);
         }
         if (plugin.avaliableContracts.ContainsKey(ev.Killer.UserId))
         {
             if (plugin.avaliableContracts[ev.Killer.UserId].Contains(ev.Target.UserId))
             {
                 plugin.avaliableContracts[ev.Killer.UserId].Remove(ev.Target.UserId);
                 var rewardCoins = ev.Target.Team == Team.SCP ? ev.Target.Role != RoleType.Scp0492 ? Config.RewardForKillingSCP : Config.RewardForKillingHuman : Config.RewardForKillingHuman;
                 ecoController.AddPlayerBalance(ev.Killer, rewardCoins);
                 ev.Killer.Broadcast(Config.ContractBroadcastTime, Config.messages["CONTRACT_REWARD"].Replace("%playername%", ev.Target.Nickname).Replace("%reward%", $"{rewardCoins}"));
                 if (plugin.avaliableContracts[ev.Killer.UserId].Count == 0)
                 {
                     plugin.avaliableContracts.Remove(ev.Killer.UserId);
                 }
             }
         }
         else if (Config.RemoveContractIfPlayerDied)
         {
             foreach (var p in plugin.avaliableContracts)
             {
                 if (p.Value.Contains(ev.Target.UserId))
                 {
                     var p2 = Player.Get(p.Key);
                     if (p2 != null)
                     {
                         p2.Broadcast(Config.ContractBroadcastTime, Config.messages["CONTRACT_REMOVED"].Replace("%playername%", ev.Target.Nickname));
                     }
                 }
             }
         }
     }
 }
Пример #2
0
        private void Player_Died(Exiled.Events.EventArgs.DiedEventArgs ev)
        {
            var controller = ev.Target.GameObject.GetComponent <SCP457Controller>();

            ev.Target.GameObject.GetComponent <BurningComponent>().burningtime = 0;
            if (controller != null)
            {
                ev.Target.Scale = new Vector3(1f, 1f, 1f);
                controller.Destroy();
                GameObject x = null;
                foreach (GameObject gameObject in global::PlayerManager.players)
                {
                    if (gameObject.GetComponent <RemoteAdmin.QueryProcessor>().PlayerId == ev.HitInformations.PlayerId)
                    {
                        x = gameObject;
                    }
                }
                var l  = ev.Target.ReferenceHub.characterClassManager.Classes.ToList();
                int pd = 0;
                foreach (var p in l.ToArray())
                {
                    if (p.roleId == RoleType.Scp0492)
                    {
                        p.fullName = "SCP-457";
                        l[pd]      = p;
                    }
                    pd++;
                }
                ev.Target.ReferenceHub.characterClassManager.Classes = l.ToArray();
                if (x != null)
                {
                    global::NineTailedFoxAnnouncer.AnnounceScpTermination(ev.Target.ReferenceHub.characterClassManager.CurRole, ev.HitInformations, string.Empty);
                }
                else
                {
                    global::DamageTypes.DamageType damageType = ev.HitInformations.GetDamageType();
                    if (damageType == global::DamageTypes.Tesla)
                    {
                        global::NineTailedFoxAnnouncer.AnnounceScpTermination(ev.Target.ReferenceHub.characterClassManager.CurRole, ev.HitInformations, "TESLA");
                    }
                    else if (damageType == global::DamageTypes.Nuke)
                    {
                        global::NineTailedFoxAnnouncer.AnnounceScpTermination(ev.Target.ReferenceHub.characterClassManager.CurRole, ev.HitInformations, "WARHEAD");
                    }
                    else if (damageType == global::DamageTypes.Decont)
                    {
                        global::NineTailedFoxAnnouncer.AnnounceScpTermination(ev.Target.ReferenceHub.characterClassManager.CurRole, ev.HitInformations, "DECONTAMINATION");
                    }
                    else
                    {
                        global::NineTailedFoxAnnouncer.AnnounceScpTermination(ev.Target.ReferenceHub.characterClassManager.CurRole, ev.HitInformations, "UNKNOWN");
                    }
                }
                UnityEngine.Object.Destroy(controller);
                foreach (var plr in Player.List)
                {
                    if (plr.GameObject.GetComponent <BurningComponent>().burning)
                    {
                        plr.GameObject.GetComponent <BurningComponent>().burning = false;
                    }
                }
            }
        }