Merge develop into ammunation

This commit is contained in:
VegaZ
2021-04-16 19:18:01 +02:00
97 changed files with 7784 additions and 747 deletions

View File

@@ -11,7 +11,7 @@ namespace ReallifeGamemode.Server.Events
{
string serverMsg = Regex.Replace(message, "(~[a-zA-Z]~)|(!{(.*)})", "");
if (serverMsg.Trim().Length == 0) return;
NAPI.Player.GetPlayersInRadiusOfPlayer(10, player).ForEach(p =>
NAPI.Player.GetPlayersInRadiusOfPlayer(25, player).ForEach(p =>
{
ChatService.SendMessage(p, $"{player.Name} sagt: {serverMsg}");
});

View File

@@ -27,6 +27,7 @@ namespace ReallifeGamemode.Server.Events
//player.SetSharedData("vehicleAdminSpeed2", 1.0);
player.SetData("isLoggedIn", false);
player.SafeTeleport(new Vector3(-1883.736, -781.4911, -10));
player.Dimension = (uint)(player.Handle.Value + 1);
bool registered = false;
@@ -80,11 +81,16 @@ namespace ReallifeGamemode.Server.Events
bool disableLightMode = currentTime > LightModeTimeFrom && currentTime < LightModeTimeTo;
player.TriggerEvent("SERVER:Login_ShowBrowser", registered, disableLightMode);
string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")";
if (player.HasData("togip"))
{
ChatService.SendMessage(player, msg);
}
string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "]";
string ipMsg = " (" + player.Address + ")";
ChatService.BroadcastAdmin(msg, AdminLevel.SUPPORTER, getAddInfoMessage: admin =>
{
return admin.HasData("togip") ? ipMsg : string.Empty;
},
shouldSendMessage: admin =>
{
return admin.HasData("togconnect");
});
}
private bool IsPlayerBanned(Player player)

View File

@@ -94,6 +94,8 @@ namespace ReallifeGamemode.Server.Events
}
}
Medic.delHealTask(player);
if (user.JailTime <= 0)
{
user.Dead = true;
@@ -113,7 +115,6 @@ namespace ReallifeGamemode.Server.Events
MedicName = "none"
};
Medic.AddTaskToList(reviveTask);
Medic.delHealTask(player);
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " ist soeben verstorben.", new List<int>() { 2 });
}
@@ -238,8 +239,12 @@ namespace ReallifeGamemode.Server.Events
}
player.RemoveAllWeapons();
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName);
Medic.RemoveTaskFromList(task);
if(task != null)
{
Player medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName);
Medic.RemoveTaskFromList(task);
}
player.SafeTeleport(new Vector3(-495.45, -336.33, 34.5), 0, true);
}

View File

