public void AddMarketItemHandler(Client sender, params object[] arguments) { /* * args[0] nameResult * args[1] typeResult * args[2] decimal costResult * args[3] List<string> names * args[4] FirstParameter * args[5] SecondParameter * args[6] ThirdParameter */ MarketItem item = new MarketItem { Name = arguments[0].ToString(), ItemEntityType = (ItemEntityType)Enum.Parse(typeof(ItemEntityType), (string)arguments[1]), Cost = (decimal)arguments[2], FirstParameter = (int)arguments[4], SecondParameter = (int)arguments[5], ThirdParameter = (int)arguments[6] }; List <string> names = (List <string>)arguments[3]; foreach (string name in names) { MarketEntity market = Markets.First(x => x.Data.Name == name); if (market != null) { market.Data.Items.Add(item); XmlHelper.AddXmlObject(market.Data, Path.Combine(Utils.XmlDirectory, "Markets", market.Data.Name)); } } }
public void AddGarbage(Client sender, int prop = 0) { if (!sender.HasRank(ServerRank.AdministratorRozgrywki2)) { sender.SendWarning("Nie posiadasz uprawnień do tworzenia śmietnika."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\", użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję."); void Handler(Client o, string command) { if (o == sender && command == "tu") { GarbageModel garbage = new GarbageModel { GtaPropId = prop, CreatorForumName = sender.GetAccountEntity().DbModel.Name, Position = sender.Position, Rotation = sender.Rotation }; XmlHelper.AddXmlObject(garbage, Path.Combine(Utils.XmlDirectory, "JobGarbages")); Garbages.Add(garbage); sender.SendInfo("Dodawanie śmietnika zakończyło się pomyślnie."); } } }
public void AddMarket(Client sender, string name) { sender.SendInfo("Ustaw się w pozycji NPC, a następnie wpisz /tu użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję."); Vector3 center = null; void Handler(Client o, string message) { if (center == null && o == sender && message == "/tu") { center = o.Position; sender.SendInfo("Przejdź do pozycji końca promienia zasięgu i wpisz \"tu.\""); } else { float radius = float.MinValue; if (center != null && radius.Equals(float.MinValue) && o == sender && message == "tu") { radius = center.DistanceTo2D(o.Position); MarketModel market = new MarketModel { Id = XmlHelper.GetXmlObjects <MarketModel>(Path.Combine(Utils.XmlDirectory, "Markets")).Count, Name = name, Center = center, Radius = radius }; XmlHelper.AddXmlObject(market, Path.Combine(Utils.XmlDirectory, "Markets"), market.Name); Markets.Add(new MarketEntity(market)); } } } }
public void AddVehicleToJob(Client sender, string name) { if (!sender.HasRank(ServerRank.AdministratorRozgrywki2)) { sender.SendWarning("Nie posiadasz uprawnień do dodawania auta do pracy."); return; } sender.SendInfo("Ustaw się w wybranej pozycji a następnie wpisz \"tu\""); void Handler(Client o, string message) { if (o == sender && message == "tu") { CourierWarehouseModel warehouse = new CourierWarehouseModel() { Name = name, Position = o.Position, CreatorForumName = o.GetAccountEntity().DbModel.Name }; XmlHelper.AddXmlObject(warehouse, Path.Combine(Utils.XmlDirectory, "CourierWarehouses")); Warehouses.Add(new CourierWarehouse(warehouse)); o.SendInfo("Dodawanie magazynu do pracy kuriera zakończyło się pomyślnie."); } } }
public void AddDriveThru(Client sender, string name) { if (!sender.HasRank(ServerRank.AdministratorRozgrywki2)) { sender.SendWarning("Nie posiadasz uprawnień do dodawania DriveThru."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\" ctrl + alt + shift + d użyj /diag aby poznać swoją obecną pozycję."); Vector3 center = null; void Handler(Client o, string message) { if (center == null && o == sender && message == "tu") { center = o.Position; DriveThruModel data = new DriveThruModel { Position = o.Position, CreatorForumName = o.GetAccountEntity().DbModel.Name, }; XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, "DriveThrus")); sender.SendInfo("Dodawanie DriveThru zakończyło się pomyślnie."); DriveThruEntity driveThru = new DriveThruEntity(data); driveThru.Spawn(); DriveThrus.Add(driveThru); } } }
public void AddCarshop(Client sender, string name, CarshopType type) { AccountEntity player = sender.GetAccountEntity(); if (player.DbModel.ServerRank < ServerRank.AdministratorRozgrywki2) { sender.SendWarning("Nie posiadasz uprawnień do tworzenia salonu samochodowego."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\". użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję."); player.HereHandler += client => { CarshopModel data = new CarshopModel { CreatorForumName = client.GetAccountEntity().DbModel.Name, Position = client.Position, Type = type, }; data.CreatorForumName = client.GetAccountEntity().DbModel.Name; XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, "Carshops")); Carshops.Add(new CarshopEntity(data)); sender.SendInfo("Dodawanie salonu zakończyło się pomyślnie."); }; }
public void AddBusStop(Client sender, string name) { if (!sender.HasRank(ServerRank.AdministratorRozgrywki2)) { sender.SendError("Nie posiadasz uprawnień do usuwania przystanku autobusowego."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz tu użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję."); Vector3 center = null; void Handler(Client o, string command) { if (center == null && o == sender && command == "tu") { center = o.Position; BusStopModel data = new BusStopModel { Name = name, Center = center, CreatorForumName = o.GetAccountEntity().DbModel.Name, }; XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, nameof(BusStopModel), data.Name)); sender.SendError("Dodawanie przystanku zakończyło się pomyślnie."); BusStopEntity busStop = new BusStopEntity(data); busStop.Spawn(); EntityHelper.Add(busStop); } } }
public void AddVehicleToCarshop(Client sender, VehicleHash hash, VehicleClass vehicleClass, decimal cost, string type, string type2 = "Empty") { if (!sender.HasRank(ServerRank.AdministratorRozgrywki2)) { sender.SendWarning("Nie posiadasz uprawnień do tworzenia pojazdu w salonie."); return; } if (Vehicles.Any(v => v.Hash == hash)) { sender.SendError("Podany pojazd jest już dodany."); return; } MoneyValidator validator = new MoneyValidator(); if (!validator.IsValid(cost)) { sender.SendError("Wprowadzona kwota gotówki jest nieprawidłowa."); return; } CarshopType endType = CarshopType.Empty; CarshopType endType2 = CarshopType.Empty; var carshopTypes = ((CarshopType[])Enum.GetValues(typeof(CarshopType))).ToList(); if (carshopTypes.All(carshopType => carshopType.GetDescription() != type && carshopType.GetDescription() != type2)) { sender.SendError("Wprowadzony typ salonu jest nieprawidłowy."); } foreach (CarshopType item in carshopTypes) { if (item.GetDescription() == type) { endType = item; } if (item.GetDescription() == type2) { endType2 = item; } } if (endType2 != CarshopType.Empty) { endType = endType | endType2; } CarshopVehicleModel vehicle = new CarshopVehicleModel(hash.ToString(), hash, vehicleClass, cost, endType) { CreatorForumName = sender.GetAccountEntity().DbModel.Name }; XmlHelper.AddXmlObject(vehicle, Path.Combine(Utils.XmlDirectory, "CarshopVehicles"), vehicle.Name); }
public void OnPlayerAddAnimHandler(Client sender, params object[] arguments) { //args[0] Polska nazwa animacji //args[1] Słownik animacji z GTA:N //args[2] Nazwa animacji z GTA:N XmlHelper.AddXmlObject(new Animation { Name = arguments[0].ToString(), AnimDictionary = arguments[1].ToString(), AnimName = arguments[2].ToString(), }, Path.Combine(Utils.XmlDirectory + "Animations"), arguments[2].ToString()); sender.SendInfo("Animacja została dodana pomyślnie."); }
public void CreateAtm(Client sender, decimal cost, string number) { sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu.\" użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję."); MoneyValidator moneyValidator = new MoneyValidator(); CellphoneNumberValidator cellphoneNumberValidator = new CellphoneNumberValidator(); if (!moneyValidator.IsValid(cost) || !cellphoneNumberValidator.IsValid(number)) { sender.SendError("Wprowadzono dane w nieprawidłowym formacie."); return; } void Handler(Client o, string message) { if (o == sender && message == "/tu") { TelephoneBoothModel data = new TelephoneBoothModel { CreatorForumName = o.GetAccountEntity().DbModel.Name, Position = new FullPosition { Position = new Vector3 { X = sender.Position.X, Y = sender.Position.Y, Z = sender.Position.Z }, Rotation = new Vector3 { X = sender.Rotation.X, Y = sender.Rotation.Y, Z = sender.Rotation.Z } }, Cost = cost, Number = int.Parse(number) }; XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, nameof(TelephoneBoothModel))); TelephoneBoothEntity booth = new TelephoneBoothEntity(data); booth.Spawn(); Booths.Add(booth); sender.SendInfo("Dodawanie budki zakończyło się pomyślnie."); } } }
public ServerInfo() { string directory = Path.Combine(Utils.XmlDirectory, "ServerInfo\\"); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (!File.Exists(Path.Combine(directory, "ServerInfo.xml"))) { XmlHelper.AddXmlObject(new ServerInfoModel(), directory, "ServerInfo"); } Model = XmlHelper.GetXmlObjects <ServerInfoModel>(directory).First(); }
public void AddCornerBotHandler(Client sender, params object[] arguments) { CornerBotModel bot = new CornerBotModel { CreatorForumName = sender.GetAccountEntity().DbModel.Name, BotId = XmlHelper.GetXmlObjects <CornerBotModel>(Path.Combine(Utils.XmlDirectory, "CornerBots")).Count + 1, Name = Convert.ToString(arguments[0]), PedHash = (PedHash)arguments[1], MoneyCount = Convert.ToDecimal(arguments[2]), DrugType = (DrugType)Enum.Parse(typeof(DrugType), (string)arguments[3]), Greeting = (string)arguments[4], GoodFarewell = (string)arguments[5], BadFarewell = (string)arguments[6] }; XmlHelper.AddXmlObject(bot, Path.Combine(Utils.XmlDirectory, "CornerBots")); sender.SendInfo("Dodanie NPC zakończyło się pomyślnie."); }
public void CreateAtm(Client sender) { if (!sender.HasRank(ServerRank.AdministratorRozgrywki2)) { sender.SendWarning("Nie posiadasz uprawnień do dodawania bankomatu."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\"."); void Handler(Client o, string message) { if (o == sender && message == "tu") { AtmModel data = new AtmModel { CreatorForumName = o.GetAccountEntity().DbModel.Name, Position = new FullPosition { Position = new Vector3 { X = o.Position.X, Y = o.Position.Y, Z = o.Position.Z }, Rotation = new Vector3 { X = o.Rotation.X, Y = o.Rotation.Y, Z = o.Rotation.Z } } }; XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, nameof(AtmModel))); AtmEntity atm = new AtmEntity(data); atm.Spawn(); EntityHelper.Add(atm); sender.SendInfo("Dodawanie bankomatu zakończyło się pomyślnie."); } } }
public void AddCrimeBot(Client sender, string name) { if (!sender.HasRank(ServerRank.AdministratorRozgrywki3)) { sender.SendWarning("Nie posiadasz uprawnień do tworzenia bota przestępczego."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\" użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję."); FullPosition botPosition = null; VehicleEntity botVehicle = null; void Handler(Client o, string message) { if (o == sender && message == "tu" && botPosition == null) { botPosition = new FullPosition { Position = new Vector3 { X = sender.Position.X, Y = sender.Position.Y, Z = sender.Position.Z }, Rotation = new Vector3 { X = sender.Rotation.X, Y = sender.Rotation.Y, Z = sender.Rotation.Z }, Direction = new Vector3(0f, 0f, 0f) }; NAPI.ClientEvent.TriggerClientEvent(sender, "DrawAddingCrimeBotComponents", new Vector3(botPosition.Position.X, botPosition.Position.Y, botPosition.Position.Z - 1)); sender.SendInfo("Ustaw pojazd w wybranej pozycji następnie wpisz \"tu\"."); botVehicle = VehicleEntity.Create( new FullPosition(new Vector3( sender.Position.X + 2, sender.Position.Y + 2, sender.Position.Z), sender.Rotation), VehicleHash.Sentinel, name, 0, sender.GetAccountEntity().DbModel.Id, new Color(0, 0, 0), new Color(0, 0, 0)); NAPI.Player.SetPlayerIntoVehicle(sender, botVehicle.GameVehicle, -1); } else if (o == sender && message == "tu" && botPosition != null && botVehicle != null) { FullPosition botVehiclePosition = new FullPosition { Position = new Vector3 { X = botVehicle.GameVehicle.Position.X, Y = botVehicle.GameVehicle.Position.Y, Z = botVehicle.GameVehicle.Position.Z }, Rotation = new Vector3 { X = botVehicle.GameVehicle.Rotation.X, Y = botVehicle.GameVehicle.Rotation.Y, Z = botVehicle.GameVehicle.Rotation.Z }, Direction = new Vector3(0f, 0f, 0f) }; NAPI.ClientEvent.TriggerClientEvent(sender, "DisposeAddingCrimeBotComponents"); XmlHelper.AddXmlObject(new CrimeBotPosition { CreatorForumName = o.GetAccountEntity().DbModel.Name, Name = name, BotPosition = botPosition, VehiclePosition = botVehiclePosition }, Path.Combine(Utils.XmlDirectory, "CrimeBotPositions")); sender.SendInfo("Dodawanie pozycji bota zakończyło się pomyślnie!"); NAPI.Player.WarpPlayerOutOfVehicle(sender); botVehicle.Dispose(); } }; }
public void AddCorner(Client sender, string ids) { List <string> botIds = ids.Split(',').ToList(); //Sprawdzamy czy gracz podał prawidłowe ID NPC if (!CornerBotHelper.TryGetCornerBotIds(botIds, out List <int> correctBotIds)) { sender.SendError("Podano dane w nieprawidłowym formacie. Lub podany NPC nie istnieje."); return; } sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\". użyj ctrl + shift + alt + d aby poznać swoją obecną pozycję."); FullPosition position = null; List <FullPosition> botPositions = new List <FullPosition>(); void Handler(Client o, string message) { if (position == null && o == sender && message == "tu") { position = new FullPosition { Position = new Vector3 { X = sender.Position.X, Y = sender.Position.Y, Z = sender.Position.Z - 0.5f }, Rotation = new Vector3 { X = sender.Rotation.X, Y = sender.Rotation.Y, Z = sender.Rotation.Z } }; sender.SendInfo("Wyznacz trasę npc na rogu. Ustaw się w danym punkcie i wpisz \"poz\"."); sender.SendInfo("Aby zacząć od nowa wpisz \"reset\""); sender.SendInfo("Aby usunąć ostatnią pozycję wpisz \"usun\""); } else if (position != null && o == sender && message == "/poz") { botPositions.Add(new FullPosition { Position = new Vector3 { X = sender.Position.X, Y = sender.Position.Y, Z = sender.Position.Z }, Rotation = new Vector3 { X = sender.Rotation.X, Y = sender.Rotation.Y, Z = sender.Rotation.Z } }); sender.SendInfo($"Obecna liczba punktów: {botPositions.Count}. Aby zakończyć wpisz \"zakoncz\""); sender.SendInfo("Aby zacząć od nowa wpisz /reset"); } else if (position != null && botPositions.Count != 0 && o == sender && message == "zakoncz") { CornerModel data = new CornerModel { CreatorForumName = o.GetAccountEntity().DbModel.Name, Position = position, CornerBots = XmlHelper.GetXmlObjects <CornerBotModel>(Path.Combine(Utils.XmlDirectory, "CornerBots")) .Where(bot => correctBotIds.Contains(bot.BotId)).ToList(), BotPositions = botPositions }; //Dodajemy nowy plik .xml XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, "Corners")); CornerEntity corner = new CornerEntity(data); Corners.Add(corner); sender.SendInfo("Dodawanie rogu zakończyło się pomyślnie."); } else if (botPositions.Count != 0 && position != null && o == sender && message == "usun") { botPositions.RemoveAt(botPositions.Count); } else if (botPositions.Count != 0 && position != null && o == sender && message == "reset") { position = null; botPositions = new List <FullPosition>(); sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu\"."); sender.SendInfo("...użyj /diag aby poznać swoją obecną pozycję."); } }; }