Finished carshops
This commit is contained in:
@@ -41,6 +41,15 @@ mp.events.add('ShopVehicle_OpenMenu', (businessName, price) => {
|
|||||||
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||||
shopMenu.AddItem(cancelItem);
|
shopMenu.AddItem(cancelItem);
|
||||||
|
|
||||||
|
shopMenu.ItemSelect.on((item, index) => {
|
||||||
|
if (item === cancelItem) {
|
||||||
|
shopMenu.Close();
|
||||||
|
} else if (item === saveItem) {
|
||||||
|
mp.events.callRemote("VehShop_BuyVehicle");
|
||||||
|
shopMenu.Close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
shopMenu.MenuClose.on(() => {
|
shopMenu.MenuClose.on(() => {
|
||||||
mp.gui.chat.show(true);
|
mp.gui.chat.show(true);
|
||||||
mp.players.local.taskLeaveVehicle(veh.handle, 0);
|
mp.players.local.taskLeaveVehicle(veh.handle, 0);
|
||||||
|
|||||||
@@ -223,6 +223,7 @@ mp.events.add("VehStream_PlayerExitVehicle", (entity) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("VehStream_PlayerEnterVehicleAttempt", (entity, seat) => {
|
mp.events.add("VehStream_PlayerEnterVehicleAttempt", (entity, seat) => {
|
||||||
|
entity = mp.vehicles.atRemoteId(entity);
|
||||||
if (entity === undefined || entity === null || !entity.isAVehicle()) return;
|
if (entity === undefined || entity === null || !entity.isAVehicle()) return;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
var Status = [];
|
var Status = [];
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace reallife_gamemode.Server.Business
|
|||||||
{
|
{
|
||||||
public abstract class CarDealerBusinessBase : BusinessBase
|
public abstract class CarDealerBusinessBase : BusinessBase
|
||||||
{
|
{
|
||||||
internal abstract Vector3 CarSpawnPositon { get; }
|
public abstract Vector3 CarSpawnPositon { get; }
|
||||||
|
public abstract float CarSpawnHeading { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ namespace reallife_gamemode.Server.Business
|
|||||||
|
|
||||||
public override Vector3 Position => new Vector3(-177, -1156, 23);
|
public override Vector3 Position => new Vector3(-177, -1156, 23);
|
||||||
|
|
||||||
internal override Vector3 CarSpawnPositon => new Vector3(-177, -1156, 23);
|
public override Vector3 CarSpawnPositon => new Vector3(-222, -1162, 22.5);
|
||||||
|
|
||||||
|
public override float CarSpawnHeading => 356.6f;
|
||||||
|
|
||||||
public override void Load()
|
public override void Load()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,7 +35,13 @@ namespace reallife_gamemode.Server.Entities
|
|||||||
public Vehicle Spawn(Vehicle currentVeh = null)
|
public Vehicle Spawn(Vehicle currentVeh = null)
|
||||||
{
|
{
|
||||||
if (currentVeh != null) VehicleManager.DeleteVehicle(currentVeh);
|
if (currentVeh != null) VehicleManager.DeleteVehicle(currentVeh);
|
||||||
Vehicle veh = NAPI.Vehicle.CreateVehicle(this.Model, this.Position, this.Heading, this.PrimaryColor, this.SecondaryColor, this.NumberPlate, locked: this.Locked, engine: false);
|
Vector3 position = this.Position;
|
||||||
|
uint model = (uint)this.Model;
|
||||||
|
float heading = this.Heading;
|
||||||
|
int c1 = this.PrimaryColor;
|
||||||
|
int c2 = this.SecondaryColor;
|
||||||
|
string np = this.NumberPlate;
|
||||||
|
Vehicle veh = NAPI.Vehicle.CreateVehicle(Model, position, heading, c1, c2, "", 255, false, false);
|
||||||
VehicleStreaming.SetEngineState(veh, false);
|
VehicleStreaming.SetEngineState(veh, false);
|
||||||
VehicleStreaming.SetLockStatus(veh, this.Locked);
|
VehicleStreaming.SetLockStatus(veh, this.Locked);
|
||||||
VehicleManager.AddVehicle(this, veh);
|
VehicleManager.AddVehicle(this, veh);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Model;
|
||||||
using reallife_gamemode.Server.Business;
|
using reallife_gamemode.Server.Business;
|
||||||
using reallife_gamemode.Server.Entities;
|
using reallife_gamemode.Server.Entities;
|
||||||
using reallife_gamemode.Server.Extensions;
|
using reallife_gamemode.Server.Extensions;
|
||||||
@@ -118,5 +119,47 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
ShopVehicle shopVehicle = (ShopVehicle)sVeh;
|
ShopVehicle shopVehicle = (ShopVehicle)sVeh;
|
||||||
player.TriggerEvent("ShopVehicle_OpenMenu", GetBusiness(shopVehicle.BusinessId).Name, shopVehicle.Price);
|
player.TriggerEvent("ShopVehicle_OpenMenu", GetBusiness(shopVehicle.BusinessId).Name, shopVehicle.Price);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[RemoteEvent("VehShop_BuyVehicle")]
|
||||||
|
public void CarDealerBusiness_BuyVehicle(Client player)
|
||||||
|
{
|
||||||
|
ServerVehicle sVeh = player.Vehicle?.GetServerVehicle();
|
||||||
|
if (sVeh == null) return;
|
||||||
|
if (!(sVeh is ShopVehicle)) return;
|
||||||
|
ShopVehicle shopVehicle = (ShopVehicle)sVeh;
|
||||||
|
int price = shopVehicle.Price;
|
||||||
|
CarDealerBusinessBase business = (CarDealerBusinessBase)GetBusiness(shopVehicle.BusinessId);
|
||||||
|
TransactionResult result = BankManager.TransferMoney(player.GetUser(), business, price, "Auto gekauft");
|
||||||
|
if(result == TransactionResult.SENDER_NOT_ENOUGH_MONEY)
|
||||||
|
{
|
||||||
|
player.SendNotification("~r~Du hast nicht genug Geld: " + price.ToMoneyString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 spawnPos = business.CarSpawnPositon;
|
||||||
|
|
||||||
|
UserVehicle newVeh = new UserVehicle
|
||||||
|
{
|
||||||
|
Heading = business.CarSpawnHeading,
|
||||||
|
PositionX = spawnPos.X,
|
||||||
|
PositionY = spawnPos.Y,
|
||||||
|
PositionZ = spawnPos.Z,
|
||||||
|
Locked = false,
|
||||||
|
UserId = player.GetUser().Id,
|
||||||
|
Model = shopVehicle.Model,
|
||||||
|
PrimaryColor = 111,
|
||||||
|
SecondaryColor = 111,
|
||||||
|
Active = true,
|
||||||
|
NumberPlate = ""
|
||||||
|
};
|
||||||
|
|
||||||
|
using(var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
dbContext.UserVehicles.Add(newVeh);
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
newVeh.Spawn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace reallife_gamemode.Server.Events
|
namespace reallife_gamemode.Server.Managers
|
||||||
{
|
{
|
||||||
public class SaveManager : Script
|
public class SaveManager : Script
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ namespace reallife_gamemode.Server.Util
|
|||||||
data = new VehicleSyncData();
|
data = new VehicleSyncData();
|
||||||
|
|
||||||
UpdateVehicleSyncData(veh, data);
|
UpdateVehicleSyncData(veh, data);
|
||||||
NAPI.ClientEvent.TriggerClientEvent(player, "VehStream_PlayerEnterVehicleAttempt", veh, seat);
|
NAPI.ClientEvent.TriggerClientEvent(player, "VehStream_PlayerEnterVehicleAttempt", veh.Handle.Value, seat);
|
||||||
}
|
}
|
||||||
|
|
||||||
[ServerEvent(Event.PlayerExitVehicleAttempt)]
|
[ServerEvent(Event.PlayerExitVehicleAttempt)]
|
||||||
|
|||||||
Reference in New Issue
Block a user