Erweiterung für Busfahrer, CheckpointSystem, PilotJob, Skillsystem, AdminBefehle

This commit is contained in:
Mac_Slash
2020-05-03 15:42:56 +02:00
parent 2c3a1e2c90
commit cefee33e3e
44 changed files with 613 additions and 263 deletions

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
@@ -555,6 +555,25 @@ namespace ReallifeGamemode.Server.Commands
else player.Position = player.GetData<Vector3>("mark"); else player.Position = player.GetData<Vector3>("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]")] [Command("up", "~m~Benutzung: ~s~/up [Wert]")]
public void CmdAdminUp(Player player, int value = 5) public void CmdAdminUp(Player player, int value = 5)
{ {

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Services;
using System; using System;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database; using ReallifeGamemode.Database;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;
@@ -146,13 +146,13 @@ namespace ReallifeGamemode.Server.DrivingSchool
{ {
user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen."); user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen.");
user.TriggerEvent("stopTimer"); 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) if (schoolVehicle.SchoolId == 2 && user.IsInVehicle)
{ {
user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen."); user.TriggerEvent("renderTextOnScreen", "Gut nun kann die Prüfung losgehen.");
user.TriggerEvent("stopTimer"); 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) else if (checkpoint == 32)
{ {
user.TriggerEvent("renderTextOnScreen", "Parke nun das Auto an der markierten Stelle."); 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) else if (checkpoint == 12)
{ {
user.TriggerEvent("renderTextOnScreen", "Parke nun das Auto an der markierten Stelle."); 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");
} }
} }

View File

@@ -1,4 +1,4 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using ReallifeGamemode.Server.Extensions; 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("renderTextOnScreen", "Fahren Sie langsam und sicher zur Roten Markierung.");
user.TriggerEvent("stopTimer"); 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: case 14:
user.TriggerEvent("renderTextOnScreen", "Setze zum landeflug an. Drücke 'G' um ihr Fahrwerk auszufahren."); 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; break;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Services;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database; using ReallifeGamemode.Database;
@@ -45,7 +45,10 @@ namespace ReallifeGamemode.Server.Events
if (IsPlayerBanned(player)) return; 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"); player.TriggerEvent("SERVER:Login_ShowBrowser");
string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")"; string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID: " + player.Handle.Value + "] (" + player.Address + ")";
ChatService.BroadcastAdmin(msg, AdminLevel.ADMIN); ChatService.BroadcastAdmin(msg, AdminLevel.ADMIN);

View File

@@ -1,4 +1,4 @@
using System; using System;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database; using ReallifeGamemode.Database;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;
@@ -29,7 +29,7 @@ namespace ReallifeGamemode.Server.Events
return; return;
List<Vector3> dealPoint = new List<Vector3>(); List<Vector3> dealPoint = new List<Vector3>();
dealPoint.Add(vector); dealPoint.Add(vector);
CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, 4, "loadWeaponTransport"); CheckPointHandle.StartCheckPointRoute(client, dealPoint, 5000, 1, 7, 4, true, "loadWeaponTransport");
} }
} }
} }

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Timers; using System.Timers;
@@ -45,7 +45,7 @@ namespace ReallifeGamemode.Server.Events
} }
if (vehicle.GetServerVehicle() is JobVehicle jveh) 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.StopAnimation();
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); 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 (vehicle.GetServerVehicle() is SchoolVehicle sVeh)
{ {
if (!player.HasData("ActiveSchool")) if (!player.HasData("ActiveSchool") && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
{ {
player.StopAnimation(); player.StopAnimation();
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Timers; using System.Timers;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using Newtonsoft.Json; using Newtonsoft.Json;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using Newtonsoft.Json; using Newtonsoft.Json;
@@ -172,17 +172,17 @@ namespace ReallifeGamemode.Server.Events
if (!player.IsLoggedIn()) return; if (!player.IsLoggedIn()) return;
var user = player.GetUser(); var user = player.GetUser();
ElevatorPoint nearestElevatorPoint = PositionManager.ElevatorPoints.Find(e => e.Position.DistanceTo(player.Position) <= 1.5 && (user.FactionId == 1 || user.FactionId == 3)); 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.5 && (!user.GetData<bool>("duty"))); ClotheshopPoint nearestClotheShopPoint = PositionManager.clotheshopPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6 && (!user.GetData<bool>("duty")));
ItemshopPoint nearestItemShopPoint = PositionManager.itemshopPoints.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.5); JobPoint nearestJobPoint = PositionManager.JobPoints.Find(s => s.Position.DistanceTo(player.Position) <= 1.6);
if (user?.FactionId != null) if (user?.FactionId != null)
{ {
DutyPoint nearestDuty = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5 && d.FactionId == user.FactionId); 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.5 && w.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.5 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData<bool>("duty")); JailReleasePoint nearestJailReleasePoint = PositionManager.JailReleasePoints.Find(j => j.Position.DistanceTo(player.Position) <= 1.6 && (user.FactionId == 1 || user.FactionId == 3) && user.GetData<bool>("duty"));
if (nearestDuty != null)// Duty Point if (nearestDuty != null)// Duty Point
@@ -376,6 +376,7 @@ namespace ReallifeGamemode.Server.Events
} }
if (nearestJobPoint != null) if (nearestJobPoint != null)
{ {
if (player.Vehicle != null) return;
Job.JobBase job = JobManager.GetJob(player.GetUser().JobId.Value); Job.JobBase job = JobManager.GetJob(player.GetUser().JobId.Value);
JobManager jobb = new JobManager(); JobManager jobb = new JobManager();
if (nearestJobPoint.jobId != 3 && nearestJobPoint.jobId == player.GetUser().JobId) 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.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)) if (job.GetUsersInJob().Contains(player))
{ {
user.SetData("PilotenBase", 1);
jobb.StopJob(player); jobb.StopJob(player);
user.SetData("PilotenBase2", false);
return; return;
} }
if (!job.GetUsersInJob().Contains(player)) if (!job.GetUsersInJob().Contains(player))
{ {
user.SetData("PilotenBase", 1);
jobb.StartJobEvent(player); jobb.StartJobEvent(player);
user.SetData("PilotenBase2", false);
return; return;
} }
} }
if (nearestJobPoint.Skill == 300 && player.GetUser().PilotSkill >= 300) if (nearestJobPoint.Skill >= 300 && player.GetUser().PilotSkill >= 300)
{ {
if (job.GetUsersInJob().Contains(player)) if (job.GetUsersInJob().Contains(player))
{ {
user.SetData("PilotenBase", 2);
jobb.StopJob(player); jobb.StopJob(player);
user.SetData("PilotenBase2", false);
return; return;
} }
if (!job.GetUsersInJob().Contains(player)) if (!job.GetUsersInJob().Contains(player))
{ {
user.SetData("PilotenBase", 2);
jobb.StartJobEvent(player); jobb.StartJobEvent(player);
user.SetData("PilotenBase2", true);
return; return;
} }
} }
@@ -543,10 +544,7 @@ namespace ReallifeGamemode.Server.Events
} }
else if (sV is FactionVehicle fV) else if (sV is FactionVehicle fV)
{ {
if (u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()) if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN) && player.IsAdminDuty()))
{
}
else if (!fV.GetOwners().Contains(u.FactionId ?? 0) && !state && !(u.IsAdmin(AdminLevel.HEADADMIN)))
{ {
player.SendNotification("~r~Du hast keinen Schlüssel."); player.SendNotification("~r~Du hast keinen Schlüssel.");
return; return;
@@ -554,10 +552,7 @@ namespace ReallifeGamemode.Server.Events
} }
else if (sV is GroupVehicle gV) else if (sV is GroupVehicle gV)
{ {
if (u.IsAdmin(AdminLevel.ADMIN3) && player.IsAdminDuty()) if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3) && player.IsAdminDuty())
{
}
else if (gV.GroupId != u.Group.Id && !state && !u.IsAdmin(AdminLevel.ADMIN3))
{ {
player.SendNotification("~r~Du hast keinen Schlüssel."); player.SendNotification("~r~Du hast keinen Schlüssel.");
return; return;
@@ -565,7 +560,12 @@ namespace ReallifeGamemode.Server.Events
} }
else if (sV is JobVehicle jV) 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)) if (!jV.GetJob().GetUsersInJob().Contains(player))
{ {
@@ -574,36 +574,80 @@ namespace ReallifeGamemode.Server.Events
} }
else else
{ {
if ((VehicleHash)jV.Model == VehicleHash.Bus) if (jV.JobId == 3)
{ {
player.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); Job.PilotJob c = new Job.PilotJob();
player.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); if ((VehicleHash)jV.Model == VehicleHash.Cuban800 && !state)
player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); {
player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); if (!player.HasData("HatRoute") || player.GetData<bool>("HatRoute") == false)
player.TriggerEvent("CLIENT:SetDoorShut", 0, false); {
player.TriggerEvent("CLIENT:SetDoorShut", 1, false); player.SetData("HatRoute", true);
player.TriggerEvent("CLIENT:SetDoorShut", 2, false); c.StartPilotRoute(player, "RouteStart");
player.TriggerEvent("CLIENT:SetDoorShut", 3, false); }
}
if ((VehicleHash)jV.Model == VehicleHash.Velum && !state || (VehicleHash)jV.Model == VehicleHash.Velum2 && !state)
{
if (player.GetUser().PilotSkill >= 300)
{
if (!player.HasData("HatRoute") || player.GetData<bool>("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); Job.BusDriverJob c = new Job.BusDriverJob();
player.TriggerEvent("CLIENT:SetDoorShut", 0, false); if ((VehicleHash)jV.Model == VehicleHash.Bus && !state)
} {
if ((VehicleHash)jV.Model == VehicleHash.Tourbus) if (!player.HasData("HatRoute") || player.GetData<bool>("HatRoute") == false)
{ {
player.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); player.SetData("HatRoute", true);
player.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); c.StartBusRoute(player, "RouteStart");
player.TriggerEvent("CLIENT:SetDoorShut", 2, false); }
player.TriggerEvent("CLIENT:SetDoorShut", 3, false); }
if ((VehicleHash)jV.Model == VehicleHash.Coach && !state)
{
if (player.GetUser().BusSkill >= 300)
{
if (!player.HasData("HatRoute") || player.GetData<bool>("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<bool>("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) else if (sV is UserVehicle uV)
{ {

View File

@@ -1,4 +1,4 @@
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Extensions;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;

View File

@@ -1,4 +1,4 @@
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;
using System.Linq; using System.Linq;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using Newtonsoft.Json; using Newtonsoft.Json;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database; using ReallifeGamemode.Database;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
/** /**
* @overview Life of German Reallife - Event Voice (Voice.cs) * @overview Life of German Reallife - Event Voice (Voice.cs)

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json; using Newtonsoft.Json;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;

View File

@@ -1,4 +1,4 @@
using ReallifeGamemode.Server.Util; using ReallifeGamemode.Server.Util;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;

View File

@@ -1,4 +1,4 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;
using System.Linq; using System.Linq;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Managers;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Server.Util; using ReallifeGamemode.Server.Util;
@@ -60,7 +60,7 @@ namespace ReallifeGamemode.Server.Job
new Vector3(-248.9475,-883.7717,29.00919), new Vector3(-248.9475,-883.7717,29.00919),
}.AsReadOnly(); }.AsReadOnly();
private readonly IReadOnlyCollection<Vector3> RouteLong = new List<Vector3> private readonly IReadOnlyCollection<Vector3> Route4 = new List<Vector3>
{ {
new Vector3(403.8605,-597.0284,27.1788), new Vector3(403.8605,-597.0284,27.1788),
@@ -75,10 +75,10 @@ namespace ReallifeGamemode.Server.Job
}.AsReadOnly(); }.AsReadOnly();
private readonly IReadOnlyCollection<Vector3> RouteVeryLong = new List<Vector3> private readonly IReadOnlyCollection<Vector3> Route5 = new List<Vector3>
{ {
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(-889.0892, -2190.34, 8.100273),
new Vector3(-695.8978, -1197.1, 10.07723), new Vector3(-695.8978, -1197.1, 10.07723),
new Vector3(-1025.791, -788.746, 16.95118), new Vector3(-1025.791, -788.746, 16.95118),
@@ -129,37 +129,7 @@ namespace ReallifeGamemode.Server.Job
player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts)); player.TriggerEvent("showBusRouteMenu", JsonConvert.SerializeObject(listRouteTexts));
}*/ }*/
/*Random rnd = new Random(); /*if (player.GetUser().BusSkill < 300)
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)
{ {
Random rnd = new Random(); Random rnd = new Random();
int rroute = rnd.Next(1, 3); int rroute = rnd.Next(1, 3);
@@ -168,11 +138,13 @@ namespace ReallifeGamemode.Server.Job
case 1: case 1:
{ {
StartBusRoute(player, "Route1"); StartBusRoute(player, "Route1");
player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 1");
break; break;
} }
case 2: case 2:
{ {
StartBusRoute(player, "Route2"); StartBusRoute(player, "Route2");
player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 2");
break; break;
} }
} }
@@ -186,11 +158,13 @@ namespace ReallifeGamemode.Server.Job
case 1: case 1:
{ {
StartBusRoute(player, "Route3"); StartBusRoute(player, "Route3");
player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 3");
break; break;
} }
case 2: case 2:
{ {
StartBusRoute(player, "Route4"); StartBusRoute(player, "Route4");
player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 4");
break; break;
} }
} }
@@ -198,36 +172,110 @@ namespace ReallifeGamemode.Server.Job
if (player.GetUser().BusSkill >= 800) if (player.GetUser().BusSkill >= 800)
{ {
StartBusRoute(player, "Route5"); StartBusRoute(player, "Route5");
} player.SendChatMessage("~y~[JOB] ~w~Route wurde gesetzt.: ~g~Route 5");
}*/
} }
[RemoteEvent("startBusRoute")] [RemoteEvent("startBusRoute")]
public void StartBusRoute(Player player, string type) 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") 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") 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") 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") 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") 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); player.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/StartJob", "wav", 50);
//} }
} }
public static void payWage(Player jobber, int wage) public static void payWage(Player jobber, int wage)
@@ -237,7 +285,7 @@ namespace ReallifeGamemode.Server.Job
if (jobber.VehicleSeat == 0) if (jobber.VehicleSeat == 0)
{ {
jobber.GetUser(dbContext).Wage += wage; jobber.GetUser(dbContext).Wage += wage;
jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); //jobber.SendNotification($"~y~[JOB] ~g~+{wage}$");
jobber.GetUser(dbContext).BusSkill++; jobber.GetUser(dbContext).BusSkill++;
dbContext.SaveChanges(); dbContext.SaveChanges();
if (jobber.GetUser(dbContext).BusSkill == 300) if (jobber.GetUser(dbContext).BusSkill == 300)

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;
using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Services;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Server.Util; using ReallifeGamemode.Server.Util;
@@ -167,83 +167,93 @@ namespace ReallifeGamemode.Server.Job
break; 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")] [RemoteEvent("startPilotRoute")]
public void StartPilotRoute(Player player, string type) 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<int>("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<int>("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") 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") 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") 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") 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") 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") 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) public static void payWage(Player jobber, int wage)
{ {
@@ -252,7 +262,7 @@ namespace ReallifeGamemode.Server.Job
if (jobber.VehicleSeat == 0) if (jobber.VehicleSeat == 0)
{ {
jobber.GetUser(dbContext).Wage += wage; jobber.GetUser(dbContext).Wage += wage;
jobber.SendNotification($"~y~[JOB] ~g~+{wage}$"); //jobber.SendNotification($"~y~[JOB] ~g~+{wage}$");
jobber.GetUser(dbContext).PilotSkill++; jobber.GetUser(dbContext).PilotSkill++;
dbContext.SaveChanges(); dbContext.SaveChanges();
if (jobber.GetUser(dbContext).PilotSkill == 300) if (jobber.GetUser(dbContext).PilotSkill == 300)
@@ -275,7 +285,7 @@ namespace ReallifeGamemode.Server.Job
{ {
PilotJob c = new PilotJob(); PilotJob c = new PilotJob();
Vehicle v = player.Vehicle; Vehicle v = player.Vehicle;
if (v.Model == (uint)Types.VehicleModel.Cuban800) if (player.HasData("PilotenBase") && player.GetData<int>("PilotenBase") == 1)
{ {
Random rnd = new Random(); Random rnd = new Random();
int rroute = rnd.Next(1, 4); 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<int>("PilotenBase") == 2)
{ {
Random rnd = new Random(); Random rnd = new Random();
int rroute = rnd.Next(1, 4); int rroute = rnd.Next(1, 4);

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;

View File

@@ -1,4 +1,4 @@
using GTANetworkAPI; using GTANetworkAPI;
using Newtonsoft.Json; using Newtonsoft.Json;
using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Entities;
using ReallifeGamemode.Database.Models; using ReallifeGamemode.Database.Models;
@@ -12,6 +12,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Timers; using System.Timers;
using System.Threading;
namespace ReallifeGamemode.Server.Managers namespace ReallifeGamemode.Server.Managers
{ {
@@ -19,7 +20,7 @@ namespace ReallifeGamemode.Server.Managers
{ {
private static List<JobBase> _jobs = new List<JobBase>(); private static List<JobBase> _jobs = new List<JobBase>();
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() public static void LoadJobs()
{ {
@@ -182,7 +183,6 @@ namespace ReallifeGamemode.Server.Managers
job.StartJob(player); job.StartJob(player);
} }
Vehicle LastVehicle;
[ServerEvent(Event.PlayerExitVehicle)] [ServerEvent(Event.PlayerExitVehicle)]
public void JobManagerPlayerExitVehicle(Player player, Vehicle veh) public void JobManagerPlayerExitVehicle(Player player, Vehicle veh)
{ {
@@ -197,11 +197,79 @@ namespace ReallifeGamemode.Server.Managers
{ {
if (u.JobId != 2) if (u.JobId != 2)
{ {
timerJobVehicleRespawn.Start(); //timerJobVehicleRespawn.Start();
player.SetData("DelayTime", 30000);
veh.SetData("timerJobVehicleRespawn", true); veh.SetData("timerJobVehicleRespawn", true);
LastVehicle = veh; player.SetData("LastVehicle", veh);
timerJobVehicleRespawn.AutoReset = false; Vehicle LastVehicle = player.GetData<Vehicle>("LastVehicle");
timerJobVehicleRespawn.Elapsed += Timer30000_Elapsed; /*timerJobVehicleRespawn.AutoReset = false;
timerJobVehicleRespawn.Elapsed += Timer30000_Elapsed;*/
NAPI.Task.Run(() =>
{
try
{
ChatService.SendMessage(player, "TimerAusgelöst");
if (LastVehicle.GetData<bool>("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<bool>("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<bool>("PilotenBase2") == false) //Sandyshores
{
player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406);
player.Heading = (-154.65234375f);
}
if (player.HasData("PilotenBase2") && player.GetData<bool>("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~Du hast das Fahrzeug verlassen,");
player.SendChatMessage("~y~[JOB] ~w~Bist du nicht in 30 Sekunden zurück, ~r~wird der Job beendet!"); player.SendChatMessage("~y~[JOB] ~w~Bist du nicht in 30 Sekunden zurück, ~r~wird der Job beendet!");
//job.StopJob(player); //job.StopJob(player);
@@ -258,15 +326,17 @@ namespace ReallifeGamemode.Server.Managers
player.Heading = (60.65372848510742f); player.Heading = (60.65372848510742f);
} }
}*/ }*/
if (!player.HasData("PilotenBase2") || player.GetData<bool>("PilotenBase2") == false) //Sandyshores if (player.HasData("PilotenBase") || player.GetData<int>("PilotenBase") == 1) //Sandyshores
{ {
player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406); player.Position = new Vector3(1707.2711181640625, 3276.216064453125, 41.155494689941406);
player.Heading = (-154.65234375f); player.Heading = (-154.65234375f);
player.GetUser().SetData("PilotenBase", 0);
} }
if (player.HasData("PilotenBase2") && player.GetData<bool>("PilotenBase2") == true) //LS Airport if (player.HasData("PilotenBase") && player.GetData<int>("PilotenBase") == 2) //LS Airport
{ {
player.Position = new Vector3(-1622.48, -3151.58, 13); player.Position = new Vector3(-1622.48, -3151.58, 13);
player.Heading = (48.44f); player.Heading = (48.44f);
player.GetUser().SetData("PilotenBase", 0);
} }
} }
if (player.GetUser().JobId == 4)//Busfahrer 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.Position = new Vector3(-535.46, -2144.97, 5.95);
player.Heading = (57.03f); player.Heading = (57.03f);
} }
Vehicle LastVehicle = player.GetData<Vehicle>("LastVehicle");
if (LastVehicle != null) if (LastVehicle != null)
{ {
LastVehicle.ResetData("timerJobVehicleRespawn"); LastVehicle.ResetData("timerJobVehicleRespawn");
@@ -306,6 +377,7 @@ namespace ReallifeGamemode.Server.Managers
{ {
NAPI.Pools.GetAllVehicles().ForEach(v => NAPI.Pools.GetAllVehicles().ForEach(v =>
{ {
Vehicle LastVehicle = p.GetData<Vehicle>("LastVehicle");
if (LastVehicle.GetServerVehicle() is JobVehicle vehJ) if (LastVehicle.GetServerVehicle() is JobVehicle vehJ)
{ {
if (LastVehicle.GetData<bool>("timerJobVehicleRespawn") == true) if (LastVehicle.GetData<bool>("timerJobVehicleRespawn") == true)
@@ -405,22 +477,43 @@ namespace ReallifeGamemode.Server.Managers
{ {
if (sVeh != null) 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 (player.GetUser().JobId == 3 || player.GetUser().JobId == 4)
if (JV.GetJob().GetUsersInJob().Contains(player))
{ {
timerJobVehicleRespawn.Stop(); if (seat == 0)
veh.SetData("timerJobVehicleRespawn", false); {
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<Vehicle>("LastVehicle"));
player.StopAnimation();
return;
}
} }
else return; }
}
return;
} }
} }

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using GTANetworkAPI; using GTANetworkAPI;
using ReallifeGamemode.Server.Shop.Clothing; using ReallifeGamemode.Server.Shop.Clothing;
@@ -180,6 +180,7 @@ namespace ReallifeGamemode.Server.Managers
JobPoints.Add(jobPointRefuseCollector); JobPoints.Add(jobPointRefuseCollector);
JobPoints.Add(jobPointPilot); JobPoints.Add(jobPointPilot);
JobPoints.Add(jobPointPilot2);
JobPoints.Add(jobPointBusDriver); JobPoints.Add(jobPointBusDriver);
foreach (JobPoint p in JobPoints) 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); new Vector3(0, 0, 0), 1.5f, new Color(255, 255, 255, 50), false, 0);
if (p.jobId == 2) 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); NAPI.Blip.CreateBlip(318, p.Position, 1f, 16, "Müllmann", 255, 0, true);
} }
if (p.jobId == 3) if (p.jobId == 3)
{ {
if (p.Skill < 2) 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); NAPI.Blip.CreateBlip(251, p.Position, 1f, 16, "Pilot Anfänger", 255, 0, true);
} }
if (p.Skill >= 2) 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); NAPI.Blip.CreateBlip(251, p.Position, 1f, 16, "Pilot Fortgeschritten", 255, 0, true);
} }
} }
if (p.jobId == 4) 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); NAPI.Blip.CreateBlip(513, p.Position, 1f, 16, "Busfahrer", 255, 0, true);
} }
} }

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using ReallifeGamemode.Server.Services; using ReallifeGamemode.Server.Services;
using GTANetworkAPI; using GTANetworkAPI;
using System.Linq; using System.Linq;
@@ -13,20 +13,22 @@ namespace ReallifeGamemode.Server.Util
public static void DeleteCheckpoints(Player player) public static void DeleteCheckpoints(Player player)
{ {
player.SetData("HatRoute", false);
RemovePlayerHandlerFromList(player); RemovePlayerHandlerFromList(player);
player.TriggerEvent("destroyCP"); player.TriggerEvent("destroyCP");
} }
public static void StartCheckPointRoute(Player player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, int markerDist, string nEvent) public static void StartCheckPointRoute(Player player, IEnumerable<Vector3> nListCps, int delay, int markerID, int markerSize, int markerDist, bool useVehicle, string nEvent)
{ {
RemovePlayerHandlerFromList(player); 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(); playerHandle.DeleteCheckpoints();
listHandle.Add(playerHandle); listHandle.Add(playerHandle);
playerHandle.StartRoute(); playerHandle.StartRoute();
player.SetData("HatRoute", true);
/*if(player.GetUser().BusSkill >= 1000) /*if(player.GetUser().BusSkill >= 1000)
{ {
playerHandle.LastCheckpoint = 2; playerHandle.LastCheckpoint = 2;
@@ -50,31 +52,58 @@ namespace ReallifeGamemode.Server.Util
{ {
if (user.GetUser().JobId == 4) if (user.GetUser().JobId == 4)
{ {
if (!user.IsInVehicle || user.VehicleSeat != 0) return; Job.JobBase job = Managers.JobManager.GetJob(user.GetUser().JobId.Value);
Vehicle veh = user.Vehicle; if (job.GetUsersInJob().Contains(user))
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AnfahrtHaltestelle", "wav", 50);
if ((VehicleHash)veh.Model == VehicleHash.Bus)
{ {
user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); if (!user.IsInVehicle || user.VehicleSeat != 0) return;
user.TriggerEvent("CLIENT:SetDoorOpen", 1, false, false); Vehicle veh = user.Vehicle;
user.TriggerEvent("CLIENT:SetDoorOpen", 2, false, false); user.TriggerEvent("CLIENT:FreezeVehicle", veh);
user.TriggerEvent("CLIENT:SetDoorOpen", 3, false, false); user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
user.TriggerEvent("CLIENT:SetDoorOpen", 0, false, false); 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>("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>("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) 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", 2, false, 1850);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 1850);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 0, 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) if ((VehicleHash)veh.Model == VehicleHash.Coach)
{ {
user.TriggerEvent("CLIENT:PlaySound", "jobs/busfahrer/AbfahrtHaltestelleCoach", "wav", 35); 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) 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", 3, false, 2100);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2100); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 2, false, 2100);
user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100); user.TriggerEvent("CLIENT:SetDoorShutDelayed", 3, false, 2100);
NAPI.Task.Run(() =>
{
user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
}, delayTime: 2100);
} }
if (!(veh.GetData<IndicatorData>("indicatorData") is IndicatorData data)) data = new IndicatorData(); //user.TriggerEvent("CLIENT:UnFreezeVehicle", veh);
data.Left = false;
data.Right = false;
veh.SetData("indicatorData", data);
NAPI.ClientEvent.TriggerClientEventForAll("SERVER:setIndicatorStatus", veh.Handle.Value, data.Left, data.Right);
} }
[RemoteEvent("playerInCheckpoint")] [RemoteEvent("playerInCheckpoint")]
public void PlayerInCheckpoint(Player user) public void PlayerInCheckpoint(Player user)
@@ -122,14 +159,25 @@ namespace ReallifeGamemode.Server.Util
} }
if (temp.LastCheckpoint != 1) 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 == 3)
} {
if (user.GetUser().JobId == 4) PilotJob.payWage(user, 100);
{ }
BusDriverJob.payWage(user, 100); if (user.GetUser().JobId == 4)
BusCheckpoint(user); {
BusDriverJob.payWage(user, 100);
if (!user.IsInVehicle || user.VehicleSeat != 0) return;
Vehicle veh = user.Vehicle;
if (!(veh.GetData<IndicatorData>("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 else
@@ -148,11 +196,12 @@ namespace ReallifeGamemode.Server.Util
public int markerID; public int markerID;
public int markerSize; public int markerSize;
public int markerDist; public int markerDist;
public bool useVehicle;
public string eventInCheckpoint = ""; public string eventInCheckpoint = "";
int checkPointsDone = 0; int checkPointsDone = 0;
public CheckPointListForPlayer(Player nPlayer, IEnumerable<Vector3> nList, int nDelay, int nMarkerID, int nMarkerSize, int nMarkerDist, string nEvent) public CheckPointListForPlayer(Player nPlayer, IEnumerable<Vector3> nList, int nDelay, int nMarkerID, int nMarkerSize, int nMarkerDist, bool nUseVehicle, string nEvent)
{ {
this.player = nPlayer; this.player = nPlayer;
this.list = nList; this.list = nList;
@@ -160,13 +209,14 @@ namespace ReallifeGamemode.Server.Util
this.markerID = nMarkerID; this.markerID = nMarkerID;
this.markerSize = nMarkerSize; this.markerSize = nMarkerSize;
this.markerDist = nMarkerDist; this.markerDist = nMarkerDist;
this.useVehicle = nUseVehicle;
this.eventInCheckpoint = nEvent; this.eventInCheckpoint = nEvent;
this.checkPointsDone = 0; this.checkPointsDone = 0;
} }
public void StartRoute() 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() public void NextCheckpoint()
{ {
@@ -186,6 +236,7 @@ namespace ReallifeGamemode.Server.Util
LastCheckpoint = 0; LastCheckpoint = 0;
CheckPointHandle.RemovePlayerHandlerFromList(this.player); CheckPointHandle.RemovePlayerHandlerFromList(this.player);
DeleteCheckpoints(); DeleteCheckpoints();
player.SetData("HatRoute", false);
if (player.GetUser().JobId == 3) if (player.GetUser().JobId == 3)
{ {
PilotJob.payWage(player, 200); PilotJob.payWage(player, 200);

View File

@@ -45,168 +45,249 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64 Release|x64 = Release|x64
Release|x86 = Release|x86
ServerBuild|Any CPU = ServerBuild|Any CPU ServerBuild|Any CPU = ServerBuild|Any CPU
ServerBuild|x64 = ServerBuild|x64 ServerBuild|x64 = ServerBuild|x64
ServerBuild|x86 = ServerBuild|x86
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {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|Any CPU.Build.0 = Debug|Any CPU
{6A490613-C8B7-4C45-8562-4455F59BCDD4}.Debug|x64.ActiveCfg = Debug|x64 {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|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.ActiveCfg = Release|Any CPU
{6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{6A490613-C8B7-4C45-8562-4455F59BCDD4}.Release|x64.Build.0 = 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.ActiveCfg = ServerBuild|Any CPU
{6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = ServerBuild|x64
{6A490613-C8B7-4C45-8562-4455F59BCDD4}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{67472A94-4B6C-46B5-AB57-C2988B55C8C7}.Release|x64.Build.0 = 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.ActiveCfg = ServerBuild|Any CPU
{67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = ServerBuild|x64
{67472A94-4B6C-46B5-AB57-C2988B55C8C7}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{9722D6D2-0C02-4F1F-8CAC-A4F1E2748385}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = ServerBuild|x64
{2EFCB9CA-E9B3-4EA0-BBD8-9F59D2E734D6}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{61157B05-135C-40C5-B694-5F27CE53B334}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{61157B05-135C-40C5-B694-5F27CE53B334}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{61157B05-135C-40C5-B694-5F27CE53B334}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{61157B05-135C-40C5-B694-5F27CE53B334}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Release|x64
{61157B05-135C-40C5-B694-5F27CE53B334}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{AABE0834-13E9-429F-8309-E5C94D288FCF}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{AABE0834-13E9-429F-8309-E5C94D288FCF}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{AABE0834-13E9-429F-8309-E5C94D288FCF}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{A8FD9510-4E75-4668-A5AA-121AF15191EC}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{A8FD9510-4E75-4668-A5AA-121AF15191EC}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{A8FD9510-4E75-4668-A5AA-121AF15191EC}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{EBAA6BA3-DD62-4FE2-927A-7EA7C9CAD996}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{B34B85E7-CB90-43F6-8B65-492207B776B6}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{B34B85E7-CB90-43F6-8B65-492207B776B6}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{B34B85E7-CB90-43F6-8B65-492207B776B6}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{1B0E8256-B764-45C0-817E-B382CD868324}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{1B0E8256-B764-45C0-817E-B382CD868324}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{1B0E8256-B764-45C0-817E-B382CD868324}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{1B0E8256-B764-45C0-817E-B382CD868324}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{1B0E8256-B764-45C0-817E-B382CD868324}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{86A89ECA-87FC-4ED6-8D02-383B9FB7E5D1}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{1A6DB9CA-1921-4758-A9F6-9E3AEB3E1D02}.ServerBuild|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|x64
{C21396B2-31D3-47C5-8D87-651FA16E60FD}.Debug|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|Any CPU.Build.0 = 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.ActiveCfg = Release|Any CPU
{C21396B2-31D3-47C5-8D87-651FA16E60FD}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
{C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
{C21396B2-31D3-47C5-8D87-651FA16E60FD}.ServerBuild|x64.Build.0 = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE