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);
            }
        }
Exemplo n.º 3
0
        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);
                });
            }
        }
Exemplo n.º 4
0
        void CmdGiveAmmo()
        {
            if (!this.CanMakeWeaponRequest)
            {
                return;
            }

            if (m_ped != null)
            {
                F.RunExceptionSafe(() => {
                    foreach (var w in m_ped.WeaponHolder.AllWeapons)
                    {
                        WeaponHolder.AddRandomAmmoAmountToWeapon(w);
                    }
                });
            }
        }
Exemplo n.º 5
0
        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);
        }