Files
reallife-gamemode/ReallifeGamemode.Server/Inventory/Items/Notfallkit.cs
2021-05-23 15:00:34 +02:00

75 lines
2.3 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;
using ReallifeGamemode.Server.WeaponDeal;
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;
}
if((VehicleHash)veh.Model == WeaponDealManager.WEAPON_DEAL_GANG_VEHICLE_HASH || (VehicleHash)veh.Model == WeaponDealManager.WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)
{
player.SendNotification("Du kannst den Waffentransporter nicht Reparieren!");
return false;
}
using (var dbContext = new DatabaseContext())
{
Vector3 position = veh.Position;
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;
}
}
}
}