Add drop to Inventory
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
@@ -13,6 +14,6 @@ namespace reallife_gamemode.Server.Inventory.Interfaces
|
||||
{
|
||||
public interface IDroppableItem : IItem
|
||||
{
|
||||
void Drop(Client player);
|
||||
void Drop(UserItem uItem, Client player, int amount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,5 +17,6 @@ namespace reallife_gamemode.Server.Inventory.Interfaces
|
||||
string Description { get; }
|
||||
int Gewicht { get; }
|
||||
string Einheit { get; }
|
||||
uint Object { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public class Cheeseburger : FoodItem
|
||||
public class Cheeseburger : DropItem
|
||||
{
|
||||
public override int Id => 2;
|
||||
public override string Name => "Cheeseburger";
|
||||
@@ -19,5 +19,6 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
public override int Gewicht => 320;
|
||||
public override string Einheit => "g";
|
||||
public override int HpAmount => 20;
|
||||
public override uint Object => 2240524752;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public class Chickenburger : FoodItem
|
||||
public class Chickenburger : DropItem, FoodItem
|
||||
{
|
||||
public override int Id => 3;
|
||||
public override string Name => "Chickenburger";
|
||||
@@ -19,5 +19,6 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
public override int Gewicht => 330;
|
||||
public override string Einheit => "g";
|
||||
public override int HpAmount => 25;
|
||||
public override uint Object => 2240524752;
|
||||
}
|
||||
}
|
||||
|
||||
28
Server/Inventory/Items/DropItem.cs
Normal file
28
Server/Inventory/Items/DropItem.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using GTANetworkAPI;
|
||||
using reallife_gamemode.Server.Entities;
|
||||
using reallife_gamemode.Server.Extensions;
|
||||
using reallife_gamemode.Server.Inventory.Interfaces;
|
||||
using reallife_gamemode.Server.Managers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public abstract class DropItem : IDroppableItem
|
||||
{
|
||||
public abstract int HpAmount { get; }
|
||||
public abstract int Id { get; }
|
||||
public abstract string Name { get; }
|
||||
public abstract string Description { get; }
|
||||
public abstract int Gewicht { get; }
|
||||
public abstract string Einheit { get; }
|
||||
public abstract uint Object { get; }
|
||||
|
||||
public void Drop(UserItem uItem, Client player, int amount)
|
||||
{
|
||||
player.SendNotification("Du hast ~g~" + amount + " ~y~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~weggeworfen.", false);
|
||||
InventoryManager.RemoveUserItem(player.GetUser(), uItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,12 +17,13 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
public abstract string Description { get; }
|
||||
public abstract int Gewicht { get; }
|
||||
public abstract string Einheit { get; }
|
||||
public abstract uint Object { get; }
|
||||
|
||||
public void Use(UserItem uItem, Client player)
|
||||
{
|
||||
player.Health += HpAmount;
|
||||
player.SendChatMessage("Du hast einen ~y~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~gegessen.");
|
||||
InventoryManager.RemoveUserItem(player.GetUser(), uItem);
|
||||
player.SendNotification("Du hast ein/einen ~y~" + InventoryManager.GetItemById(uItem.ItemId).Name + " ~s~gegessen.", false);
|
||||
InventoryManager.RemoveUserItem(player.GetUser(), uItem, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public class Hamburger : FoodItem
|
||||
public class Hamburger : DropItem
|
||||
{
|
||||
public override int Id => 1;
|
||||
public override string Name => "Hamburger";
|
||||
@@ -19,5 +19,6 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
public override int Gewicht => 300;
|
||||
public override string Einheit => "g";
|
||||
public override int HpAmount => 20;
|
||||
public override uint Object => 2240524752;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public class Holz : FoodItem
|
||||
public class Holz : DropItem
|
||||
{
|
||||
public override int Id => 4;
|
||||
public override string Name => "Holz";
|
||||
@@ -19,5 +19,6 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
public override int Gewicht => 1000;
|
||||
public override string Einheit => "g";
|
||||
public override int HpAmount => 20;
|
||||
public override uint Object => 1805779401;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Text;
|
||||
|
||||
namespace reallife_gamemode.Server.Inventory.Items
|
||||
{
|
||||
public class Kraftstoff : FoodItem
|
||||
public class Kraftstoff : DropItem
|
||||
{
|
||||
public override int Id => 5;
|
||||
public override string Name => "Kraftstoff";
|
||||
@@ -19,5 +19,6 @@ namespace reallife_gamemode.Server.Inventory.Items
|
||||
public override int Gewicht => 1000;
|
||||
public override string Einheit => "g";
|
||||
public override int HpAmount => 20;
|
||||
public override uint Object => 786272259;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,13 +57,13 @@ namespace reallife_gamemode.Server.Managers
|
||||
return itemList.Find(i => i.Name.ToLower() == name.ToLower());
|
||||
}
|
||||
|
||||
public static void RemoveUserItem(Entities.User user, UserItem item)
|
||||
public static void RemoveUserItem(Entities.User user, UserItem item, int amount)
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
var userItem = dbContext.UserItems.FirstOrDefault(i => i.Id == item.Id);
|
||||
|
||||
userItem.Amount--;
|
||||
userItem.Amount -= amount;
|
||||
|
||||
dbContext.SaveChanges();
|
||||
|
||||
@@ -250,7 +250,6 @@ namespace reallife_gamemode.Server.Managers
|
||||
{
|
||||
usableItemObj.Use(userItem, player);
|
||||
player.TriggerEvent("removeItem", itemId, amount);
|
||||
fItem.Amount -= amount;
|
||||
}
|
||||
break;
|
||||
case "drop":
|
||||
@@ -269,10 +268,9 @@ namespace reallife_gamemode.Server.Managers
|
||||
|
||||
if (iItem is IUsableItem usableItemObj2)
|
||||
{
|
||||
fItem.Amount -= amount;
|
||||
usableItemObj2.Use(userItem, player);
|
||||
NAPI.Object.CreateObject(1017479830, new Vector3(player.Position.X, player.Position.Y, player.Position.Z), new Vector3(0, 0, 0), 0);
|
||||
NAPI.TextLabel.CreateTextLabel(iItem.Name + " ~s~(~y~" + amount + "~s~)", new Vector3(player.Position.X, player.Position.Y, player.Position.Z), 5, 0.5f, 4, new Color(255, 255, 255), false, 0);
|
||||
Random r = new Random();
|
||||
//fItem.Amount -= amount;
|
||||
usableItemObj2.Drop(userItem, player);
|
||||
player.TriggerEvent("removeItem", itemId, amount);
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user