75 lines
2.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|