Added many things I can't recall but it has to do with inventory system and some minor fixes .. it's cool

This commit is contained in:
Lukas Moungos
2019-09-04 20:28:51 +02:00
parent 672702eef5
commit 068f3e2d91
34 changed files with 1057 additions and 269 deletions

View File

@@ -979,7 +979,7 @@ namespace ReallifeGamemode.Server.Commands
foreach (var managedClient in peopleInRange)
{
if (!managedClient.IsLoggedIn()) return;
ChatService.SendMessage(managedClient, "* " + player.Name + " hat eine " + number + " gewürfelt.";
ChatService.SendMessage(managedClient, "* " + player.Name + " hat eine " + number + " gewürfelt.");
}
}

View File

@@ -26,7 +26,7 @@ namespace ReallifeGamemode.Server.Commands
foreach (var managedClient in peopleInRange)
{
if (!managedClient.IsLoggedIn()) return;
ChatService.SendMessage(managedClient, "* " + player.Name + " hat eine " + number + " gewürfelt.";
ChatService.SendMessage(managedClient, "* " + player.Name + " hat eine " + number + " gewürfelt.");
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using ReallifeGamemode.Server.Models;
namespace ReallifeGamemode.Server.Entities
{
public class VehicleItem
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int ItemId { get; set; }
[ForeignKey("ServerVehicle")]
public int VehicleId { get; set; }
public ServerVehicle Vehicle { get; set; }
public int Amount { get; set; }
public int Slot { get; set; }
public ServerVehicle GetVehicle()
{
using (var dbContext = new DatabaseContext())
{
return dbContext.ServerVehicles.FirstOrDefault(v => v.Id == VehicleId);
}
}
}
}

View File

@@ -306,7 +306,7 @@ namespace ReallifeGamemode.Server.Events
p.Name,
p.Ping
});
player.TriggerEvent("fetchPlayerList", JsonConvert.SerializeObject(listPlayers));
player.TriggerEvent("showPlayerlist", JsonConvert.SerializeObject(listPlayers));
}
[RemoteEvent("keyPress:K")]

View File

@@ -16,7 +16,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override int Id => 6;
public override string Name => "Kraftstoff";
public override string Description => "Der Stoff gibt dir Kraft.";
public override int Gewicht => 1000;
public override int Gewicht => 3600;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 786272259;

View File

@@ -16,7 +16,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override int Id => 7;
public override string Name => "Kraftstoff";
public override string Description => "Der Stoff gibt dir Kraft.";
public override int Gewicht => 1000;
public override int Gewicht => 2600;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 786272259;

View File

@@ -0,0 +1,23 @@
using ReallifeGamemode.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 ReallifeGamemode.Server.Inventory.Items
{
public class Cannabis : IDroppableItem
{
public int Id => 4;
public string Name => "Grünes Gift";
public string Description => "puff puff and pass";
public int Gewicht => 50;
public string Einheit => "g";
public uint Object => 1805779401;
}
}

View File

