diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css b/Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css.map b/Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css.map similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css.map rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.css.map diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css b/Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css.map b/Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css.map similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css.map rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap-theme.min.css.map diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.css b/Client/Dependences/bootstrap-3.3.7/css/bootstrap.css similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.css rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap.css diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.css.map b/Client/Dependences/bootstrap-3.3.7/css/bootstrap.css.map similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.css.map rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap.css.map diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.min.css b/Client/Dependences/bootstrap-3.3.7/css/bootstrap.min.css similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.min.css rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap.min.css diff --git a/Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.min.css.map b/Client/Dependences/bootstrap-3.3.7/css/bootstrap.min.css.map similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/css/bootstrap.min.css.map rename to Client/Dependences/bootstrap-3.3.7/css/bootstrap.min.css.map diff --git a/Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot b/Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot rename to Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot diff --git a/Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg b/Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg rename to Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg diff --git a/Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf b/Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf rename to Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf diff --git a/Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff b/Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff rename to Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff diff --git a/Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 b/Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 rename to Client/Dependences/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 diff --git a/Client/Login/Dependences/bootstrap-3.3.7/js/bootstrap.js b/Client/Dependences/bootstrap-3.3.7/js/bootstrap.js similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/js/bootstrap.js rename to Client/Dependences/bootstrap-3.3.7/js/bootstrap.js diff --git a/Client/Login/Dependences/bootstrap-3.3.7/js/bootstrap.min.js b/Client/Dependences/bootstrap-3.3.7/js/bootstrap.min.js similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/js/bootstrap.min.js rename to Client/Dependences/bootstrap-3.3.7/js/bootstrap.min.js diff --git a/Client/Login/Dependences/bootstrap-3.3.7/js/npm.js b/Client/Dependences/bootstrap-3.3.7/js/npm.js similarity index 100% rename from Client/Login/Dependences/bootstrap-3.3.7/js/npm.js rename to Client/Dependences/bootstrap-3.3.7/js/npm.js diff --git a/Client/Login/Dependences/jquery-3.3.1.min.js b/Client/Dependences/jquery-3.3.1.min.js similarity index 100% rename from Client/Login/Dependences/jquery-3.3.1.min.js rename to Client/Dependences/jquery-3.3.1.min.js diff --git a/Client/Login/login.html b/Client/Login/login.html index 35d14c3f..03edc5c2 100644 --- a/Client/Login/login.html +++ b/Client/Login/login.html @@ -1,5 +1,5 @@  @@ -7,7 +7,7 @@ - + diff --git a/Client/Save/main.js b/Client/Save/main.js new file mode 100644 index 00000000..b40e649f --- /dev/null +++ b/Client/Save/main.js @@ -0,0 +1,33 @@ +/** + * @overview Life of German Reallife - Save Main main.js + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ +var saveBrowser; + +mp.events.add('saveBlip', () => { + + saveBrowser = mp.browsers.new('package://Save/save.html'); + mp.gui.chat.activate(false); + mp.gui.cursor.show(true, true); +}); + +mp.events.add('saveData', (blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension) => { + if (saveBrowser) { + saveBrowser.destroy(); + } + + mp.events.callRemote('OnSaveBlipData', blipSprite, blipName, blipScale, blipColor, blipAlpha, + blipDrawDistance, blipShortRange, blipRotation, blipDimension); + mp.gui.chat.push(blipShortRange); + mp.gui.cursor.show(false, false); + mp.gui.chat.activate(true); +}); + +mp.events.add('cancelData', () => { + if (saveBrowser) { + saveBrowser.destroy(); + } + mp.gui.cursor.show(false, false); + mp.gui.chat.activate(true); +}); \ No newline at end of file diff --git a/Client/Save/save.html b/Client/Save/save.html new file mode 100644 index 00000000..b6122bcb --- /dev/null +++ b/Client/Save/save.html @@ -0,0 +1,72 @@ + + + + + + + + + + +
+
+
+

Blip speichern, bitte fülle die Tabelle aus:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Model ID:
Name:
Skalierung:
Farbe:
Transparenz:
Draw Distance:
Short Range: + Zeigt das Blip nur innerhalb der Minimap +
Rotation:
Dimension:
+

+ +
+
+
+ + + \ No newline at end of file diff --git a/Client/Save/save.js b/Client/Save/save.js new file mode 100644 index 00000000..33a1ed72 --- /dev/null +++ b/Client/Save/save.js @@ -0,0 +1,28 @@ +/** + * @overview Life of German Reallife - Login Login login.js + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +function saveData() { + let blipSprite = document.getElementById("blipSprite").value; + let blipName = document.getElementById("blipName").value; + let blipScale = document.getElementById("blipScale").value; + let blipColor = document.getElementById("blipColor").value; + let blipAlpha = document.getElementById("blipAlpha").value; + let blipDrawDistance = document.getElementById("blipSprite").value; + let blipShortRange = document.getElementById("blipShortRange").checked; + let blipRotation = document.getElementById("blipRotation").value; + let blipDimension = document.getElementById("blipDimension").value; + + mp.trigger("saveData", blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension); +} + +function cancelData() { + mp.trigger("cancelData"); +} + +function getType() { + mp.gui.chat.push("getType"); + return typ; +} \ No newline at end of file diff --git a/Client/Save/style.css b/Client/Save/style.css new file mode 100644 index 00000000..e295d68d --- /dev/null +++ b/Client/Save/style.css @@ -0,0 +1,184 @@ +/** + * @overview Life of German Reallife - Save CSS style.css + * @author Orangebox, hydrant, VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +.save-page { + margin: auto; +} + +.isa_info, .isa_success, .isa_warning, .isa_error { + margin: 10px 0px; + padding: 12px; + display: none; +} + +.isa_info { + color: #00529B; + background-color: #BDE5F8; +} + +.isa_success { + color: #4F8A10; + background-color: #DFF2BF; +} + +.isa_warning { + color: #9F6000; + background-color: #FEEFB3; +} + +.isa_error { + color: #D8000C; + background-color: #FFBABA; +} + +.isa_info i, .isa_success i, .isa_warning i, .isa_error i { + margin: 10px 22px; + font-size: 2em; + vertical-align: middle; +} + +.form { + margin-left: 36%; + position: absolute; + z-index: 1; + background: rgba(255, 255, 255, .85); + padding: 20px; + text-align: center; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24); +} + +input { + font-family: "Roboto", sans-serif; + outline: 0; + background: #f2f2f2; + width: 100%; + border: 0; + margin: 5px 0 5px 0; + padding: 12px; + box-sizing: border-box; + font-size: 12px; +} + input.colorPicker { + font-family: "Roboto", sans-serif; + outline: 0; + background: #f2f2f2; + width: 100%; + border: 0; + margin: 5px 0 5px 0; + padding: 0px; + box-sizing: border-box; + font-size: 12px; + } + + input#blipShortRange { + margin: 10px 0 10px 0; + } + +button { + font-family: "Roboto", sans-serif; + text-transform: uppercase; + outline: 0; + background: #31c474; + width: 40%; + border: 0; + padding: 15px; + color: #FFFFFF; + font-size: 14px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + cursor: pointer; +} + + button:hover, .form button:active, .form button:focus { + background: #31bd40; + } + +.cancelBtn { + background-color: orangered; +} + +.cancelBtn:hover, .cancelBtn:focus, .cancelBtn:active { + background-color: #ff0223 !important; +} + +table { + align-self: center; +} +.message { + margin: 15px 0 0; + font-size: 12px; +} + +.message a { + color: #0035A5; + text-decoration: none; +} + +.register-form { + display: none; +} + + +.container { + position: relative; + z-index: 1; + max-width: 300px; + margin: 0 auto; +} + +.container:before, .container:after { + content: ""; + display: block; + clear: both; +} + +.container .info { + margin: 50px auto; + text-align: center; +} + +.info h1 { + margin: 0 0 15px; + padding: 0; + font-size: 36px; + font-weight: 300; + color: #1a1a1a; +} + +.info span { + color: #4d4d4d; + font-size: 12px; +} + +.info span a { + color: #000000; + text-decoration: none; +} + +.info span .fa { + color: #EF3B3A; +} + +body { + font-family: "Roboto", sans-serif; + -webkit-font-smoothing: antialiased; + overflow: hidden; +} +tr{ + +} +td { + align-content: stretch; + padding-left: 10px; + padding-right: 10px; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 0 0 0 rgba(0, 0, 0, 0.24); + border-top: 2px double gray; + border-bottom: 2px double gray; + border-width: 0.5px; +} +table{ + margin-bottom: 20px; +} \ No newline at end of file diff --git a/Client/index.js b/Client/index.js index 51689880..6545bd99 100644 --- a/Client/index.js +++ b/Client/index.js @@ -4,4 +4,6 @@ * @copyright (c) 2008 - 2018 Life of German */ -require('./Login/main.js'); \ No newline at end of file +require('./Login/main.js'); +require('./Save/main.js'); +require('./Save/save.js'); \ No newline at end of file diff --git a/Model/DatabaseContext.cs b/Model/DatabaseContext.cs index 296b503a..6b60c4b8 100644 --- a/Model/DatabaseContext.cs +++ b/Model/DatabaseContext.cs @@ -1,8 +1,10 @@ using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using System.Configuration; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.Extensions.Configuration; /** * @overview Life of German Reallife - DatabaseContext.cs @@ -35,5 +37,12 @@ namespace reallife_gamemode.Model } public DbSet Users { get; set; } + + public DbSet Blips { get; set; } + public DbSet Markers { get; set; } + public DbSet Peds { get; set; } + public DbSet Pickups { get; set; } + public DbSet TextLabels { get; set; } + public DbSet Vehicles { get; set; } } } diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 852fb227..5c615bc2 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using GTANetworkAPI; +using reallife_gamemode.Server.Events; using reallife_gamemode.Server.Extensions; using reallife_gamemode.Server.Services; using reallife_gamemode.Server.Util; @@ -43,7 +44,7 @@ namespace reallife_gamemode.Server.Commands player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan schon in einem Fahrzeug."); return; } - + Vehicle v = NAPI.Vehicle.CreateVehicle(hash, player.Position, player.Rotation.Z, color1, color2); player.SetIntoVehicle(v.Handle, -1); @@ -99,7 +100,7 @@ namespace reallife_gamemode.Server.Commands Client target = ClientService.GetClientByName(name); - if(target == null) + if (target == null) { ChatService.PlayerNotFound(player); return; @@ -150,13 +151,13 @@ namespace reallife_gamemode.Server.Commands } option = option.ToLower(); - - if(option == "load") + + if (option == "load") { NAPI.World.RequestIpl(name); player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich geladen"); } - else if(option == "remove") + else if (option == "remove") { NAPI.World.RemoveIpl(name); player.SendChatMessage("~g~Das IPL ~s~" + name + " ~g~wurde erfolgreich entladen"); @@ -191,7 +192,7 @@ namespace reallife_gamemode.Server.Commands WeaponHash wHash = NAPI.Util.WeaponNameToModel(weapon); - if(wHash == default(WeaponHash)) + if (wHash == default(WeaponHash)) { player.SendChatMessage("~r~[FEHLER]~s~ Diese Waffe existiert nicht."); return; @@ -199,5 +200,30 @@ namespace reallife_gamemode.Server.Commands target.GiveWeapon(wHash, ammo); } + + [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip, ~r~Marker, Ped, Pickup, TextLabel, ~g~Vehicle")] + public void CmdAdminSave(Client player, string typ) + { + switch (typ) + { + case "Blip": + player.TriggerEvent("saveBlip"); + break; + case "Ped": + + break; + case "Vehicle": + if (player.IsInVehicle) + { + Vehicle vehicle = player.Vehicle; + SaveData.SaveVehicleData((VehicleHash) vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, + Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension)); + } + else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); + break; + + } + + } } } diff --git a/Server/Events/SaveData.cs b/Server/Events/SaveData.cs new file mode 100644 index 00000000..01d32054 --- /dev/null +++ b/Server/Events/SaveData.cs @@ -0,0 +1,78 @@ +using GTANetworkAPI; +using System; +using System.Collections.Generic; +using System.Text; + +namespace reallife_gamemode.Server.Events +{ + public class SaveData : Script + { + [RemoteEvent("OnSaveBlipData")] + public void OnSaveBlipData(Client player, string blipSprite, string blipName, string blipScale, string blipColor, + string blipAlpha, string blipDrawDistance, string blipShortRange, string blipRotation, string blipDimension) + { + float x = player.Position.X; + float y = player.Position.Y; + float z = player.Position.Z; + short sprite = short.Parse(blipSprite); + string name = blipName; + float scale = float.Parse(blipScale); + byte color = Convert.ToByte(blipColor); + byte alpha = Convert.ToByte(blipAlpha); + float drawDistance = float.Parse(blipDrawDistance); + bool shortRange = bool.Parse(blipShortRange); + float rotation = float.Parse(blipRotation); + byte dimension = Convert.ToByte(blipDimension); + + NAPI.Blip.CreateBlip(uint.Parse(blipSprite), new Vector3(x,y,z), scale, color, name, alpha, drawDistance, shortRange, short.Parse(blipRotation), dimension); + + using (var saveData = new Model.DatabaseContext()) + { + var dataSet = new Server.Saves.SavedBlip + { + Sprite = sprite, + PositionX = x, + PositionY = y, + PositionZ = z, + Name = blipName, + Scale = scale, + Color = color, + Alpha = alpha, + DrawDistance = drawDistance, + ShortRange = shortRange, + Rotation = rotation, + Dimension = dimension, + Active = true + }; + saveData.Blips.Add(dataSet); + saveData.SaveChanges(); + } + } + + public static void SaveVehicleData(VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading, + string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, byte vehicleDimension) + { + using (var saveData = new Model.DatabaseContext()) + { + var dataSet = new Server.Saves.SavedVehicle + { + Model = vehicleModel, + PositionX = vehiclePosition.X, + PositionY = vehiclePosition.Y, + PositionZ = vehiclePosition.Z, + Heading = vehicleHeading, + NumberPlate = vehicleNumberPlate, + PrimaryColor = vehiclePrimaryColor, + SecondaryColor = vehicleSecondaryColor, + Locked = vehicleLocked, + Engine = vehicleEngine, + Dimension = vehicleDimension, + Active = true + }; + saveData.Vehicles.Add(dataSet); + saveData.SaveChanges(); + } + } + + } +} diff --git a/Server/Managers/LoadManager.cs b/Server/Managers/LoadManager.cs new file mode 100644 index 00000000..249b852a --- /dev/null +++ b/Server/Managers/LoadManager.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Text; +using GTANetworkAPI; +using reallife_gamemode.Model; +using reallife_gamemode.Server.Entities; + +/** +* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs) +* @author VegaZ +* @copyright (c) 2008 - 2018 Life of German +*/ + +namespace reallife_gamemode.Server.Managers +{ + public class LoadManager : Script + { + [ServerEvent(Event.ResourceStart)] + public void OnResourceStart() + { + //LOAD ALL BLIPS + using (var loadBlips = new DatabaseContext()) + { + foreach (Saves.SavedBlip b in loadBlips.Blips) + { + if(b.Active == true) + { + NAPI.Blip.CreateBlip((uint) b.Sprite, new Vector3(b.PositionX, b.PositionY, b.PositionZ), b.Scale, + b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension); + } + } + } + //LOAD ALL VEHICLES + using (var loadVehicles = new DatabaseContext()) + { + foreach (Saves.SavedVehicle v in loadVehicles.Vehicles) + { + if (v.Active == true) + { + NAPI.Vehicle.CreateVehicle((uint) v.Model, new Vector3(v.PositionX, v.PositionY, v.PositionZ), v.Heading, (int)(v.PrimaryColor), + v.SecondaryColor, v.NumberPlate, v.Alpha, v.Locked, v.Engine = false, v.Dimension); + } + } + } + } + } +} diff --git a/Server/Saves/SavedBlip.cs b/Server/Saves/SavedBlip.cs new file mode 100644 index 00000000..f7b14343 --- /dev/null +++ b/Server/Saves/SavedBlip.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +/** + * @overview Life of German Reallife - Saves SavedBlip.cs + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +namespace reallife_gamemode.Server.Saves +{ + public class SavedBlip + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + [Required] + public short Sprite { get; set; } + [Required] + public float PositionX { get; set; } + [Required] + public float PositionY { get; set; } + [Required] + public float PositionZ { get; set; } + public string Name { get; set; } + public float Scale { get; set; } + public byte Color { get; set; } + public byte Alpha { get; set; } + public float DrawDistance { get; set; } + public bool ShortRange { get; set; } + public float Rotation { get; set; } + public byte Dimension { get; set; } + public bool Active { get; set; } + } +} diff --git a/Server/Saves/SavedMarker.cs b/Server/Saves/SavedMarker.cs new file mode 100644 index 00000000..5670d0f7 --- /dev/null +++ b/Server/Saves/SavedMarker.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +/** + * @overview Life of German Reallife - Saves SavedMarker.cs + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +namespace reallife_gamemode.Server.Saves +{ + public class SavedMarker + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public byte Type { get; set; } + public float PositionX { get; set; } + public float PositionY { get; set; } + public float PositionZ { get; set; } + public float Scale { get; set; } + public float DirectionX { get; set; } + public float DirectionY { get; set; } + public float DirectionZ { get; set; } + public float RotationX { get; set; } + public float RotationY { get; set; } + public float RotationZ { get; set; } + public byte ColorR { get; set; } + public byte ColorG { get; set; } + public byte ColorB { get; set; } + public byte ColorA { get; set; } + public bool Visible { get; set; } + public byte Dimension { get; set; } + public bool Active { get; set; } + } +} diff --git a/Server/Saves/SavedPed.cs b/Server/Saves/SavedPed.cs new file mode 100644 index 00000000..627ec516 --- /dev/null +++ b/Server/Saves/SavedPed.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +/** + * @overview Life of German Reallife - Saves SavedPed.cs + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +namespace reallife_gamemode.Server.Saves +{ + public class SavedPed + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public string HashModel { get; set; } + public float PositionX { get; set; } + public float PositionY { get; set; } + public float PositionZ { get; set; } + public float Heading { get; set; } + public byte Dimension { get; set; } + public bool Active { get; set; } + } +} diff --git a/Server/Saves/SavedPickup.cs b/Server/Saves/SavedPickup.cs new file mode 100644 index 00000000..5c518de5 --- /dev/null +++ b/Server/Saves/SavedPickup.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +/** + * @overview Life of German Reallife - Saves SavedPickup.cs + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +namespace reallife_gamemode.Server.Saves +{ + public class SavedPickup + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + [StringLength(128)] + public float PositionX { get; set; } + public float PositionY { get; set; } + public float PositionZ { get; set; } + public float RotationX { get; set; } + public float RotationY { get; set; } + public float RotationZ { get; set; } + public bool Vehicle { get; set; } + public int RespawnTime { get; set; } + public byte Dimension { get; set; } + public bool Active { get; set; } + } +} diff --git a/Server/Saves/SavedTextLabel.cs b/Server/Saves/SavedTextLabel.cs new file mode 100644 index 00000000..d367bfbf --- /dev/null +++ b/Server/Saves/SavedTextLabel.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +/** + * @overview Life of German Reallife - Saves SavedTextLabel.cs + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +namespace reallife_gamemode.Server.Saves +{ + public class SavedTextLabel + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + [Required] + public string Text { get; set; } + [Required] + public float PositionX { get; set; } + [Required] + public float PositionY { get; set; } + [Required] + public float PositionZ { get; set; } + public bool LOS { get; set; } + public byte Font { get; set; } + public float DrawDistance { get; set; } + public byte ColorR { get; set; } + public byte ColorG { get; set; } + public byte ColorB { get; set; } + public byte ColorA { get; set; } + public byte Dimension { get; set; } + public bool Active { get; set; } + } +} diff --git a/Server/Saves/SavedVehicle.cs b/Server/Saves/SavedVehicle.cs new file mode 100644 index 00000000..7653474c --- /dev/null +++ b/Server/Saves/SavedVehicle.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using GTANetworkAPI; + +/** + * @overview Life of German Reallife - Saves SavedVehicle.cs + * @author VegaZ + * @copyright (c) 2008 - 2018 Life of German + */ + +namespace reallife_gamemode.Server.Saves +{ + public class SavedVehicle + { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + public VehicleHash Model { get; set; } + public float PositionX { get; set; } + public float PositionY { get; set; } + public float PositionZ { get; set; } + public float Heading { get; set; } + [StringLength(8)] + public string NumberPlate { get; set; } + public byte Alpha { get; set; } + public byte PrimaryColor { get; set; } + public byte SecondaryColor { get; set; } + public bool Locked { get; set; } + public bool Engine { get; set; } + public byte Dimension { get; set; } + public bool Active { get; set; } + } +}