Files
reallife-gamemode/ReallifeGamemode.Server/Inventory/Items/Notfallkit.cs
michael.reiswich a5b6f3215e Change Notfallkit
2021-05-20 23:10:15 +02:00

70 lines
2.1 KiB
C#

using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using System.Linq;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Managers;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Database.Models;
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;
}
if(veh.Controller == null)
{
player.SendNotification("Es sitzt jemand im Auto du kannst es nicht Reparieren!");
return false;
}
using (var dbContext = new DatabaseContext())
{
Vector3 position = veh.Position;
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 = veh.GetServerVehicle(dbContext);
serverVehicle.Spawn(veh).Position = position;
Vehicle newVeh = serverVehicle.Spawn(veh);
newVeh.Repair();
newVeh.Rotation = new Vector3(0, 0, serverVehicle.Heading);
return true;
}
}
}
}