Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop
This commit is contained in:
60
Client/Business/cardealer.js
Normal file
60
Client/Business/cardealer.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
const NativeUI = require('nativeui');
|
||||||
|
const Menu = NativeUI.Menu;
|
||||||
|
const UIMenuItem = NativeUI.UIMenuItem;
|
||||||
|
const UIMenuListItem = NativeUI.UIMenuListItem;
|
||||||
|
const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
|
||||||
|
const UIMenuSliderItem = NativeUI.UIMenuSliderItem;
|
||||||
|
const BadgeStyle = NativeUI.BadgeStyle;
|
||||||
|
const Point = NativeUI.Point;
|
||||||
|
const ItemsCollection = NativeUI.ItemsCollection;
|
||||||
|
const Color = NativeUI.Color;
|
||||||
|
const ListItem = NativeUI.ListItem;
|
||||||
|
|
||||||
|
const moneyFormat = require("moneyformat");
|
||||||
|
|
||||||
|
var shopMenu;
|
||||||
|
|
||||||
|
mp.events.add('ShopVehicle_OpenMenu', (businessName, price) => {
|
||||||
|
var veh = mp.players.local.vehicle;
|
||||||
|
if (!veh) return;
|
||||||
|
mp.gui.chat.show(false);
|
||||||
|
shopMenu = new Menu("Fahrzeugkauf", "Kaufe ein neues Auto", new Point(50, 50));
|
||||||
|
|
||||||
|
var carItem = new UIMenuItem("Fahrzeugname");
|
||||||
|
carItem.SetRightLabel(mp.game.ui.getLabelText(mp.game.vehicle.getDisplayNameFromVehicleModel(veh.model)));
|
||||||
|
shopMenu.AddItem(carItem);
|
||||||
|
|
||||||
|
var shopItem = new UIMenuItem("Autohaus");
|
||||||
|
shopItem.SetRightLabel(businessName);
|
||||||
|
shopMenu.AddItem(shopItem);
|
||||||
|
|
||||||
|
var priceItem = new UIMenuItem("Preis");
|
||||||
|
priceItem.SetRightLabel("~g~$~s~ "+ moneyFormat(price));
|
||||||
|
shopMenu.AddItem(priceItem);
|
||||||
|
|
||||||
|
var saveItem = new UIMenuItem("Kaufen");
|
||||||
|
saveItem.BackColor = new Color(0, 100, 0);
|
||||||
|
saveItem.HighlightedBackColor = new Color(0, 150, 0);
|
||||||
|
shopMenu.AddItem(saveItem);
|
||||||
|
|
||||||
|
var cancelItem = new UIMenuItem("Abbrechen");
|
||||||
|
cancelItem.BackColor = new Color(213, 0, 0);
|
||||||
|
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||||
|
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(() => {
|
||||||
|
mp.gui.chat.show(true);
|
||||||
|
mp.players.local.taskLeaveVehicle(veh.handle, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
shopMenu.Open();
|
||||||
|
});
|
||||||
@@ -68,8 +68,10 @@ mp.events.add("toggleUi", (show) => {
|
|||||||
// return ('$' + num.toFixed(2).replace('.', ',').replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.'));
|
// return ('$' + num.toFixed(2).replace('.', ',').replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.'));
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
const moneyFormat = require("moneyformat");
|
||||||
|
|
||||||
mp.events.add("updateMoney", (money) => {
|
mp.events.add("updateMoney", (money) => {
|
||||||
playerMoney = money.toLocaleString("de-DE", { minimumFractionDigits: 0 });
|
playerMoney = moneyFormat(money);
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("render", () => {
|
mp.events.add("render", () => {
|
||||||
|
|||||||
@@ -43,3 +43,4 @@ require('./Tuning/sync.js');
|
|||||||
require('./Tuning/sirensilence.js');
|
require('./Tuning/sirensilence.js');
|
||||||
|
|
||||||
require('./Business/main.js');
|
require('./Business/main.js');
|
||||||
|
require('./Business/cardealer.js');
|
||||||
|
|||||||
3
Client/moneyformat/index.js
Normal file
3
Client/moneyformat/index.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
exports = function (money) {
|
||||||
|
return money.toLocaleString("de-DE", { minimumFractionDigits: 0 });
|
||||||
|
};
|
||||||
@@ -27,6 +27,7 @@ mp.events.add("VehStream_SetLockStatus", (veh, status) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
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;
|
||||||
if (typeof entity.getVariable("VehicleSyncData") !== 'undefined') {
|
if (typeof entity.getVariable("VehicleSyncData") !== 'undefined') {
|
||||||
var toggle = entity.getVariable("VehicleSyncData");
|
var toggle = entity.getVariable("VehicleSyncData");
|
||||||
@@ -51,7 +52,7 @@ mp.events.add("VehStream_PlayerExitVehicleAttempt", (entity) => {
|
|||||||
|
|
||||||
mp.events.add("VehStream_PlayerExitVehicle", (entity) => {
|
mp.events.add("VehStream_PlayerExitVehicle", (entity) => {
|
||||||
entity = mp.vehicles.atRemoteId(entity);
|
entity = mp.vehicles.atRemoteId(entity);
|
||||||
if (entity === undefined || entity === null/* || !entity.isAVehicle()*/) {
|
if (entity === undefined || entity === null || !entity.isAVehicle()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -223,6 +224,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 = [];
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ namespace reallife_gamemode.Model
|
|||||||
public DbSet<Server.Entities.FactionVehicle> FactionVehicles { get; set; }
|
public DbSet<Server.Entities.FactionVehicle> FactionVehicles { get; set; }
|
||||||
|
|
||||||
//Shops
|
//Shops
|
||||||
public DbSet<Server.Entities.Shop> Shops { get; set; }
|
|
||||||
|
|
||||||
//Logs
|
//Logs
|
||||||
//public DbSet<Server.Logs.Ban> BanLogs { get; set; }
|
//public DbSet<Server.Logs.Ban> BanLogs { get; set; }
|
||||||
|
|||||||
13
Server/Business/CarDealerBusinessBase.cs
Normal file
13
Server/Business/CarDealerBusinessBase.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using GTANetworkAPI;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace reallife_gamemode.Server.Business
|
||||||
|
{
|
||||||
|
public abstract class CarDealerBusinessBase : BusinessBase
|
||||||
|
{
|
||||||
|
public abstract Vector3 CarSpawnPositon { get; }
|
||||||
|
public abstract float CarSpawnHeading { get; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ using GTANetworkAPI;
|
|||||||
|
|
||||||
namespace reallife_gamemode.Server.Business
|
namespace reallife_gamemode.Server.Business
|
||||||
{
|
{
|
||||||
class ShopBusiness : BusinessBase
|
public class ShopBusiness : BusinessBase
|
||||||
{
|
{
|
||||||
public override int Id => 2;
|
public override int Id => 2;
|
||||||
|
|
||||||
|
|||||||
25
Server/Business/VapidCarDealerBusiness.cs
Normal file
25
Server/Business/VapidCarDealerBusiness.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
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);
|
||||||
|
|
||||||
|
public override Vector3 CarSpawnPositon => new Vector3(-222, -1162, 22.5);
|
||||||
|
|
||||||
|
public override float CarSpawnHeading => 356.6f;
|
||||||
|
|
||||||
|
public override void Load()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -221,9 +221,9 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.SendChatMessage("~m~__________ ~s~Businesses ~m~__________");
|
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
|
#endregion
|
||||||
@@ -676,7 +676,9 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
target.Position = new Vector3(target.Position.X, target.Position.Y, target.Position.Z + wert);
|
Vector3 oldPos = target.Position;
|
||||||
|
|
||||||
|
target.Position = new Vector3(oldPos.X, oldPos.Y, oldPos.Z + wert);
|
||||||
player.SendChatMessage("Du hast " + target.Name + " geslappt. Höhe: " + wert + "");
|
player.SendChatMessage("Du hast " + target.Name + " geslappt. Höhe: " + wert + "");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1439,8 +1441,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)")]
|
[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 description = null)
|
public void CmdAdminSave(Client player, string typ, string option1 = null, string option2 = null)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||||
{
|
{
|
||||||
@@ -1453,7 +1455,7 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
player.TriggerEvent("saveBlip");
|
player.TriggerEvent("saveBlip");
|
||||||
break;
|
break;
|
||||||
case "goto":
|
case "goto":
|
||||||
if (description == null)
|
if (option1 == null)
|
||||||
{
|
{
|
||||||
player.SendChatMessage("Für Goto musst du einen dritten Parameter angeben. Beispiel: Ort des Goto-Punktes.");
|
player.SendChatMessage("Für Goto musst du einen dritten Parameter angeben. Beispiel: Ort des Goto-Punktes.");
|
||||||
return;
|
return;
|
||||||
@@ -1462,11 +1464,11 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
{
|
{
|
||||||
using (var dbContext = new DatabaseContext())
|
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)
|
if (p == null)
|
||||||
{
|
{
|
||||||
SaveManager.SaveGotoPoint(player, description);
|
SaveManager.SaveGotoPoint(player, option1);
|
||||||
player.SendNotification("Goto-Punkt ~g~" + description + "~s~ gespeichert.", true);
|
player.SendNotification("Goto-Punkt ~g~" + option1 + "~s~ gespeichert.", true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1512,12 +1514,38 @@ namespace reallife_gamemode.Server.Commands
|
|||||||
case "svehicle":
|
case "svehicle":
|
||||||
if (player.IsInVehicle)
|
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;
|
Vehicle vehicle = player.Vehicle;
|
||||||
int playerSeat = player.VehicleSeat;
|
int playerSeat = player.VehicleSeat;
|
||||||
vehicle = SaveManager.SaveShopVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
|
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.SendNotification("Shopfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
|
||||||
player.SetIntoVehicle(vehicle, playerSeat);
|
Vector3 oldPos = player.Position;
|
||||||
|
player.Position = new Vector3(oldPos.X, oldPos.Y, oldPos.Z + 2.5);
|
||||||
}
|
}
|
||||||
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -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,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 GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Server.Business;
|
||||||
using reallife_gamemode.Server.Util;
|
using reallife_gamemode.Server.Util;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -19,7 +20,7 @@ namespace reallife_gamemode.Server.Entities
|
|||||||
{
|
{
|
||||||
[ForeignKey("Shop")]
|
[ForeignKey("Shop")]
|
||||||
public int? ShopId { get; set; }
|
public int? ShopId { get; set; }
|
||||||
public Shop Shop { get; set; }
|
public int BusinessId { get; set; }
|
||||||
public int Price { get; set; }
|
public int Price { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
|||||||
@@ -204,10 +204,26 @@ namespace reallife_gamemode.Server.Events
|
|||||||
{
|
{
|
||||||
Vehicle v = player.Vehicle;
|
Vehicle v = player.Vehicle;
|
||||||
bool state = VehicleStreaming.GetEngineState(v);
|
bool state = VehicleStreaming.GetEngineState(v);
|
||||||
NAPI.Util.ConsoleOutput("changing engine state: " + state.ToString());
|
ServerVehicle sV = v.GetServerVehicle();
|
||||||
|
if (sV != null)
|
||||||
|
{
|
||||||
|
if (sV is ShopVehicle)
|
||||||
|
{
|
||||||
|
VehicleStreaming.SetEngineState(v, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if(sV is FactionVehicle fV)
|
||||||
|
{
|
||||||
|
if(fV.FactionId != player.GetUser().FactionId && !state)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
VehicleStreaming.SetEngineState(v, !state);
|
VehicleStreaming.SetEngineState(v, !state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[RemoteEvent("keyPress:X")]
|
[RemoteEvent("keyPress:X")]
|
||||||
public void KeyPressX(Client player)
|
public void KeyPressX(Client player)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -108,5 +109,57 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
return;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
[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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using GTANetworkAPI;
|
|||||||
using reallife_gamemode.Model;
|
using reallife_gamemode.Model;
|
||||||
using reallife_gamemode.Server.Entities;
|
using reallife_gamemode.Server.Entities;
|
||||||
using reallife_gamemode.Server.Extensions;
|
using reallife_gamemode.Server.Extensions;
|
||||||
|
using reallife_gamemode.Server.Saves;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs)
|
* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs)
|
||||||
@@ -22,7 +23,7 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
{
|
{
|
||||||
using (var loadData = new DatabaseContext())
|
using (var loadData = new DatabaseContext())
|
||||||
{
|
{
|
||||||
foreach (Saves.SavedBlip b in loadData.Blips)
|
foreach (SavedBlip b in loadData.Blips)
|
||||||
{
|
{
|
||||||
if(b.Active == true)
|
if(b.Active == true)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using reallife_gamemode.Model;
|
using reallife_gamemode.Model;
|
||||||
|
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;
|
||||||
using reallife_gamemode.Server.Managers;
|
using reallife_gamemode.Server.Managers;
|
||||||
@@ -9,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
|
||||||
{
|
{
|
||||||
@@ -105,7 +106,7 @@ namespace reallife_gamemode.Server.Events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static Vehicle SaveShopVehicleData(Vehicle veh, VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
|
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())
|
using (var saveData = new DatabaseContext())
|
||||||
{
|
{
|
||||||
@@ -119,7 +120,9 @@ namespace reallife_gamemode.Server.Events
|
|||||||
NumberPlate = vehicleNumberPlate,
|
NumberPlate = vehicleNumberPlate,
|
||||||
PrimaryColor = vehiclePrimaryColor,
|
PrimaryColor = vehiclePrimaryColor,
|
||||||
SecondaryColor = vehicleSecondaryColor,
|
SecondaryColor = vehicleSecondaryColor,
|
||||||
Active = true
|
Active = true,
|
||||||
|
BusinessId = business.Id,
|
||||||
|
Price = price
|
||||||
};
|
};
|
||||||
saveData.ShopVehicles.Add(dataSet);
|
saveData.ShopVehicles.Add(dataSet);
|
||||||
saveData.SaveChanges();
|
saveData.SaveChanges();
|
||||||
|
|||||||
@@ -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