fix item Rubbellos & add item Notfallkit

This commit is contained in:
michael.reiswich
2021-05-20 22:24:46 +02:00
parent aa6ec6e7ab
commit 3f926fb9ef
5 changed files with 107 additions and 29 deletions

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}