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; }
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); } }
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); }
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); * }*/ }
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); } }
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); }
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); }
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); }
private async Task CheckForMenu() { await BaseScript.Delay(10000); canUseMenu = LocalSession.GetLocalData("User.PermissionLevel", 0) > 0; }
public List <int> GetOwnedVehicles() { return(LocalSession.GetLocalData("Vehicles.OwnedVehicles", new JArray()).ToObject <List <int> >()); }
public OperationContext(GlobalSession globalSession, LocalOperationId localOperationId, LocalSession localSession) { this._globalSession = globalSession; this._localOperationId = localOperationId; this._localSession = localSession; }
public PackageSessionService(ISessionProvider <LocalSession> sessionProvider) { _session = sessionProvider.Session; }
public List <int> GetVehiclesWithKeys() { return(LocalSession.GetLocalData("Vehicles.AccessibleVehicles", new JArray()).ToObject <List <int> >()); }
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; }
public static int Connect(LocalSession session) { _connections.Add(_currentId, session); return(_currentId++); }
public Task <TestCase> ResolveFromPath(XElement path, CancellationToken cancellationToken) { return(LocalSession.ResolveFromPath(path, cancellationToken)); }