Beispiel #1
0
 void cmdCurePlayer(NetUser netuser, string command, string[] args)
 {
     if (!permission.UserHasPermission(netuser.playerClient.userID.ToString(), "advmetabolism.allowed"))
     {
         SendReply(netuser, GetMessage("NoPermissionCure", netuser.userID.ToString()));
         return;
     }
     else if (args.Length != 1)
     {
         var rootControllable = netuser.playerClient.rootControllable;
         if (!rootControllable)
         {
             return;
         }
         var rootCharacter = rootControllable.rootCharacter;
         if (!rootCharacter)
         {
             return;
         }
         Metabolism metabolism = rootControllable.GetComponent <Metabolism>();
         metabolism.AddCalories(3000);
         float radLevel = metabolism.GetRadLevel();
         metabolism.AddAntiRad(radLevel);
         FallDamage fallDamage = rootControllable.GetComponent <FallDamage>();
         fallDamage.ClearInjury();
         HumanBodyTakeDamage humanBodyTakeDamage = rootControllable.GetComponent <HumanBodyTakeDamage>();
         humanBodyTakeDamage.SetBleedingLevel(0);
         SendReply(netuser, GetMessage("CureSelf", netuser.userID.ToString()));
         return;
     }
     else
     {
         NetUser targetuser = rust.FindPlayer(args[0]);
         if (targetuser != null)
         {
             var rootControllable = netuser.playerClient.rootControllable;
             if (!rootControllable)
             {
                 return;
             }
             var rootCharacter = rootControllable.rootCharacter;
             if (!rootCharacter)
             {
                 return;
             }
             Metabolism metabolism = rootControllable.GetComponent <Metabolism>();
             metabolism.AddCalories(3000);
             float radLevel = metabolism.GetRadLevel();
             metabolism.AddAntiRad(radLevel);
             FallDamage fallDamage = rootControllable.GetComponent <FallDamage>();
             fallDamage.ClearInjury();
             HumanBodyTakeDamage humanBodyTakeDamage = rootControllable.GetComponent <HumanBodyTakeDamage>();
             humanBodyTakeDamage.SetBleedingLevel(0);
             SendReply(netuser, GetMessage("CureTargetReply", netuser.userID.ToString()) + targetuser.displayName);
             SendReply(targetuser, GetMessage("CureTargetMessage", netuser.userID.ToString()) + netuser.displayName);
         }
     }
 }
Beispiel #2
0
 void cmdKillPlayer(NetUser netuser, string command, string[] args)
 {
     if (!permission.UserHasPermission(netuser.playerClient.userID.ToString(), "advmetabolism.allowed"))
     {
         SendReply(netuser, GetMessage("NoPermissionKill", netuser.userID.ToString()));
         return;
     }
     else if (args.Length != 1)
     {
         var rootControllable = netuser.playerClient.rootControllable;
         if (!rootControllable)
         {
             return;
         }
         var rootCharacter = rootControllable.rootCharacter;
         if (!rootCharacter)
         {
             return;
         }
         Metabolism metabolism = rootControllable.GetComponent <Metabolism>();
         metabolism.AddRads(99999999);
         netuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
         SendReply(netuser, GetMessage("KillSelf", netuser.userID.ToString()));
         return;
     }
     else
     {
         NetUser targetuser = rust.FindPlayer(args[0]);
         if (targetuser != null)
         {
             var rootControllable = targetuser.playerClient.rootControllable;
             if (!rootControllable)
             {
                 return;
             }
             var rootCharacter = rootControllable.rootCharacter;
             if (!rootCharacter)
             {
                 return;
             }
             Metabolism metabolism = rootControllable.GetComponent <Metabolism>();
             metabolism.AddRads(99999999);
             targetuser.playerClient.rootControllable.rootCharacter.takeDamage.SetGodMode(false);
             SendReply(netuser, GetMessage("KillTargetReply", netuser.userID.ToString()) + targetuser.displayName);
             SendReply(targetuser, GetMessage("KillTargetMessage", netuser.userID.ToString()) + netuser.displayName);
         }
     }
 }
Beispiel #3
0
 void cmdStarvePlayer(NetUser netuser, string command, string[] args)
 {
     if (!permission.UserHasPermission(netuser.playerClient.userID.ToString(), "advmetabolism.allowed"))
     {
         SendReply(netuser, GetMessage("NoPermissionStarve", netuser.userID.ToString()));
         return;
     }
     else if (args.Length != 1)
     {
         var rootControllable = netuser.playerClient.rootControllable;
         if (!rootControllable)
         {
             return;
         }
         var rootCharacter = rootControllable.rootCharacter;
         if (!rootCharacter)
         {
             return;
         }
         Metabolism metabolism = rootControllable.GetComponent <Metabolism>();
         metabolism.SubtractCalories(3000);
         SendReply(netuser, GetMessage("NoPermissionStarve", netuser.userID.ToString()));
         return;
     }
     else
     {
         NetUser targetuser = rust.FindPlayer(args[0]);
         if (targetuser != null)
         {
             var rootControllable = targetuser.playerClient.rootControllable;
             if (!rootControllable)
             {
                 return;
             }
             var rootCharacter = rootControllable.rootCharacter;
             if (!rootCharacter)
             {
                 return;
             }
             Metabolism metabolism = rootControllable.GetComponent <Metabolism>();
             metabolism.SubtractCalories(3000);
             SendReply(netuser, GetMessage("StarveTargetReply", netuser.userID.ToString()) + targetuser.displayName);
             SendReply(targetuser, GetMessage("StarveTargetMessage", netuser.userID.ToString()) + netuser.displayName);
         }
     }
 }
