public bool IsNearPropertyStorage()
        {
            var storageLocations = LocalSession.GetLocalData("Property.AccessableStorages", new JArray()).ToObject <List <Vector3> >();
            var playerPos        = Cache.PlayerPed.Position;

            return(storageLocations.Any(o => o.DistanceToSquared(playerPos) < Math.Pow(3, 2)));
        }
        private async void LoadWeapons()
        {
            await LocalSession.UpdateData("Character.Inventory");

            if (Client.Get <JobHandler>().OnDutyAsJob(JobType.EMS | JobType.Police))
            {
                return;
            }

            var playerInv     = new PlayerInventory(LocalSession.GetGlobalData("Character.Inventory", ""), LocalSession);
            var playerWeapons = playerInv.InventoryItems.FindAll(o => o.itemCode.Contains("WEAPON_"));
            var playerPed     = Game.PlayerPed;

            playerPed.Weapons.RemoveAll();
            playerWeapons.ForEach(o =>
            {
                var weaponHash = (WeaponHash)Game.GenerateHash(o.itemCode);
                if (!playerPed.Weapons.HasWeapon(weaponHash))
                {
                    if (weaponHash == WeaponHash.PetrolCan)
                    {
                        playerPed.Weapons.Give(weaponHash, 2250, false, false);
                    }
                    else
                    {
                        playerPed.Weapons.Give(weaponHash, 0, false, false);
                    }
                }
            });
            setAmmoForWeaponType("pistol", playerInv.GetItem("pistolammo")?.itemAmount ?? 0);
            setAmmoForWeaponType("smg", playerInv.GetItem("smgammo")?.itemAmount ?? 0);
            setAmmoForWeaponType("rifle", playerInv.GetItem("rifleammo")?.itemAmount ?? 0);
            setAmmoForWeaponType("shotgun", playerInv.GetItem("shotgunammo")?.itemAmount ?? 0);
        }
        private async void updateOutfitList(MenuItemSubMenu menu)
        {
            await LocalSession.UpdateData("Character.Settings");

            menu.SubMenu.menuItems = new List <MenuItem> {
                new MenuItemStandard {
                    Title = "You have no outfits"
                }
            };

            var playerOutifts = GetPlayerOutfits();

            if (playerOutifts.Count > 0)
            {
                menu.SubMenu.menuItems = new List <MenuItem>();
                foreach (var kvp in playerOutifts)
                {
                    menu.SubMenu.menuItems.Add(new MenuItemStandard
                    {
                        Title      = kvp.Key,
                        OnActivate = item =>
                        {
                            CitizenFX.Core.Native.API.ExecuteCommand($"useoutfit {kvp.Key}");
                        }
                    });
                }
            }

            menu.SubMenu.SelectedIndex = menu.SubMenu.SelectedIndex;
        }
Example #4
0
        public void UpdateSettings(XElement settings)
        {
            var remoteSettings = TestSerializer.ReadSettings(settings);

            Connection.App.Settings.Merge(remoteSettings);
            Configuration.Reload();
            LocalSession.OnConfigurationChanged();
        }
        private async Task FishingTick()
        {
            if (!IsEntityPlayingAnim(Cache.PlayerPed.Handle, "amb@world_human_stand_fishing@base", "base", 3))
            {
                Client.TriggerServerEvent("Fishing.CancelFishing");
                fishingAnim.End(Cache.PlayerPed);
                Client.DeregisterTickHandler(FishingTick);
            }

            if (!LocalSession.GetLocalData("Character.IsFishing", false))
            {
                fishingAnim.End(Cache.PlayerPed);
                Client.DeregisterTickHandler(FishingTick);
            }
        }
Example #6
0
        public override bool Equals(object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (o == null || this.GetType() != o.GetType())
            {
                return(false);
            }

            LocalSession that = ( LocalSession )o;

            return(_localSessionId == that._localSessionId);
        }
