Esempio n. 1
0
        private void SetFlymode(PlayerSession session, float speed = 75f)
        {
            CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();

            if (!motor)
            {
                return;
            }

            if (defaultConfig == null && flyingConfig == null)
            {
                SetupMotorConfigs(motor);
            }

            players[session].IsFlying = !players[session].IsFlying;

            if (players[session].IsFlying)
            {
                motor.Config = flyingConfig;
                players[session].BaseSpeed = speed;
            }
            else
            {
                session.WorldPlayerEntity.transform.position = Ground(session);
                motor.Config = defaultConfig;
            }

            AlertManager.Instance.GenericTextNotificationServer(players[session].IsFlying
                    ? lang.GetMessage("Enabled", this, session.SteamId.ToString())
                    : lang.GetMessage("Disabled", this, session.SteamId.ToString()), session.Player);
        }
Esempio n. 2
0
 private void SetupMotorConfigs(CharacterMotorSimple motor)
 {
     defaultConfig = motor.Config;
     flyingConfig  = UnityEngine.Object.Instantiate(defaultConfig);
     flyingConfig.AirSpeedModifier     = 0.2f;
     flyingConfig.FallDamageMultiplier = 0f;
     flyingConfig.GravityVector        = new Vector3(0f, -25f, 0f);
 }
Esempio n. 3
0
        private void OnPlayerInput(PlayerSession session, InputControls input)
        {
            if (!players.ContainsKey(session) || !players[session].IsFlying)
            {
                return;
            }

            CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();
            EntityStats          stats = session.WorldPlayerEntity.GetComponent <EntityStats>();

            if (!motor)
            {
                return;
            }

            Vector3 direction = new Vector3(IntFromBool(input.StrafeLeft) * -1 + IntFromBool(input.StrafeRight), 0f, IntFromBool(input.Backward) * -1 + IntFromBool(input.Forward));
            float   speed     = players[session].BaseSpeed;

            motor.IsGrounded = true;
            direction        = motor.RotationToAimDirectionCache * direction.normalized;

            if (input.Forward)
            {
                direction.y = input.DirectionVector.y;
            }

            if (input.Backward)
            {
                direction.y = -input.DirectionVector.y;
            }

            if (input.Sprint)
            {
                speed *= 2;
            }

            if (motor._state.IsCrouching)
            {
                speed /= 2;
            }

            motor.Set_currentVelocity(motor.Accelerate(direction, speed, motor.GetVelocity(), 5, 5));

            if (!stats)
            {
                return;
            }

            Dictionary <EntityFluidEffectKey, IEntityFluidEffect> effects = stats.GetFluidEffects();

            foreach (KeyValuePair <EntityFluidEffectKey, IEntityFluidEffect> effect in effects)
            {
                effect.Value.Reset(true);
            }
        }
Esempio n. 4
0
 void OnLoaded()
 {
     foreach (PlayerSession session in GameManager.Instance.GetSessions().Values)
     {
         if (session.IsLoaded)
         {
             CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();
             motor.FallDamageMultiplier = 0f;
         }
     }
 }
Esempio n. 5
0
        void NFD(PlayerSession session)
        {
            CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();

            if ((bool)Config["NoFallDmgEnabled"])
            {
                motor.FallDamageMultiplier = 0f;
            }
            else
            {
                motor.FallDamageMultiplier = 1.5f;
            }
        }
Esempio n. 6
0
        private Vector3 Ground(PlayerSession session)
        {
            CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();
            Vector3    loc             = motor.PlayerCamera.position;
            Vector3    dir             = motor.PlayerCamera.TransformDirection(Vector3.down);
            RaycastHit hit;

            if (Physics.Raycast(loc, dir, out hit))
            {
                return(new Vector3(hit.point.x, hit.point.y + 1f, hit.point.z));
            }
            return(loc);
        }
Esempio n. 7
0
        private void FreezeCommand(PlayerSession session, string command, string[] args)
        {
            if (permission.UserHasPermission(session.SteamId.ToString(), "admintools.freeze") || permission.UserHasPermission(session.SteamId.ToString(), "admintools.all") || session.IsAdmin)
            {
                PlayerSession target = GetSession(args[0]);

                if (target != null)
                {
                    CharacterMotorSimple motor = target.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();

                    if (motor.CanMove)
                    {
                        motor.CanMove = false;
                        hurt.SendChatMessage(session, null, Msg("frozenmsg", session.SteamId.ToString()).Replace("{Player}", target.Identity.Name));
                        hurt.SendChatMessage(target, null, Msg("frozen", session.SteamId.ToString()));

                        if ((bool)Config["LogFreeze"])
                        {
                            globallog.Add("[" + DateTime.Now + "] " + session.Identity.Name + " (" + session.SteamId + ") FROZE " + target.Identity.Name + " (" + target.SteamId + ")");
                            SaveGlobalLog();
                        }
                    }
                    else
                    {
                        motor.CanMove = true;
                        hurt.SendChatMessage(session, null, Msg("unfrozenmsg", session.SteamId.ToString()).Replace("{Player}", target.Identity.Name));
                        hurt.SendChatMessage(target, null, Msg("unfrozen", session.SteamId.ToString()));
                        if ((bool)Config["LogFreeze"])
                        {
                            globallog.Add("[" + DateTime.Now + "] " + session.Identity.Name + " (" + session.SteamId + ") UNFROZE " + target.Identity.Name + " (" + target.SteamId + ")");
                            SaveGlobalLog();
                        }
                    }
                }
                else
                {
                    hurt.SendChatMessage(session, null, Msg("playernotfound", session.SteamId.ToString()).Replace("{Player}", args[0]));
                }
            }
            else
            {
                hurt.SendChatMessage(session, null, Msg("nopermission", session.SteamId.ToString()));
            }
        }