Beispiel #4
0
        void cmdEp250(NetUser netuser, string command, string[] args)
        {
            var id = netuser.userID.ToString();

            if (!arenassystem)
            {
                rust.SendChatMessage(netuser, chatPrefix, GetMessage("ArenasOffline", id)); return;
            }
            if (locationsTeleports.Count == 0)
            {
                rust.SendChatMessage(netuser, chatPrefix, GetMessage("ArenasOffline", id)); return;
            }
            if (online.ContainsKey(netuser))
            {
                if (online[netuser])
                {
                    online[netuser] = false;
                    PlayersInP250.Add(netuser.playerClient.gameObject.AddComponent <P250arena>());
                    Arena(netuser);
                }
                else
                {
                    online[netuser] = true;
                    GameObject.Destroy(netuser.playerClient.GetComponent <P250arena>());
                    PlayersInP250.Remove(netuser.playerClient.GetComponent <P250arena>());
                    var        rootControllable = netuser.playerClient.rootControllable;
                    Metabolism morte            = rootControllable.GetComponent <Metabolism>();
                    morte.AddRads(999999999999);
                }
            }
            else
            {
                online[netuser] = false;
                PlayersInP250.Add(netuser.playerClient.gameObject.AddComponent <P250arena>());
                Arena(netuser);
            }
        }
Beispiel #5
0
        private void SetPlayerDeathTags(HumanBodyTakeDamage humanBodyTakeDamage, DamageEvent damage, ref DeathTags tags)
        {
            Metabolism metabolism = damage.attacker.id.GetComponent <Metabolism>();
            FallDamage fallDamage = damage.attacker.id.GetComponent <FallDamage>();

            tags.killed   = damage.victim.client?.netUser.displayName ?? UNKNOWN;
            tags.killedId = damage.victim.client?.netUser.userID.ToString() ?? UNKNOWN;
            tags.bodypart = damage.bodyPart.GetNiceName();
            if (damage.attacker.id.GetComponentInChildren <BasicWildLifeAI>())
            {
                tags.deathType = DeathTypes.entity;
                var mutant = damage.attacker.idMain?.ToString().Contains("Mutant") ?? false;
                if (damage.attacker.id.GetComponent <WolfAI>())
                {
                    tags.killer = (mutant) ? "Mutant Wolf" : "Wolf";
                    return;
                }
                if (damage.attacker.id.GetComponent <BearAI>())
                {
                    tags.killer = (mutant) ? "Mutant Bear" : "Bear";
                    return;
                }
            }

            if (damage.attacker.id.GetComponent <DeployableObject>())
            {
                tags.deathType = DeathTypes.human;
                tags.killerId  = damage.attacker.id.GetComponent <DeployableObject>().creatorID.ToString();
                if (damage.attacker.id.GetComponent <SpikeWall>())
                {
                    tags.weapon = "Spike Wall";
                }
                else if (damage.attacker.id.GetComponent <TimedExplosive>())
                {
                    tags.weapon = "Explosive Charge";
                }
                return;
            }

            if (damage.attacker.id.GetComponent <TimedGrenade>())
            {
                tags.deathType = DeathTypes.human;
                tags.weapon    = "F1 Grenade";
                return;
            }

            if (damage.attacker.client == damage.victim.client)
            {
                tags.deathType = DeathTypes.suicide;
                tags.killerId  = tags.killedId;
                float fallDmg = (float)fallDamage?.GetType().GetField("injuredTime", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(fallDamage);

                if (damage.damageTypes == 0 && WaterLine.Height != 0f && humanBodyTakeDamage.transform.position.y <= WaterLine.Height)
                {
                    tags.weapon = tags.weapon.Equals(UNKNOWN) ? "Water" : tags.weapon;
                }
                else if (damage.attacker.id.GetComponent <Radiation>() && metabolism.GetRadLevel() >= 500f)
                {
                    tags.weapon = tags.weapon.Equals(UNKNOWN) ? "Radiation" : tags.weapon;
                }
                else if (fallDamage != null && fallDamage.GetLegInjury() >= 1f)
                {
                    tags.weapon = tags.weapon.Equals(UNKNOWN) ? "Falling" : tags.weapon;
                }
                else if (humanBodyTakeDamage.IsBleeding())
                {
                    tags.weapon = tags.weapon.Equals(UNKNOWN) ? "Bleeding" : tags.weapon;
                }
                if (tags.weapon.Equals(UNKNOWN))
                {
                    tags.weapon = "Suicide";
                }
            }
            else if (damage.victim.client && damage.attacker.client)
            {
                tags.deathType = DeathTypes.human;
                if (humanBodyTakeDamage.IsBleeding())
                {
                    tags.weapon = tags.weapon.Equals(UNKNOWN) ? "Bleeding" : tags.weapon;
                }
            }
        }