This commit is contained in:
VegaZ
2021-04-08 00:21:11 +02:00
13 changed files with 201 additions and 237 deletions

View File

@@ -25,71 +25,74 @@ namespace ReallifeGamemode.Server.Events
public class Death : Script
{
[ServerEvent(Event.PlayerDeath)]
public void OnPlayerDeath(Player player, Player killer, uint reason )
public void OnPlayerDeath(Player player, Player killer, uint reason)
{
if (!player.IsLoggedIn())
{
player.Kick();
return;
}
player.SetData("isDead", true);
using var dbContext = new DatabaseContext();
using (var userDeath = new DatabaseContext())
{
User userisdead = player.GetUser(userDeath);
userisdead.Dead = true;
userDeath.SaveChanges();
}
User user = player.GetUser(dbContext);
PositionManager.cuffPoints.Remove(player);
//TODO: Zum Full Release entfernen
if (player.HasData("togdeath")) {
ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString());
}
int? killerId;
float killerPosX;
float killerPosY;
float killerPosZ;
float killerHeading;
if (killer == null || killer.IsNull)
if (player.HasData("togdeath"))
{
killerId = null;
killerPosX = -1;
killerPosY = -1;
killerPosZ = -1;
killerHeading = -1;
ChatService.SendMessage(player, "Du bist durch " + (killer?.Name ?? "Niemanden") + " gestorben: " + reason.ToString());
}
int? killerId = null;
float killerPosX = -1;
float killerPosY = -1;
float killerPosZ = -1;
float killerHeading = -1;
if (killer.IsLoggedIn())
{
var killerUser = killer.GetUser(dbContext);
if (killerUser != null)
{
killerId = killerUser.Id;
killerPosX = killer.Position.X;
killerPosY = killer.Position.Y;
killerPosZ = killer.Position.Z;
killerHeading = killer.Heading;
if (player.HasData("inGangWar") && killer.HasData("inGangWar"))
{
Gangwar.Gangwar.GangwarKill(killer, player);
}
if (player != killer)
{
Autowanted.Check_AutoWanted(killer, player);
string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + Managers.WeaponManager.GetCauseOfDeathByHash(reason) + ")";
ChatService.BroadcastAdmin(message, AdminLevel.ADMIN);
}
}
}
bool copNearby = NAPI.Pools.GetAllPlayers().Any(u => u.IsDuty() && u.IsAlive() && u.Position.DistanceToSquared(player.Position) <= 200 * 200);
if (copNearby)
{
user.SetJailTime(true);
Jail.Check_PutBehindBars(user);
ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert.");
}
else
{
var killerUser = killer.GetUser();
if (killerUser == null)
{
return;
}
killerId = killerUser.Id;
killerPosX = killer.Position.X;
killerPosY = killer.Position.Y;
killerPosZ = killer.Position.Z;
killerHeading = killer.Heading;
if (player.HasData("inGangWar") && killer.HasData("inGangWar"))
{
Gangwar.Gangwar.GangwarKill(killer, player);
}
if (player != killer)
{
Autowanted.Check_AutoWanted(killer, player);
string message = "~y~[HINWEIS]: " + killer.Name + " hat " + player.Name + " getötet (" + Managers.WeaponManager.GetCauseOfDeathByHash(reason) + ")";
ChatService.BroadcastAdmin(message, AdminLevel.ADMIN);
}
ChatService.HQMessage(user.Name + " wurde soeben ins Krankenhaus eingeliefert.");
}
User user = player.GetUser();
if (user.JailTime <= 0)
{
player.SetData("isDead", true);
user.Dead = true;
if (!player.HasData("reviveSperre"))
{
//MEDIC AUFTRAG
@@ -108,8 +111,6 @@ namespace ReallifeGamemode.Server.Events
Medic.delHealTask(player);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
}
if (player.GetUser().IsAdmin(AdminLevel.ADMIN) == true)
{
@@ -123,32 +124,28 @@ namespace ReallifeGamemode.Server.Events
//TODO PICTURE NOTIFICATION + SOUND für Medics
player.ClearAttachments();
using (var userDeath = new DatabaseContext())
List<UserItem> fItem = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList();
foreach (var item in fItem)
{
List<UserItem> fItem = userDeath.UserItems.Where(u => u.UserId == user.Id).ToList();
foreach (var item in fItem)
IItem iItem = InventoryManager.GetItemById(item.ItemId);
if (iItem is IWeaponDealItem obj)
{
IItem iItem = InventoryManager.GetItemById(item.ItemId);
if (iItem is IWeaponDealItem obj)
{
int amount = item.Amount;
int amount = item.Amount;
Vector3 dropPosition = PlayerExtension.GetPositionFromPlayer(player, 0.6f, 0);
//new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f);
Random r = new Random();
GTANetworkAPI.Object grndObject;
Vector3 textPos = dropPosition;
Vector3 dropPosition = PlayerExtension.GetPositionFromPlayer(player, 0.6f, 0);
//new Vector3(player.Position.X, player.Position.Y, player.Position.Z - 0.8f);
Random r = new Random();
GTANetworkAPI.Object grndObject;
Vector3 textPos = dropPosition;
dropPosition.Z -= 1.05f;
grndObject = NAPI.Object.CreateObject(3666746839, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 255, 0);
dropPosition.Z -= 1.05f;
grndObject = NAPI.Object.CreateObject(3666746839, dropPosition, new Vector3(0, 0, r.Next(0, 360)), 255, 0);
GroundItem grndItem = new GroundItem { ItemId = iItem.Id, Amount = amount, Position = dropPosition };
TextLabel grndTxtLbl = NAPI.TextLabel.CreateTextLabel(iItem.Name + " ~s~(~y~" + amount + "~s~)", textPos, 5, 0.5f, 4, new Color(255, 255, 255), false, 0);
GroundItem.AddGroundItem(grndItem, grndObject, grndTxtLbl);
GroundItem grndItem = new GroundItem { ItemId = iItem.Id, Amount = amount, Position = dropPosition };
TextLabel grndTxtLbl = NAPI.TextLabel.CreateTextLabel(iItem.Name + " ~s~(~y~" + amount + "~s~)", textPos, 5, 0.5f, 4, new Color(255, 255, 255), false, 0);
GroundItem.AddGroundItem(grndItem, grndObject, grndTxtLbl);
userDeath.Remove(item);
}
dbContext.Remove(item);
}
var dead = new Database.Entities.Logs.Death
@@ -165,8 +162,7 @@ namespace ReallifeGamemode.Server.Events
VictimHeading = player.Heading,
CauseOfDeath = reason.ToString()
};
userDeath.DeathLogs.Add(dead);
userDeath.SaveChanges();
dbContext.DeathLogs.Add(dead);
}
}
Job.JobBase job = Managers.JobManager.GetJob(player.GetUser().JobId ?? -1);
@@ -219,9 +215,7 @@ namespace ReallifeGamemode.Server.Events
//ChatService.SendMessage(player, "Debug10");
}
}
//JailTime.cs
Jail.Check_PutBehindBars(player);
dbContext.SaveChanges();
}
[RemoteEvent("RespawnPlayerAtHospital")]

