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); }
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); }
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); } }
void OnLoaded() { foreach (PlayerSession session in GameManager.Instance.GetSessions().Values) { if (session.IsLoaded) { CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>(); motor.FallDamageMultiplier = 0f; } } }
void NFD(PlayerSession session) { CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>(); if ((bool)Config["NoFallDmgEnabled"]) { motor.FallDamageMultiplier = 0f; } else { motor.FallDamageMultiplier = 1.5f; } }
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); }
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())); } }
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())); } }
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())); } }
void OnPlayerInit(PlayerSession session) { CharacterMotorSimple motor = session.WorldPlayerEntity.GetComponent <CharacterMotorSimple>(); motor.FallDamageMultiplier = 0f; }
private void OnExitVehicle(PlayerSession session, CharacterMotorSimple passenger) { HookCalled("OnExitVehicle"); }
private object CanExitVehicle(PlayerSession session, CharacterMotorSimple passenger) { HookCalled("CanExitVehicle"); return(null); }
private bool CanExitVehicle(PlayerSession session, CharacterMotorSimple passenger, VehiclePassenger vehicle) { HookCalled("CanExitVehicle"); return(true); }
private object IOnExitVehicle(uLink.NetworkPlayer player, CharacterMotorSimple passenger) { var session = GetSession(player); return(Interface.CallHook("OnExitVehicle", session, passenger)); }
private object ICanExitVehicle(CharacterMotorSimple passenger) { var session = GetSession(passenger.gameObject); return(Interface.CallHook("CanExitVehicle", session, passenger) == null ? "cancel" : null); }
private void OnEnterVehicle(PlayerSession session, CharacterMotorSimple passenger, VehiclePassenger vehicle) { HookCalled("OnEnterVehicle"); }
private object CanUseVehicle(uLink.NetworkPlayer player, CharacterMotorSimple passenger, VehicleUsable vehicle) { HookCalled("CanUseVehicle"); return(null); }
private object IOnExitVehicle(CharacterMotorSimple passenger) => Interface.CallHook("OnExitVehicle", FindSessionByNetPlayer(passenger.networkView.owner), passenger);
private object IOnExitVehicle(CharacterMotorSimple passenger) => Interface.Call("OnExitVehicle", FindSessionByNetPlayer(passenger.networkView.owner), passenger);