protected override void OnWindowGUIBeforeContent() { base.OnWindowGUIBeforeContent(); bool playerExists = Ped.Instance != null; if (playerExists) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Remove all weapons", GUILayout.ExpandWidth(false))) { Ped.Instance.WeaponHolder.RemoveAllWeapons(); } GUILayout.Space(5); if (GUILayout.Button("Give ammo", GUILayout.ExpandWidth(false))) { foreach (var weapon in Ped.Instance.WeaponHolder.AllWeapons) { WeaponHolder.AddRandomAmmoAmountToWeapon(weapon); } } GUILayout.EndHorizontal(); GUILayout.Space(15); } }
protected override void OnWindowGUI() { // display all weapons from the game // add option to add them to player bool playerExists = Ped.Instance != null; // var defs = Item.GetDefinitions<Importing.Items.Definitions.WeaponDef> (); var datas = Importing.Weapons.WeaponData.LoadedWeaponsData.DistinctBy(wd => wd.weaponType); foreach (var data in datas) { GUILayout.Label("Id: " + data.modelId1 + " Name: " + data.weaponType + " Slot: " + data.weaponslot + " Flags: " + (null == data.gunData ? "" : string.Join(" ", data.gunData.Flags))); if (playerExists) { if (GUILayout.Button("Give", GUILayout.Width(70))) { // give weapon to player Ped.Instance.WeaponHolder.SetWeaponAtSlot(data.modelId1, data.weaponslot); Ped.Instance.WeaponHolder.SwitchWeapon(data.weaponslot); WeaponHolder.AddRandomAmmoAmountToWeapon(Ped.Instance.WeaponHolder.GetWeaponAtSlot(data.weaponslot)); } } GUILayout.Space(5); } }
void CmdGiveWeapon(int modelId) { if (!this.CanMakeWeaponRequest) { return; } if (m_ped != null) { F.RunExceptionSafe(() => { var w = m_ped.WeaponHolder.SetWeaponAtSlot(modelId, 0); m_ped.WeaponHolder.SwitchWeapon(w.SlotIndex); WeaponHolder.AddRandomAmmoAmountToWeapon(w); }); } }
void CmdGiveAmmo() { if (!this.CanMakeWeaponRequest) { return; } if (m_ped != null) { F.RunExceptionSafe(() => { foreach (var w in m_ped.WeaponHolder.AllWeapons) { WeaponHolder.AddRandomAmmoAmountToWeapon(w); } }); } }
CommandManager.ProcessCommandResult ProcessCommand(CommandManager.ProcessCommandContext context) { string[] arguments = CommandManager.SplitCommandIntoArguments(context.command); int numArguments = arguments.Length; Player player = context.player; var pedNotAliveResult = CommandManager.ProcessCommandResult.Error("You must control a ped to run this command"); var pedModelIdDoesNotExist = CommandManager.ProcessCommandResult.Error("Specified model id does not exist"); if (arguments[0] == "skin") { if (null == player.OwnedPed) { return(pedNotAliveResult); } if (!GetPedModelId(arguments, 1, out int modelId)) { return(pedModelIdDoesNotExist); } player.OwnedPed.PlayerModel.Load(modelId); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "stalker") { if (null == player.OwnedPed) { return(pedNotAliveResult); } if (!GetPedModelId(arguments, 1, out int modelId)) { return(pedModelIdDoesNotExist); } Ped.SpawnPedStalker(modelId, player.OwnedPed.transform, player.OwnedPed); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "suicide") { if (null == player.OwnedPed) { return(pedNotAliveResult); } player.OwnedPed.Kill(); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "teleport") { if (null == player.OwnedPed) { return(pedNotAliveResult); } Vector3 position; Quaternion rotation; try { position = CommandManager.ParseVector3(arguments, 1); rotation = player.OwnedPed.transform.rotation; if (numArguments > 4) { rotation = Quaternion.Euler(0f, float.Parse(arguments[4], CultureInfo.InvariantCulture), 0f); } } catch { return(CommandManager.ProcessCommandResult.Error("Invalid syntax. Example: teleport 2000 10.2 -1234.5 or teleport 2000 10.2 -1234.5 28.3")); } player.OwnedPed.Teleport(position, rotation); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "veh") { int id = -1; if (numArguments > 1) { id = int.Parse(arguments[1]); } if (null == player.OwnedPed) { return(CommandManager.ProcessCommandResult.Error("Your ped must be alive to spawn a vehicle")); } if (!m_perPlayerData.TryGetValue(player, out PlayerData playerData)) { playerData = new PlayerData(); } playerData.vehicles.RemoveDeadObjects(); if (playerData.vehicles.Count >= this.maxVehiclesPerPlayer) { return(CommandManager.ProcessCommandResult.Error($"You can have a maximum of {this.maxVehiclesPerPlayer} vehicles")); } var vehicle = Vehicle.CreateInFrontOf(id, player.OwnedPed.transform); playerData.vehicles.Add(vehicle); m_perPlayerData[player] = playerData; return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "dveh") { if (m_perPlayerData.TryGetValue(player, out var playerData)) { playerData.vehicles.RemoveDeadObjects(); foreach (var vehicle in playerData.vehicles) { vehicle.Explode(); } } return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "w") { if (arguments.Length < 2) { return(CommandManager.ProcessCommandResult.Error("Invalid syntax. Example: w 355")); } int modelId = int.Parse(arguments[1]); if (null == player.OwnedPed) { return(pedNotAliveResult); } var weapon = player.OwnedPed.WeaponHolder.SetWeaponAtSlot(modelId, 0); player.OwnedPed.WeaponHolder.SwitchWeapon(weapon.SlotIndex); WeaponHolder.AddRandomAmmoAmountToWeapon(weapon); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "rand_w") { if (null == player.OwnedPed) { return(pedNotAliveResult); } player.OwnedPed.WeaponHolder.AddRandomWeapons(); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "rem_w") { if (null == player.OwnedPed) { return(pedNotAliveResult); } player.OwnedPed.WeaponHolder.RemoveAllWeapons(); return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "rem_current_w") { if (null == player.OwnedPed) { return(pedNotAliveResult); } var weapon = player.OwnedPed.CurrentWeapon; if (weapon != null) { Destroy(weapon.gameObject); } return(CommandManager.ProcessCommandResult.Success); } else if (arguments[0] == "ammo") { if (null == player.OwnedPed) { return(pedNotAliveResult); } foreach (var weapon in player.OwnedPed.WeaponHolder.AllWeapons) { WeaponHolder.AddRandomAmmoAmountToWeapon(weapon); } return(CommandManager.ProcessCommandResult.Success); } return(CommandManager.ProcessCommandResult.UnknownCommand); }