Example #7
0
        public async void RefreshPlayerSkin()
        {
            while (LocalSession == null)
            {
                await BaseScript.Delay(0);
            }

            if (!string.IsNullOrEmpty(LocalSession.GetGlobalData("Character.SkinData", "")))
            {
                var pedData = JsonConvert.DeserializeObject <PedData>(LocalSession.GetGlobalData("Character.SkinData", ""));
                CharacterEditorMenu.handleSkinCreate(pedData);
            }
            else
            {
                //BaseScript.TriggerEvent("Skin.StartCharacterCreation");
            }
        }
        private async void OnInteraciton()
        {
            var closeVault = GetStoreInRange();

            if (closeVault.Key != null)
            {
                if (!safeInstance.IsSafeDoorOpen() || currentRobberyLocation != closeVault.Key)
                {
                    var vaultObj = API.GetClosestObjectOfType(closeVault.Value.X, closeVault.Value.Y, closeVault.Value.Z, 3.0f, (uint)ObjectHash.v_ilev_gangsafe, false, false, false);
                    var doorObj  = API.GetClosestObjectOfType(closeVault.Value.X, closeVault.Value.Y, closeVault.Value.Z, 3.0f, unchecked ((uint)ObjectHash.v_ilev_gangsafedoor), false, false, false);
                    currentRobberyLocation = closeVault.Key;
                    var robbable = await awaitRobResult("Robbery.CheckCanRobStore", closeVault.Key);

                    if (robbable)
                    {
                        safeInstance.InitializeSafe(vaultObj, doorObj, new List <int>
                        {
                            rand.Next(1, 90),
                            rand.Next(1, 90),
                            rand.Next(1, 90),
                            rand.Next(1, 90),
                            rand.Next(1, 90),
                            rand.Next(1, 90),
                        }, SafeCracking.RotationDirections.Clockwise);
                        startVaultOpen();
                    }
                }
                else if (safeInstance.IsSafeDoorOpen() && LocalSession.GetLocalData("Robbery.CanRequestPayout", false))
                {
                    await BaseScript.Delay(0);

                    Client.TriggerServerEvent("Robbery.RequestPayout", closeVault.Key);
                }
            }

            /*var closeRegister = GTAHelpers.GetObjectInRange(ObjectHash.prop_till_01);
             *
             * if (closeRegister != 0)
             * {
             *  var closeStore = GetStoreInRange(20.0f);
             *  if (closeStore.Key == null) return;
             *
             *  Client.TriggerServerEvent("Robbery.Store.AttemptRegisterRobbery", closeStore.Key, Entity.FromHandle(closeRegister).Position);
             * }*/
        }
Example #9
0
        private async void OnVehicleRepair()
        {
            var closeVeh = GTAHelpers.GetClosestVehicle();

            if (closeVeh != null)
            {
                Log.ToChat("[Inventory]", "Repairing vehicle", ConstantColours.Inventory);
                EmoteManager.playerAnimations["mechanic"].PlayFullAnim();

                await BaseScript.Delay(new Random((int)DateTime.Now.Ticks).Next(3500, 7500));

                var playerInv = await LocalSession.GetInventory();

                if (closeVeh.Position.DistanceToSquared(Game.PlayerPed.Position) < Math.Pow(3, 2) && playerInv.HasItem("RepKit"))
                {
                    if (closeVeh.EngineHealth < 150)
                    {
                        closeVeh.EngineHealth = 150;
                    }

                    if (closeVeh.BodyHealth < 150)
                    {
                        closeVeh.BodyHealth = 150;
                    }

                    SetVehicleTyreFixed(closeVeh.Handle, 0);
                    SetVehicleTyreFixed(closeVeh.Handle, 1);
                    SetVehicleTyreFixed(closeVeh.Handle, 2);
                    SetVehicleTyreFixed(closeVeh.Handle, 3);
                    SetVehicleTyreFixed(closeVeh.Handle, 4);
                    SetVehicleTyreFixed(closeVeh.Handle, 5);

                    Log.ToChat("[Inventory]", "Vehicle repaired", ConstantColours.Inventory);

                    Client.TriggerServerEvent("Inventory.AddInvItem", JsonConvert.SerializeObject(playerInv.GetItem("RepKit")), -1);
                }
                else
                {
                    Log.ToChat("[Inventory]", "You moved to far away from the vehicle", ConstantColours.Inventory);
                }

                EmoteManager.playerAnimations["mechanic"].End(Game.PlayerPed);
            }
        }