@@ -11,12 +11,12 @@ using System.Text;
namespace ReallifeGamemode.Server.Inventory.Items
{
public class Chickenburger : FoodItem
public class Cocain : FoodItem
{
public override int Id => 3;
public override string Name => "Chickenburger";
public override string Description => "Hühnchenburger";
public override int Gewicht => 330;
public override string Name => "Kosks";
public override string Description => "Rave";
public override int Gewicht => 50;
public override string Einheit => "g";
public override int HpAmount => 25;
public override uint Object => 2240524752;

View File

@@ -1,24 +0,0 @@
using ReallifeGamemode.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 ReallifeGamemode.Server.Inventory.Items
{
public class Hamburger : FoodItem
{
public override int Id => 1;
public override string Name => "Hamburger";
public override string Description => "Ein leckerer Hamburger.";
public override int Gewicht => 300;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 2240524752;
}
}

View File

@@ -13,10 +13,10 @@ namespace ReallifeGamemode.Server.Inventory.Items
{
public class Holz : IDroppableItem
{
public int Id => 4;
public int Id => 1;
public string Name => "Holz";
public string Description => "Ich und mein Holz.";
public int Gewicht => 1000;
public int Gewicht => 650;
public string Einheit => "g";
public uint Object => 1805779401;
}

View File

@@ -14,9 +14,9 @@ namespace ReallifeGamemode.Server.Inventory.Items
public class Kraftstoff : DropItem
{
public override int Id => 5;
public override string Name => "Kraftstoff";
public override string Description => "Der Stoff gibt dir Kraft.";
public override int Gewicht => 1000;
public override string Name => "Flunder";
public override string Description => "ja";
public override int Gewicht => 7700;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 786272259;

View File

@@ -16,7 +16,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override int Id => 8;
public override string Name => "Kraftstoff";
public override string Description => "Der Stoff gibt dir Kraft.";
public override int Gewicht => 1000;
public override int Gewicht => 4200;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 786272259;

View File

@@ -16,7 +16,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override int Id => 9;
public override string Name => "Kraftstoff";
public override string Description => "Der Stoff gibt dir Kraft.";
public override int Gewicht => 1000;
public override int Gewicht => 11000;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 786272259;

View File

@@ -16,7 +16,7 @@ namespace ReallifeGamemode.Server.Inventory.Items
public override int Id => 10;
public override string Name => "Kraftstoff";
public override string Description => "Der Stoff gibt dir Kraft.";
public override int Gewicht => 1000;
public override int Gewicht => 5000;
public override string Einheit => "g";
public override int HpAmount => 20;
public override uint Object => 786272259;

View File

@@ -9,6 +9,7 @@ using ReallifeGamemode.Server.Entities;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Models;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Server.Util;
namespace ReallifeGamemode.Server.Managers
{
@@ -24,6 +25,8 @@ namespace ReallifeGamemode.Server.Managers
List<int> ItemId = new List<int>();
List<int> amount = new List<int>();
List<int> vehItemId = new List<int>();
List<int> vehAmount = new List<int>();
using (var context = new DatabaseContext())
{
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
@@ -32,6 +35,26 @@ namespace ReallifeGamemode.Server.Managers
ItemId.Add(item.ItemId);
amount.Add(item.Amount);
}
foreach(Vehicle veh in NAPI.Pools.GetAllVehicles())
{
if(veh.Position.DistanceTo(client.Position) < 1)
{
if (VehicleStreaming.GetDoorState(veh, DoorID.DoorTrunk) == DoorState.DoorOpen)
{
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
List<VehicleItem> vehicleItems = context.VehicleItems.ToList().FindAll(i => i.VehicleId == serverVehicle.Id);
foreach (var vehItem in vehicleItems)
{
vehItemId.Add(vehItem.ItemId);
vehAmount.Add(vehItem.Amount);
}
client.TriggerEvent("vehInventoryShow", ItemId.ToArray(), amount.ToArray(), vehItemId.ToArray(), vehAmount.ToArray(), serverVehicle.Id);
return;
}
ChatService.SendMessage(client, "Kofferraum ist zu nigger!");
break;
}
}
client.TriggerEvent("inventoryShow", ItemId.ToArray(), amount.ToArray());
}
}
@@ -52,21 +75,109 @@ namespace ReallifeGamemode.Server.Managers
{
context.UserItems.Remove(item);
}
client.SendNotification("Du hast ~g~" + item.Amount + " ~y~" + InventoryManager.GetItemById(itemId).Name + " ~s~ benutzt.", false);
context.SaveChanges();
return;
}
}
[RemoteEvent("saveHelper")]
public void ServerEvent_invSaveHelper(Client client, string vehID)
{
User user = client.GetUser();
int serVehID = JsonConvert.DeserializeObject<int>(vehID);
}
[RemoteEvent("saveItems")]
public void ServerEvent_invSaveItems(Client client, string itemIdArr, string itemAmountArr, string SlotArr)
{
User user = client.GetUser();
int itemId = JsonConvert.DeserializeObject<int>(itemIdArr);
int itemAmount = JsonConvert.DeserializeObject<int>(itemAmountArr);
int Slot = JsonConvert.DeserializeObject<int>(SlotArr);
using (var context = new DatabaseContext())
{
if (Slot < 24)
{
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
if (item != null)
{
item.Amount += itemAmount;
}
else
{
var newItem = new UserItem
{
ItemId = itemId,
UserId = user.Id,
Amount = itemAmount,
Slot = -1
};
context.UserItems.Add(newItem);
}
context.SaveChanges();
}
else
{
foreach (Vehicle veh in NAPI.Pools.GetAllVehicles())
{
if (veh.Position.DistanceTo(client.Position) < 1)
{
if (VehicleStreaming.GetDoorState(veh, DoorID.DoorTrunk) == DoorState.DoorOpen)
{
ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context);
VehicleItem vehItem = context.VehicleItems.Where(v => v.VehicleId == serverVehicle.Id && v.ItemId == itemId).FirstOrDefault();
if (vehItem != null)
{
vehItem.Amount = itemAmount;
}
else
{
var newItem = new VehicleItem
{
ItemId = itemId,
VehicleId = serverVehicle.Id,
Amount = itemAmount,
Slot = -1
};
context.VehicleItems.Add(newItem);
}
context.SaveChanges();
}
}
}
}
}
}
[RemoteEvent("invThrowItem")]
public void ServerEvent_invThrowItem(Client client, int itemId)
public void ServerEvent_invThrowItem(Client client, int itemId, int amount)
{
User user = client.GetUser();
using (var context = new DatabaseContext())
{
UserItem item = context.UserItems.Where(u => u.UserId == user.Id && u.ItemId == itemId).FirstOrDefault();
context.UserItems.Remove(item);
if (item.Amount > amount)
{
item.Amount -= amount;
client.SendNotification("Du hast ~g~" + amount + " ~y~" + InventoryManager.GetItemById(itemId).Name + " ~s~weggeworfen.", false);
}
else
{
client.SendNotification("Du hast ~g~" + item.Amount + " ~y~" + InventoryManager.GetItemById(itemId).Name + " ~s~weggeworfen.", false);
context.UserItems.Remove(item);
}
context.SaveChanges();
return;
}

View File

@@ -1,23 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace ReallifeGamemode.Migrations
{
public partial class FactionWeaponsRemovedHash : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "WeaponHash",
table: "FactionWeapons");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "WeaponHash",
table: "FactionWeapons",
nullable: false,
defaultValue: 0);
}
}
}

