Files
reallife-gamemode/Server/Events/Death.cs
2018-09-24 23:08:17 +02:00

57 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GTANetworkAPI;
using GTANetworkMethods;
using reallife_gamemode.Model;
using reallife_gamemode.Server.Extensions;
/*
* Author: balbo
*
* */
namespace reallife_gamemode.Server.Events
{
public class Death : Script
{
[ServerEvent(Event.PlayerDeath)]
public void OnPlayerDeath(Client player, Client killer, uint reason)
{
//TODO: Zum Full Release entfernen
NAPI.Chat.SendChatMessageToPlayer(player, "Du bist durch " + killer.Name + " gestorben: " + reason.ToString());
int? killerId;
float killerPosX;
float killerPosY;
float killerPosZ;
float killerHeading;
if (killer.IsNull)
{
killerId = null;
killerPosX = -1;
killerPosY = -1;
killerPosZ = -1;
killerHeading = -1;
} else {
killerId = killer.GetUser().Id;
killerPosX = killer.Position.X;
killerPosY = killer.Position.Y;
killerPosZ = killer.Position.Z;
killerHeading = killer.Heading;
}
using (var userDeath = new DatabaseContext())
{
var dead = new Logs.Death { VictimId = player.GetUser().Id, KillerId = killerId, KillerPositionX = killerPosX, KillerPositionY = killerPosY,
KillerPositionZ = killerPosZ, KillerHeading = killerHeading, VictimPositionX = player.Position.X, VictimPositionY = player.Position.Y,
VictimPositionZ = player.Position.Z, VictimHeading = player.Heading, CauseOfDeath = reason.ToString()};
userDeath.DeathLogs.Add(dead);
userDeath.SaveChanges();
}
}
}
}