@@ -15,6 +15,8 @@ using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Server.Types;
using ReallifeGamemode.Server.Report;
using ReallifeGamemode.Server.Factions.Medic;
using ReallifeGamemode.Server.Inventory.Interfaces;
using ReallifeGamemode.Server.Inventory;
/**
* @overview Life of German Reallife - Event Login (Login.cs)
@@ -30,6 +32,13 @@ namespace ReallifeGamemode.Server.Events
public void OnPlayerDisconnected(Player player, DisconnectionType type, string reason)
{
if (!player.IsLoggedIn()) return;
using var saveUser = new DatabaseContext();
User user = player.GetUser(saveUser);
if (user == null)
{
return;
}
if (type == DisconnectionType.Left)
{
@@ -41,7 +50,7 @@ namespace ReallifeGamemode.Server.Events
}
if (type == DisconnectionType.Timeout)
{
NAPI.Util.ConsoleOutput(player.Name + " Timeoutet");
NAPI.Util.ConsoleOutput(player.Name + " timed out");
}
/*if (GlobalHelper.DutyAdmins.Contains(player))
@@ -49,10 +58,23 @@ namespace ReallifeGamemode.Server.Events
GlobalHelper.DutyAdmins.Remove(player);
}*/
if (player.GetUser().IsAdmin(AdminLevel.MAPPING))
if (user.IsAdmin(AdminLevel.MAPPING))
{
ChatService.BroadcastAdmin("!{#FFFF00}*** " + player.Name + " hat den Server verlassen", AdminLevel.MAPPING);
}
MedicTask task = Medic.ReviveTasks.FirstOrDefault(t => t.Victim == player.Name);
if (task != null)
{
ChatService.BroadcastFaction("~y~[MEDIC] ~w~Info: Der Auftrag von " + player.Name + " wurde entfernt (Ausgeloggt)", new List<int>() { 2 });
}
if (player.IsAdminDuty())
{
ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet (Ausgeloggt)");
}
/*
TaxiDriverJob taxiJob = JobManager.GetJob<TaxiDriverJob>();
TaxiContract taxiContract = taxiJob.TaxiContracts.Where(t => t.Name == player.Name).FirstOrDefault();
@@ -74,8 +96,8 @@ namespace ReallifeGamemode.Server.Events
{
Report.Report.listReports.Remove(temp);
Player user = PlayerService.GetPlayerByNameOrId(temp.getUser());
user.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen");
Player ticketUser = PlayerService.GetPlayerByNameOrId(temp.getUser());
ticketUser.SendChatMessage("!{#008fff}[REPORT]!{#FFFFFF} Chat beendet. Der Admin hat den Server verlassen");
break;
}
@@ -124,27 +146,49 @@ namespace ReallifeGamemode.Server.Events
}
}
using (var saveUser = new DatabaseContext())
List<UserItem> fItem = saveUser.UserItems.Where(u => u.UserId == user.Id).ToList();
foreach (var item in fItem)
{
var user = player.GetUser(saveUser);
Vector3 pos = player.Position;
user.PositionX = pos.X;
user.PositionY = pos.Y;
user.PositionZ = pos.Z;
saveUser.SaveChanges();
user.Dead = player.HasData("isDead") ? (bool)player.GetData<bool>("isDead") : false;
if (user.Wanteds > 0)
IItem iItem = InventoryManager.GetItemById(item.ItemId);
if (iItem is IWeaponDealItem obj)
{
ChatService.HQMessage("Der Straftäter " + player.GetUser().Name + " ist vom Radar verschwunden");
}
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;
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);
saveUser.Remove(item);
}
}
Vector3 pos = player.Position;
user.PositionX = pos.X;
user.PositionY = pos.Y;
user.PositionZ = pos.Z;
saveUser.SaveChanges();
user.Dead = player.HasData("isDead") ? (bool)player.GetData<bool>("isDead") : false;
if (user.Wanteds > 0)
{
ChatService.HQMessage("Der Straftäter " + user.Name + " ist vom Radar verschwunden");
}
player.SetData("isLoggedIn", false);
player.TriggerEvent("CLIENT:DestroyPed", 1);
player.TriggerEvent("CLIENT:DestroyPed", 2);
player.TriggerEvent("CLIENT:DestroyPed", 3);
player.TriggerEvent("CLIENT:DestroyPed", 3);
player.TriggerEvent("CLIENT:DestroyPed", 4);
Medic.delHealTask(player);

View File

@@ -1,7 +1,9 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using GTANetworkAPI;
using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Managers;
using ReallifeGamemode.Server.Util;
using ReallifeGamemode.Server.WeaponDeal;
@@ -20,6 +22,13 @@ namespace ReallifeGamemode.Server.Events
if (vehicle.HasMarkerBehind())
vehicle.RemoveMarkerBehind();
if (!VehicleManager.lastDriversInVehicle.ContainsKey(vehicle))
{
VehicleManager.lastDriversInVehicle.Add(vehicle, new Dictionary<string, DateTime>());
}
VehicleManager.lastDriversInVehicle[vehicle][client.Name] = DateTime.Now;
if (vehicle.GetServerVehicle() is FactionVehicle veh)
{
User u = client.GetUser();

View File

@@ -498,7 +498,7 @@ namespace ReallifeGamemode.Server.Events
List<string> stages = new List<string>();
foreach (var e in PositionManager.ElevatorPoints)
{
if (e.Position.DistanceTo2D(player.Position) <= 25 && e.Position.DistanceTo(player.Position) > 1.5)
if (e.Position.DistanceTo2D(player.Position) <= 30 && e.Position.DistanceTo(player.Position) > 1.5)
{
stages.Add(e.Stage);
}

View File

@@ -11,6 +11,8 @@ using ReallifeGamemode.Server.Util;
using ReallifeGamemode.Server.Wanted;
using ReallifeGamemode.Database.Entities;
using System;
using System.Collections.Generic;
using ReallifeGamemode.Server.Inventory.Interfaces;
/**
* @overview Life of German Reallife - Event Login (Login.cs)
@@ -105,11 +107,11 @@ namespace ReallifeGamemode.Server.Events
string addInfoStr = " (IP: " + player.Address + ")";
if(!string.IsNullOrEmpty(message))
if (!string.IsNullOrEmpty(message))
{
ChatService.BroadcastAdmin(message, AdminLevel.MAPPING, admin =>
{
if(admin.HasData("togip"))
if (admin.HasData("togip"))
{
return addInfoStr;
}
@@ -144,6 +146,21 @@ namespace ReallifeGamemode.Server.Events
{
Jail.Check_PutBehindBars(user);
}
player.Dimension = 0;
}
List<UserItem> fItem = dbContext.UserItems.Where(u => u.UserId == user.Id).ToList();
foreach (var item in fItem)
{
IItem iItem = InventoryManager.GetItemById(item.ItemId);
if (iItem is IWeaponDealItem obj)
{
player.SyncAnimation("carryBox");
player.AddAttachment("ammobox", false);
NAPI.Player.SetPlayerCurrentWeapon(player, WeaponHash.Unarmed);
break;
}
}
player.TriggerEvent("draw", player.Name, player.Handle.Value);
@@ -168,7 +185,7 @@ namespace ReallifeGamemode.Server.Events
}
}, delayTime: 1000);
if(GlobalHelper.CountdownUntil > DateTime.Now)
if (GlobalHelper.CountdownUntil > DateTime.Now)
{
player.TriggerEvent("countdown", (GlobalHelper.CountdownUntil - DateTime.Now).TotalSeconds, GlobalHelper.CountdownText);
}

View File

@@ -13,5 +13,15 @@ namespace ReallifeGamemode.Server.Events
{
player.SafeTeleport(pos);
}
[RemoteEvent("CLIENT:SetAfkStatus")]
public void SetPlayerAfkStatus(Player player, bool status)
{
player.SetSharedData("isAfk", status);
if(status)
{
player.SendNotification("Du wurdest ~b~AFK~s~ gesetzt", true);
}
}
}
}