diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index b75432fb..7136d5b2 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using GTANetworkAPI; @@ -555,6 +555,25 @@ namespace ReallifeGamemode.Server.Commands else player.Position = player.GetData("mark"); } + [Command("flip", "")] + public void CmdAdminFlip(Player player) + { + if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) + { + ChatService.NotAuthorized(player); + return; + } + + if (player.IsInVehicle) + { + player.Vehicle.Rotation = new Vector3(0.0, 0.0, player.Vehicle.Rotation.Z); + } + else + { + player.SendChatMessage("~r~Du befindest dich in keinem Fahrzeug!"); + } + } + [Command("up", "~m~Benutzung: ~s~/up [Wert]")] public void CmdAdminUp(Player player, int value = 5) { diff --git a/ReallifeGamemode.Server/Commands/FactionCommands.cs b/ReallifeGamemode.Server/Commands/FactionCommands.cs index 8857c2f8..b89d4c87 100644 --- a/ReallifeGamemode.Server/Commands/FactionCommands.cs +++ b/ReallifeGamemode.Server/Commands/FactionCommands.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using Microsoft.EntityFrameworkCore; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; diff --git a/ReallifeGamemode.Server/Commands/GroupCommands.cs b/ReallifeGamemode.Server/Commands/GroupCommands.cs index 9c7735a2..a5495fd0 100644 --- a/ReallifeGamemode.Server/Commands/GroupCommands.cs +++ b/ReallifeGamemode.Server/Commands/GroupCommands.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Services; using System; diff --git a/ReallifeGamemode.Server/Commands/UserCommands.cs b/ReallifeGamemode.Server/Commands/UserCommands.cs index 54e952b8..6c04c598 100644 --- a/ReallifeGamemode.Server/Commands/UserCommands.cs +++ b/ReallifeGamemode.Server/Commands/UserCommands.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Database; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Server.Extensions; diff --git a/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs b/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs index 982d3b89..440a6670 100644 --- a/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs +++ b/ReallifeGamemode.Server/DrivingSchool/DrivingSchool.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using ReallifeGamemode.Server.Extensions; @@ -146,13 +146,13 @@ namespace ReallifeGamemode.Server.DrivingSchool { user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen."); user.TriggerEvent("stopTimer"); - CheckPointHandle.StartCheckPointRoute(user, DrivingRoute, 0, 1, 7, 3, "drivingSchoolEvent"); + CheckPointHandle.StartCheckPointRoute(user, DrivingRoute, 0, 1, 7, 3, true, "drivingSchoolEvent"); } if (schoolVehicle.SchoolId == 2 && user.IsInVehicle) { user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen."); user.TriggerEvent("stopTimer"); - CheckPointHandle.StartCheckPointRoute(user, BikeRoute, 0, 1, 7, 3, "bikeSchoolEvent"); + CheckPointHandle.StartCheckPointRoute(user, BikeRoute, 0, 1, 7, 3, true, "bikeSchoolEvent"); } } } @@ -201,7 +201,7 @@ namespace ReallifeGamemode.Server.DrivingSchool else if (checkpoint == 32) { user.TriggerEvent("renderTextOnScreen", "Parke nun das Auto an der markierten Stelle."); - CheckPointHandle.StartCheckPointRoute(user, StopCar, 5000, 1, 7, 3, "drivingSchoolEventEnd"); + CheckPointHandle.StartCheckPointRoute(user, StopCar, 5000, 1, 7, 3, true, "drivingSchoolEventEnd"); } } @@ -269,7 +269,7 @@ namespace ReallifeGamemode.Server.DrivingSchool else if (checkpoint == 12) { user.TriggerEvent("renderTextOnScreen", "Parke nun das Auto an der markierten Stelle."); - CheckPointHandle.StartCheckPointRoute(user, StopBike, 5000, 1, 7, 3, "bikeSchoolEventEnd"); + CheckPointHandle.StartCheckPointRoute(user, StopBike, 5000, 1, 7, 3, true, "bikeSchoolEventEnd"); } } diff --git a/ReallifeGamemode.Server/DrivingSchool/Licenses.cs b/ReallifeGamemode.Server/DrivingSchool/Licenses.cs index 0e104bed..1e3645f9 100644 --- a/ReallifeGamemode.Server/DrivingSchool/Licenses.cs +++ b/ReallifeGamemode.Server/DrivingSchool/Licenses.cs @@ -1,4 +1,4 @@ -using Newtonsoft.Json; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Text; diff --git a/ReallifeGamemode.Server/DrivingSchool/PlaneSchool.cs b/ReallifeGamemode.Server/DrivingSchool/PlaneSchool.cs index c2479826..66fb1c7a 100644 --- a/ReallifeGamemode.Server/DrivingSchool/PlaneSchool.cs +++ b/ReallifeGamemode.Server/DrivingSchool/PlaneSchool.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using ReallifeGamemode.Server.Extensions; @@ -105,7 +105,7 @@ namespace ReallifeGamemode.Server.DrivingSchool { user.TriggerEvent("renderTextOnScreen", "Fahren Sie langsam und sicher zur Roten Markierung."); user.TriggerEvent("stopTimer"); - CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, 12, 5, "planeSchoolEvent"); + CheckPointHandle.StartCheckPointRoute(user, planeRoute, 0, 6, 12, 5, true, "planeSchoolEvent"); } } } @@ -175,7 +175,7 @@ namespace ReallifeGamemode.Server.DrivingSchool case 14: user.TriggerEvent("renderTextOnScreen", "Setze zum landeflug an. Drücke 'G' um ihr Fahrwerk auszufahren."); - CheckPointHandle.StartCheckPointRoute(user, planeRouteEnd, 5000, 6, 12, 5, "planeSchoolEventEnd"); + CheckPointHandle.StartCheckPointRoute(user, planeRouteEnd, 5000, 6, 12, 5, true, "planeSchoolEventEnd"); break; diff --git a/ReallifeGamemode.Server/Events/Chat.cs b/ReallifeGamemode.Server/Events/Chat.cs index 120f2f7d..d21c355a 100644 --- a/ReallifeGamemode.Server/Events/Chat.cs +++ b/ReallifeGamemode.Server/Events/Chat.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Server.Services; using System.Text.RegularExpressions; diff --git a/ReallifeGamemode.Server/Events/Connect.cs b/ReallifeGamemode.Server/Events/Connect.cs index 8b725dfb..129a70fa 100644 --- a/ReallifeGamemode.Server/Events/Connect.cs +++ b/ReallifeGamemode.Server/Events/Connect.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database; @@ -45,7 +45,10 @@ namespace ReallifeGamemode.Server.Events if (IsPlayerBanned(player)) return; - player.TriggerEvent("CLIENT:PlaySound", "music/login", "mp3", 25); + NAPI.Task.Run(() => + { + player.TriggerEvent("CLIENT:PlaySound", "music/login", "mp3", 20); + }, delayTime: 1000); player.TriggerEvent("SERVER:Login_ShowBrowser"); string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")"; ChatService.BroadcastAdmin(msg, AdminLevel.ADMIN); diff --git a/ReallifeGamemode.Server/Events/Death.cs b/ReallifeGamemode.Server/Events/Death.cs index 08e65f9f..f1faacb0 100644 --- a/ReallifeGamemode.Server/Events/Death.cs +++ b/ReallifeGamemode.Server/Events/Death.cs @@ -1,4 +1,4 @@ -using System; +using System; using GTANetworkAPI; using ReallifeGamemode.Database; using ReallifeGamemode.Database.Entities; diff --git a/ReallifeGamemode.Server/Events/Disconnect.cs b/ReallifeGamemode.Server/Events/Disconnect.cs index d56c288e..263aba7a 100644 --- a/ReallifeGamemode.Server/Events/Disconnect.cs +++ b/ReallifeGamemode.Server/Events/Disconnect.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/ReallifeGamemode.Server/Events/EnterVehicle.cs b/ReallifeGamemode.Server/Events/EnterVehicle.cs index e6fb5c76..334aaa68 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicle.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicle.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using GTANetworkAPI; @@ -29,7 +29,7 @@ namespace ReallifeGamemode.Server.Events return; List dealPoint = new List(); dealPoint.Add(vector); - CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, 4, "loadWeaponTransport"); + CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, 4, true, "loadWeaponTransport"); } } } diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index b949b242..aba6043f 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using System.Timers; @@ -45,7 +45,7 @@ namespace ReallifeGamemode.Server.Events } if (vehicle.GetServerVehicle() is JobVehicle jveh) { - if (jveh.JobId != player.GetUser().JobId && !(u.IsAdmin(AdminLevel.HEADADMIN) && !player.IsAdminDuty())) + if (jveh.JobId != player.GetUser().JobId && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty())) { player.StopAnimation(); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); @@ -73,7 +73,7 @@ namespace ReallifeGamemode.Server.Events } if (vehicle.GetServerVehicle() is SchoolVehicle sVeh) { - if (!player.HasData("ActiveSchool")) + if (!player.HasData("ActiveSchool") && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty())) { player.StopAnimation(); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); diff --git a/ReallifeGamemode.Server/Events/ExitVehicle.cs b/ReallifeGamemode.Server/Events/ExitVehicle.cs index f6896ebd..c1ed5014 100644 --- a/ReallifeGamemode.Server/Events/ExitVehicle.cs +++ b/ReallifeGamemode.Server/Events/ExitVehicle.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using System.Timers; diff --git a/ReallifeGamemode.Server/Events/Faction.cs b/ReallifeGamemode.Server/Events/Faction.cs index 2433cf87..82c38dd3 100644 --- a/ReallifeGamemode.Server/Events/Faction.cs +++ b/ReallifeGamemode.Server/Events/Faction.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using Newtonsoft.Json; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; diff --git a/ReallifeGamemode.Server/Events/Inventory.cs b/ReallifeGamemode.Server/Events/Inventory.cs index a72edfac..31ecb7ac 100644 --- a/ReallifeGamemode.Server/Events/Inventory.cs +++ b/ReallifeGamemode.Server/Events/Inventory.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 040bb469..a5bbe1d6 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using Newtonsoft.Json; @@ -172,17 +172,17 @@ namespace ReallifeGamemode.Server.Events if (!player.IsLoggedIn()) return; var user = player.GetUser(); - ElevatorPoint nearestElevatorPoint = PositionManager.ElevatorPoints.Find(e => e.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3)); - ClotheshopPoint nearestClotheShopPoint = PositionManager.clotheshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5 && (!user.GetData("duty"))); + ElevatorPoint nearestElevatorPoint = PositionManager.ElevatorPoints.Find(e => e.Position.DistanceTo(player.Position) <= 1.6 && (user.FactionId == 1 || user.FactionId == 3)); + ClotheshopPoint nearestClotheShopPoint = PositionManager.clotheshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6 && (!user.GetData("duty"))); - ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5); - JobPoint nearestJobPoint = PositionManager.JobPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.5); + ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6); + JobPoint nearestJobPoint = PositionManager.JobPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6); if (user?.FactionId != null) { - DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5 && d.FactionId == user.FactionId); - WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.5 && w.FactionId == user.FactionId); - JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData("duty")); + DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.6 && d.FactionId == user.FactionId); + WeaponPoint nearestWeapon = PositionManager.WeaponPoints.Find(w => w.Position.DistanceTo(player.Position) <= 1.6 && w.FactionId == user.FactionId); + JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.6 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData("duty")); if (nearestDuty != null)// Duty Point @@ -376,6 +376,7 @@ namespace ReallifeGamemode.Server.Events } if (nearestJobPoint != null) { + if (player.Vehicle != null) return; Job.JobBase job = JobManager.GetJob(player.GetUser().JobId.Value); JobManager jobb = new JobManager(); if (nearestJobPoint.jobId != 3 && nearestJobPoint.jobId == player.GetUser().JobId) @@ -393,33 +394,33 @@ namespace ReallifeGamemode.Server.Events } if (nearestJobPoint.jobId == 3 && player.GetUser().JobId == 3) { - if (nearestJobPoint.Skill == 0 && player.GetUser().PilotSkill < 300) + if (nearestJobPoint.Skill < 300 && player.GetUser().PilotSkill >= 0) { if (job.GetUsersInJob().Contains(player)) { + user.SetData("PilotenBase", 1); jobb.StopJob(player); - user.SetData("PilotenBase2", false); return; } if (!job.GetUsersInJob().Contains(player)) { + user.SetData("PilotenBase", 1); jobb.StartJobEvent(player); - user.SetData("PilotenBase2", false); return; } } - if (nearestJobPoint.Skill == 300 && player.GetUser().PilotSkill >= 300) + if (nearestJobPoint.Skill >= 300 && player.GetUser().PilotSkill >= 300) { if (job.GetUsersInJob().Contains(player)) { + user.SetData("PilotenBase", 2); jobb.StopJob(player); - user.SetData("PilotenBase2", false); return; } if (!job.GetUsersInJob().Contains(player)) { + user.SetData("PilotenBase", 2); jobb.StartJobEvent(player); - user.SetData("PilotenBase2", true); return; } } @@ -543,10 +544,7 @@ namespace ReallifeGamemode.Server.Events } else if (sV is FactionVehicle fV) { - if (u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()) - { - } - else if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN))) + if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty())) { player.SendNotification("~r~Du hast keinen Schlüssel."); return; @@ -554,10 +552,7 @@ namespace ReallifeGamemode.Server.Events } else if (sV is GroupVehicle gV) { - if (u.IsAdmin(AdminLevel.ADMIN3) && player.IsAdminDuty()) - { - } - else if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3)) + if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3) && player.IsAdminDuty()) { player.SendNotification("~r~Du hast keinen Schlüssel."); return; @@ -565,7 +560,12 @@ namespace ReallifeGamemode.Server.Events } else if (sV is JobVehicle jV) { - if (jV.JobId == player.GetUser().JobId) + if (jV.JobId != player.GetUser().JobId && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty())) + { + player.SendNotification("~r~Du hast keinen Schlüssel."); + return; + } + else { if (!jV.GetJob().GetUsersInJob().Contains(player)) { @@ -574,36 +574,80 @@ namespace ReallifeGamemode.Server.Events } else { - if ((VehicleHash)jV.Model == VehicleHash.Bus) + if (jV.JobId == 3) { - player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); - player.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); - player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); - player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); - player.TriggerEvent("CLIENT:SetDoorShut", 0, false); - player.TriggerEvent("CLIENT:SetDoorShut", 1, false); - player.TriggerEvent("CLIENT:SetDoorShut", 2, false); - player.TriggerEvent("CLIENT:SetDoorShut", 3, false); + Job.PilotJob c = new Job.PilotJob(); + if ((VehicleHash)jV.Model == VehicleHash.Cuban800 && !state) + { + if (!player.HasData("HatRoute") || player.GetData("HatRoute") == false) + { + player.SetData("HatRoute", true); + c.StartPilotRoute(player, "RouteStart"); + } + } + if ((VehicleHash)jV.Model == VehicleHash.Velum && !state || (VehicleHash)jV.Model == VehicleHash.Velum2 && !state) + { + if (player.GetUser().PilotSkill >= 300) + { + if (!player.HasData("HatRoute") || player.GetData("HatRoute") == false) + { + player.SetData("HatRoute", true); + c.StartPilotRoute(player, "RouteStart"); + } + } + else + { + player.SendNotification("~y~[JOB] ~r~Du besitzt nicht das nötige Skilllevel(2) "); + return; + } + } } - if ((VehicleHash)jV.Model == VehicleHash.Coach) + if (jV.JobId == 4) { - player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); - player.TriggerEvent("CLIENT:SetDoorShut", 0, false); - } - if ((VehicleHash)jV.Model == VehicleHash.Tourbus) - { - player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); - player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); - player.TriggerEvent("CLIENT:SetDoorShut", 2, false); - player.TriggerEvent("CLIENT:SetDoorShut", 3, false); + Job.BusDriverJob c = new Job.BusDriverJob(); + if ((VehicleHash)jV.Model == VehicleHash.Bus && !state) + { + if (!player.HasData("HatRoute") || player.GetData("HatRoute") == false) + { + player.SetData("HatRoute", true); + c.StartBusRoute(player, "RouteStart"); + } + } + if ((VehicleHash)jV.Model == VehicleHash.Coach && !state) + { + if (player.GetUser().BusSkill >= 300) + { + if (!player.HasData("HatRoute") || player.GetData("HatRoute") == false) + { + player.SetData("HatRoute", true); + c.StartBusRoute(player, "RouteStart"); + } + } + else + { + player.SendNotification("~y~[JOB] ~r~Du besitzt nicht das nötige Skilllevel(2) "); + return; + } + } + if ((VehicleHash)jV.Model == VehicleHash.Tourbus && !state) + { + if (player.GetUser().BusSkill >= 800) + { + if (!player.HasData("HatRoute") || player.GetData("HatRoute") == false) + { + player.SetData("HatRoute", true); + c.StartBusRoute(player, "RouteStart"); + } + } + else + { + player.SendNotification("~y~[JOB] ~r~Du besitzt nicht das nötige Skilllevel(3) "); + return; + } + } } } } - else - { - player.SendNotification("~r~Du hast keinen Schlüssel."); - return; - } } else if (sV is UserVehicle uV) { diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 97c7ed3a..835e4477 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using GTANetworkAPI; using Microsoft.EntityFrameworkCore; using ReallifeGamemode.Server.Extensions; diff --git a/ReallifeGamemode.Server/Events/PlayerSpawn.cs b/ReallifeGamemode.Server/Events/PlayerSpawn.cs index 26fe7dab..6eed08d8 100644 --- a/ReallifeGamemode.Server/Events/PlayerSpawn.cs +++ b/ReallifeGamemode.Server/Events/PlayerSpawn.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using GTANetworkAPI; diff --git a/ReallifeGamemode.Server/Events/Register.cs b/ReallifeGamemode.Server/Events/Register.cs index 60489099..721e5a62 100644 --- a/ReallifeGamemode.Server/Events/Register.cs +++ b/ReallifeGamemode.Server/Events/Register.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Entities; diff --git a/ReallifeGamemode.Server/Events/ResourceStop.cs b/ReallifeGamemode.Server/Events/ResourceStop.cs index 48a24641..56d33175 100644 --- a/ReallifeGamemode.Server/Events/ResourceStop.cs +++ b/ReallifeGamemode.Server/Events/ResourceStop.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Database.Models; using System.Linq; diff --git a/ReallifeGamemode.Server/Events/Siren.cs b/ReallifeGamemode.Server/Events/Siren.cs index d21a4a3d..79572e6c 100644 --- a/ReallifeGamemode.Server/Events/Siren.cs +++ b/ReallifeGamemode.Server/Events/Siren.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using System; using System.Collections.Generic; using System.Text; diff --git a/ReallifeGamemode.Server/Events/UpdateCharacterCloth.cs b/ReallifeGamemode.Server/Events/UpdateCharacterCloth.cs index bc1aeead..876e1013 100644 --- a/ReallifeGamemode.Server/Events/UpdateCharacterCloth.cs +++ b/ReallifeGamemode.Server/Events/UpdateCharacterCloth.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using Newtonsoft.Json; diff --git a/ReallifeGamemode.Server/Events/UpdateCharacterElevator.cs b/ReallifeGamemode.Server/Events/UpdateCharacterElevator.cs index b8958b05..36a6b31d 100644 --- a/ReallifeGamemode.Server/Events/UpdateCharacterElevator.cs +++ b/ReallifeGamemode.Server/Events/UpdateCharacterElevator.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using GTANetworkAPI; diff --git a/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs b/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs index 9dcf4d58..20f2b393 100644 --- a/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs +++ b/ReallifeGamemode.Server/Events/UpdateCharacterWeapon.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; diff --git a/ReallifeGamemode.Server/Events/Vehicle.cs b/ReallifeGamemode.Server/Events/Vehicle.cs index d0adc288..7d9d5582 100644 --- a/ReallifeGamemode.Server/Events/Vehicle.cs +++ b/ReallifeGamemode.Server/Events/Vehicle.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Database; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; diff --git a/ReallifeGamemode.Server/Events/Voice.cs b/ReallifeGamemode.Server/Events/Voice.cs index 794708b5..391b2870 100644 --- a/ReallifeGamemode.Server/Events/Voice.cs +++ b/ReallifeGamemode.Server/Events/Voice.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; /** * @overview Life of German Reallife - Event Voice (Voice.cs) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 9f3a5927..48c652f7 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; using ReallifeGamemode.Database.Entities; diff --git a/ReallifeGamemode.Server/Extensions/EnumExtensions.cs b/ReallifeGamemode.Server/Extensions/EnumExtensions.cs index 04b1ef33..4c606304 100644 --- a/ReallifeGamemode.Server/Extensions/EnumExtensions.cs +++ b/ReallifeGamemode.Server/Extensions/EnumExtensions.cs @@ -1,4 +1,4 @@ -using ReallifeGamemode.Server.Util; +using ReallifeGamemode.Server.Util; using System; using System.Collections.Generic; using System.Text; diff --git a/ReallifeGamemode.Server/Extensions/HouseExtensions.cs b/ReallifeGamemode.Server/Extensions/HouseExtensions.cs index 970f6abb..480b2b6d 100644 --- a/ReallifeGamemode.Server/Extensions/HouseExtensions.cs +++ b/ReallifeGamemode.Server/Extensions/HouseExtensions.cs @@ -1,4 +1,4 @@ -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using System.Linq; diff --git a/ReallifeGamemode.Server/Extensions/IntegerExtension.cs b/ReallifeGamemode.Server/Extensions/IntegerExtension.cs index 495853de..754df8a0 100644 --- a/ReallifeGamemode.Server/Extensions/IntegerExtension.cs +++ b/ReallifeGamemode.Server/Extensions/IntegerExtension.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; diff --git a/ReallifeGamemode.Server/Extensions/ListExtensions.cs b/ReallifeGamemode.Server/Extensions/ListExtensions.cs index b834b8d5..3a3bd4f2 100644 --- a/ReallifeGamemode.Server/Extensions/ListExtensions.cs +++ b/ReallifeGamemode.Server/Extensions/ListExtensions.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using System; using System.Collections.Generic; using System.Linq; diff --git a/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs b/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs index 7d8568aa..6bb7df35 100644 --- a/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs +++ b/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using GTANetworkAPI; diff --git a/ReallifeGamemode.Server/Extensions/VehicleExtension.cs b/ReallifeGamemode.Server/Extensions/VehicleExtension.cs index c6348c60..364d2d3b 100644 --- a/ReallifeGamemode.Server/Extensions/VehicleExtension.cs +++ b/ReallifeGamemode.Server/Extensions/VehicleExtension.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Managers; diff --git a/ReallifeGamemode.Server/Job/BusDriverJob.cs b/ReallifeGamemode.Server/Job/BusDriverJob.cs index d2eaea1a..e4c9a159 100644 --- a/ReallifeGamemode.Server/Job/BusDriverJob.cs +++ b/ReallifeGamemode.Server/Job/BusDriverJob.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using GTANetworkAPI; using ReallifeGamemode.Server.Util; @@ -60,7 +60,7 @@ namespace ReallifeGamemode.Server.Job new Vector3(-248.9475,-883.7717,29.00919), }.AsReadOnly(); - private readonly IReadOnlyCollection RouteLong = new List + private readonly IReadOnlyCollection Route4 = new List { new Vector3(403.8605,-597.0284,27.1788), @@ -75,10 +75,10 @@ namespace ReallifeGamemode.Server.Job }.AsReadOnly(); - private readonly IReadOnlyCollection RouteVeryLong = new List + private readonly IReadOnlyCollection Route5 = new List { - new Vector3(-562.68, -2203.85, 6.72), + new Vector3(-562.68, -2203.85, 5.5), new Vector3(-889.0892, -2190.34, 8.100273), new Vector3(-695.8978, -1197.1, 10.07723), new Vector3(-1025.791, -788.746, 16.95118), @@ -129,37 +129,7 @@ namespace ReallifeGamemode.Server.Job player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts)); }*/ - /*Random rnd = new Random(); - int rroute = rnd.Next(1, 6); - switch (rroute) - { - case 1: - { - StartBusRoute(player, "Route1"); - break; - } - case 2: - { - StartBusRoute(player, "Route2"); - break; - } - case 3: - { - StartBusRoute(player, "Route3"); - break; - } - case 4: - { - StartBusRoute(player, "Route4"); - break; - } - case 5: - { - StartBusRoute(player, "Route5"); - break; - } - }*/ - if (player.GetUser().BusSkill < 300) + /*if (player.GetUser().BusSkill < 300) { Random rnd = new Random(); int rroute = rnd.Next(1, 3); @@ -168,11 +138,13 @@ namespace ReallifeGamemode.Server.Job case 1: { StartBusRoute(player, "Route1"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 1"); break; } case 2: { StartBusRoute(player, "Route2"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 2"); break; } } @@ -186,11 +158,13 @@ namespace ReallifeGamemode.Server.Job case 1: { StartBusRoute(player, "Route3"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 3"); break; } case 2: { StartBusRoute(player, "Route4"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 4"); break; } } @@ -198,36 +172,110 @@ namespace ReallifeGamemode.Server.Job if (player.GetUser().BusSkill >= 800) { StartBusRoute(player, "Route5"); - } + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 5"); + }*/ } [RemoteEvent("startBusRoute")] public void StartBusRoute(Player player, string type) { - //if (player.VehicleSeat == 0) - //{ + Vehicle veh = player.Vehicle; + if (player.VehicleSeat == 0) + { + if (type == "RouteStart") + { + if ((VehicleHash)veh.Model == VehicleHash.Bus) + { + Random rnd = new Random(); + int rroute = rnd.Next(1, 3); + switch (rroute) + { + case 0: + { + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Case0"); + break; + } + case 1: + { + CheckPointHandle.StartCheckPointRoute(player, Route1, 5000, 1, 7, 3, true, "busDriverJob"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 1"); + break; + } + case 2: + { + CheckPointHandle.StartCheckPointRoute(player, Route2, 5000, 1, 7, 3, true, "busDriverJob"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 2"); + break; + } + case 3: + { + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Case0"); + break; + } + } + player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + player.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); + player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); + player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + player.TriggerEvent("CLIENT:SetDoorShut", 0, false); + player.TriggerEvent("CLIENT:SetDoorShut", 1, false); + player.TriggerEvent("CLIENT:SetDoorShut", 2, false); + player.TriggerEvent("CLIENT:SetDoorShut", 3, false); + } + if ((VehicleHash)veh.Model == VehicleHash.Coach) + { + Random rnd = new Random(); + int rroute = rnd.Next(1, 3); + switch (rroute) + { + case 1: + { + CheckPointHandle.StartCheckPointRoute(player, Route3, 5000, 1, 7, 3, true, "busDriverJob"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 3"); + break; + } + case 2: + { + CheckPointHandle.StartCheckPointRoute(player, Route4, 5000, 1, 7, 3, true, "busDriverJob"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 4"); + break; + } + } + player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + player.TriggerEvent("CLIENT:SetDoorShut", 0, false); + } + if ((VehicleHash)veh.Model == VehicleHash.Tourbus) + { + CheckPointHandle.StartCheckPointRoute(player, Route5, 5000, 1, 7, 3, true, "busDriverJob"); + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 5"); + player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); + player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + player.TriggerEvent("CLIENT:SetDoorShut", 2, false); + player.TriggerEvent("CLIENT:SetDoorShut", 3, false); + } + } if (type == "Route1") { - CheckPointHandle.StartCheckPointRoute(player, Route1, 5000, 1, 7, 5, "busDriverJob"); + CheckPointHandle.StartCheckPointRoute(player, Route1, 4000, 1, 7, 4, true, "busDriverJob"); } else if (type == "Route2") { - CheckPointHandle.StartCheckPointRoute(player, Route2, 5000, 1, 7, 5, "busDriverJob"); + CheckPointHandle.StartCheckPointRoute(player, Route2, 4000, 1, 7, 4, true, "busDriverJob"); } else if (type == "Route3") { - CheckPointHandle.StartCheckPointRoute(player, Route3, 5000, 1, 7, 5, "busDriverJob"); + CheckPointHandle.StartCheckPointRoute(player, Route3, 4000, 1, 7, 4, true, "busDriverJob"); } else if (type == "Route4") { - CheckPointHandle.StartCheckPointRoute(player, RouteLong, 5000, 1, 7, 5, "busDriverJob"); + CheckPointHandle.StartCheckPointRoute(player, Route4, 4000, 1, 7, 4, true, "busDriverJob"); } else if (type == "Route5") { - CheckPointHandle.StartCheckPointRoute(player, RouteVeryLong, 5000, 1, 7, 5, "busDriverJob"); + CheckPointHandle.StartCheckPointRoute(player, Route5, 4000, 1, 7, 4, true, "busDriverJob"); } player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/StartJob", "wav", 50); - //} + } } public static void payWage(Player jobber, int wage) @@ -237,7 +285,7 @@ namespace ReallifeGamemode.Server.Job if (jobber.VehicleSeat == 0) { jobber.GetUser(dbContext).Wage += wage; - jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); + //jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); jobber.GetUser(dbContext).BusSkill++; dbContext.SaveChanges(); if (jobber.GetUser(dbContext).BusSkill == 300) diff --git a/ReallifeGamemode.Server/Job/JobBase.cs b/ReallifeGamemode.Server/Job/JobBase.cs index bfda3968..cdccb45d 100644 --- a/ReallifeGamemode.Server/Job/JobBase.cs +++ b/ReallifeGamemode.Server/Job/JobBase.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Services; diff --git a/ReallifeGamemode.Server/Job/PilotJob.cs b/ReallifeGamemode.Server/Job/PilotJob.cs index 29f82435..e1641038 100644 --- a/ReallifeGamemode.Server/Job/PilotJob.cs +++ b/ReallifeGamemode.Server/Job/PilotJob.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using GTANetworkAPI; using ReallifeGamemode.Server.Util; @@ -167,83 +167,93 @@ namespace ReallifeGamemode.Server.Job break; } }*/ - if (player.GetUser().PilotSkill < 300) - { - Random rnd = new Random(); - int rroute = rnd.Next(1, 4); - switch (rroute) - { - case 1: - { - StartPilotRoute(player, "Route 1"); - break; - } - case 2: - { - StartPilotRoute(player, "Route 2"); - break; - } - case 3: - { - StartPilotRoute(player, "Route 3"); - break; - } - } - } - if (player.GetUser().PilotSkill >= 300) - { - Random rnd = new Random(); - int rroute = rnd.Next(1, 4); - switch (rroute) - { - case 1: - { - StartPilotRoute(player, "Route 4"); - break; - } - case 2: - { - StartPilotRoute(player, "Route 5"); - break; - } - case 3: - { - StartPilotRoute(player, "Route 6"); - break; - } - } - } } [RemoteEvent("startPilotRoute")] public void StartPilotRoute(Player player, string type) { - //if (player.VehicleSeat == 0) - //{ + Vehicle veh = player.Vehicle; + if (player.VehicleSeat == 0) + { + if (type == "RouteStart") + { + if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 1) + { + Random rnd = new Random(); + int rroute = rnd.Next(1, 4); + switch (rroute) + { + case 1: + { + CheckPointHandle.StartCheckPointRoute(player, Route1, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 1"); + break; + } + case 2: + { + CheckPointHandle.StartCheckPointRoute(player, Route2, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 2"); + break; + } + case 3: + { + CheckPointHandle.StartCheckPointRoute(player, Route3, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 3"); + break; + } + } + } + if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 2) + { + Random rnd = new Random(); + int rroute = rnd.Next(1, 4); + switch (rroute) + { + case 1: + { + CheckPointHandle.StartCheckPointRoute(player, Route4, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 4"); + break; + } + case 2: + { + CheckPointHandle.StartCheckPointRoute(player, Route5, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 5"); + break; + } + case 3: + { + CheckPointHandle.StartCheckPointRoute(player, Route6, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 + player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 6"); + break; + } + } + } + } if (type == "Route 1") { - CheckPointHandle.StartCheckPointRoute(player, Route1, 0, 6, 40, 30, "pilotJob"); //6, 23, 25, 26, 27, 28 + CheckPointHandle.StartCheckPointRoute(player, Route1, 0, 6, 40, 20, true, "pilotJob"); //6, 23, 25, 26, 27, 28 } else if (type == "Route 2") { - CheckPointHandle.StartCheckPointRoute(player, Route2, 0, 6, 40, 30, "pilotJob"); + CheckPointHandle.StartCheckPointRoute(player, Route2, 0, 6, 40, 20, true, "pilotJob"); } else if (type == "Route 3") { - CheckPointHandle.StartCheckPointRoute(player, Route3, 0, 6, 40, 30, "pilotJob"); + CheckPointHandle.StartCheckPointRoute(player, Route3, 0, 6, 40, 20, true, "pilotJob"); } else if (type == "Route 4") { - CheckPointHandle.StartCheckPointRoute(player, Route4, 0, 6, 40, 30, "pilotJob"); + CheckPointHandle.StartCheckPointRoute(player, Route4, 0, 6, 40, 20, true, "pilotJob"); } else if (type == "Route 5") { - CheckPointHandle.StartCheckPointRoute(player, Route5, 0, 6, 40, 30, "pilotJob"); + CheckPointHandle.StartCheckPointRoute(player, Route5, 0, 6, 40, 20, true, "pilotJob"); } else if (type == "Route 6") { - CheckPointHandle.StartCheckPointRoute(player, Route6, 0, 6, 40, 30, "pilotJob"); + CheckPointHandle.StartCheckPointRoute(player, Route6, 0, 6, 40, 20, true, "pilotJob"); } - //} + } } public static void payWage(Player jobber, int wage) { @@ -252,7 +262,7 @@ namespace ReallifeGamemode.Server.Job if (jobber.VehicleSeat == 0) { jobber.GetUser(dbContext).Wage += wage; - jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); + //jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); jobber.GetUser(dbContext).PilotSkill++; dbContext.SaveChanges(); if (jobber.GetUser(dbContext).PilotSkill == 300) @@ -275,7 +285,7 @@ namespace ReallifeGamemode.Server.Job { PilotJob c = new PilotJob(); Vehicle v = player.Vehicle; - if (v.Model == (uint)Types.VehicleModel.Cuban800) + if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 1) { Random rnd = new Random(); int rroute = rnd.Next(1, 4); @@ -301,7 +311,7 @@ namespace ReallifeGamemode.Server.Job } } } - if (v.Model == (uint)Types.VehicleModel.Velum || v.Model == (uint)Types.VehicleModel.Velum2) + if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 2) { Random rnd = new Random(); int rroute = rnd.Next(1, 4); diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index 19e8307a..a9bfa5c5 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using GTANetworkAPI; diff --git a/ReallifeGamemode.Server/Job/TaxiDriverJob.cs b/ReallifeGamemode.Server/Job/TaxiDriverJob.cs index 66d02a8b..6e8ba86c 100644 --- a/ReallifeGamemode.Server/Job/TaxiDriverJob.cs +++ b/ReallifeGamemode.Server/Job/TaxiDriverJob.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using GTANetworkAPI; diff --git a/ReallifeGamemode.Server/Managers/DoorManager.cs b/ReallifeGamemode.Server/Managers/DoorManager.cs index fb6caef3..995fc5bf 100644 --- a/ReallifeGamemode.Server/Managers/DoorManager.cs +++ b/ReallifeGamemode.Server/Managers/DoorManager.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; diff --git a/ReallifeGamemode.Server/Managers/JobManager.cs b/ReallifeGamemode.Server/Managers/JobManager.cs index 8c663d5a..87975da1 100644 --- a/ReallifeGamemode.Server/Managers/JobManager.cs +++ b/ReallifeGamemode.Server/Managers/JobManager.cs @@ -1,4 +1,4 @@ -using GTANetworkAPI; +using GTANetworkAPI; using Newtonsoft.Json; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; @@ -12,6 +12,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Timers; +using System.Threading; namespace ReallifeGamemode.Server.Managers { @@ -19,7 +20,7 @@ namespace ReallifeGamemode.Server.Managers { private static List _jobs = new List(); - private static Timer timerJobVehicleRespawn = new Timer(30000); //30 Sekunden Timer JobVehicleRespawn + private static System.Timers.Timer timerJobVehicleRespawn = new System.Timers.Timer(30000); //30 Sekunden Timer JobVehicleRespawn public static void LoadJobs() { @@ -182,7 +183,6 @@ namespace ReallifeGamemode.Server.Managers job.StartJob(player); } - Vehicle LastVehicle; [ServerEvent(Event.PlayerExitVehicle)] public void JobManagerPlayerExitVehicle(Player player, Vehicle veh) { @@ -197,11 +197,79 @@ namespace ReallifeGamemode.Server.Managers { if (u.JobId != 2) { - timerJobVehicleRespawn.Start(); + //timerJobVehicleRespawn.Start(); + player.SetData("DelayTime", 30000); veh.SetData("timerJobVehicleRespawn", true); - LastVehicle = veh; - timerJobVehicleRespawn.AutoReset = false; - timerJobVehicleRespawn.Elapsed += Timer30000_Elapsed; + player.SetData("LastVehicle", veh); + Vehicle LastVehicle = player.GetData("LastVehicle"); + /*timerJobVehicleRespawn.AutoReset = false; + timerJobVehicleRespawn.Elapsed += Timer30000_Elapsed;*/ + NAPI.Task.Run(() => + { + try + { + ChatService.SendMessage(player, "TimerAusgelöst"); + if (LastVehicle.GetData("timerJobVehicleRespawn") == true) + { + ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh); + if (vehJ.GetJob().GetUsersInJob().Contains(player)) + { + if (veh != null) + { + job.StopJob(player); + ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet."); + veh.ResetData("timerJobVehicleRespawn"); + CheckPointHandle.DeleteCheckpoints(player); + ServerVehicleExtensions.Spawn(sVeh, veh); + if (player.GetData("isDead") == false) + { + if (player.GetUser().JobId == 1)//Taxifahrer + { + //VehicleManager.DeleteVehicle(v); + } + if (player.GetUser().JobId == 2)//Müllmann + { + //VehicleManager.DeleteVehicle(v); + } + if (player.GetUser().JobId == 3)//Pilot + { + if (!player.HasData("PilotenBase2") || player.GetData("PilotenBase2") == false) //Sandyshores + { + player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406); + player.Heading = (-154.65234375f); + } + if (player.HasData("PilotenBase2") && player.GetData("PilotenBase2") == true) //LS Airport + { + player.Position = new Vector3(-1622.48, -3151.58, 13); + player.Heading = (48.44f); + } + } + if (player.GetUser().JobId == 4)//Busfahrer + { + player.Position = new Vector3(-535.46, -2144.97, 5.95); + player.Heading = (57.03f); + } + } + } + } + } + } + catch (ArgumentNullException e) + { + player.SendChatMessage("Timer gekillt1."); + player.SendChatMessage($"{e} First exception caught."); + } + catch (Exception e) + { + player.SendChatMessage("Timer gekillt2."); + player.SendChatMessage($"{e} First exception caught."); + if (e.Data != null) + { + player.SendChatMessage("Timer gekillt3."); + player.SendChatMessage($"{e} First exception caught."); + } + } + }, delayTime: 30000); player.SendChatMessage("~y~[JOB] ~w~Du hast das Fahrzeug verlassen,"); player.SendChatMessage("~y~[JOB] ~w~Bist du nicht in 30 Sekunden zurück, ~r~wird der Job beendet!"); //job.StopJob(player); @@ -258,15 +326,17 @@ namespace ReallifeGamemode.Server.Managers player.Heading = (60.65372848510742f); } }*/ - if (!player.HasData("PilotenBase2") || player.GetData("PilotenBase2") == false) //Sandyshores + if (player.HasData("PilotenBase") || player.GetData("PilotenBase") == 1) //Sandyshores { player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406); player.Heading = (-154.65234375f); + player.GetUser().SetData("PilotenBase", 0); } - if (player.HasData("PilotenBase2") && player.GetData("PilotenBase2") == true) //LS Airport + if (player.HasData("PilotenBase") && player.GetData("PilotenBase") == 2) //LS Airport { player.Position = new Vector3(-1622.48, -3151.58, 13); player.Heading = (48.44f); + player.GetUser().SetData("PilotenBase", 0); } } if (player.GetUser().JobId == 4)//Busfahrer @@ -287,6 +357,7 @@ namespace ReallifeGamemode.Server.Managers player.Position = new Vector3(-535.46, -2144.97, 5.95); player.Heading = (57.03f); } + Vehicle LastVehicle = player.GetData("LastVehicle"); if (LastVehicle != null) { LastVehicle.ResetData("timerJobVehicleRespawn"); @@ -306,6 +377,7 @@ namespace ReallifeGamemode.Server.Managers { NAPI.Pools.GetAllVehicles().ForEach(v => { + Vehicle LastVehicle = p.GetData("LastVehicle"); if (LastVehicle.GetServerVehicle() is JobVehicle vehJ) { if (LastVehicle.GetData("timerJobVehicleRespawn") == true) @@ -405,22 +477,43 @@ namespace ReallifeGamemode.Server.Managers { if (sVeh != null) { - if (sVeh is JobVehicle JV) + JobBase job = GetJob(player.GetUser().JobId.Value); + + if (job.GetUsersInJob().Contains(player)) { - if (seat == 0) + if (sVeh is JobVehicle JV) { - JobVehicle c = new JobVehicle(); - if (JV.GetJob().GetUsersInJob().Contains(player)) + if (player.GetUser().JobId == 3 || player.GetUser().JobId == 4) { - timerJobVehicleRespawn.Stop(); - veh.SetData("timerJobVehicleRespawn", false); + if (seat == 0) + { + JobVehicle c = new JobVehicle(); + if (JV.GetJob().GetUsersInJob().Contains(player)) + { + //timerJobVehicleRespawn.Stop(); + veh.SetData("timerJobVehicleRespawn", false); + player.SetData("DelayTime", 0); + } + } + else + { + player.StopAnimation(); + return; + } } } - else return; + else + { + job.StopJob(player); + ChatService.SendMessage(player, $"~y~[JOB]~s~ Du hast deinen Job ~o~{job.Name}~s~ beendet."); + veh.ResetData("timerJobVehicleRespawn"); + CheckPointHandle.DeleteCheckpoints(player); + ServerVehicleExtensions.Spawn(sVeh, player.GetData("LastVehicle")); + player.StopAnimation(); + return; + } } - else return; - } - return; + } } } diff --git a/ReallifeGamemode.Server/Managers/PositionManager.cs b/ReallifeGamemode.Server/Managers/PositionManager.cs index 4e51e9e8..58fb8467 100644 --- a/ReallifeGamemode.Server/Managers/PositionManager.cs +++ b/ReallifeGamemode.Server/Managers/PositionManager.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using GTANetworkAPI; using ReallifeGamemode.Server.Shop.Clothing; @@ -180,6 +180,7 @@ namespace ReallifeGamemode.Server.Managers JobPoints.Add(jobPointRefuseCollector); JobPoints.Add(jobPointPilot); + JobPoints.Add(jobPointPilot2); JobPoints.Add(jobPointBusDriver); foreach (JobPoint p in JobPoints) @@ -188,25 +189,25 @@ namespace ReallifeGamemode.Server.Managers new Vector3(0, 0, 0), 1.5f, new Color(255, 255, 255, 50), false, 0); if (p.jobId == 2) { - NAPI.TextLabel.CreateTextLabel("M\u00fcllmann - Dr\u00fccke ~y~E~s~ um Job zu starten", p.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); + NAPI.TextLabel.CreateTextLabel("M\u00fcllmann - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0); NAPI.Blip.CreateBlip(318, p.Position, 1f, 16, "Müllmann", 255, 0, true); } if (p.jobId == 3) { if (p.Skill < 2) { - NAPI.TextLabel.CreateTextLabel("Pilot Anf\u00E4nger - Dr\u00fccke ~y~E~s~ um Job zu starten", p.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); + NAPI.TextLabel.CreateTextLabel("Pilot Anf\u00E4nger - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0); NAPI.Blip.CreateBlip(251, p.Position, 1f, 16, "Pilot Anfänger", 255, 0, true); } if (p.Skill >= 2) { - NAPI.TextLabel.CreateTextLabel("Pilot Fortgeschritten - Dr\u00fccke ~y~E~s~ um Job zu starten", p.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); + NAPI.TextLabel.CreateTextLabel("Pilot Fortgeschritten - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0); NAPI.Blip.CreateBlip(251, p.Position, 1f, 16, "Pilot Fortgeschritten", 255, 0, true); } } if (p.jobId == 4) { - NAPI.TextLabel.CreateTextLabel("Busfahrer - Dr\u00fccke ~y~E~s~ um Job zu starten", p.Position, 7, 1, 0, new Color(255, 255, 255), false, 0); + NAPI.TextLabel.CreateTextLabel("Busfahrer - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0); NAPI.Blip.CreateBlip(513, p.Position, 1f, 16, "Busfahrer", 255, 0, true); } } diff --git a/ReallifeGamemode.Server/Util/CheckPointHandle.cs b/ReallifeGamemode.Server/Util/CheckPointHandle.cs index d2597f08..79b8f077 100644 --- a/ReallifeGamemode.Server/Util/CheckPointHandle.cs +++ b/ReallifeGamemode.Server/Util/CheckPointHandle.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using ReallifeGamemode.Server.Services; using GTANetworkAPI; using System.Linq; @@ -13,20 +13,22 @@ namespace ReallifeGamemode.Server.Util public static void DeleteCheckpoints(Player player) { + player.SetData("HatRoute", false); RemovePlayerHandlerFromList(player); player.TriggerEvent("destroyCP"); } - public static void StartCheckPointRoute(Player player, IEnumerable nListCps, int delay, int markerID, int markerSize, int markerDist, string nEvent) + public static void StartCheckPointRoute(Player player, IEnumerable nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent) { RemovePlayerHandlerFromList(player); - CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, nEvent); + CheckPointListForPlayer playerHandle = new CheckPointListForPlayer(player, nListCps, delay, markerID, markerSize, markerDist, useVehicle, nEvent); playerHandle.DeleteCheckpoints(); listHandle.Add(playerHandle); playerHandle.StartRoute(); + player.SetData("HatRoute", true); /*if(player.GetUser().BusSkill >= 1000) { playerHandle.LastCheckpoint = 2; @@ -50,31 +52,58 @@ namespace ReallifeGamemode.Server.Util { if (user.GetUser().JobId == 4) { - if (!user.IsInVehicle || user.VehicleSeat != 0) return; - Vehicle veh = user.Vehicle; - user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AnfahrtHaltestelle", "wav", 50); - if ((VehicleHash)veh.Model == VehicleHash.Bus) + Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId.Value); + if (job.GetUsersInJob().Contains(user)) { - user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + if (!user.IsInVehicle || user.VehicleSeat != 0) return; + Vehicle veh = user.Vehicle; + user.TriggerEvent("CLIENT:FreezeVehicle", veh); + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AnfahrtHaltestelle", "wav", 50); + if ((VehicleHash)veh.Model == VehicleHash.Bus) + { + user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + NAPI.Task.Run(() => + { + BusCheckpoint(user); + }, delayTime: 3600); + } + if ((VehicleHash)veh.Model == VehicleHash.Coach) + { + user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); + NAPI.Task.Run(() => + { + BusCheckpoint(user); + }, delayTime: 2800); + } + if ((VehicleHash)veh.Model == VehicleHash.Tourbus) + { + user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); + user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); + NAPI.Task.Run(() => + { + BusCheckpoint(user); + }, delayTime: 3850); + } + if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); + data.Left = false; + data.Right = true; + veh.SetData("indicatorData", data); + NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); + /*NAPI.Task.Run(() => + { + veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.25); + }, delayTime: 500);*/ + NAPI.Task.Run(() => + { + veh.Position = new Vector3(veh.Position.X, veh.Position.Y, veh.Position.Z + 0.1); + user.TriggerEvent("CLIENT:FreezeVehicle", veh); + }, delayTime: 500); } - if ((VehicleHash)veh.Model == VehicleHash.Coach) - { - user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); - } - if ((VehicleHash)veh.Model == VehicleHash.Tourbus) - { - user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); - user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); - } - if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); - data.Left = false; - data.Right = true; - veh.SetData("indicatorData", data); - NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); } } public static void BusCheckpoint(Player user) @@ -89,11 +118,19 @@ namespace ReallifeGamemode.Server.Util user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 1850); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1850); + NAPI.Task.Run(() => + { + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + }, delayTime: 1850); } if ((VehicleHash)veh.Model == VehicleHash.Coach) { user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleCoach", "wav", 35); - user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 600); + user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, false, 1000); + NAPI.Task.Run(() => + { + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + }, delayTime: 1000); } if ((VehicleHash)veh.Model == VehicleHash.Tourbus) { @@ -101,12 +138,12 @@ namespace ReallifeGamemode.Server.Util user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2100); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100); + NAPI.Task.Run(() => + { + user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); + }, delayTime: 2100); } - if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); - data.Left = false; - data.Right = false; - veh.SetData("indicatorData", data); - NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); + //user.TriggerEvent("CLIENT:UnFreezeVehicle", veh); } [RemoteEvent("playerInCheckpoint")] public void PlayerInCheckpoint(Player user) @@ -122,14 +159,25 @@ namespace ReallifeGamemode.Server.Util } if (temp.LastCheckpoint != 1) { - if (user.GetUser().JobId == 3) + Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId.Value); + if (job.GetUsersInJob().Contains(user)) { - PilotJob.payWage(user, 100); - } - if (user.GetUser().JobId == 4) - { - BusDriverJob.payWage(user, 100); - BusCheckpoint(user); + if (user.GetUser().JobId == 3) + { + PilotJob.payWage(user, 100); + } + if (user.GetUser().JobId == 4) + { + BusDriverJob.payWage(user, 100); + if (!user.IsInVehicle || user.VehicleSeat != 0) return; + Vehicle veh = user.Vehicle; + if (!(veh.GetData("indicatorData") is IndicatorData data)) data = new IndicatorData(); + data.Left = false; + data.Right = false; + veh.SetData("indicatorData", data); + NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right); + //BusCheckpoint(user); + } } } else @@ -148,11 +196,12 @@ namespace ReallifeGamemode.Server.Util public int markerID; public int markerSize; public int markerDist; + public bool useVehicle; public string eventInCheckpoint = ""; int checkPointsDone = 0; - public CheckPointListForPlayer(Player nPlayer, IEnumerable nList, int nDelay, int nMarkerID, int nMarkerSize, int nMarkerDist, string nEvent) + public CheckPointListForPlayer(Player nPlayer, IEnumerable nList, int nDelay, int nMarkerID, int nMarkerSize, int nMarkerDist, bool nUseVehicle, string nEvent) { this.player = nPlayer; this.list = nList; @@ -160,13 +209,14 @@ namespace ReallifeGamemode.Server.Util this.markerID = nMarkerID; this.markerSize = nMarkerSize; this.markerDist = nMarkerDist; + this.useVehicle = nUseVehicle; this.eventInCheckpoint = nEvent; this.checkPointsDone = 0; } public void StartRoute() { - player.TriggerEvent("setCheckPoint", this.list.ElementAt(0), player, 0, this.delay, this.markerID, this.markerSize, this.markerDist, this.eventInCheckpoint); + player.TriggerEvent("setCheckPoint", this.list.ElementAt(0), player, 0, this.delay, this.markerID, this.markerSize, this.markerDist, this.useVehicle, this.eventInCheckpoint); } public void NextCheckpoint() { @@ -186,6 +236,7 @@ namespace ReallifeGamemode.Server.Util LastCheckpoint = 0; CheckPointHandle.RemovePlayerHandlerFromList(this.player); DeleteCheckpoints(); + player.SetData("HatRoute", false); if (player.GetUser().JobId == 3) { PilotJob.payWage(player, 200); diff --git a/ReallifeGamemode.sln b/ReallifeGamemode.sln index 3e476821..5658771a 100644 --- a/ReallifeGamemode.sln +++ b/ReallifeGamemode.sln @@ -45,168 +45,249 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 + Release|x86 = Release|x86 ServerBuild|Any CPU = ServerBuild|Any CPU ServerBuild|x64 = ServerBuild|x64 + ServerBuild|x86 = ServerBuild|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|x64.ActiveCfg = Debug|x64 {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|x64.Build.0 = Debug|x64 + {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|x86.ActiveCfg = Debug|Any CPU + {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|x86.Build.0 = Debug|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|Any CPU.Build.0 = Release|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|x64.ActiveCfg = Release|x64 {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|x64.Build.0 = Release|x64 + {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|x86.ActiveCfg = Release|Any CPU + {6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|x86.Build.0 = Release|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|Any CPU.ActiveCfg = ServerBuild|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|Any CPU.Build.0 = ServerBuild|Any CPU {6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|x64.ActiveCfg = ServerBuild|x64 {6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|x64.Build.0 = ServerBuild|x64 + {6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|x86.ActiveCfg = ServerBuild|Any CPU + {6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|x86.Build.0 = ServerBuild|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|Any CPU.Build.0 = Debug|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|x64.ActiveCfg = Debug|x64 {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|x64.Build.0 = Debug|x64 + {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|x86.ActiveCfg = Debug|Any CPU + {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|x86.Build.0 = Debug|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|Any CPU.Build.0 = Release|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|x64.ActiveCfg = Release|x64 {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|x64.Build.0 = Release|x64 + {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|x86.ActiveCfg = Release|Any CPU + {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|x86.Build.0 = Release|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|Any CPU.ActiveCfg = ServerBuild|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|Any CPU.Build.0 = ServerBuild|Any CPU {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|x64.ActiveCfg = ServerBuild|x64 {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|x64.Build.0 = ServerBuild|x64 + {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|x86.ActiveCfg = ServerBuild|Any CPU + {67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|x86.Build.0 = ServerBuild|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|Any CPU.Build.0 = Debug|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|x64.ActiveCfg = Debug|x64 {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|x64.Build.0 = Debug|x64 + {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|x86.ActiveCfg = Debug|Any CPU + {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|x86.Build.0 = Debug|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|Any CPU.ActiveCfg = Release|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|Any CPU.Build.0 = Release|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|x64.ActiveCfg = Release|x64 {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|x64.Build.0 = Release|x64 + {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|x86.ActiveCfg = Release|Any CPU + {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|x86.Build.0 = Release|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|x64.ActiveCfg = Release|x64 {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|x64.Build.0 = Release|x64 + {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|x86.Build.0 = Release|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|x64.ActiveCfg = Debug|x64 {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|x64.Build.0 = Debug|x64 + {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|x86.ActiveCfg = Debug|Any CPU + {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|x86.Build.0 = Debug|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|Any CPU.Build.0 = Release|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|x64.ActiveCfg = Release|x64 {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|x64.Build.0 = Release|x64 + {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|x86.ActiveCfg = Release|Any CPU + {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|x86.Build.0 = Release|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|x64.ActiveCfg = ServerBuild|x64 {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|x64.Build.0 = ServerBuild|x64 + {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|x86.ActiveCfg = ServerBuild|Any CPU + {2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|x86.Build.0 = ServerBuild|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.Debug|Any CPU.Build.0 = Debug|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.Debug|x64.ActiveCfg = Debug|x64 {61157B05-135C-40C5-B694-5F27CE53B334}.Debug|x64.Build.0 = Debug|x64 + {61157B05-135C-40C5-B694-5F27CE53B334}.Debug|x86.ActiveCfg = Debug|Any CPU + {61157B05-135C-40C5-B694-5F27CE53B334}.Debug|x86.Build.0 = Debug|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.Release|Any CPU.ActiveCfg = Release|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.Release|Any CPU.Build.0 = Release|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.Release|x64.ActiveCfg = Release|x64 {61157B05-135C-40C5-B694-5F27CE53B334}.Release|x64.Build.0 = Release|x64 + {61157B05-135C-40C5-B694-5F27CE53B334}.Release|x86.ActiveCfg = Release|Any CPU + {61157B05-135C-40C5-B694-5F27CE53B334}.Release|x86.Build.0 = Release|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|x64.ActiveCfg = Release|x64 {61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|x64.Build.0 = Release|x64 + {61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|x86.Build.0 = Release|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|Any CPU.Build.0 = Debug|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|x64.ActiveCfg = Debug|x64 {AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|x64.Build.0 = Debug|x64 + {AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|x86.ActiveCfg = Debug|Any CPU + {AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|x86.Build.0 = Debug|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|Any CPU.ActiveCfg = Release|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|Any CPU.Build.0 = Release|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|x64.ActiveCfg = Release|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|x64.Build.0 = Release|Any CPU + {AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|x86.ActiveCfg = Release|Any CPU + {AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|x86.Build.0 = Release|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|x64.Build.0 = Debug|Any CPU + {AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|x86.Build.0 = Release|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|x64.ActiveCfg = Debug|x64 {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|x64.Build.0 = Debug|x64 + {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|x86.ActiveCfg = Debug|Any CPU + {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|x86.Build.0 = Debug|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|Any CPU.Build.0 = Release|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|x64.ActiveCfg = Release|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|x64.Build.0 = Release|Any CPU + {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|x86.ActiveCfg = Release|Any CPU + {A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|x86.Build.0 = Release|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|x64.Build.0 = Debug|Any CPU + {A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|x86.Build.0 = Release|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|Any CPU.Build.0 = Debug|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|x64.ActiveCfg = Debug|x64 {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|x64.Build.0 = Debug|x64 + {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|x86.ActiveCfg = Debug|Any CPU + {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|x86.Build.0 = Debug|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|Any CPU.ActiveCfg = Release|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|Any CPU.Build.0 = Release|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|x64.ActiveCfg = Release|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|x64.Build.0 = Release|Any CPU + {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|x86.ActiveCfg = Release|Any CPU + {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|x86.Build.0 = Release|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|x64.Build.0 = Debug|Any CPU + {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|x86.Build.0 = Release|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|Any CPU.Build.0 = Debug|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|x64.ActiveCfg = Debug|x64 {B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|x64.Build.0 = Debug|x64 + {B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|x86.ActiveCfg = Debug|Any CPU + {B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|x86.Build.0 = Debug|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|Any CPU.ActiveCfg = Release|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|Any CPU.Build.0 = Release|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|x64.ActiveCfg = Release|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|x64.Build.0 = Release|Any CPU + {B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|x86.ActiveCfg = Release|Any CPU + {B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|x86.Build.0 = Release|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|x64.Build.0 = Debug|Any CPU + {B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|x86.Build.0 = Release|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Debug|Any CPU.Build.0 = Debug|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Debug|x64.ActiveCfg = Debug|x64 {1B0E8256-B764-45C0-817E-B382CD868324}.Debug|x64.Build.0 = Debug|x64 + {1B0E8256-B764-45C0-817E-B382CD868324}.Debug|x86.ActiveCfg = Debug|Any CPU + {1B0E8256-B764-45C0-817E-B382CD868324}.Debug|x86.Build.0 = Debug|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Release|Any CPU.ActiveCfg = Release|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Release|Any CPU.Build.0 = Release|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Release|x64.ActiveCfg = Release|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.Release|x64.Build.0 = Release|Any CPU + {1B0E8256-B764-45C0-817E-B382CD868324}.Release|x86.ActiveCfg = Release|Any CPU + {1B0E8256-B764-45C0-817E-B382CD868324}.Release|x86.Build.0 = Release|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|x64.Build.0 = Debug|Any CPU + {1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|x86.Build.0 = Release|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|Any CPU.Build.0 = Debug|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|x64.ActiveCfg = Debug|x64 {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|x64.Build.0 = Debug|x64 + {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|x86.Build.0 = Debug|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|Any CPU.ActiveCfg = Release|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|Any CPU.Build.0 = Release|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|x64.ActiveCfg = Release|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|x64.Build.0 = Release|Any CPU + {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|x86.ActiveCfg = Release|Any CPU + {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|x86.Build.0 = Release|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|x64.Build.0 = Debug|Any CPU + {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|x86.Build.0 = Release|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|Any CPU.Build.0 = Debug|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|x64.ActiveCfg = Debug|x64 {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|x64.Build.0 = Debug|x64 + {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|x86.ActiveCfg = Debug|Any CPU + {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|x86.Build.0 = Debug|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|Any CPU.ActiveCfg = Release|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|Any CPU.Build.0 = Release|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|x64.ActiveCfg = Release|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|x64.Build.0 = Release|Any CPU + {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|x86.ActiveCfg = Release|Any CPU + {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|x86.Build.0 = Release|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|x64.Build.0 = Debug|Any CPU + {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|x86.Build.0 = Release|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|x64.ActiveCfg = Debug|x64 {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|x64.Build.0 = Debug|x64 + {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|x86.ActiveCfg = Debug|Any CPU + {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|x86.Build.0 = Debug|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|Any CPU.ActiveCfg = Release|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|Any CPU.Build.0 = Release|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|x64.ActiveCfg = Release|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|x64.Build.0 = Release|Any CPU + {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|x86.ActiveCfg = Release|Any CPU + {C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|x86.Build.0 = Release|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|Any CPU.ActiveCfg = Debug|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|Any CPU.Build.0 = Debug|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|x64.ActiveCfg = Debug|Any CPU {C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|x64.Build.0 = Debug|Any CPU + {C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|x86.ActiveCfg = Release|Any CPU + {C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE