Das aller erste, ich glaub ich gib mir n’ schönen Kebab, so'n schönen Köfte-Spieß weißt du? so'n schönen Köfte-Spieß, Keupstraße, ein Köfte-Spieß erstmal, mit gar kein Reden auch und so, Haval, gib mir einfach nur ein Köfte-Spieß, dazu ein schönen frischen Ayran aus dieser Maschine weißt du, wo man den selber so ,,All You Can Drink" mäßig zapfen kann, und dann n' Handy besorgen man, ich brauch n' Handy man, ich brauch n' Handy.

This commit is contained in:
Siga
2020-04-05 00:04:57 +02:00
parent a568cb1ad9
commit 2ca92e301b
5 changed files with 163 additions and 68 deletions

View File

@@ -4,10 +4,6 @@ using System.Linq;
using GTANetworkAPI;
using Newtonsoft.Json;
using ReallifeGamemode.Server.Services;
using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Core.Managers;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Database.Entities;
namespace ReallifeGamemode.Server.Job
{
@@ -19,7 +15,6 @@ namespace ReallifeGamemode.Server.Job
public override bool NeedVehicleToStart => false;
public RefuseCollectorJob()
{
JobStart += RefuseCollectorJobJobStart;
@@ -28,35 +23,84 @@ namespace ReallifeGamemode.Server.Job
private void RefuseCollectorJobJobStart(Player player)
{
//setClothes
}
private void RefuseCollectorJobJobStop(Player player)
{
//removeClothes and replace with old
MuellmannJobBeenden(player);
}
public static List<MuellmannData> muellmanData = new List<MuellmannData>();
public List<MuellmannData> muellmanData = new List<MuellmannData>();
private List<Vector3> vector3s = new List<Vector3>();
[ServerEvent(Event.ResourceStart)]
public void LoadHouses()
{
foreach(var marker in HouseManager.houseMarkers)
{
vector3s.Add(new Vector3(marker.Value.Position.X, marker.Value.Position.Y, marker.Value.Position.Z));
}
}
private readonly IReadOnlyCollection<Vector3> vector3s = new List<Vector3>
{
new Vector3(332.9839782714844, -1741.807373046875, 29.73055076599121),
new Vector3(321.3463439941406, -1759.986572265625, 29.644014358520508),
new Vector3(305.2624206542969, -1776.0458984375, 28.871641159057617),
new Vector3(300.1080017089844, -1784.01123046875, 28.438663482666016),
new Vector3(348.7510986328125, -1820.57373046875, 28.89409637451172),
new Vector3(328.7326965332031, -1845.462890625, 27.748090744018555),
new Vector3(439.82269287109375, -1830.4090576171875, 28.36185646057129),
new Vector3(427.9081115722656, -1841.7236328125, 28.463409423828125),
new Vector3(412.9471130371094, -1856.100341796875, 27.32313346862793),
new Vector3(399.9404296875, -1865.1639404296875, 26.716350555419922),
new Vector3(386.0218811035156, -1882.2705078125, 25.788604736328125),
new Vector3(368.0433349609375, -1896.9063720703125, 25.17853355407715),
new Vector3(473.30694580078125, -1775.0206298828125, 28.69390296936035),
new Vector3(475.3251647949219, -1758.085205078125, 28.892553329467773),
new Vector3(479.7771301269531, -1736.3861083984375, 29.151023864746094),
new Vector3(490.24884033203125, -1714.48974609375, 29.618074417114258),
new Vector3(500.4996643066406, -1697.649658203125, 29.78924560546875),
new Vector3(997.3480834960938, -729.1090087890625, 57.81574630737305),
new Vector3(979.4336547851562, -716.036376953125, 58.22065734863281),
new Vector3(970.9692993164062, -700.552978515625, 58.48196029663086),
new Vector3(960.6688232421875, -669.340576171875, 58.44976806640625),
new Vector3(943.6602783203125, -653.6834716796875, 58.4287109375),
new Vector3(929.2879028320312, -639.0972900390625, 58.242271423339844),
new Vector3(903.5896606445312, -616.0307006835938, 58.4549560546875),
new Vector3(886.8736572265625, -607.783447265625, 58.445091247558594),
new Vector3(861.7691650390625, -582.5391845703125, 58.156497955322266),
new Vector3(920.3253784179688, -571.0201416015625, 58.36641311645508),
new Vector3(963.1478881835938, -595.95654296875, 59.902706146240234),
new Vector3(976.3702392578125, -579.7669067382812, 59.63575744628906),
new Vector3(1010.3785400390625, -572.6109008789062, 60.59443283081055),
new Vector3(999.9313354492188, -594.0516357421875, 59.63548278808594),
new Vector3(1200.4964599609375, -576.1556396484375, 69.13911437988281),
new Vector3(1206.1680908203125, -620.3853759765625, 66.43684387207031),
new Vector3(1221.357421875, -668.6166381835938, 63.49313735961914),
new Vector3(1222.5732421875, -697.0482788085938, 60.806724548339844),
new Vector3(1228.840576171875, -725.5143432617188, 60.79587173461914),
new Vector3(1266.1864013671875, -703.4100341796875, 64.55311584472656),
new Vector3(1271.0609130859375, -682.7374267578125, 66.03081512451172),
new Vector3(1265.1763916015625, -647.4813842773438, 67.92143249511719),
new Vector3(1251.595947265625, -621.8599853515625, 69.41301727294922),
new Vector3(1241.6507568359375, -601.6868286132812, 69.42526245117188),
new Vector3(1242.1136474609375, -565.8869018554688, 69.65742492675781),
new Vector3(-1898.0162353515625, 133.0081787109375, 81.85769653320312),
new Vector3(-1960.471435546875, 212.37518310546875, 86.6491470336914),
new Vector3(-1969.3568115234375, 246.49497985839844, 87.61412811279297),
new Vector3(-1995.2470703125, 300.3732604980469, 91.96467590332031),
new Vector3(-2009.92822265625, 445.47509765625, 103.01591491699219),
new Vector3(-1995.321044921875, 590.8935546875, 117.90331268310547),
new Vector3(-1973.7674560546875, 630.2719116210938, 122.53621673583984),
new Vector3(-1929.476806640625, 595.318603515625, 122.28478240966797),
new Vector3(-1939.19873046875, 551.6788330078125, 114.82840728759766),
new Vector3(-1943.7459716796875, 449.3956298828125, 102.92235565185547),
new Vector3(-1932.1275634765625, 362.3074035644531, 93.78870391845703),
new Vector3(-1923.6715087890625, 298.3466796875, 89.28668975830078),
new Vector3(-1874.3028564453125, 201.1282958984375, 84.2945327758789),
new Vector3(-1805.06298828125, 438.19415283203125, 128.7073974609375),
new Vector3(-1540.2606201171875, 421.3618469238281, 110.0140151977539),
new Vector3(-1496.3275146484375, 437.88836669921875, 112.49789428710938),
new Vector3(-1308.279541015625, 449.301513671875, 100.96974182128906),
new Vector3(-1215.8623046875, 458.5867919921875, 91.85366821289062),
}.AsReadOnly();
[RemoteEvent("CLIENT:MuellmannJobStarten")]
public void MuellmannJobStarten(Player player, Vehicle vehicle)
{
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{
Vehicle veh;
@@ -72,7 +116,6 @@ namespace ReallifeGamemode.Server.Job
}
}
public void MuellmannJobBeenden(Player player)
{
if (player.IsInVehicle)
@@ -80,11 +123,24 @@ namespace ReallifeGamemode.Server.Job
Vehicle vehicle = player.Vehicle;
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{
ChatService.SendMessage((Player)player, "~g~Du hast den Müllmann-Job beendet!");
player.TriggerEvent("SERVER:MuellmannStatusFalse");
player.TriggerEvent("SERVER:MuellmannBCSEntfernen");
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
if (data.hasFreePlace())
{
muellmanData.Remove(data);
//müllwagen respawnen
return;
}
data.removeClientFromData(player);
return;
}
}
else
{
@@ -95,8 +151,8 @@ namespace ReallifeGamemode.Server.Job
{
ChatService.SendMessage((Player)player, "~r~INFO: Zum Job beenden musst du im Auto sein.");
}
}
[RemoteEvent("CLIENT:MuellmannImShape")]
public void MuellmannImShape(Player player, string jsonColShape)
{
@@ -145,29 +201,23 @@ namespace ReallifeGamemode.Server.Job
{
if (data.getDataFromClient(player) == null) continue;
Console.WriteLine($"[DATA DEBUG] vehicle: {data.vehicle.DisplayName} | Players: {data.getClientsFromData()}");
int count = data.getTrashCount();
Player target = data.getPartnerClient(player);
if (target != null) ChatService.SendMessage((Player)target, $"Fahrzeug wurde entleert. Säcke: {count}");
ChatService.SendMessage((Player)player, $"Fahrzeug wurde entleert. Säcke: {count}");
player.TriggerEvent("SERVER:MuellmannHintenWiederLeer");
//bonus pro sack
data.setTrashCount(0);
Console.WriteLine($"[DATA DEBUG] vehicle: {data.vehicle.DisplayName} | Players: {data.getClientsFromData().Count} | Säcke: {data.getTrashCount()}");
return;
}
}
#region zweiSpeieler
[ServerEvent(Event.PlayerDisconnected)]
private void SrvEvent_PlayerDc(Player player)
public void MuellmannOnPlayerDc(Player player)
{
if (!player.IsLoggedIn() || !GetUsersInJob().Contains(player)) return;
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
@@ -182,16 +232,10 @@ namespace ReallifeGamemode.Server.Job
data.removeClientFromData(player);
return;
}
}
[ServerEvent(Event.PlayerDeath)]
private void SrvEvent_PlayerDeath(Player player)
public void MuellmannOnPlayerDeath(Player player)
{
if (!player.IsLoggedIn() || !GetUsersInJob().Contains(player)) return;
User u = player.GetUser();
if (u.JobId != this.Id) return;
foreach (var data in muellmanData)
{
if (data.getDataFromClient(player) == null) continue;
@@ -206,13 +250,12 @@ namespace ReallifeGamemode.Server.Job
data.removeClientFromData(player);
return;
}
}
[ServerEvent(Event.VehicleDeath)]
private void SrvEvent_Vehicle(Vehicle veh)
private void MuellmannOnVehicle(Vehicle veh)
{
if (veh.Model != (uint)Types.VehicleModel.Trash && veh.Model != (uint)Types.VehicleModel.Trash2) return;
if (veh.Model != (uint)Types.VehicleModel.Trash && veh.Model != (uint)Types.VehicleModel.Trash2) return;
foreach (var data in muellmanData)
{
if (data.vehicle == veh)
@@ -220,22 +263,17 @@ namespace ReallifeGamemode.Server.Job
//müllfahrzeug respawnen
List<Player> clients = data.getClientsFromData();
foreach(var c in clients){ RefuseCollectorJobJobStop(c); }
foreach (var c in clients) { RefuseCollectorJobJobStop(c); }
muellmanData.Remove(data);
return;
}
}
}
[ServerEvent(Event.PlayerEnterVehicleAttempt)]
public void SrvEvent_PlayerEnterVehicle(Player player, Vehicle vehicle, sbyte seat)
public void MuellmannOnPlayerEnterVehicle(Player player, Vehicle vehicle, sbyte seat)
{
Player target;
if (!player.IsLoggedIn() || !GetUsersInJob().Contains(player)) return;
User u = player.GetUser();
if (u.JobId != this.Id) return;
if (vehicle.Model == (uint)Types.VehicleModel.Trash || vehicle.Model == (uint)Types.VehicleModel.Trash2)
{
foreach (var data in muellmanData)
@@ -294,20 +332,22 @@ namespace ReallifeGamemode.Server.Job
}
}
#endregion
#endregion zweiSpeieler
#region Data
public class MuellmannData
{
Player client1;
Player client2;
private Player client1;
private Player client2;
public Vehicle vehicle;
int trashCount = 0;
private static int trashCount = 0;
public MuellmannData(Vehicle vehicle)
{
this.vehicle = vehicle;
}
public void setClientToData(Player player)
{
if (client1 == player || client2 == player)
@@ -320,19 +360,23 @@ namespace ReallifeGamemode.Server.Job
else if (client2 == null) { client2 = player; return; }
else if (client1 != null && client2 != null) { Console.WriteLine("kein Platz"); }
}
public void removeClientFromData(Player player)
{
if (client1 == player) { client1 = null; }
if (client2 == player) { client2 = null; }
}
public int getTrashCount()
{
return this.trashCount;
return trashCount;
}
public void setTrashCount(int i)
{
this.trashCount = i;
trashCount = i;
}
public List<Player> getClientsFromData()
{
List<Player> tempList = new List<Player>();
@@ -340,18 +384,21 @@ namespace ReallifeGamemode.Server.Job
if (client2 != null) { tempList.Add(client2); }
return tempList;
}
public MuellmannData getDataFromClient(Player player)
{
if (client1 != player && client2 != player)
return null;
return this;
}
public bool hasFreePlace()
{
if (client1 != null && client2 != null)
return false;
return true;
}
public Player getPartnerClient(Player player)
{
if (client1 != player && client2 != player)
@@ -362,8 +409,7 @@ namespace ReallifeGamemode.Server.Job
return null;
}
}
#endregion
#endregion Data
}
}