View File

@@ -9,8 +9,8 @@ using ReallifeGamemode.Server.Models;
namespace ReallifeGamemode.Migrations
{
[DbContext(typeof(DatabaseContext))]
[Migration("20190721184931_FactionWeaponsRemovedHash")]
partial class FactionWeaponsRemovedHash
[Migration("20190805184145_VehicleItems")]
partial class VehicleItems
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
@@ -396,7 +396,7 @@ namespace ReallifeGamemode.Migrations
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("FactionId");
b.Property<int?>("FactionId");
b.Property<int>("Rank");
@@ -465,10 +465,14 @@ namespace ReallifeGamemode.Migrations
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<bool>("CanRentIn");
b.Property<int?>("OwnerId");
b.Property<int>("Price");
b.Property<int>("RentalFee");
b.Property<string>("Type");
b.Property<float>("X");
@@ -484,6 +488,24 @@ namespace ReallifeGamemode.Migrations
b.ToTable("Houses");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.HouseRental", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int?>("HouseId");
b.Property<int?>("UserId");
b.HasKey("Id");
b.HasIndex("HouseId");
b.HasIndex("UserId");
b.ToTable("HouseRentals");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.Interior", b =>
{
b.Property<int>("Id")
@@ -788,6 +810,8 @@ namespace ReallifeGamemode.Migrations
b.Property<float>("Heading");
b.Property<int>("Livery");
b.Property<bool>("Locked");
b.Property<uint>("Model");
@@ -956,6 +980,26 @@ namespace ReallifeGamemode.Migrations
b.ToTable("UserItems");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleItem", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("Amount");
b.Property<int>("ItemId");
b.Property<int>("Slot");
b.Property<int>("VehicleId");
b.HasKey("Id");
b.HasIndex("VehicleId");
b.ToTable("VehicleItems");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleMod", b =>
{
b.Property<int>("Id")
@@ -1119,8 +1163,7 @@ namespace ReallifeGamemode.Migrations
{
b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction")
.WithMany()
.HasForeignKey("FactionId")
.OnDelete(DeleteBehavior.Cascade);
.HasForeignKey("FactionId");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.GroupBankAccount", b =>
@@ -1137,6 +1180,17 @@ namespace ReallifeGamemode.Migrations
.HasForeignKey("OwnerId");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.HouseRental", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.House", "House")
.WithMany()
.HasForeignKey("HouseId");
b.HasOne("ReallifeGamemode.Server.Entities.User", "User")
.WithMany()
.HasForeignKey("UserId");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.Logs.Death", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.User", "Killer")
@@ -1199,6 +1253,14 @@ namespace ReallifeGamemode.Migrations
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleItem", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.ServerVehicle", "Vehicle")
.WithMany()
.HasForeignKey("VehicleId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleMod", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.ServerVehicle", "Vehicle")

View File

@@ -0,0 +1,50 @@
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
namespace ReallifeGamemode.Migrations
{
public partial class VehicleItems : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "VehicleItems",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
ItemId = table.Column<int>(nullable: false),
VehicleId = table.Column<int>(nullable: false),
Amount = table.Column<int>(nullable: false),
Slot = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_VehicleItems", x => x.Id);
table.ForeignKey(
name: "FK_VehicleItems_ServerVehicles_VehicleId",
column: x => x.VehicleId,
principalTable: "ServerVehicles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_VehicleItems_VehicleId",
table: "VehicleItems",
column: "VehicleId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "VehicleItems");
}
}
}

View File

@@ -394,7 +394,7 @@ namespace ReallifeGamemode.Migrations
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("FactionId");
b.Property<int?>("FactionId");
b.Property<int>("Rank");
@@ -486,7 +486,7 @@ namespace ReallifeGamemode.Migrations
b.ToTable("Houses");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.HouseRentals", b =>
modelBuilder.Entity("ReallifeGamemode.Server.Entities.HouseRental", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
@@ -978,6 +978,26 @@ namespace ReallifeGamemode.Migrations
b.ToTable("UserItems");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleItem", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd();
b.Property<int>("Amount");
b.Property<int>("ItemId");
b.Property<int>("Slot");
b.Property<int>("VehicleId");
b.HasKey("Id");
b.HasIndex("VehicleId");
b.ToTable("VehicleItems");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleMod", b =>
{
b.Property<int>("Id")
@@ -1141,8 +1161,7 @@ namespace ReallifeGamemode.Migrations
{
b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction")
.WithMany()
.HasForeignKey("FactionId")
.OnDelete(DeleteBehavior.Cascade);
.HasForeignKey("FactionId");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.GroupBankAccount", b =>
@@ -1159,7 +1178,7 @@ namespace ReallifeGamemode.Migrations
.HasForeignKey("OwnerId");
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.HouseRentals", b =>
modelBuilder.Entity("ReallifeGamemode.Server.Entities.HouseRental", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.House", "House")
.WithMany()
@@ -1232,6 +1251,14 @@ namespace ReallifeGamemode.Migrations
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleItem", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.ServerVehicle", "Vehicle")
.WithMany()
.HasForeignKey("VehicleId")
.OnDelete(DeleteBehavior.Cascade);
});
modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleMod", b =>
{
b.HasOne("ReallifeGamemode.Server.Entities.ServerVehicle", "Vehicle")

View File

@@ -86,6 +86,7 @@ namespace ReallifeGamemode.Server.Models
// Server Vehicles
public DbSet<Entities.ServerVehicle> ServerVehicles { get; set; }
public DbSet<Entities.VehicleMod> VehicleMods { get; set; }
public DbSet<Entities.VehicleItem> VehicleItems { get; set; }
// Whitelist
public DbSet<Entities.Whitelist> WhitelistEntries { get; set; }