added some admin commands

This commit is contained in:
2018-09-24 21:25:10 +02:00
48 changed files with 1465 additions and 124 deletions

View File

@@ -2,13 +2,18 @@
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;
/**
* @overview Life of German Reallife - Admin Commands (Admin.cs)
<<<<<<< HEAD
* @author VegaZ, hydrant, balbo
=======
* @author VegaZ, hydrant, xSprite
>>>>>>> 5e0e0d82f2d05dda2954836a69347d4433839f85
* @copyright (c) 2008 - 2018 Life of German
*/
@@ -19,6 +24,11 @@ namespace reallife_gamemode.Server.Commands
[Command("o", "~m~Benutzung: ~s~/o [Nachricht]", GreedyArg = true)]
public void CmdAdminO(Client player, string message)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
@@ -32,6 +42,11 @@ namespace reallife_gamemode.Server.Commands
[Command("veh", "~m~Benutzung: ~s~/veh [Fahrzeug] (Farbe 1) (Farbe 2)")]
public void CmdAdminVeh(Client player, VehicleHash hash, int color1 = 111, int color2 = 111)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
@@ -47,18 +62,24 @@ namespace reallife_gamemode.Server.Commands
Vehicle v = NAPI.Vehicle.CreateVehicle(hash, player.Position, player.Rotation.Z, color1, color2);
player.SetIntoVehicle(v.Handle, -1);
player.SendChatMessage("Maxspeed: + " +player.Vehicle.MaxSpeed + "");
}
[Command("fixveh")]
[Command("fv")]
public void CmdAdminFixveh(Client player)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
if (!player.IsInVehicle) // Man darf keine Autos erstellen, wenn man selbst in einem sitzt (verhindert Bugs)
if (!player.IsInVehicle)
{
player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan nicht in einem Fahrzeug.");
return;
@@ -67,9 +88,14 @@ namespace reallife_gamemode.Server.Commands
player.Vehicle.Repair();
}
[Command("delveh")]
[Command("vdestroy")]
public void CmdAdminDelveh(Client player)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
@@ -88,9 +114,14 @@ namespace reallife_gamemode.Server.Commands
player.Vehicle.Delete();
}
[Command("goto", "~m~Benutzung: ~s~/goto [Name]")]
[Command("to", "~m~Benutzung: ~s~/to [Name]")]
public void CmdAdminGoto(Client player, string name)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
@@ -108,9 +139,31 @@ namespace reallife_gamemode.Server.Commands
player.Position = target.Position;
}
[Command("gotoxyz", "~m~Benutzung: ~s~/gotoxyz [X] [Y] [Z]")]
[Command("position")]
public void CmdAdminShowPos(Client player)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
player.SendChatMessage("Position: X Y Z: " + player.Position + "");
}
[Command("gotox", "~m~Benutzung: ~s~/gotox [X] [Y] [Z]")]
public void CmdAdminGotoxyz(Client player, float x, float y, float z)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
@@ -120,9 +173,14 @@ namespace reallife_gamemode.Server.Commands
player.Position = new Vector3(x, y, z);
}
[Command("gethere", "~m~Benutzung: ~s~/goto [Name]")]
[Command("gh", "~m~Benutzung: ~s~/gh [Name]")]
public void CmdAdminGethere(Client player, string name)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
@@ -138,11 +196,17 @@ namespace reallife_gamemode.Server.Commands
}
target.Position = player.Position;
target.SendChatMessage("Du wurdest von " + player.Name + " teleportiert.");
}
[Command("ipl", "~m~Benutzung: ~s~/ipl [Load / Remove] [Name]")]
public void CmdAdminIpl(Client player, string option, string name)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
@@ -170,6 +234,11 @@ namespace reallife_gamemode.Server.Commands
[Command("giveweapon", "~m~Benutzung: ~s~/giveweapon [Spieler] [Waffe] [Munition]")]
public void CmdAdminGiveweapon(Client player, string name, string weapon, int ammo)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
@@ -185,7 +254,7 @@ namespace reallife_gamemode.Server.Commands
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(target);
ChatService.PlayerNotFound(player);
return;
}
@@ -198,6 +267,296 @@ namespace reallife_gamemode.Server.Commands
}
target.GiveWeapon(wHash, ammo);
target.SendChatMessage("~b~Du hast von " +player.Name +" eine/n " + wHash + " mit einer Munition von " +ammo + " erhalten.");
player.SendChatMessage("~b~Du hast " + target.Name + " eine/n " + wHash + " mit einer Munition von " + ammo + " gegeben.");
}
[Command("sethp", "~m~Benutzung: ~s~/sethp [Spieler] (Leben)")]
public void CmdAdminSetHp(Client player, string name, int hp = 100)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(player);
return;
}
target.Health = hp;
target.SendChatMessage("~b~Dein Leben wurde von " + player.Name + " auf " + hp + " gesetzt.");
player.SendChatMessage("~b~Du hast das Leben von " + target.Name + " auf " + hp + " gesetzt.");
}
[Command("setarmor", "~m~Benutzung: ~s~/setarmor [Spieler] (Armor)")]
public void CmdAdminSetArmor(Client player, string name, int armor = 100)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(player);
return;
}
target.Armor = armor;
target.SendChatMessage("~b~Deine Rüstung wurde von " + player.Name + " auf " + armor + " gesetzt.");
player.SendChatMessage("~b~Du hast die Rüstung von " + target.Name + " auf " + armor + " gesetzt.");
}
[Command("setskin", "~m~Benutzung: ~s~/setskin [Spieler] [Skin]")]
public void CmdAdminSetSkin(Client player, string name, string Skin)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(player);
return;
}
var skin = NAPI.Util.PedNameToModel(Skin);
target.SendChatMessage("~b~Dein Skin wurde von " + player.Name + " zu " + skin + " gesetzt.");
player.SendChatMessage("~b~Du hast den Skin von " + target.Name + " zu " + skin + " gesetzt.");
target.SetSkin(NAPI.Util.PedNameToModel(Skin));
}
[Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")]
public void CmdAdminColor(Client player, int color1, int color2)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
if (!player.IsInVehicle)
{
player.SendChatMessage("~r~[FEHLER]~s~ Du sitzt momentan in keinem Fahrzeug!");
return;
}
player.Vehicle.PrimaryColor = color1;
player.Vehicle.SecondaryColor = color2;
player.SendChatMessage("Farb-ID1 " + color1 + ", Farb-ID2 " + color2 + "");
}
[Command("aw", "~m~Benutzung: ~s~/aw [Spieler] [Nachricht]")]
public void CmdAdminMsg(Client player, string name, string msg)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(player);
return;
}
if (target == player)
{
ChatService.ErrorMsg(player);
return;
}
target.SendChatMessage("~y~PM von "+ player.Name + ": " + msg +" ");
player.SendChatMessage("~y~PM an "+ target.Name + ": " + msg + " ");
}
[Command("takeweapon", "~m~Benutzung: ~s~/takeweapon [Spieler]")]
public void CmdAdminTakeWeapon(Client player, string name)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(name);
if (target == null)
{
ChatService.PlayerNotFound(player);
return;
}
player.RemoveAllWeapons();
target.SendChatMessage("~b~Deine Waffen wurden dir von " + player.Name + "(Admin) abgenommen");
player.SendChatMessage("~b~Dem Spieler " + target.Name + " wurden erfolgreich alle Waffen abgenommen ");
}
[Command("rsethp", "~m~Benutzung: ~s~/rsethp [Radius] (Leben)")]
public void CmdAdminRangeSetHP(Client player, float radius, int hp = 100)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player);
foreach (var managedClient in peopleInRange)
{
managedClient.Health = hp;
managedClient.SendChatMessage("~b~Admin "+ player.Name + " hat im Radius von " + radius + " die HP auf " + hp + " gesetzt.");
}
player.SendChatMessage("~b~Das Leben von " + peopleInRange.Count + " Spielern wurde auf "+ hp + " gesetzt.");
}
[Command("rsetarmor", "~m~Benutzung: ~s~/rsetarmor [Radius] (Armor)")]
public void CmdAdminRangeSetArmor(Client player, float radius, int Armor = 100)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player);
foreach (var managedClient in peopleInRange)
{
managedClient.Health = Armor;
managedClient.SendChatMessage("~b~Admin " + player.Name + " hat im Radius von " + radius + " die Rüstung auf " + Armor + " gesetzt.");
}
player.SendChatMessage("~b~Die Rüstung von " + peopleInRange.Count + " Spielern wurde auf " + Armor + " gesetzt.");
}
[Command("time", "~m~Benutzung: ~s~/time [Stunde] (Minuten) (Sekunden)")]
public void CmdAdminSetTime(Client player, int hour, int min = 0, int sec = 0)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
NAPI.World.SetTime(hour, min, sec);
NAPI.Chat.SendChatMessageToAll("Serverzeit auf " + hour + ":" + min + ":" + sec + " gestellt");
}
[Command("val")]
public void Val(Client player)
{
NAPI.Chat.SendChatMessageToAll("Value of " + player.Name + ": " + player.Handle.Value);
}
[Command("rgiveweapon", "~m~Benutzung: ~s~/rgiveweapon [Radius] [Waffe] [Munition]")]
public void CmdAdminRangeGiveWeapon(Client player, float radius, string weapon, int munition)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
WeaponHash wHash = NAPI.Util.WeaponNameToModel(weapon);
if (wHash == default(WeaponHash))
{
player.SendChatMessage("~r~[FEHLER]~s~ Diese Waffe existiert nicht.");
return;
}
var peopleInRange = NAPI.Player.GetPlayersInRadiusOfPlayer(radius, player);
foreach (var managedClient in peopleInRange)
{
managedClient.GiveWeapon(wHash, munition);
managedClient.SendChatMessage("~b~Admin " +player.Name + " hat im Radius von " + radius + " eine/n " + weapon +" mit " + munition +" Munition vergeben.");
}
player.SendChatMessage("~b~Du hast " + peopleInRange.Count +" Spielern eine " + weapon + " mit " + munition + " Munition gegeben");
}
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip, ~r~Marker, Ped, Pickup, TextLabel, ~g~Vehicle")]
public void CmdAdminSave(Client player, string typ)
{
if (ClientExtension.IsLoggedIn(player) == false)
{
ChatService.PlayerNotLoggedIn(player);
return;
}
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
switch (typ)
{
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("a", "~m~Benutzung: ~s~/a [Nachricht]")]

View File

@@ -25,7 +25,8 @@ namespace reallife_gamemode.Server.Entities
[StringLength(64)]
public string Password { get; set; }
public int LogUserId { get; set; }
public DateTime RegistrationDate { get; set; }
[Timestamp]
public byte[] RegistrationDate { get; set; }
[EmailAddress]
[StringLength(64)]
public string Email { get; set; }

View File

@@ -20,7 +20,9 @@ namespace reallife_gamemode.Server.Events
[ServerEvent(Event.PlayerConnected)]
public void OnPlayerConnected(Client player)
{
player.SetData("isLoggedIn", false);
player.Position = new Vector3(-1883.736, -781.4911, -10);
player.FreezePosition = true;
}
}

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
/**
* @overview Life of German Reallife - Event Login (Login.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Events
{
class Disconnect : Script
{
[ServerEvent(Event.PlayerDisconnected)]
public void OnPlayerDisconnected(Client player)
{
player.SetData("isLoggedIn", false);
}
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GTANetworkAPI;
@@ -14,15 +15,38 @@ namespace reallife_gamemode.Server.Events
public class Login : Script
{
[RemoteEvent("OnPlayerLogin")]
public void OnPlayerLogin(Client player, string username, string password)
public void OnPlayerLogin(Client player, string password)
{
}
using (var loginUser = new Model.DatabaseContext())
{
var user = loginUser.Users.SingleOrDefault(b => b.Name == player.Name);
[RemoteEvent("OnPlayerRegister")]
public void OnPlayerRegister(Client player, string username, string password)
{
}
}
if(user == null)
{
player.TriggerEvent("loginFail", "Benutzer existiert nicht! Registriere dich zuerst!");
}
else
{
if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password))
{
player.TriggerEvent("loginDeny", "Dieser Benutzer gehört dir nicht!");
//Log einbauen für den bösen Bub.
player.Kick();
}
if (user.Password != NAPI.Util.GetHashSha256(password))
{
player.TriggerEvent("loginFail", "Passwort inkorrekt!");
}
else
{
player.TriggerEvent("loginSuccess");
NAPI.Player.SpawnPlayer(player, Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING);
player.SetData("isLoggedIn", true);
player.TriggerEvent("draw");
}
}
}
}
}
}

45
Server/Events/Register.cs Normal file
View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GTANetworkAPI;
/**
* @overview Life of German Reallife - Event Register (Register.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Events
{
class Register : Script
{
[RemoteEvent("OnPlayerRegister")]
public void OnPlayerRegister(Client player, string password)
{
using (var checkUser = new Model.DatabaseContext())
{
var checkedUser = checkUser.Users.SingleOrDefault(b => b.Name == player.Name);
if (checkedUser == null)
{
using (var registerUser = new Model.DatabaseContext())
{
var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) };
registerUser.Users.Add(user);
registerUser.SaveChanges();
}
player.TriggerEvent("registerSuccess");
NAPI.Player.SpawnPlayer(player, Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING);
}
else if (player.SocialClubName == checkedUser.SocialClubName)
{
player.TriggerEvent("registerFail", "Dieser SocialClubAccount ist schon registriert!");
}
else if (checkedUser.Name == player.Name)
{
player.TriggerEvent("registerFail", "Benutzername existiert schon!");
}
}
}
}
}

78
Server/Events/SaveData.cs Normal file
View File

@@ -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();
}
}
}
}

View File

@@ -20,7 +20,6 @@ namespace reallife_gamemode.Server.Events
[ServerEvent(Event.PlayerSpawn)]
public void OnPlayerSpawn(Client player)
{
}
}
}

View File

@@ -23,5 +23,10 @@ namespace reallife_gamemode.Server.Extensions
return dbContext.Users.FirstOrDefault(u => u.Name == client.Name);
}
}
public static bool IsLoggedIn(Client player)
{
return player.GetData("isLoggedIn");
}
}
}

View File

@@ -0,0 +1,44 @@
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()
{
using (var loadData = new DatabaseContext())
{
//LOAD ALL BLIPS
foreach (Saves.SavedBlip b in loadData.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
foreach (Saves.SavedVehicle v in loadData.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);
}
}
}
}
}
}

38
Server/Saves/SavedBlip.cs Normal file
View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

28
Server/Saves/SavedPed.cs Normal file
View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -5,7 +5,7 @@ using System.Text;
/**
* @overview Life of German Reallife - Chat Service (ChatService.cs)
* @author hydrant
* @author hydrant, xSprite
* @copyright (c) 2008 - 2018 Life of German
*/
@@ -22,5 +22,14 @@ namespace reallife_gamemode.Server.Services
{
player.SendChatMessage("~r~[FEHLER]~s~ Der Spieler wurde nicht gefunden.");
}
public static void PlayerNotLoggedIn(Client player)
{
player.SendChatMessage("~r~[FEHLER]~s~ Du bist nicht eingeloggt.");
}
public static void ErrorMsg(Client player)
{
player.SendChatMessage("~r~[FEHLER]~s~ Die Aktion wurde nicht ausgeführt.");
}
}
}

View File

@@ -12,8 +12,6 @@ namespace reallife_gamemode.Server.Util
{
public enum AdminLevel : int
{
PLAYER,
SUPPORTER,
ADMIN