Example #10
0
        private LocalSession GetLocalSession(SiteInfo siteInfo, User user, ServerSession session)
        {
            var userRoles  = repoUr.Query(o => o.UserId == user.UserId);
            var roles      = userRoles.Select(o => o.RoleId).ToArray();
            var pemissions = repoRp.Query(o => userRoles.Any(ur => ur.RoleId == o.RoleId)).ToArray();

            List <AppPrivilege> aps = new List <AppPrivilege>();

            foreach (var per in pemissions)
            {
                AppPrivilege ap = new AppPrivilege()
                {
                    AppName = per.AppName
                };
                var app = host.GetApps().GetAppByName(per.AppName);
                ap.ProtectedUris = app.ProtectedUris.Select(o => o.Uri.ToLower()).ToArray();
                ap.AllowedUris   = app.ProtectedUris.Where(o =>
                {
                    if (o.Position > 0 && o.Position < per.Permissions.Length)
                    {
                        return(per.Permissions[o.Position] == '1');
                    }
                    return(false);
                }).Select(o => o.Uri.ToLower()).ToArray();
                aps.Add(ap);
            }

            var lsession = new LocalSession()
            {
                SiteName    = session.SiteName,
                SessionId   = session.SessionId,
                AccessToken = session.AccessToken,
                User        = user.ToUserSession(),
                Roles       = roles,
                Privileges  = aps.ToArray(),

                Theme    = user.Theme,
                Skin     = user.Skin,
                Locale   = user.Locale,
                TimeZone = user.TimeZone
            };

            return(lsession);
        }
Example #11
0
        private async Task OnTick()
        {
            if (LocalSession == null)
            {
                return;
            }

            foreach (var kvp in controlToString)
            {
                if (Input.IsControlJustPressed(kvp.Key))
                {
                    var playerSettings = LocalSession.GetPlayerSettings();
                    var keybinds       = playerSettings["EmoteBinds"].GetType() == typeof(JObject) ? ((JObject)playerSettings["EmoteBinds"]).ToObject <Dictionary <string, string> >() : playerSettings["EmoteBinds"];
                    if (keybinds.ContainsKey(kvp.Value) && !Cache.PlayerPed.IsInVehicle())
                    {
                        EmoteManager.PlayAnimation(keybinds[kvp.Value]);
                    }
                }
            }
        }
        private async void checkCanGoToLocation(List <Vector3> allLocations, Vector3 newPos, string transitType)
        {
            var currentLocation = getClosestLocation(allLocations);
            var canPay          = await LocalSession.CanPayForItem(API.GetConvarInt($"mg_{transitType}TransitCost", transitType == "bus" ? 25 : 50));

            if (currentLocation != Vector3.Zero && canPay && !isTravelling)
            {
                isTravelling = true;
                await goToLocation(currentLocation, newPos, transitType);

                isTravelling = false;
            }
            else if (!canPay)
            {
                Log.ToChat("[Bank]", "You cannot afford to do this", ConstantColours.Bank);
            }
            else if (currentLocation == Vector3.Zero)
            {
                Log.ToChat("[Transit]", $"You moved to far away from the {transitType} station", ConstantColours.Blue);
            }
        }
        private void removeAmmoFromWeapon(string weaponType, int newAmmoCount)
        {
            //await LocalSession.UpdateData("Character.Inventory");

            var playerInv  = new PlayerInventory(LocalSession.GetGlobalData("Character.Inventory", ""), LocalSession);
            var ammoObject = playerInv.GetItem($"{weaponType}ammo") ?? InventoryItems.GetInvItemData($"{weaponType}ammo");

            if (ammoObject == null)
            {
                return;
            }

            var currentWeaponAmmo = ammoObject.itemAmount;
            var ammoToLose        = currentWeaponAmmo - newAmmoCount;

            if (ammoToLose <= 0)
            {
                return;
            }

            Magicallity.Client.Client.Instance.TriggerServerEvent("Inventory.AddInvItem", JsonConvert.SerializeObject(ammoObject), -ammoToLose);
        }
