Inventory System

This commit is contained in:
VegaZ
2018-10-27 12:53:19 +02:00
parent 4b9225ed29
commit 39cb03b2ec
11 changed files with 490 additions and 35 deletions

View File

@@ -27,8 +27,8 @@ namespace reallife_gamemode.Server.Commands
{
public class Admin : Script
{
[Command("eat")]
public void CmdAdminEat(Client player)
[Command("myitems")]
public void CmdAdminMyItems(Client player)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
@@ -36,13 +36,30 @@ namespace reallife_gamemode.Server.Commands
return;
}
Hamburger hamburger = new Hamburger();
if(hamburger is IUsableItem)
List<UserItem> itemList = player.GetData("items");
foreach (var item in itemList)
{
var usableItemObj = hamburger as IUsableItem;
usableItemObj.Use(player);
IItem iitem = item;
player.SendChatMessage(item. + );
}
}
[Command("giveitem", "~m~Benutzung: ~s~/giveitem [Target] [Item ID] [Anzahl]")]
public void CmdAdminGiveItem(Client player, Client target, int itemId, int amount)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
}
[Command("vmod", "~m~Benutzung: ~s~/vmod [Slot] [Mod ID]")]
public void CmdAdminVmod(Client player, int slot, int mod)
{

View File

@@ -51,34 +51,9 @@ namespace reallife_gamemode.Server.Events
var userBankAccount = loginUser.UserBankAccounts.SingleOrDefault(u => u.UserId == user.Id);
userBankAccount.Balance = userBankAccount.Balance;
if (user.Dead == true)
{
if (user.IsAdmin(AdminLevel.ADMIN) == true)
{
player.TriggerEvent("startDeathTimer", true);
}
else
{
player.TriggerEvent("startDeathTimer", false);
}
player.SetData("isDead", true);
}
else
{
player.SetData("isDead", false);
}
if (user.Dead == true)
{
//player.TriggerEvent("startDeathTimer");
//player.SetData("isDead", true);
//TODO: Deathlog entfernen
player.Health = 0;
}
else
{
player.SetData("isDead", false);
}
var userItems = loginUser.UserItems.ToList().FindAll(u => u.UserId == user.Id);
player.SetData("items", userItems);
if (user.CharacterId == null)
{
var currentPlayerCreatorDimension = (uint) NAPI.Data.GetWorldData("playerCreatorDimension");
@@ -94,6 +69,24 @@ namespace reallife_gamemode.Server.Events
NAPI.Player.SpawnPlayer(player, new Vector3(user.PositionX, user.PositionY, user.PositionZ), 0);
player.TriggerEvent("draw", player.Name, player.Handle.Value);
}
if (user.Dead == true)
{
if (user.IsAdmin(AdminLevel.ADMIN) == true)
{
player.TriggerEvent("startDeathTimer", true);
player.Health = 0;
}
else
{
player.TriggerEvent("startDeathTimer", false);
player.Health = 0;
}
player.SetData("isDead", true);
}
else
{
player.SetData("isDead", false);
}
}
}
}

View File

@@ -0,0 +1,23 @@
using reallife_gamemode.Server.Inventory.Interfaces;
using System;
using System.Collections.Generic;
using System.Text;
/**
* @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Inventory.Items
{
public class Cheeseburger : FoodItem, IItem
{
public int Id => 2;
public string Name => "Cheeseburger";
public string Description => "Wie der Hamburger, nur mit Käse.";
public int Gewicht => 320;
public string Einheit => "g";
public override int HpAmount => 20;
}
}

View File

@@ -18,6 +18,6 @@ namespace reallife_gamemode.Server.Inventory.Items
public string Description => "Ein leckerer Hamburger.";
public int Gewicht => 300;
public string Einheit => "g";
public override int HpAmount => 50;
public override int HpAmount => 20;
}
}

View File

@@ -0,0 +1,22 @@
using reallife_gamemode.Model;
using reallife_gamemode.Server.Inventory.Interfaces;
using System;
using System.Collections.Generic;
using System.Text;
/**
* @overview Life of German Reallife - Managers InventoryManager (InventoryManager.cs)
* @author hydrant, VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Managers
{
public class InventoryManager
{
public static IItem GetItemById(this int id, DatabaseContext context = null)
{
return
}
}
}