Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop

This commit is contained in:
xNccPlay
2018-10-08 19:24:24 +02:00
11 changed files with 140 additions and 40 deletions

View File

@@ -7,6 +7,7 @@
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<script src="../Dependences/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="style.css" />
</head> </head>

View File

@@ -9,9 +9,7 @@ mp.events.add('saveBlip', () => {
saveBrowser = mp.browsers.new('package://Save/save.html'); saveBrowser = mp.browsers.new('package://Save/save.html');
mp.gui.chat.activate(false); mp.gui.chat.activate(false);
setTimeout(() => { mp.gui.cursor.show(true, true);
mp.gui.cursor.visible = true
}, 500);
}); });
mp.events.add('saveData', (blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension) => { mp.events.add('saveData', (blipSprite, blipName, blipScale, blipColor, blipAlpha, blipDrawDistance, blipShortRange, blipRotation, blipDimension) => {

View File

@@ -7,6 +7,7 @@
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<script src="../Dependences/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="style.css" />
</head> </head>

View File

@@ -4,8 +4,14 @@
* @copyright (c) 2008 - 2018 Life of German * @copyright (c) 2008 - 2018 Life of German
*/ */
require('./Login/main.js');
require('./Save/main.js');
require('./Save/save.js');
require('./Gui/infobox.js'); require('./Gui/infobox.js');
require('./Login/main.js'); require('./Login/main.js');
require('./Save/main.js'); require('./Save/main.js');
require('./FactionManagement/main.js'); require('./FactionManagement/main.js');

View File

@@ -36,12 +36,16 @@ namespace reallife_gamemode.Model
base.OnModelCreating(modelBuilder); base.OnModelCreating(modelBuilder);
} }
//User
public DbSet<Server.Entities.User> Users { get; set; } public DbSet<Server.Entities.User> Users { get; set; }
public DbSet<Server.Entities.UserVehicle> UserVehicles { get; set; } public DbSet<Server.Entities.UserVehicle> UserVehicles { get; set; }
public DbSet<Server.Entities.UserBankAccount> BankAccounts { get; set; } public DbSet<Server.Entities.UserBankAccount> BankAccounts { get; set; }
public DbSet<Server.Entities.Ban> Bans { get; set; } public DbSet<Server.Entities.Ban> Bans { get; set; }
//Faction
public DbSet<Server.Entities.Faction> Factions { get; set; } public DbSet<Server.Entities.Faction> Factions { get; set; }
public DbSet<Server.Entities.FactionRank> FactionRanks { get; set; } public DbSet<Server.Entities.FactionRank> FactionRanks { get; set; }
public DbSet<Server.Entities.FactionVehicle> FactionVehicles { get; set; }
//Logs //Logs
//public DbSet<Server.Logs.Ban> BanLogs { get; set; } //public DbSet<Server.Logs.Ban> BanLogs { get; set; }

View File

@@ -56,7 +56,6 @@ namespace reallife_gamemode.Server.Commands
if (!uint.TryParse(hash, out uint vehHash)) if (!uint.TryParse(hash, out uint vehHash))
{ {
Debug.WriteLine("couldnt parse");
if (!Enum.TryParse(hash, true, out VehicleHash realHash)) if (!Enum.TryParse(hash, true, out VehicleHash realHash))
{ {
player.SendChatMessage("~r~[FEHLER]~s~ Dieses Fahrzeug existiert nicht."); player.SendChatMessage("~r~[FEHLER]~s~ Dieses Fahrzeug existiert nicht.");
@@ -567,31 +566,6 @@ namespace reallife_gamemode.Server.Commands
} }
} }
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip, ~r~Marker, Ped, Pickup, TextLabel, ~g~Vehicle")]
public void CmdAdminSave(Client player, string typ)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
switch (typ.ToLower())
{
case "blip":
player.TriggerEvent("saveBlip");
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;
}
}
[Command("ban", "~m~Benutzung: ~s~/ban [User] [Zeit in Minuten(0 für Permanent)] [Grund] ", GreedyArg = true)] [Command("ban", "~m~Benutzung: ~s~/ban [User] [Zeit in Minuten(0 für Permanent)] [Grund] ", GreedyArg = true)]
public void CmdAdminBan(Client admin, string user, int mins, string reason) public void CmdAdminBan(Client admin, string user, int mins, string reason)
{ {
@@ -612,6 +586,44 @@ namespace reallife_gamemode.Server.Commands
target.GetUser().BanPlayer(admin, reason, mins); target.GetUser().BanPlayer(admin, reason, mins);
} }
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip, ~r~Marker, Ped, Pickup, TextLabel, ~g~Vehicle, FVehicle")]
public void CmdAdminSave(Client player, string typ)
{
switch (typ)
{
case "Blip":
player.TriggerEvent("saveBlip");
break;
case "FVehicle":
if (player.IsInVehicle)
{
if(player.GetUser().FactionId == null)
{
player.SendChatMessage("~m~Du bist in keiner Fraktion! Invite dich erst mit ~y~/ainvite");
return;
}
else
{
Vehicle vehicle = player.Vehicle;
SaveData.SaveFactionVehicleData((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), player.GetUser().FactionId);
}
}
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
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;
}
}
[Command("unban", "~m~Benutzung: ~s~/unban [Name] ", GreedyArg = true)] [Command("unban", "~m~Benutzung: ~s~/unban [Name] ", GreedyArg = true)]
public void CmdAdminUnban(Client admin, string userName) public void CmdAdminUnban(Client admin, string userName)
{ {

View File

@@ -0,0 +1,41 @@
using GTANetworkAPI;
using reallife_gamemode.Server.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
/**
* @overview Life of German Reallife - Entities FactionVehicles (FactionVehicle.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Entities
{
public class FactionVehicle
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[ForeignKey("Faction")]
public int? FactionId { get; set; }
public Faction Faction { 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; }
}
}

View File

@@ -35,13 +35,20 @@ namespace reallife_gamemode.Server.Events
using (var saveUser = new Model.DatabaseContext()) using (var saveUser = new Model.DatabaseContext())
{ {
var user = saveUser.Users.SingleOrDefault(u => u.Name == player.Name); var user = player.GetUser(saveUser);
if(user == null)
{
return;
}
else
{
user.PositionX = player.Position.X; user.PositionX = player.Position.X;
user.PositionY = player.Position.Y; user.PositionY = player.Position.Y;
user.PositionZ = player.Position.Z; user.PositionZ = player.Position.Z;
saveUser.SaveChanges(); saveUser.SaveChanges();
} }
}
player.SetData("isLoggedIn", false); player.SetData("isLoggedIn", false);
} }
} }

View File

@@ -42,12 +42,12 @@ namespace reallife_gamemode.Server.Events
else else
{ {
player.TriggerEvent("loginSuccess"); player.TriggerEvent("loginSuccess");
NAPI.Player.SpawnPlayer(player, Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING); NAPI.Player.SpawnPlayer(player, new Vector3(user.PositionX, user.PositionY, user.PositionZ), 0);
player.SetData("isLoggedIn", true); player.SetData("isLoggedIn", true);
player.SetData("spec", true); player.SetData("spec", true);
player.TriggerEvent("draw", player.Name, player.Handle.Value); player.TriggerEvent("draw", player.Name, player.Handle.Value);
player.Position = new Vector3(user.PositionX, user.PositionY, user.PositionZ); //player.Position = new Vector3(user.PositionX, user.PositionY, user.PositionZ);
} }
} }
} }

View File

@@ -73,6 +73,30 @@ namespace reallife_gamemode.Server.Events
saveData.SaveChanges(); saveData.SaveChanges();
} }
} }
public static void SaveFactionVehicleData(VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, byte vehicleDimension, int? factionId)
{
using (var saveData = new Model.DatabaseContext())
{
var dataSet = new Entities.FactionVehicle
{
Model = vehicleModel,
FactionId = factionId,
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.FactionVehicles.Add(dataSet);
saveData.SaveChanges();
}
}
} }
} }

View File

@@ -20,7 +20,6 @@ namespace reallife_gamemode.Server.Managers
{ {
using (var loadData = new DatabaseContext()) using (var loadData = new DatabaseContext())
{ {
//LOAD ALL BLIPS
foreach (Saves.SavedBlip b in loadData.Blips) foreach (Saves.SavedBlip b in loadData.Blips)
{ {
if(b.Active == true) if(b.Active == true)
@@ -29,7 +28,6 @@ namespace reallife_gamemode.Server.Managers
b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension); b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension);
} }
} }
//LOAD ALL VEHICLES
foreach (Saves.SavedVehicle v in loadData.Vehicles) foreach (Saves.SavedVehicle v in loadData.Vehicles)
{ {
if (v.Active == true) if (v.Active == true)
@@ -38,6 +36,14 @@ namespace reallife_gamemode.Server.Managers
v.SecondaryColor, v.NumberPlate, v.Alpha, v.Locked, v.Engine = false, v.Dimension); v.SecondaryColor, v.NumberPlate, v.Alpha, v.Locked, v.Engine = false, v.Dimension);
} }
} }
foreach (FactionVehicle v in loadData.FactionVehicles)
{
if (v.Active == true)
{
NAPI.Vehicle.CreateVehicle((uint)v.Model, new Vector3(v.PositionX, v.PositionY, v.PositionZ), v.Heading, (v.PrimaryColor),
v.SecondaryColor, v.NumberPlate, v.Alpha, v.Locked, v.Engine = false, v.Dimension);
}
}
} }
} }
} }