diff --git a/ReallifeGamemode.Client/assets/html/inventory/img/inventory/200.svg b/ReallifeGamemode.Client/assets/html/inventory/img/inventory/200.svg new file mode 100644 index 00000000..4aa8a3e4 --- /dev/null +++ b/ReallifeGamemode.Client/assets/html/inventory/img/inventory/200.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ReallifeGamemode.Client/assets/html/inventory/img/inventory/201.svg b/ReallifeGamemode.Client/assets/html/inventory/img/inventory/201.svg new file mode 100644 index 00000000..d3b99f2c --- /dev/null +++ b/ReallifeGamemode.Client/assets/html/inventory/img/inventory/201.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ReallifeGamemode.Server/Inventory/Items/Notfallkit.cs b/ReallifeGamemode.Server/Inventory/Items/Notfallkit.cs new file mode 100644 index 00000000..3a953a8e --- /dev/null +++ b/ReallifeGamemode.Server/Inventory/Items/Notfallkit.cs @@ -0,0 +1,58 @@ +using GTANetworkAPI; +using ReallifeGamemode.Database.Entities; +using System.Linq; +using ReallifeGamemode.Server.Extensions; +using ReallifeGamemode.Server.Managers; +using ReallifeGamemode.Server.Services; + + +namespace ReallifeGamemode.Server.Inventory.Items +{ + class Notfallkit : UseItem + { + public override int Id => 201; + public override string Name => "Notfallkit"; + public override string Description => "Fahrzeug reparieren"; + public override int Gewicht => 1000; + public override string Einheit => "g"; + public override uint Object => 875075437; + public override int Price => 500; + + public override bool Use(UserItem uItem) + { + Player player = uItem.GetUser().Player; + + if (uItem.ItemId != 201) + { + return false; + } + + Vehicle veh = null; + + var nearestVeh = NAPI.Pools.GetAllVehicles().Where(v => v.Position.DistanceTo(player.Position) <= 5).FirstOrDefault(); + veh = nearestVeh; + + if (veh == null) + { + player.SendNotification("Es befindet sich kein Fahrzeug in deiner Nähe"); + return false; + } + + if(player.IsInVehicle) + { + player.SendNotification("Du musst aus deinem Fahrzeug aussteigen!"); + return false; + } + + ChatService.SendMessage(player, $"~b~[AMDIN]~s~ Das Fahrzeug repariert"); + player.SendNotification("Du hast ~g~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~verwendet.", false); + InventoryManager.RemoveUserItem(player.GetUser(), uItem, 1); + ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh); + Vehicle newVeh = serverVehicle.Spawn(veh); + newVeh.Repair(); + newVeh.Rotation = new Vector3(0, 0, serverVehicle.Heading); + return true; + + } + } +} diff --git a/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs b/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs index e9ad4ee7..22c2f1e4 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Rubellos.cs @@ -1,4 +1,14 @@ -namespace ReallifeGamemode.Server.Inventory.Items +using System; +using System.Security.Cryptography; +using GTANetworkAPI; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using ReallifeGamemode.Database.Entities; +using ReallifeGamemode.Database.Models; +using ReallifeGamemode.Server.Extensions; +using ReallifeGamemode.Server.Inventory.Interfaces; +using ReallifeGamemode.Server.Managers; + +namespace ReallifeGamemode.Server.Inventory.Items { public class Rubellos : UseItem { @@ -9,5 +19,40 @@ public override string Einheit => "g"; public override uint Object => 875075437; public override int Price => 500; + + public override bool Use(UserItem uItem) + { + Player player = uItem.GetUser().Player; + + if (uItem.ItemId != 200) + { + return false; + } + Random random = new Random(); + int randomNumber = random.Next(1, 5); + if (randomNumber == 1) + { + using (var dbContext = new DatabaseContext()) + { + User winner = player.GetUser(dbContext); + winner.Handmoney += 1000; + player.TriggerEvent("SERVER:SET_HANDMONEY", winner.Handmoney); + dbContext.SaveChanges(); + } + Services.ChatService.SendMessage(player, "Glückwunsch, du hast $1000 gewonnen!"); + } + else + { + Services.ChatService.SendMessage(player, "Leider kein Gewinn, viel Glück beim nächsten mal"); + } + player.SendNotification("Du hast ~g~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~verwendet.", false); + InventoryManager.RemoveUserItem(player.GetUser(), uItem, 1); + return true; } + + +} + + + } diff --git a/ReallifeGamemode.Server/Inventory/Items/UseItem.cs b/ReallifeGamemode.Server/Inventory/Items/UseItem.cs index 17368808..7da16564 100644 --- a/ReallifeGamemode.Server/Inventory/Items/UseItem.cs +++ b/ReallifeGamemode.Server/Inventory/Items/UseItem.cs @@ -20,34 +20,7 @@ namespace ReallifeGamemode.Server.Inventory.Items public abstract uint Object { get; } public abstract int Price { get; } - public bool Use(UserItem uItem) - { - Player player = uItem.GetUser().Player; + public abstract bool Use(UserItem uItem); - if (uItem.ItemId != 200) - { - return false; - } - Random random = new Random(); - int randomNumber = random.Next(1, 5); - if (randomNumber == 1) - { - using (var dbContext = new DatabaseContext()) - { - User winner = player.GetUser(dbContext); - winner.Handmoney += 1000; - player.TriggerEvent("SERVER:SET_HANDMONEY", winner.Handmoney); - dbContext.SaveChanges(); - } - Services.ChatService.SendMessage(player, "Glückwunsch, du hast $1000 gewonnen!"); - } - else - { - Services.ChatService.SendMessage(player, "Leider kein Gewinn, viel Glück beim nächsten mal"); - } - player.SendNotification("Du hast ~g~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~verwendet.", false); - InventoryManager.RemoveUserItem(player.GetUser(), uItem, 1); - return true; - } } }