Example #14
0
        public AdminMenu(Client client) : base(client)
        {
            adminOptions = new AdminOptions();
            client.Get <InteractionUI>().RegisterInteractionMenuItem(new MenuItemSubMenu
            {
                Title   = "[ADMIN] Admin menu",
                SubMenu = adminOptions
            }, () => canUseMenu, 1010);

            client.RegisterEventHandler("Player.OnLoginComplete", new Action(() =>
            {
                canUseMenu = LocalSession.GetLocalData("User.PermissionLevel", 0) > 0;
            }));
            client.RegisterEventHandler("Admin.GoToTarget", new Action <int>(async target =>
            {
                CitizenFX.Core.Player targetPlayer = new CitizenFX.Core.Player(GetPlayerFromServerId(target));
                Vector3 targetCoords = targetPlayer.Character.Position;

                await Game.PlayerPed.TeleportToLocation(targetCoords);
            }));

            client.RegisterTickHandler(CheckForMenu);
        }
Example #15
0
        private async Task CheckForMenu()
        {
            await BaseScript.Delay(10000);

            canUseMenu = LocalSession.GetLocalData("User.PermissionLevel", 0) > 0;
        }
Example #16
0
 public List <int> GetOwnedVehicles()
 {
     return(LocalSession.GetLocalData("Vehicles.OwnedVehicles", new JArray()).ToObject <List <int> >());
 }
Example #17
0
 public OperationContext(GlobalSession globalSession, LocalOperationId localOperationId, LocalSession localSession)
 {
     this._globalSession    = globalSession;
     this._localOperationId = localOperationId;
     this._localSession     = localSession;
 }
Example #18
0
 public PackageSessionService(ISessionProvider <LocalSession> sessionProvider)
 {
     _session = sessionProvider.Session;
 }
Example #19
0
 public List <int> GetVehiclesWithKeys()
 {
     return(LocalSession.GetLocalData("Vehicles.AccessibleVehicles", new JArray()).ToObject <List <int> >());
 }
Example #20
0
        private LocalSession GetLocalSession(SiteInfo siteInfo, User user, ServerSession session)
        {
            var userRoles = repoUr.Query(o => o.UserId == user.UserId);
            var roles = userRoles.Select(o => o.RoleId).ToArray();
            var pemissions = repoRp.Query(o => userRoles.Any(ur => ur.RoleId == o.RoleId)).ToArray();

            List<AppPrivilege> aps = new List<AppPrivilege>();
            foreach (var per in pemissions)
            {
                AppPrivilege ap = new AppPrivilege()
                {
                    AppName = per.AppName
                };
                var app = host.GetApps().GetAppByName(per.AppName);
                ap.ProtectedUris = app.ProtectedUris.Select(o => o.Uri.ToLower()).ToArray();
                ap.AllowedUris = app.ProtectedUris.Where(o =>
                {
                    if (o.Position > 0 && o.Position < per.Permissions.Length)
                    {
                        return per.Permissions[o.Position] == '1';
                    }
                    return false;
                }).Select(o => o.Uri.ToLower()).ToArray();
                aps.Add(ap);
            }

            var lsession = new LocalSession()
            {
                SiteName = session.SiteName,
                SessionId = session.SessionId,
                AccessToken = session.AccessToken,
                User = user.ToUserSession(),
                Roles = roles,
                Privileges = aps.ToArray(),

                Theme = user.Theme,
                Skin = user.Skin,
                Locale = user.Locale,
                TimeZone = user.TimeZone
            };

            return lsession;
        }
Example #21
0
 public static int Connect(LocalSession session)
 {
     _connections.Add(_currentId, session);
     return(_currentId++);
 }
Example #22
0
 public Task <TestCase> ResolveFromPath(XElement path, CancellationToken cancellationToken)
 {
     return(LocalSession.ResolveFromPath(path, cancellationToken));
 }