Merge branch 'feature/doormanager' into develop
This commit is contained in:
5
Client/DoorManager/doormanager.js
Normal file
5
Client/DoorManager/doormanager.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
mp.events.add('changeDoorState', (doorHash, x, y, z, locked, p5, p6, p7) => {
|
||||||
|
locked === 1 ? locked = true : locked = false;
|
||||||
|
|
||||||
|
mp.game.object.doorControl(doorHash, x, y, z, locked, p5, p6, p7);
|
||||||
|
});
|
||||||
@@ -35,6 +35,11 @@ mp.keys.bind(0x49, false, function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//L
|
||||||
|
mp.keys.bind(0x4C, false, function () {
|
||||||
|
mp.events.callRemote("ChangeDoorState");
|
||||||
|
});
|
||||||
|
|
||||||
//N
|
//N
|
||||||
mp.keys.bind(0x4E, false, function () {
|
mp.keys.bind(0x4E, false, function () {
|
||||||
if (!chat) {
|
if (!chat) {
|
||||||
|
|||||||
@@ -11,19 +11,21 @@ let globalData = {
|
|||||||
|
|
||||||
require('./CharCreator/index.js');
|
require('./CharCreator/index.js');
|
||||||
|
|
||||||
require('./Login/main.js');
|
require('./FactionManagement/main.js');
|
||||||
|
|
||||||
require('./Save/main.js');
|
require('./DoorManager/doormanager.js');
|
||||||
|
|
||||||
require('./Gui/deathscreen.js');
|
require('./Gui/deathscreen.js');
|
||||||
require('./Gui/infobox.js');
|
require('./Gui/infobox.js');
|
||||||
require('./Gui/nametags.js');
|
require('./Gui/nametags.js');
|
||||||
require('./Gui/playerlist.js');
|
require('./Gui/playerlist.js');
|
||||||
|
|
||||||
|
require('./Login/main.js');
|
||||||
|
|
||||||
require('./Player/keys.js');
|
require('./Player/keys.js');
|
||||||
|
|
||||||
require('./FactionManagement/main.js');
|
require('./Save/main.js');
|
||||||
|
|
||||||
|
require('./Speedometer/index.js');
|
||||||
|
|
||||||
require('./Tuning/main.js');
|
require('./Tuning/main.js');
|
||||||
|
|
||||||
require('./Speedometer/index.js');
|
|
||||||
1
Main.cs
1
Main.cs
@@ -29,6 +29,7 @@ namespace reallife_gamemode
|
|||||||
NAPI.Server.SetAutoSpawnOnConnect(false);
|
NAPI.Server.SetAutoSpawnOnConnect(false);
|
||||||
NAPI.Server.SetAutoRespawnAfterDeath(false);
|
NAPI.Server.SetAutoRespawnAfterDeath(false);
|
||||||
NAPI.Data.SetWorldData("playerCreatorDimension", 0);
|
NAPI.Data.SetWorldData("playerCreatorDimension", 0);
|
||||||
|
NAPI.Data.SetWorldData("policeDoors", false);
|
||||||
|
|
||||||
TuningManager.AddTuningGarage(new Vector3(-341, -134, 38.5));
|
TuningManager.AddTuningGarage(new Vector3(-341, -134, 38.5));
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ namespace reallife_gamemode.Model
|
|||||||
|
|
||||||
//Saves
|
//Saves
|
||||||
public DbSet<Server.Saves.SavedBlip> Blips { get; set; }
|
public DbSet<Server.Saves.SavedBlip> Blips { get; set; }
|
||||||
|
public DbSet<Server.Entities.Door> Doors { get; set; }
|
||||||
public DbSet<Server.Entities.GotoPoint> GotoPoints { get; set; }
|
public DbSet<Server.Entities.GotoPoint> GotoPoints { get; set; }
|
||||||
public DbSet<Server.Saves.SavedMarker> Markers { get; set; }
|
public DbSet<Server.Saves.SavedMarker> Markers { get; set; }
|
||||||
public DbSet<Server.Saves.SavedPed> Peds { get; set; }
|
public DbSet<Server.Saves.SavedPed> Peds { get; set; }
|
||||||
|
|||||||
33
Server/Entities/Door.cs
Normal file
33
Server/Entities/Door.cs
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Numerics;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @overview Life of German Reallife - Entities Door (Door.cs)
|
||||||
|
* @author VegaZ
|
||||||
|
* @copyright (c) 2008 - 2018 Life of German
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace reallife_gamemode.Server.Entities
|
||||||
|
{
|
||||||
|
public class Door
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Category { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public bool Locked { get; set; }
|
||||||
|
public int Model { get; set; }
|
||||||
|
public float X { get; set; }
|
||||||
|
public float Y { get; set; }
|
||||||
|
public float Z { get; set; }
|
||||||
|
public float Radius { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey("FactionId")]
|
||||||
|
public int? FactionId { get; set; }
|
||||||
|
public Faction Faction { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
52
Server/Managers/DoorManager.cs
Normal file
52
Server/Managers/DoorManager.cs
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using GTANetworkAPI;
|
||||||
|
using reallife_gamemode.Model;
|
||||||
|
using reallife_gamemode.Server.Entities;
|
||||||
|
using reallife_gamemode.Server.Extensions;
|
||||||
|
using reallife_gamemode.Server.Util;
|
||||||
|
/**
|
||||||
|
* @overview Life of German Reallife - Managers BankManager (BankManager.cs)
|
||||||
|
* @author VegaZ
|
||||||
|
* @copyright (c) 2008 - 2018 Life of German
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace reallife_gamemode.Server.Managers
|
||||||
|
{
|
||||||
|
public class DoorManager : Script
|
||||||
|
{
|
||||||
|
[RemoteEvent("ChangeDoorState")]
|
||||||
|
public void ChangeDoorState(Client player)
|
||||||
|
{
|
||||||
|
List<Door> NearDoors = new List<Door>();
|
||||||
|
var user = player.GetUser();
|
||||||
|
|
||||||
|
using (var saveDoor = new DatabaseContext())
|
||||||
|
{
|
||||||
|
NearDoors = saveDoor.Doors.ToList().FindAll(d => new Vector3(d.X, d.Y, d.Z).DistanceTo(player.Position) <= d.Radius);
|
||||||
|
foreach (Door d in NearDoors)
|
||||||
|
{
|
||||||
|
Door currentDoor = saveDoor.Doors.FirstOrDefault(c => c.Id == d.Id);
|
||||||
|
|
||||||
|
if(!user.IsAdmin(AdminLevel.ADMIN) && (d.FactionId != user.FactionId || d.FactionId == null))
|
||||||
|
{
|
||||||
|
string lockState = "~r~Du hast kein Recht diese T\u00fcr " + (d.Locked == true ? "auf" : "ab") + "zuschlie\u00dfen!";
|
||||||
|
player.SendNotification(lockState, false);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentDoor.Locked = !currentDoor.Locked;
|
||||||
|
|
||||||
|
string notStr = d.Name + " " + (d.Locked == false ? "auf" : "ab") + "geschlossen";
|
||||||
|
|
||||||
|
player.SendNotification(notStr, false);
|
||||||
|
|
||||||
|
NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, (currentDoor.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f));
|
||||||
|
}
|
||||||
|
saveDoor.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,7 +20,6 @@ namespace reallife_gamemode.Server.Managers
|
|||||||
public static List<Vehicle> ShopVehicleList = new List<Vehicle>();
|
public static List<Vehicle> ShopVehicleList = new List<Vehicle>();
|
||||||
public static List<Vehicle> UserVehicleList = new List<Vehicle>();
|
public static List<Vehicle> UserVehicleList = new List<Vehicle>();
|
||||||
|
|
||||||
|
|
||||||
[ServerEvent(Event.ResourceStart)]
|
[ServerEvent(Event.ResourceStart)]
|
||||||
public void OnResourceStart()
|
public void OnResourceStart()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user