protected override void CreateBlip() { BlipHandler.AddBlip("Postal depot", MarkerLocation, new BlipOptions { Sprite = BlipSprite.GTAOMission }); }
public HuntingSellerMenu() { headerTitle = "Hunting seller"; statusTitle = ""; Client.Instance.TriggerServerEvent("Hunting.RequestPrices"); BlipHandler.AddBlip("Hunting seller", sellerLocation, new BlipOptions { Sprite = BlipSprite.DollarSignSquared }); //createSellingOptions(); }
public SkinHandler(Client client) : base(client) { client.RegisterEventHandler("Skin.LoadPlayerSkin", new Action <dynamic>(data => { CharacterEditorMenu.handleSkinCreate(data == null ? CharacterEditorMenu.skinData : data); })); client.RegisterEventHandler("Skin.StartCharacterCreation", new Action <int>(async playerHome => { CharacterEditorMenu charMenu = new CharacterEditorMenu(); while (charMenu.Observer.CurrentMenu != null) { Client.Get <Arrest>().DisableActions(); Game.PlayerPed.Task.ClearAll(); await BaseScript.Delay(0); } //if (playerHome != 0) TriggerEvent("spawnPlayerHome", playerHome); })); client.RegisterEventHandler("Skin.UpdatePlayerSkinData", new Action <dynamic>(skinData => CharacterEditorMenu.skinData = skinData)); client.RegisterEventHandler("Skin.SaveCurrentOutfit", new Action <string>(handleOutfitCreate)); client.Get <InteractionUI>().RegisterInteractionMenuItem(new MenuFramework.MenuItemStandard { Title = "Clothing Store", OnActivate = state => { new CharacterEditorMenu(true); InteractionUI.Observer.CloseMenu(true); } }, () => clothingStoreLocaitons.Any(o => o.DistanceToSquared(Game.PlayerPed.Position) < 5.0f), 500); BlipHandler.AddBlip("Clothing store", clothingStoreLocaitons, new BlipOptions { Sprite = BlipSprite.Clothes }); MarkerHandler.AddMarker(clothingStoreLocaitons); client.RegisterEventHandler("Skin.RefreshSkin", new Action(RefreshPlayerSkin)); client.RegisterEventHandler("Player.OnLoginComplete", new Action(RefreshPlayerSkin)); client.RegisterEventHandler("Player.CheckForInteraction", new Action(() => { if (clothingStoreLocaitons.Any(o => o.DistanceToSquared(Game.PlayerPed.Position) < 5.0f)) { new CharacterEditorMenu(true); } })); client.RegisterEventHandler("Player.OnSkinLoaded", new Action(() => canRefreshSkin = false)); CommandRegister.RegisterCommand("refreshskin", async cmd => { if (!canRefreshSkin) { return; } await cmd.Session.UpdateData("Character.SkinData"); RefreshPlayerSkin(); }); }
private void LoadBlips() { BlipHandler.AddBlip("Taxi Depot", markerLocation, new BlipOptions { Sprite = BlipSprite.PoliceCar, Colour = BlipColor.Yellow }); var taxiMarker = new Marker(markerLocation, MarkerType.HorizontalCircleFat, Color.FromArgb(150, ConstantColours.Yellow), 4.0f); MarkerHandler.AddMarker(taxiMarker); }
private void LoadBlips() { garageBlips.ForEach(o => o.Delete()); garageBlips.Clear(); markerIds.ForEach(MarkerHandler.RemoveMarker); markerIds.Clear(); foreach (var garage in garageLocations) { var blip = BlipHandler.AddBlip(garage.DisplayName, garage.Location, garage.BlipOptions); garageBlips.Add(blip); markerIds.Add(MarkerHandler.AddMarker(garage.Location, garage.MarkerOptions)); } }
private void OnReceiveGarageLocation(Vector3 garagePos) { Client.Get <VehicleGarageMenu>().AddGarage("Home", garagePos); MarkerHandler.AddMarker(garagePos, new MarkerOptions { Color = Color.FromArgb(255, 69, 0), ScaleFloat = 1.5f }); garagePos.Z += 0.5f; BlipHandler.AddBlip("Home garage", garagePos, new BlipOptions { IsShortRange = true, Sprite = BlipSprite.Garage }); }
private async void OnLogin() { // General store await BlipHandler.AddBlipAsync("General store", GeneralStores.Positions, new BlipOptions { Sprite = BlipSprite.Store }); await MarkerHandler.AddMarkerAsync(GeneralStores.Positions); // Hardware store await BlipHandler.AddBlipAsync("Hardware store", HardwareStores.Positions, new BlipOptions { Sprite = BlipSprite.Repair }); await MarkerHandler.AddMarkerAsync(HardwareStores.Positions); // Ammu nation await BlipHandler.AddBlipAsync("Ammu Nation", AmmuNation.Positions, new BlipOptions { Sprite = BlipSprite.AmmuNation, Colour = (BlipColor)6 }); await MarkerHandler.AddMarkerAsync(AmmuNation.Positions); // Fishing store await BlipHandler.AddBlipAsync("Fishing store", Fishing.Positions, new BlipOptions { Sprite = BlipSprite.Marina, }); await MarkerHandler.AddMarkerAsync(Fishing.Positions); // Clubs await MarkerHandler.AddMarkerAsync(Clubs.Positions, new MarkerOptions { ScaleFloat = 3.0f }); // Black market await MarkerHandler.AddMarkerAsync(BlackMarket.Positions, new MarkerOptions { Color = ConstantColours.Red }); }
private void OnRecieveDrugs(List <object> drugList) { drugList.ForEach(o => { var drug = JsonConvert.DeserializeObject <Drug>(o.ToString()); Log.Debug($"Recieved a drug of {drug.HarvestDrugName}"); currentDrugs.Add(drug); if (drug.HarvestDrugName != "Bud") { return; } BlipHandler.AddBlip("Marijuana", drug.HarvestLocations[0], new BlipOptions { Sprite = BlipSprite.Marijuana, Colour = (BlipColor)2 }); }); }
private void CreateJobBlip(string blipMessage, int targetPlayer, int blipColour) { var player = Client.PlayerList.FirstOrDefault(o => o.ServerId == targetPlayer); if (player != null) { var callerBlip = BlipHandler.AddBlip(blipMessage, player.Character.Position, new BlipOptions { Sprite = BlipSprite.GTAOMission, Colour = (BlipColor)blipColour }); if (playersBlips.ContainsKey(targetPlayer)) { playersBlips[targetPlayer].Delete(); } playersBlips[targetPlayer] = callerBlip; } }
private void CreateEmgerencyBlip(int targetPlayer) { var player = Client.PlayerList.FirstOrDefault(o => o.ServerId == targetPlayer); if (player != null) { var callerBlip = BlipHandler.AddBlip($"Emergency call #{targetPlayer}", player.Character.Position, new BlipOptions { Sprite = BlipSprite.GTAOMission, Colour = (BlipColor)49 }); if (playersBlips.ContainsKey(targetPlayer)) { playersBlips[targetPlayer].Delete(); } playersBlips[targetPlayer] = callerBlip; } }
public Tow() { returnVehicleItem = new MenuItemStandard { Title = "Return Job Vehicle", OnActivate = async item => { if (Game.PlayerPed.Position.DistanceToSquared(towDropoffPoint) < 200.0f && currentTowTruck != null && (currentTowTruck.Position.DistanceToSquared(towDropoffPoint) < 200.0f || currentTowTruck.IsDead)) { if (Game.PlayerPed.IsInVehicle() && Game.PlayerPed.CurrentVehicle == currentTowTruck) { Game.PlayerPed.Task.LeaveVehicle(currentTowTruck, true); } Log.ToChat("[Job]", "Returning job vehicle", ConstantColours.Job); await BaseScript.Delay(3000); EndJob(); Client.Get <InteractionUI>().RemoveInteractionMenuItem(returnVehicleItem); } } }; Client.RegisterTickHandler(VehicleGetTick); Client.RegisterTickHandler(JobTick); Client.RegisterEventHandler("Player.CheckForInteraction", new Action(OnInteraction)); Client.RegisterEventHandler("Job.GetTowRequest", new Action(OnTowRequest)); CommandRegister.RegisterCommand("tow", handleTowCommand); CommandRegister.RegisterCommand("canceltowjob", handleTowJobCancel); BlipHandler.AddBlip("Tow yard", towMarkerLocation, new BlipOptions { Sprite = BlipSprite.TowTruck }); MarkerHandler.AddMarker(towMarkerLocation, new MarkerOptions { ScaleFloat = 4.0f }); }
public VehicleStoreMenu(Client client) : base(client) { try { client.RegisterTickHandler(OnTick); client.RegisterEventHandler("Vehicle.Store.SpawnBoughtVehicle", new Action <string, string, string, string>(SpawnBoughtVehicle)); client.RegisterEventHandler("Player.CheckForInteraction", new Action(OnInteraction)); markerLocations.ForEach(o => MarkerHandler.AddMarker(new Marker(o, MarkerType.HorizontalCircleFat, System.Drawing.Color.FromArgb(100, 204, 204, 0), 3))); EntityDecoration.RegisterProperty("Vehicle.IsPreviewVehicle", DecorationType.Bool); StoreMenus.ToList().ForEach(async o => { var menuCategories = new Dictionary <string, List <VehicleModel> >(); var storeMenuItems = new List <MenuItem>(); o.Value.ForEach(vehData => { if (!menuCategories.ContainsKey(vehData.vehicleCategory)) { menuCategories.Add(vehData.vehicleCategory, new List <VehicleModel>()); } menuCategories[vehData.vehicleCategory].Add(vehData); }); foreach (var i in menuCategories) { var vehicleList = i.Value.OrderBy(a => a.displayName).ToList(); var categoryItems = new List <MenuItem>(); var vehicleCategoryMenu = new MenuModel { headerTitle = i.Key, menuItems = categoryItems }; await vehicleList.ForEachAsync(async veh => { categoryItems.Add(new MenuItemStandard { Title = $"{veh.displayName}", OnActivate = async state => { isBuying = true; InteractionUI.Observer.CloseMenu(true); if (!loadedModels.ContainsKey(veh.modelName)) { loadedModels[veh.modelName] = new Model(Game.GenerateHash(veh.modelName)); } var vehModel = loadedModels[veh.modelName]; //if (!Cache.PlayerPed.IsInVehicle() || previewVehicle == null) { Log.ToChat("[Store]", "Purchasing vehicle...", ConstantColours.Green); while (!vehModel.IsLoaded) { await vehModel.Request(0); } deletePreviewVehicle(); var spawnLocation = vehiclePreviewLocation[o.Key].First(b => b.DistanceToSquared(Game.PlayerPed.Position) < 250.0f); previewVehicle = new CitizenFX.Core.Vehicle(API.CreateVehicle((uint)vehModel.Hash, spawnLocation.X, spawnLocation.Y, spawnLocation.Z, 0.0f, false, false)) { IsPositionFrozen = true, LockStatus = VehicleLockStatus.StickPlayerInside, IsDriveable = false, IsInvincible = true }; // No network previewVehicle.SetDecor("Vehicle.IsPreviewVehicle", true); Game.PlayerPed.Task.WarpIntoVehicle(previewVehicle, VehicleSeat.Driver); await BaseScript.Delay(1000); } var vehData = VehicleDataPacker.PackVehicleData(previewVehicle); if (vehData == null) { Log.ToChat("[Store]", "There was an error purchasing this vehicle. Please try again", ConstantColours.Store); isBuying = false; return; } var vehDataModel = JsonConvert.DeserializeObject <VehicleDataModel>(vehData); if (vehDataModel.Model != 0 && vehModel.Hash == Cache.PlayerPed.CurrentVehicle.Model.Hash) { Magicallity.Client.Client.Instance.TriggerServerEvent("Vehicle.Store.BuyVehicle", veh.modelName, veh.price, o.Key, vehData); } else { Log.ToChat("[Store]", "There was an error purchasing this vehicle. Please try again", ConstantColours.Store); } isBuying = false; }, OnSelect = state => { var modelLoaded = loadedModels.ContainsKey(veh.modelName); if (currentLoadingCategory != veh.vehicleCategory || !modelLoaded) { requestModelsForVehicleType(o.Key, vehicleCategoryMenu, veh.vehicleCategory); } if (!modelLoaded) { return; } var vehModel = loadedModels[veh.modelName]; deletePreviewVehicle(); var spawnLocation = vehiclePreviewLocation[o.Key].First(b => b.DistanceToSquared(Game.PlayerPed.Position) < 250.0f); previewVehicle = new CitizenFX.Core.Vehicle(API.CreateVehicle((uint)vehModel.Hash, spawnLocation.X, spawnLocation.Y, spawnLocation.Z, 0.0f, false, false)) { IsPositionFrozen = true, LockStatus = VehicleLockStatus.StickPlayerInside, IsDriveable = false, IsInvincible = true }; // No network previewVehicle.SetDecor("Vehicle.IsPreviewVehicle", true); Game.PlayerPed.Task.WarpIntoVehicle(previewVehicle, VehicleSeat.Driver); }, Detail = veh.price == 0 ? $"Free" : $"(${veh.price})", }); await BaseScript.Delay(0); }); storeMenuItems.Add(new MenuItemSubMenu { Title = i.Key, SubMenu = vehicleCategoryMenu, OnActivate = item => { deletePreviewVehicle(); requestModelsForVehicleType(o.Key, vehicleCategoryMenu, i.Key); vehicleCategoryMenu.menuItems[vehicleCategoryMenu.SelectedIndex].OnSelect(new MenuItemStandard()); } }); await BaseScript.Delay(0); } var menuThing = new MenuModel { headerTitle = o.Key.AddSpacesToCamelCase(), menuItems = storeMenuItems }; storeMenus[o.Key] = menuThing; client.Get <InteractionUI>().RegisterInteractionMenuItem(new MenuItemSubMenu { Title = o.Key.AddSpacesToCamelCase(), SubMenu = menuThing }, () => vehiclePreviewLocation.ContainsKey(o.Key) && vehiclePreviewLocation[o.Key].Any(loc => loc.DistanceToSquared(Game.PlayerPed.Position) < 250.0f), 510); }); vehiclePreviewLocation.ToList().ForEach(loc => { BlipHandler.AddBlip(loc.Key.AddSpacesToCamelCase(), loc.Value, new BlipOptions { Sprite = (BlipSprite)326 }); }); } catch (Exception e) { Log.Error(e); } }