Esempio n. 8
0
 void nfd(PlayerSession session, string command, string[] args)
 {
     if (permission.UserHasPermission(session.SteamId.ToString(), "nofalldmg.admin") || session.IsAdmin)
     {
         if (args.Length == 0)
         {
             CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();
             motor.FallDamageMultiplier = 0f;
             hurt.SendChatMessage(session, Msg("nodamagesuccess", session.SteamId.ToString()));
         }
         else if (args.Length == 1)
         {
             if (args[0].ToLower() == "enabled" || args[0].ToLower() == "on")
             {
                 Config.Set("NoFallDmgEnabled", true);
                 hurt.SendChatMessage(session, Msg("nodamagetoggle", session.SteamId.ToString()).Replace("{Mode}", "Enabled"));
                 UpdateAllPlayers();
             }
             else if (args[0].ToLower() == "disabled" || args[0].ToLower() == "off")
             {
                 Config.Set("NoFallDmgEnabled", false);
                 hurt.SendChatMessage(session, Msg("nodamagetoggle", session.SteamId.ToString()).Replace("{Mode}", "Disabled"));
                 UpdateAllPlayers();
             }
             else
             {
                 hurt.SendChatMessage(session, Msg("error", session.SteamId.ToString()));
             }
         }
         else
         {
             hurt.SendChatMessage(session, Msg("error", session.SteamId.ToString()));
         }
     }
     else
     {
         hurt.SendChatMessage(session, Msg("nopermission", session.SteamId.ToString()));
     }
 }
Esempio n. 9
0
 void UnFreezeCommand(PlayerSession session, string command, string[] args)
 {
     if (permission.UserHasPermission(session.SteamId.ToString(), "admintools.freeze") || permission.UserHasPermission(session.SteamId.ToString(), "admintools.all"))
     {
         PlayerSession target = GetSession(args[0]);
         if (target != null)
         {
             CharacterMotorSimple motor = target.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();
             motor.CanMove = true;
             hurt.SendChatMessage(session, Msg("unfrozenmsg", session.SteamId.ToString()).Replace("{Player}", target.Name));
             hurt.SendChatMessage(target, Msg("unfrozen", session.SteamId.ToString()));
             return;
         }
         else
         {
             hurt.SendChatMessage(session, Msg("playernotfound", session.SteamId.ToString()).Replace("{Player}", args[0]));
         }
     }
     else
     {
         hurt.SendChatMessage(session, Msg("nopermission", session.SteamId.ToString()));
     }
 }
Esempio n. 10
0
        void OnPlayerInit(PlayerSession session)
        {
            CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>();

            motor.FallDamageMultiplier = 0f;
        }
Esempio n. 11
0
 private void OnExitVehicle(PlayerSession session, CharacterMotorSimple passenger)
 {
     HookCalled("OnExitVehicle");
 }
Esempio n. 12
0
 private object CanExitVehicle(PlayerSession session, CharacterMotorSimple passenger)
 {
     HookCalled("CanExitVehicle");
     return(null);
 }
Esempio n. 13
0
 private bool CanExitVehicle(PlayerSession session, CharacterMotorSimple passenger, VehiclePassenger vehicle)
 {
     HookCalled("CanExitVehicle");
     return(true);
 }
Esempio n. 14
0
        private object IOnExitVehicle(uLink.NetworkPlayer player, CharacterMotorSimple passenger)
        {
            var session = GetSession(player);

            return(Interface.CallHook("OnExitVehicle", session, passenger));
        }
Esempio n. 15
0
        private object ICanExitVehicle(CharacterMotorSimple passenger)
        {
            var session = GetSession(passenger.gameObject);

            return(Interface.CallHook("CanExitVehicle", session, passenger) == null ? "cancel" : null);
        }
Esempio n. 16
0
 private void OnEnterVehicle(PlayerSession session, CharacterMotorSimple passenger, VehiclePassenger vehicle)
 {
     HookCalled("OnEnterVehicle");
 }
Esempio n. 17
0
 private object CanUseVehicle(uLink.NetworkPlayer player, CharacterMotorSimple passenger, VehicleUsable vehicle)
 {
     HookCalled("CanUseVehicle");
     return(null);
 }
Esempio n. 18
0
 private object IOnExitVehicle(CharacterMotorSimple passenger) => Interface.CallHook("OnExitVehicle", FindSessionByNetPlayer(passenger.networkView.owner), passenger);
Esempio n. 19
0
 private object IOnExitVehicle(CharacterMotorSimple passenger) => Interface.Call("OnExitVehicle", FindSessionByNetPlayer(passenger.networkView.owner), passenger);