private void OpenVehicleAdminMenu(Client client, MenuEventData data)
        {
            OwnedVehicle vehicle = OwnedVehicleController.ExistingVehicles.FirstOrDefault(x => x.Handle.handle.Value == data.EventInt);

            if (vehicle == null)
            {
                MenuController.CloseAllMenus(client);
                client.sendNotification("", "~r~Ungültiges Fahrzeug");
                return;
            }
            var menu = new Menu("Vehicle Admin", "Verfügbare Optionen:", "vehicle_interaction_admin")
            {
                ExtraInt = data.EventInt
            };

            menu.Items.Add(new MenuItem("Einparken")
            {
                EventTrigger = "admin_park_vehicle", EventInt = data.EventInt
            });
            if (vehicle.Id != 0)
            {
                menu.Items.Add(new MenuItem("Schlüssel erstellen")
                {
                    EventTrigger = "admin_create_vehicle_key", EventInt = data.EventInt
                });
            }
            menu.Show(client);
        }
        private void MenuController_OnPlayerMenuSelectEvent(Client client, MenuEventData data)
        {
            if (data.MenuIdentifier != "vehicle_interaction")
            {
                return;
            }
            OwnedVehicle vehicle = ExistingVehicles.FirstOrDefault(x => x.Handle.Value == data.EventInt);

            if (vehicle == null)
            {
                MenuController.CloseAllMenus(client);
                return;
            }
            MenuController.CloseAllMenus(client);
            switch (data.EventTrigger)
            {
            case "vehicle_toggle_engine":
                if (vehicle.Handle.engineStatus)
                {
                    client.sendColoredNotification($"Du hast den Motor abgeschaltet", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                }
                else
                {
                    client.sendColoredNotification($"Du hast den Motor eingeschaltet", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                }
                vehicle.Handle.engineStatus = !vehicle.Handle.engineStatus;
                break;

            case "vehicle_toggle_seatbelt":
                if (client.seatbelt)
                {
                    client.sendColoredNotification($"Du hast den Sicherheitsgurt entfernt", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                }
                else
                {
                    client.sendColoredNotification($"Du hast den Sicherheitsgurt angelegt", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                }
                client.seatbelt = !client.seatbelt;
                break;

            case "vehicle_toggle_locked":
                if (vehicle.Handle.locked)
                {
                    client.sendColoredNotification($"Fahrzeug({vehicle.ModelName}) wurde aufgeschlossen", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                }
                else
                {
                    client.sendColoredNotification($"Fahrzeug({vehicle.ModelName}) wurde abgeschlossen", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                }
                vehicle.Handle.locked = !vehicle.Handle.locked;
                break;
            }
        }
Ejemplo n.º 3
0
        private void MenuIndexChangeEvent(Client sender, string eventName, object[] arguments)
        {
            var data = new MenuEventData
            {
                MenuIdentifier = arguments[0].ToString(),
                EventTrigger   = arguments[1].ToString(),
                EventString    = arguments[2].ToString(),
                EventInt       = Convert.ToInt32(arguments[3])
            };

            OnPlayerMenuIndexChangeEvent?.Invoke(sender, data);
        }
Ejemplo n.º 4
0
        private void OpenVehicleKeyOptions(Client client, MenuEventData data)
        {
            Menu menu = new Menu("Schlüssel", "Was möchtest du tun?", "inventory");

            menu.Items.Add(new MenuItem("Geben")
            {
                EventTrigger = "give_away_vehicle_key", EventInt = data.EventInt, EventString = data.EventString, OpenUserInput = true, UserInputDefaultText = "0"
            });
            menu.Items.Add(new MenuItem("Wegwerfen")
            {
                EventTrigger = "throw_away_vehicle_key", EventInt = data.EventInt, EventString = data.EventString, OpenUserInput = true, UserInputDefaultText = "0"
            });
            menu.Show(client);
        }
        private void MenuController_OnPlayerMenuSelectEvent(Client client, MenuEventData data)
        {
            if (!client.IsLoggedIn() || (int)client.Account().AdminLevel < 1)
            {
                client.sendNotification("", "~r~Keine Berechtigung!");
                return;
            }
            if (data.MenuIdentifier == "vehicle_interaction" && data.EventTrigger == "admin_main")
            {
                OpenVehicleAdminMenu(client, data);
                return;
            }
            if (data.MenuIdentifier == "vehicle_interaction_admin")
            {
                OwnedVehicle vehicle = OwnedVehicleController.ExistingVehicles.FirstOrDefault(x => x.Handle.Value == data.EventInt);
                if (vehicle == null)
                {
                    MenuController.CloseAllMenus(client);
                    return;
                }
                switch (data.EventTrigger)
                {
                case "admin_park_vehicle":
                    OwnedVehicleController.ParkVehicle(vehicle);
                    MenuController.CloseAllMenus(client);
                    client.sendColoredNotification($"Das Fahrzeug(ID: {vehicle.Id}) wurde erfolgreich eingeparkt.", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                    break;

                case "admin_create_vehicle_key":
                    if (client.Account().CurrentCharacter.KeyRing.VehicleKeys.ContainsKey(vehicle.Id))
                    {
                        client.Account().CurrentCharacter.KeyRing.VehicleKeys[vehicle.Id].Count++;
                    }
                    else
                    {
                        client.Account().CurrentCharacter.KeyRing.VehicleKeys.Add(vehicle.Id, new KeyData(1, $"{vehicle.ModelName} ({vehicle.NumberPlate})"));
                    }
                    client.sendColoredNotification($"Es wurde erfolgreich ein Schlüssel für das Fahrzeug(ID: {vehicle.Id}) erstellt.", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                    MenuController.CloseAllMenus(client);
                    break;
                }
            }
        }
Ejemplo n.º 6
0
        private void MenuController_OnPlayerMenuSelectEvent(Client client, MenuEventData data)
        {
            Character ch = client.Account().CurrentCharacter;

            if (data.MenuIdentifier != "inventory")
            {
                return;
            }
            switch (data.EventTrigger)
            {
            case "key_overview":
                OpenKeyOverviewForPlayer(client);
                break;

            case "show_vehicle_keys":
                OpenVehicleKeyOverviewForPlayer(client);
                break;

            case "show_vehicle_key_options":
                OpenVehicleKeyOptions(client, data);
                break;

            case "throw_away_vehicle_key":
            {
                int keyCount = Convert.ToInt32(data.UserInput);
                if (!ch.KeyRing.VehicleKeys.ContainsKey(data.EventInt))
                {
                    client.sendColoredNotification("Der Schlüssel konnte nicht gefunden werden..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    return;
                }
                if (keyCount <= 0)
                {
                    client.sendColoredNotification("Es wurde nichts weggeworfen..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    OpenVehicleKeyOverviewForPlayer(client);
                    return;
                }
                if (keyCount >= ch.KeyRing.VehicleKeys[data.EventInt].Count)
                {
                    client.Account().CurrentCharacter.KeyRing.VehicleKeys.Remove(data.EventInt);
                    client.sendColoredNotification($"Der Schlüssel ({data.EventString}) wurde weggeworfen..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                    OpenVehicleKeyOverviewForPlayer(client);
                    return;
                }
                ch.KeyRing.VehicleKeys[data.EventInt].Count -= keyCount;
                client.sendColoredNotification($"Der Schlüssel ({data.EventString}) wurde {keyCount}x weggeworfen..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                OpenVehicleKeyOverviewForPlayer(client);
            }
            break;

            case "give_away_vehicle_key":
            {
                int keyCount = Convert.ToInt32(data.UserInput);
                OpenVehicleKeyOverviewForPlayer(client);
                if (!ch.KeyRing.VehicleKeys.ContainsKey(data.EventInt))
                {
                    client.sendColoredNotification("Der Schlüssel konnte nicht gefunden werden..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    return;
                }
                var plrs = API.getAllPlayers().ToList().Where(x => x.IsLoggedIn() && client.position.DistanceTo(x.position) <= 1f && x != client).ToList();
                if (plrs.Count > 1)
                {
                    client.sendColoredNotification("Es befinden sich zu viele Personen um dich herum..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    return;
                }
                if (plrs.Count <= 0)
                {
                    client.sendColoredNotification("Ich hoffe dir ist bewusst das sich niemand um dich herum befindet..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    return;
                }
                if (keyCount > ch.KeyRing.VehicleKeys[data.EventInt].Count)
                {
                    client.sendColoredNotification("Du besitzt nicht so viele Schlüssel..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    return;
                }
                if (keyCount <= 0)
                {
                    client.sendColoredNotification("Du kannst nicht nichts weggeben..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    return;
                }
                if (keyCount <= 0)
                {
                    client.sendColoredNotification("Es wurde nichts weggegeben..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_ORANGE);
                    OpenVehicleKeyOverviewForPlayer(client);
                    return;
                }
                if (keyCount == ch.KeyRing.VehicleKeys[data.EventInt].Count)
                {
                    ch.KeyRing.VehicleKeys.Remove(data.EventInt);
                }
                else
                {
                    ch.KeyRing.VehicleKeys[data.EventInt].Count -= keyCount;
                }
                var cht = plrs[0].Account().CurrentCharacter;
                if (cht.KeyRing.VehicleKeys.ContainsKey(data.EventInt))
                {
                    cht.KeyRing.VehicleKeys[data.EventInt].Count += keyCount;
                }
                else
                {
                    cht.KeyRing.VehicleKeys.Add(data.EventInt, new KeyData(keyCount, data.EventString));
                }
                client.sendColoredNotification($"Der Schlüssel ({data.EventString}) wurde {keyCount}x weggegeben..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
                plrs[0].sendColoredNotification($"Du hast {keyCount}x den Schlüssel ({data.EventString}) erhalten..", (int)HudColor.HUD_COLOUR_PURE_WHITE, (int)HudColor.HUD_COLOUR_GREEN);
            }
            break;
            }
        }