[+] Add /release Command to get Prisoners out of Jail

This commit is contained in:
Lukas Moungos
2019-07-19 22:01:14 +02:00
parent 409a8bc52a
commit 2a3d97265b
3 changed files with 60 additions and 4 deletions

View File

@@ -209,7 +209,7 @@ namespace ReallifeGamemode.Server.Commands
}
User targetCop = target.GetUser();
if(targetCop.FactionId == 1 || targetCop.FactionId == 2)
if(targetCop.FactionId == 1 || targetCop.FactionId == 3)
{
ChatService.ErrorMessage(player, "Du kannst dieser Person keine Wanteds geben");
return;
@@ -223,7 +223,7 @@ namespace ReallifeGamemode.Server.Commands
{
User user = player.GetUser();
if (user == null || (user.FactionId != 1 && user.FactionId != 2))
if (user == null || (user.FactionId != 1 && user.FactionId != 3))
{
ChatService.NotAuthorized(player);
return;
@@ -249,6 +249,55 @@ namespace ReallifeGamemode.Server.Commands
dbContext.SaveChanges();
}
}
[Command("release", "~m~Benutzung: ~s~/release [Name / ID] [Grund]")]
public void CmdFactionJailRelease(Client player, string nameOrId, string reason)
{
User user = player.GetUser();
if (user == null || (user.FactionId != 1 && user.FactionId != 3))
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByNameOrId(nameOrId);
if (target == null || !target.IsLoggedIn())
{
ChatService.PlayerNotFound(player);
return;
}
User targetCop = target.GetUser();
if (targetCop.FactionId == 1 || targetCop.FactionId == 3)
{
ChatService.ErrorMessage(player, "Diese Person sollte sich nicht im Knast befinden");
return;
}
if(target.Position.DistanceTo(player.Position) < 6)
{
User targetUser = target.GetUser();
if (targetUser.JailTime > 0)
{
using (var dbContext = new DatabaseContext())
{
target.GetUser(dbContext).JailTime = 0;
dbContext.SaveChanges();
}
}
else
{
ChatService.ErrorMessage(player, "Diese Person befindet sich nicht im Knast");
return;
}
}
else
{
ChatService.ErrorMessage(player, "Du bist zu weit entfernt");
return;
}
}
#endregion
#region Global Fraktions Commands
#endregion

View File

@@ -110,7 +110,7 @@ namespace ReallifeGamemode.Server.Extensions
{
ChatService.SendMessage(copPlayer, "~r~HQ: Straftat gemeldet von" + cop + " - " + reason + ". Straftäter: "+ user.Name + ".");
}
else
else if((copUser.FactionId == 1 || copUser.FactionId == 2) && cop == null)
{
ChatService.SendMessage(copPlayer, "~r~HQ: " + user.Name + " hat eine Straftat begangen - " + reason + ".");
}

View File

@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GTANetworkAPI;
using ReallifeGamemode.Server.Entities;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Factions.Medic;
using ReallifeGamemode.Server.Models;
namespace ReallifeGamemode.Server.Wanted
@@ -50,6 +52,10 @@ namespace ReallifeGamemode.Server.Wanted
if (rndInt == 3)
NAPI.Player.SpawnPlayer(client, new Vector3(458.3372, -1001.258, 24.91485)); //send client to jail
client.TriggerEvent("onPlayerRevived");
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == client.Name);
Medic.RemoveTaskFromList(task);
client.Health = 100;
using (var dbContext = new DatabaseContext())
{
@@ -147,6 +153,7 @@ namespace ReallifeGamemode.Server.Wanted
player.GetUser(dbContext).JailTime -= 60;
dbContext.SaveChanges();
}
player.Health = 100;
}
}