-
0 / 250 Kilogramm
+ 0 / 0 Kilogramm
Fahrzeug
@@ -193,9 +193,11 @@
mp.trigger("CEF:callVehicleInventory");
}
- function setVehicleItems(jsonItemArr) {
+ function setVehicleItems(jsonItemArr, trunkSize) {
var parsedItemArr = JSON.parse(jsonItemArr)
vehInv = [];
+ $('#trunkSize').html(trunkSize / 1000);
+
for (var i = 0; i < parsedItemArr.length; i++) {
var item = parsedItemArr[i];
var newItem = { Name: item.Name, ID: item.ItemId, Amount: item.Amount, Category: 0 };
@@ -463,7 +465,7 @@
blueButtonImg.setAttribute("class", "blueImg");
blueButton.appendChild(blueButtonImg);
- var listLength = list.length;
+ var listLength = list.getElementsByTagName("li").length;
var row = 1;
@@ -483,7 +485,7 @@
row = 6;
}
- var Litem = document.createElement("div");
+ var Litem = document.createElement("li");
Litem.setAttribute("class", "item" + row);
Litem.setAttribute("id", i);
Litem.setAttribute("name", "List" + item.Category);
@@ -505,7 +507,7 @@
while (child) {
e.removeChild(child);
child = e.lastElementChild;
- } console.log(handelInv);
+ }
for (var i = 0; i < vehInv.length; i++) {
var item = vehInv[i];
@@ -533,7 +535,7 @@
blueButtonImg.setAttribute("class", "blueImg");
blueButton.appendChild(blueButtonImg);
- var listLength = list.length;
+ var listLength = list.getElementsByTagName("li").length;
var row = 1;
diff --git a/ReallifeGamemode.Client/inventory/inventory.ts b/ReallifeGamemode.Client/inventory/inventory.ts
index 964068e7..b36c7f8d 100644
--- a/ReallifeGamemode.Client/inventory/inventory.ts
+++ b/ReallifeGamemode.Client/inventory/inventory.ts
@@ -8,6 +8,7 @@
var offerItemArr;
var tradeItemArr;
var vehItemArr;
+ var trunkSize;
var loaded = false;
@@ -36,18 +37,18 @@
var tradeItemWeight;
mp.events.add('openInventory', () => {
- globalData.InMenu = true;
- mp.gui.cursor.show(true, true);
- itemArr = [];
- vehItemArr = [];
- invBrowser = mp.browsers.new('package://assets/html/inventory/inventory.html');
+ globalData.InMenu = true;
+ mp.gui.cursor.show(true, true);
+ itemArr = [];
+ vehItemArr = [];
+ invBrowser = mp.browsers.new('package://assets/html/inventory/inventory.html');
});
mp.events.add('closeInventory', () => {
- invBrowser.destroy()
- invBrowser = null;
- globalData.InMenu = false;
- loaded = false;
- mp.gui.cursor.show(false, false);
+ invBrowser.destroy()
+ invBrowser = null;
+ globalData.InMenu = false;
+ loaded = false;
+ mp.gui.cursor.show(false, false);
return;
});
@@ -60,18 +61,24 @@
});
mp.events.addDataHandler("backpackItems", (entity: EntityMp, jsonItemArr) => {
- if (entity.handle != mp.players.local.handle) return;
+ if (entity != mp.players.local) return;
itemArr = JSON.parse(jsonItemArr);
if (loaded)
invBrowser.execute(`setBackpackItems('${JSON.stringify(itemArr)}',true)`);
});
+ mp.events.addDataHandler("setVehicleTrunk", (entity: EntityMp, size) => {
+ if (entity != mp.players.local) return;
+ trunkSize = size;
+ });
+
mp.events.addDataHandler("vehicleItems", (entity: EntityMp, jsonItemArr) => {
if (entity != mp.players.local) return;
vehItemArr = JSON.parse(jsonItemArr);
- if (loaded)
- invBrowser.execute(`setVehicleItems('${JSON.stringify(vehItemArr)}')`);
+ if (loaded) {
+ invBrowser.execute(`setVehicleItems('${JSON.stringify(vehItemArr)}', '${trunkSize}')`);
+ }
});
mp.events.add("CEF:InventoryLoaded", () => {
@@ -79,7 +86,7 @@
if (vehItemArr.length != 0) {
invBrowser.execute(`setVehicleItems('${JSON.stringify(vehItemArr)}')`);
}
-
+
//invBrowser.execute(`setTradeItems('${JSON.stringify(tradeItemArr)}')`);
//invBrowser.execute(`setOfferItems('${JSON.stringify(offerItemArr)}')`);
loaded = true;
@@ -98,7 +105,7 @@
});
mp.events.add("CEF:useItem", (type, amount, id) => {
- mp.events.callRemote("itemInteract", type, amount, id);
+ mp.events.callRemote("itemInteract", type, amount, id);
});
mp.events.add("removeItem", (id, amount) => {
@@ -110,7 +117,7 @@
mp.events.add("aproveUse", (amount, name) => {
if (invBrowser !== null) {
mp.game.audio.playSoundFrontend(1, "LOCAL_PLYR_CASH_COUNTER_COMPLETE", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS", true);
- invBrowser.execute(`alertGreen('${JSON.stringify(amount)}','${JSON.stringify(name)}')`);
+ invBrowser.execute(`alertGreen('${JSON.stringify(amount)}','${JSON.stringify(name)}')`);
mp.events.call("closeInventory");
}
});
@@ -136,7 +143,6 @@
}
});
-
mp.events.add("CEF:acceptTrade", () => {
if (invBrowser !== null) {
mp.events.callRemote('acceptTrade');
diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs
index 4b74ea99..4d4a2e7b 100644
--- a/ReallifeGamemode.Server/Commands/AdminCommands.cs
+++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs
@@ -2250,6 +2250,91 @@ namespace ReallifeGamemode.Server.Commands
}
}
+ [Command("setshopitem", "~m~Benutzung: ~s~/setshopitem [Item ID]")]
+ public void CmdAdminSetItemInShop(Player player, int itemId)
+ {
+ if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
+ {
+ ChatService.NotAuthorized(player);
+ return;
+ }
+
+ IItem item = InventoryManager.GetItemById(itemId);
+ if (item is null)
+ {
+ ChatService.ErrorMessage(player, "Item existiert nicht");
+ return;
+ }
+
+ ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5);
+
+ if (nearestItemShopPoint is null)
+ {
+ ChatService.ErrorMessage(player, "Du bist nicht an einem Item Shop");
+ return;
+ }
+
+ using var dbContext = new DatabaseContext();
+
+ if (dbContext.ShopItems.Where(i => i.ShopId == nearestItemShopPoint.itemShop.id && i.ItemId == item.Id).FirstOrDefault() != null)
+ {
+ ChatService.ErrorMessage(player, "Item ist bereits im Shop");
+ return;
+ }
+
+ ShopItem shopItem = new ShopItem
+ {
+ ShopId = nearestItemShopPoint.itemShop.id,
+ ItemId = item.Id,
+ Amount = 20,
+ Price = item.Price
+ };
+
+ dbContext.ShopItems.Add(shopItem);
+ dbContext.SaveChanges();
+
+ nearestItemShopPoint.itemShop.LoadItems();
+ }
+
+ [Command("rmshopitem", "~m~Benutzung: ~s~/rmshopitem [Item ID]")]
+ public void CmdAdminRemoveItemInShop(Player player, int itemId)
+ {
+ if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
+ {
+ ChatService.NotAuthorized(player);
+ return;
+ }
+
+ IItem item = InventoryManager.GetItemById(itemId);
+ if (item is null)
+ {
+ ChatService.ErrorMessage(player, "Item existiert nicht");
+ return;
+ }
+
+ ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5);
+
+ if (nearestItemShopPoint is null)
+ {
+ ChatService.ErrorMessage(player, "Du bist nicht an einem Item Shop");
+ return;
+ }
+
+ using var dbContext = new DatabaseContext();
+
+ ShopItem shopItem = dbContext.ShopItems.Where(i => i.ShopId == nearestItemShopPoint.itemShop.id && i.ItemId == item.Id).FirstOrDefault();
+
+ if(shopItem is null)
+ {
+ return;
+ }
+
+ dbContext.ShopItems.Remove(shopItem);
+ dbContext.SaveChanges();
+
+ nearestItemShopPoint.itemShop.LoadItems();
+ }
+
[Command("inventory", "~m~Benutzung: ~s~/inventory [Spieler]")]
public void CmdAdminGiveItem(Player player, string targetname)
{
diff --git a/ReallifeGamemode.Server/Extensions/VehicleExtension.cs b/ReallifeGamemode.Server/Extensions/VehicleExtension.cs
index 8880ac26..f7493d9e 100644
--- a/ReallifeGamemode.Server/Extensions/VehicleExtension.cs
+++ b/ReallifeGamemode.Server/Extensions/VehicleExtension.cs
@@ -17,5 +17,116 @@ namespace ReallifeGamemode.Server.Extensions
{
return NAPI.Pools.GetAllPlayers().Where(p => p.Vehicle != null && p.Vehicle?.Handle == veh.Handle && p.VehicleSeat == 0).FirstOrDefault();
}
+
+ //https://wiki.rage.mp/index.php?title=Vehicle_Classes
+ public static int GetVehicleTrunkSize(this Vehicle vehicle)
+ {
+ switch (vehicle.Class)
+ {
+ case 0:
+ return 100 * 1000;
+
+ case 1:
+ return 180 * 1000;
+
+ case 2:
+ return 400 * 1000;
+
+ case 3:
+ return 210 * 1000;
+
+ case 4:
+ if ((VehicleHash)vehicle.HashCode == VehicleHash.Moonbeam
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Moonbeam2
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Ratloader
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Ratloader2
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Slamvan
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Slamvan2
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Slamvan3
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Yosemite
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Yosemite2
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Picador
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Moonbeam)
+ return 250 * 1000;
+ else
+ return 180 * 1000;
+
+ case 5:
+ if ((VehicleHash)vehicle.HashCode == VehicleHash.Fagaloa
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Cheburek)
+ return 200 * 1000;
+ else
+ return 110 * 1000;
+
+ case 6:
+ return 120 * 1000;
+
+ case 7:
+ return 80 * 1000;
+
+ case 8:
+ return 5 * 1000;
+
+ case 9:
+ if ((VehicleHash)vehicle.HashCode == VehicleHash.Bifta
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Blazer
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Blazer2
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Blazer3
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Blazer4
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Blazer5)
+ return 30 * 1000;
+ else
+ return 300 * 1000;
+
+ case 10:
+ return 2500 * 1000;
+
+ case 11:
+ return 0;
+
+ case 12:
+ if ((VehicleHash)vehicle.HashCode == VehicleHash.Minivan
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Minivan2
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Bobcatxl)
+ return 600 * 1000;
+ else
+ return 1000 * 1000;
+
+ case 13:
+ return 0;
+
+ case 14:
+ return 50 * 1000;
+
+ case 15:
+ return 0;
+
+ case 16:
+ return 0;
+
+ case 17:
+ return 0;
+
+ case 18:
+ if ((VehicleHash)vehicle.HashCode == VehicleHash.Policet)
+ return 1000 * 1000;
+ else if ((VehicleHash)vehicle.HashCode == VehicleHash.Firetruk
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Pbus
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Policeb
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Polmav
+ || (VehicleHash)vehicle.HashCode == VehicleHash.Predator)
+ return 0;
+ else
+ return 150 * 1000;
+
+ case 19:
+ return 0;
+
+ case 20:
+ return 2500 * 1000;
+ }
+
+ return 0;
+ }
}
}
diff --git a/ReallifeGamemode.Server/Inventory/Items/Apfel.cs b/ReallifeGamemode.Server/Inventory/Items/Apfel.cs
index cf426569..116dbfc7 100644
--- a/ReallifeGamemode.Server/Inventory/Items/Apfel.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/Apfel.cs
@@ -12,7 +12,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
{
public override int Id => 101;
public override string Name => "Apfel";
- public override string Description => "Ein Apfel";
+ public override string Description => "Ein Apfel.";
public override int Gewicht => 200;
public override string Einheit => "g";
public override int HpAmount => 10;
diff --git a/ReallifeGamemode.Server/Inventory/Items/AviateChips.cs b/ReallifeGamemode.Server/Inventory/Items/AviateChips.cs
index d744b3bc..025c98f7 100644
--- a/ReallifeGamemode.Server/Inventory/Items/AviateChips.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/AviateChips.cs
@@ -8,7 +8,7 @@ using ReallifeGamemode.Server.Managers;
namespace ReallifeGamemode.Server.Inventory.Items
{
- internal class AChips : ConsumableItem
+ internal class AviateChips : ConsumableItem
{
public override int Id => 104;
public override string Name => "aviates Chips";
diff --git a/ReallifeGamemode.Server/Inventory/Items/Baklava.cs b/ReallifeGamemode.Server/Inventory/Items/Baklava.cs
index d680bac3..88e7ccfd 100644
--- a/ReallifeGamemode.Server/Inventory/Items/Baklava.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/Baklava.cs
@@ -17,7 +17,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override string Einheit => "g";
public override int HpAmount => 30;
public override uint Object => 2240524752;
- public override int Price => 300;
+ public override int Price => 600;
public override float Cooldown => 20000;
diff --git a/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs b/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs
index 925302c8..ccf4d4fe 100644
--- a/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs
@@ -15,12 +15,12 @@ namespace ReallifeGamemode.Server.Inventory.Items
{
public override int Id => 103;
public override string Name => "Cheeseburger";
- public override string Description => "Ein Burger";
+ public override string Description => "Extra käsig.";
public override int Gewicht => 120;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 2240524752;
- public override int Price => 150;
+ public override int Price => 500;
public override float Cooldown => 7000;
public override void Consume(UserItem uItem)
diff --git a/ReallifeGamemode.Server/Inventory/Items/Chips.cs b/ReallifeGamemode.Server/Inventory/Items/Chips.cs
index 00d86433..323e1b99 100644
--- a/ReallifeGamemode.Server/Inventory/Items/Chips.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/Chips.cs
@@ -12,7 +12,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
{
public override int Id => 100;
public override string Name => "Chips";
- public override string Description => "Eine tüte Chips";
+ public override string Description => "80% Luft, 20% Verpackung.";
public override int Gewicht => 180;
public override string Einheit => "g";
public override int HpAmount => 5;
diff --git a/ReallifeGamemode.Server/Inventory/Items/Döner.cs b/ReallifeGamemode.Server/Inventory/Items/Döner.cs
index 599843d1..06408896 100644
--- a/ReallifeGamemode.Server/Inventory/Items/Döner.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/Döner.cs
@@ -17,9 +17,9 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override string Einheit => "g";
public override int HpAmount => 80;
public override uint Object => 2240524752;
- public override int Price => 50000;
+ public override int Price => 1800;
- public override float Cooldown => 15000;
+ public override float Cooldown => 50000;
public override void Consume(UserItem uItem)
{
diff --git a/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs b/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs
index e5110ee7..e9ad4ee7 100644
--- a/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs
+++ b/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs
@@ -8,6 +8,6 @@
public override int Gewicht => 10;
public override string Einheit => "g";
public override uint Object => 875075437;
- public override int Price => 0;
+ public override int Price => 500;
}
}
diff --git a/ReallifeGamemode.Server/Job/BusDriverJob.cs b/ReallifeGamemode.Server/Job/BusDriverJob.cs
index d944b8c3..73cfebf5 100644
--- a/ReallifeGamemode.Server/Job/BusDriverJob.cs
+++ b/ReallifeGamemode.Server/Job/BusDriverJob.cs
@@ -345,8 +345,7 @@ namespace ReallifeGamemode.Server.Job
if (type == PROFESSIONAL && user.BusSkill < SKILL_PROFESSIONAL) { player.TriggerEvent("MenuSelect:Error"); return; }
List selectedRoute = new List();
- int index = -1;
-
+ int index;
if (playerRouteCurrent.ContainsKey(player.Name))
{
index = getPlayerRouteInex(player);
@@ -640,8 +639,6 @@ namespace ReallifeGamemode.Server.Job
player.SendChatMessage($"~y~[JOB]: ~w~Du kannst jetzt auch mit dem Tourbus fahren!");
}
- BusDriverJob job = JobManager.GetJob();
-
dbContext.SaveChanges();
}
}
diff --git a/ReallifeGamemode.Server/Managers/InventoryManager.cs b/ReallifeGamemode.Server/Managers/InventoryManager.cs
index 4b27be4a..3c105fae 100644
--- a/ReallifeGamemode.Server/Managers/InventoryManager.cs
+++ b/ReallifeGamemode.Server/Managers/InventoryManager.cs
@@ -36,8 +36,6 @@ namespace ReallifeGamemode.Server.Managers
public static Dictionary itemCooldown = new Dictionary();
- private static Timer aTimer;
-
public class InventoryItem
{
public string Name;
@@ -90,7 +88,7 @@ namespace ReallifeGamemode.Server.Managers
{
ServerVehicle carlocked = veh.GetServerVehicle(dbContext);
- if (carlocked.Locked == true)
+ if (carlocked == null || carlocked.Locked == true)
{
player.TriggerEvent("Error", "Das Fahrzeug ist abgeschlossen!");
return;
@@ -123,7 +121,7 @@ namespace ReallifeGamemode.Server.Managers
};
vehicleItems[player].Add(newItem);
}
-
+ player.SetSharedData("setVehicleTrunk", veh.GetVehicleTrunkSize());
player.SetSharedData("vehicleItems", JsonConvert.SerializeObject(vehicleItems[player].ToArray()));
}
@@ -367,7 +365,7 @@ namespace ReallifeGamemode.Server.Managers
RemoveUserItem(user, item, itemAmount);
AddItemToVehicleInventory(veh, itemID, itemAmount);
- SetVehicleItems(player);
+ SetBackpackItems(player);
VehicleItem vehicleItem = context.VehicleItems.Where(f => f.ItemId == itemID && f.Vehicle == VehicleManager.GetServerVehicleFromVehicle(veh, context)).FirstOrDefault();
context.SaveChanges();
IItem iItem = GetItemById(itemID);
@@ -428,7 +426,7 @@ namespace ReallifeGamemode.Server.Managers
int setAmount = 0;
for (int i = 1; i <= amount; i++)
{
- if (GetVehicleInventoryWeight(veh) + (i * GetItemById(itemId).Gewicht) > 200000)
+ if (GetVehicleInventoryWeight(veh) + (i * GetItemById(itemId).Gewicht) > veh.GetVehicleTrunkSize())
{
break;
}
diff --git a/ReallifeGamemode.Server/Managers/JobManager.cs b/ReallifeGamemode.Server/Managers/JobManager.cs
index 6636bcf5..bd66afbe 100644
--- a/ReallifeGamemode.Server/Managers/JobManager.cs
+++ b/ReallifeGamemode.Server/Managers/JobManager.cs
@@ -155,7 +155,6 @@ namespace ReallifeGamemode.Server.Managers
[ServerEvent(Event.PlayerExitVehicle)]
public void JobManagerPlayerExitVehicle(Player player, Vehicle veh)
{
- ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
User u = player.GetUser();
if (u.JobId == null) return;
diff --git a/ReallifeGamemode.Server/Managers/VehicleManager.cs b/ReallifeGamemode.Server/Managers/VehicleManager.cs
index ec064e89..907aa23b 100644
--- a/ReallifeGamemode.Server/Managers/VehicleManager.cs
+++ b/ReallifeGamemode.Server/Managers/VehicleManager.cs
@@ -9,10 +9,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Timers;
-using System.Threading.Tasks;
-
-
-
namespace ReallifeGamemode.Server.Managers
{
@@ -811,7 +807,6 @@ namespace ReallifeGamemode.Server.Managers
v.SetSharedData("drivenDistance", (float)distanceDriven);
});
-
if (DateTime.UtcNow.Subtract(lastSave).Seconds >= 30)
{
lastSave = DateTime.UtcNow;
@@ -835,7 +830,7 @@ namespace ReallifeGamemode.Server.Managers
}
});
}
-
+
public static void AddVehicle(ServerVehicle serverVehicle, Vehicle vehicle)
{
if (_serverVehicles.ContainsKey(serverVehicle.Id))
@@ -902,7 +897,6 @@ namespace ReallifeGamemode.Server.Managers
foreach (KeyValuePair pair in _serverVehicles)
{
-
if (pair.Value == veh.Handle)
{
return dbContext.ServerVehicles.Find(pair.Key);