start car shop
This commit is contained in:
12
Server/Business/CarDealerBusinessBase.cs
Normal file
12
Server/Business/CarDealerBusinessBase.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Business
|
||||
{
|
||||
public abstract class CarDealerBusinessBase : BusinessBase
|
||||
{
|
||||
internal abstract Vector3 CarSpawnPositon { get; }
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ using GTANetworkAPI;
|
||||
|
||||
namespace reallife_gamemode.Server.Business
|
||||
{
|
||||
class ShopBusiness : BusinessBase
|
||||
public class ShopBusiness : BusinessBase
|
||||
{
|
||||
public override int Id => 2;
|
||||
|
||||
|
||||
23
Server/Business/VapidCarDealerBusiness.cs
Normal file
23
Server/Business/VapidCarDealerBusiness.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
|
||||
namespace reallife_gamemode.Server.Business
|
||||
{
|
||||
public class VapidCarDealerBusiness : CarDealerBusinessBase
|
||||
{
|
||||
public override int Id => 3;
|
||||
|
||||
public override string Name => "Vapid Autohaus";
|
||||
|
||||
public override Vector3 Position => new Vector3(-177, -1156, 23);
|
||||
|
||||
internal override Vector3 CarSpawnPositon => new Vector3(-177, -1156, 23);
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -220,9 +220,9 @@ namespace reallife_gamemode.Server.Commands
|
||||
}
|
||||
|
||||
player.SendChatMessage("~m~__________ ~s~Businesses ~m~__________");
|
||||
foreach (Business.BusinessBase b in BusinessManager.Businesses)
|
||||
foreach (BusinessBase b in BusinessManager.Businesses.OrderBy(b => b.Id))
|
||||
{
|
||||
player.SendChatMessage(b.Id.ToString().PadRight(3) + " | " + b.Name);
|
||||
player.SendChatMessage(b.Id.ToString().PadRight(3) + " | " + b.Name + (b is CarDealerBusinessBase ? " | Autohaus" : ""));
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -1440,8 +1440,8 @@ namespace reallife_gamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle~s~] (Beschreibung) = (X)")]
|
||||
public void CmdAdminSave(Client player, string typ, string description = null)
|
||||
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~] (Beschreibung) = (X)")]
|
||||
public void CmdAdminSave(Client player, string typ, string option1 = null, string option2 = null)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -1454,7 +1454,7 @@ namespace reallife_gamemode.Server.Commands
|
||||
player.TriggerEvent("saveBlip");
|
||||
break;
|
||||
case "goto":
|
||||
if (description == null)
|
||||
if (option1 == null)
|
||||
{
|
||||
player.SendChatMessage("Für Goto musst du einen dritten Parameter angeben. Beispiel: Ort des Goto-Punktes.");
|
||||
return;
|
||||
@@ -1463,11 +1463,11 @@ namespace reallife_gamemode.Server.Commands
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == description);
|
||||
GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == option1);
|
||||
if (p == null)
|
||||
{
|
||||
SaveManager.SaveGotoPoint(player, description);
|
||||
player.SendNotification("Goto-Punkt ~g~" + description + "~s~ gespeichert.", true);
|
||||
SaveManager.SaveGotoPoint(player, option1);
|
||||
player.SendNotification("Goto-Punkt ~g~" + option1 + "~s~ gespeichert.", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1513,12 +1513,37 @@ namespace reallife_gamemode.Server.Commands
|
||||
case "svehicle":
|
||||
if (player.IsInVehicle)
|
||||
{
|
||||
if(option1 == null || option2 == null)
|
||||
{
|
||||
player.SendChatMessage("~m~Benutzung: ~s~/save SVehicle [Carshop Business ID] [Preis]");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!int.TryParse(option1, out int businessId) || !int.TryParse(option2, out int price))
|
||||
{
|
||||
player.SendChatMessage("~m~Benutzung: ~s~/save SVehicle [Carshop Business ID] [Preis]");
|
||||
return;
|
||||
}
|
||||
|
||||
BusinessBase business = BusinessManager.GetBusiness(businessId);
|
||||
if(business == null)
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Business existiert nicht.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(business is CarDealerBusinessBase))
|
||||
{
|
||||
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Business ist kein Fahrzeug-Business.");
|
||||
return;
|
||||
}
|
||||
|
||||
Vehicle vehicle = player.Vehicle;
|
||||
int playerSeat = player.VehicleSeat;
|
||||
vehicle = SaveManager.SaveShopVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
||||
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor));
|
||||
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), business, price);
|
||||
player.SendNotification("Shopfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||
player.SetIntoVehicle(vehicle, playerSeat);
|
||||
player.Position = player.Position.Add(new Vector3(0, 0, 2));
|
||||
}
|
||||
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
||||
break;
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Entities Shop (Shop.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
namespace reallife_gamemode.Server.Entities
|
||||
{
|
||||
public class Shop
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public string ShopName { get; set; }
|
||||
public float Balance { get; set; }
|
||||
|
||||
[ForeignKey("ShopCategory")]
|
||||
public int Category { get; set; }
|
||||
public ShopCategory ShopCategory { get; set; }
|
||||
|
||||
public int Owner { get; set; }
|
||||
public bool Active { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Entities ShopCategory (ShopCategory.cs)
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
|
||||
namespace reallife_gamemode.Server.Entities
|
||||
{
|
||||
public class ShopCategory
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
public string Category { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Server.Business;
|
||||
using reallife_gamemode.Server.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -19,7 +20,7 @@ namespace reallife_gamemode.Server.Entities
|
||||
{
|
||||
[ForeignKey("Shop")]
|
||||
public int? ShopId { get; set; }
|
||||
public Shop Shop { get; set; }
|
||||
public int BusinessId { get; set; }
|
||||
public int Price { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
|
||||
@@ -108,5 +108,15 @@ namespace reallife_gamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
[ServerEvent(Event.PlayerEnterVehicle)]
|
||||
public void CarDealerBusiness_PlayerEnterVehicle(Client player, Vehicle veh, int seat)
|
||||
{
|
||||
ServerVehicle sVeh = veh.GetServerVehicle();
|
||||
if (sVeh == null) return;
|
||||
if(!(sVeh is ShopVehicle)) return;
|
||||
ShopVehicle shopVehicle = (ShopVehicle)sVeh;
|
||||
player.TriggerEvent("ShopVehicle_OpenMenu", GetBusiness(shopVehicle.BusinessId).Name, shopVehicle.Price);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Model;
|
||||
using reallife_gamemode.Server.Business;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using reallife_gamemode.Server.Extensions;
|
||||
using reallife_gamemode.Server.Managers;
|
||||
@@ -105,7 +106,7 @@ namespace reallife_gamemode.Server.Events
|
||||
}
|
||||
}
|
||||
public static Vehicle SaveShopVehicleData(Vehicle veh, VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
|
||||
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor)
|
||||
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, BusinessBase business, int price)
|
||||
{
|
||||
using (var saveData = new DatabaseContext())
|
||||
{
|
||||
@@ -119,7 +120,9 @@ namespace reallife_gamemode.Server.Events
|
||||
NumberPlate = vehicleNumberPlate,
|
||||
PrimaryColor = vehiclePrimaryColor,
|
||||
SecondaryColor = vehicleSecondaryColor,
|
||||
Active = true
|
||||
Active = true,
|
||||
BusinessId = business.Id,
|
||||
Price = price
|
||||
};
|
||||
saveData.ShopVehicles.Add(dataSet);
|
||||
saveData.SaveChanges();
|
||||
|
||||
Reference in New Issue
Block a user