View File

@@ -21,7 +21,7 @@ using ReallifeGamemode.Server.WeaponDeal;
/**
* @overview Life of German Reallife - Event Key (Key.cs)
* @author VegaZ
* @author VegaZ, balbo
* @copyright (c) 2008 - 2018 Life of German
*/

View File

@@ -54,6 +54,7 @@ namespace ReallifeGamemode.Server.Events
}
else
{
player.SetData("dbId", user.Id);
player.Name = username;
player.TriggerEvent("SERVER:Login_Success");
player.TriggerEvent("CLIENT:StopSound");
@@ -122,7 +123,7 @@ namespace ReallifeGamemode.Server.Events
}
else
{
Jail.Check_PutBehindBars(player);
Jail.Check_PutBehindBars(user);
}
}

View File

@@ -6,7 +6,7 @@ using ReallifeGamemode.Database.Models;
/**
* @overview Life of German Reallife - Event Register (Register.cs)
* @author VegaZ
* @author VegaZ, balbo
* @copyright (c) 2008 - 2018 Life of German
*/
@@ -51,6 +51,7 @@ namespace ReallifeGamemode.Server.Events
dbContext.Users.Add(user);
dbContext.SaveChanges();
player.SetData("dbId", user.Id);
player.TriggerEvent("SERVER:Login_Success");
player.TriggerEvent("CLIENT:StopSound");
player.SetData("isLoggedIn", true);