Files
reallife-gamemode/Server/Events/Key.cs
2018-11-14 19:00:31 +01:00

147 lines
5.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
using Newtonsoft.Json;
using reallife_gamemode.Server.Extensions;
using reallife_gamemode.Server.Managers;
using reallife_gamemode.Server.Saves;
using reallife_gamemode.Server.Services;
using reallife_gamemode.Server.Util;
/**
* @overview Life of German Reallife - Event Key (Key.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Events
{
public class Key : Script
{
[RemoteEvent("keyPress:NUM2")]
public void KeyPressNUM2(Client player)
{
if(player.GetData("editmode") == true && player.GetUser().IsAdmin(AdminLevel.HEADADMIN) == true)
{
TempBlip tempBlip = NAPI.Data.GetWorldData("blipTemplate");
SaveManager.OnSaveBlipData(player, tempBlip.Sprite.ToString(), tempBlip.Name, tempBlip.Scale.ToString(), tempBlip.Color.ToString(),
tempBlip.Transparency.ToString(), 200.ToString(), tempBlip.ShortRange.ToString(), 0.ToString(), 0.ToString());
player.SendNotification("~y~Blip~s~ erstellt!", false);
}
}
[RemoteEvent("keyPress:E")]
public void KeyPressE(Client player)
{
var user = player.GetUser();
if (user?.FactionId != null)
{
DutyPoint nearest = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5);
if (nearest == null) return;
if (player.Position.DistanceTo(nearest.Position) <= 1.5 && nearest.FactionId == user.FactionId)
{
var nameTagColor = new Color(0, 0, 0);
var factionId = user.FactionId;
if (player.GetData("duty") == false)
{
player.SetData("duty", true);
player.SendNotification("Du bist nun ~g~im Dienst.");
if (player.GetUser().FactionId == 2) //Fire Department
{
NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", true);
}
switch (factionId)
{
//LSPD
case 1:
nameTagColor = new Color(28, 134, 238);
break;
}
player.NametagColor = nameTagColor;
}
else
{
player.SetData("duty", false);
player.SendNotification("Du bist nun ~r~außer Dienst.");
NAPI.ClientEvent.TriggerClientEventForAll("updateDutyMedics", false);
player.NametagColor = new Color(255, 255, 255);
}
}
}
}
[RemoteEvent("keyPress:I")]
public void KeyPressI(Client player)
{
List<Client> players = NAPI.Pools.GetAllPlayers();
List<ListPlayer> ListPlayers = new List<ListPlayer>();
foreach(Client listPlayer in players)
{
var lPlayer = new ListPlayer();
lPlayer.Id = listPlayer.Handle.Value;
lPlayer.Name = listPlayer.Name;
lPlayer.Ping = listPlayer.Ping;
ListPlayers.Add(lPlayer);
}
player.TriggerEvent("fetchPlayerList", JsonConvert.SerializeObject(ListPlayers));
}
[RemoteEvent("keyPress:K")]
public void KeyPressK(Client player)
{
var user = player.GetUser();
if (user?.FactionId != null)
{
DutyPoint nearest = PositionManager.DutyPoints.Find(d => d.Position.DistanceTo(player.Position) <= 1.5);
if (nearest == null) return;
if (player.Position.DistanceTo(nearest.Position) <= 1.5 && nearest.FactionId == user.FactionId)
{
int[] hats;
int[] tops;
int[] legs;
int[] shoes;
if(user.GetCharacter().Gender == false) //Wenn männlich
{
hats = new int[] { -1, 5, 12, 39, 46, 123, 124, 125};
tops = new int[] { -1, 55, 26};
legs = new int[] { -1, 24, 28 };
shoes = new int[] { -1, 24, 25};
}
else
{
hats = new int[] { -1, 12, 38, 45, 122, 123, 124 };
tops = new int[] { -1, 48, 43 };
legs = new int[] { -1, 34, 37, 102 };
shoes = new int[] { -1, 24, 25 };
}
player.TriggerEvent("showDutyClothMenu", hats, tops, legs, shoes);
}
}
}
[RemoteEvent("keyPress:L")]
public void KeyPressL(Client player)
{
DoorManager.ChangeDoorState(player);
}
[RemoteEvent("keyPress:N")]
public void KeyPressN(Client player)
{
if (player.IsInVehicle && player.VehicleSeat == -1)
{
player.Vehicle.EngineStatus = !player.Vehicle.EngineStatus;
}
}
[RemoteEvent("keyPress:X")]
public void KeyPressX(Client player)
{
if (player.IsInVehicle)
{
player.Seatbelt = !player.Seatbelt;
}
}
}
}