add job menu and start job
This commit is contained in:
@@ -300,6 +300,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ALevel1
|
||||
[Command("a", "~m~Benutzung: ~s~/a [Nachricht]", GreedyArg = true)]
|
||||
public void CmdAdminA(Client player, string message)
|
||||
@@ -1050,8 +1051,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
WeaponHash weaponHash = (WeaponHash)uHash;
|
||||
|
||||
target.GiveWeapon((WeaponHash)uHash, ammo);
|
||||
target.SendChatMessage("~b~Du hast von " + player.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " erhalten.");
|
||||
player.SendChatMessage("~b~Du hast " + target.Name + " eine/n " + hash + " mit einer Munition von " + ammo + " gegeben.");
|
||||
@@ -2394,10 +2393,9 @@ namespace ReallifeGamemode.Server.Commands
|
||||
DoorManager.ReloadDoors();
|
||||
player.SendChatMessage("~b~[ADMIN]~s~ Die Türen wurden erfolgreich neugeladen.");
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region ALevel1338
|
||||
|
||||
#region ALevel1338
|
||||
[Command("whitelist", "~m~Benutzung: ~s~/whitelist [Add / Remove] [Socialclub Name]")]
|
||||
public void CmdAdminWhitelist(Client player, string option, string scName)
|
||||
{
|
||||
@@ -2478,8 +2476,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
player.SendChatMessage("Du hast " + target.Name + " auf Adminlevel " + target.GetUser().AdminLevel.GetName() + ":(" + rank + ") gesetzt.");
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
16
ReallifeGamemode.Server/Extensions/ListExtensions.cs
Normal file
16
ReallifeGamemode.Server/Extensions/ListExtensions.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using GTANetworkAPI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
static class ListExtensions
|
||||
{
|
||||
public static bool Contains(this List<Client> list, Client client)
|
||||
{
|
||||
return list.Any(l => l.Handle.Value == client.Handle.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Server.Entities;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Models;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -22,21 +24,31 @@ namespace ReallifeGamemode.Server.Job
|
||||
|
||||
public abstract string Name { get; }
|
||||
|
||||
public abstract bool NeedVehicleToStart { get; }
|
||||
|
||||
public void StartJob(Client player)
|
||||
{
|
||||
_inJob.Add(player);
|
||||
JobStart();
|
||||
|
||||
if (NeedVehicleToStart && !GetJobVehicles().Any(v => VehicleManager.GetVehicleFromServerVehicle(v).Handle.Value == player.Vehicle?.Handle.Value))
|
||||
{
|
||||
ChatService.Error(player, "Zum Start dieses Jobs musst du in einem Jobfahrzeug sein");
|
||||
return;
|
||||
}
|
||||
|
||||
JobStart?.Invoke();
|
||||
}
|
||||
|
||||
public void StopJob(Client player)
|
||||
{
|
||||
_inJob.Remove(player);
|
||||
JobStop();
|
||||
|
||||
JobStop?.Invoke();
|
||||
}
|
||||
|
||||
public List<JobVehicle> GetJobVehicles()
|
||||
{
|
||||
using(var dbContext = new DatabaseContext())
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
return dbContext.JobVehicles.Where(j => j.JobId == Id).ToList();
|
||||
}
|
||||
|
||||
@@ -9,5 +9,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
public override int Id => 3;
|
||||
|
||||
public override string Name => "Pilot";
|
||||
|
||||
public override bool NeedVehicleToStart => true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,5 +9,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
public override int Id => 2;
|
||||
|
||||
public override string Name => "Müllmann";
|
||||
|
||||
public override bool NeedVehicleToStart => true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,7 @@ namespace ReallifeGamemode.Server.Job
|
||||
public override int Id => 1;
|
||||
|
||||
public override string Name => "Taxifahrer";
|
||||
|
||||
public override bool NeedVehicleToStart => true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,5 +96,35 @@ namespace ReallifeGamemode.Server.Managers
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:JobManager_ShowJobMenu")]
|
||||
public void ShowJobMenuEvent(Client player)
|
||||
{
|
||||
User u = player.GetUser();
|
||||
|
||||
if (u.JobId == null) return;
|
||||
|
||||
JobBase job = GetJob(u.JobId.Value);
|
||||
|
||||
player.TriggerEvent("SERVER:Job_ShowJobMenu", job.Name);
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:Job_StartJob")]
|
||||
public void StartJobEvent(Client player)
|
||||
{
|
||||
User u = player.GetUser();
|
||||
|
||||
if (u.JobId == null) return;
|
||||
|
||||
JobBase job = GetJob(u.JobId.Value);
|
||||
|
||||
if(job.GetUsersInJob().Contains(player))
|
||||
{
|
||||
ChatService.Error(player, "Du bist schon in deinem Job aktiv");
|
||||
return;
|
||||
}
|
||||
|
||||
job.StartJob(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user