Update 29.10.2022
This commit is contained in:
205
C#/Mosleys/Mosleys.Shared/Config.cs
Normal file
205
C#/Mosleys/Mosleys.Shared/Config.cs
Normal file
@@ -0,0 +1,205 @@
|
||||
using CitizenFX.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using CitizenFX.Core.Native;
|
||||
|
||||
namespace Mosleys.Shared {
|
||||
public sealed class Config {
|
||||
private sealed class SectionScript {
|
||||
private const char SplitChar = ' ';
|
||||
private const string SectionStart = "{";
|
||||
private const string SectionEnd = "}";
|
||||
private const string CommentPrefix = "//";
|
||||
private readonly string _fileName;
|
||||
|
||||
private readonly List<Tuple<string, Dictionary<string, string>>> _loadedData =
|
||||
new List<Tuple<string, Dictionary<string, string>>>();
|
||||
|
||||
private readonly List<string> _allSections = new List<string>();
|
||||
|
||||
public SectionScript(string fileName, bool load = false) {
|
||||
_fileName = fileName;
|
||||
if (!load)
|
||||
return;
|
||||
Read();
|
||||
}
|
||||
|
||||
public string this[string section, string key, string result = ""] =>
|
||||
GetValue(section, key, result);
|
||||
|
||||
public T GetValue<T>(string section, string key, T result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
try {
|
||||
return (T)Convert.ChangeType(data, typeof(T));
|
||||
}
|
||||
catch (InvalidCastException) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public Vector3 GetVector3(string section, string key, Vector3 result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
data = data.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
return new Vector3(data.Split(',').Select(Convert.ToSingle).ToArray());
|
||||
}
|
||||
|
||||
public Vector4 GetVector4(string section, string key, Vector4 result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
data = data.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
return new Vector4(data.Split(',').Select(Convert.ToSingle).ToArray());
|
||||
}
|
||||
|
||||
public int[] GetIntArray(string section, string key, int[] result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
data = data.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
return data.Split(',').Select(n => Convert.ToInt32(n)).ToArray();
|
||||
}
|
||||
|
||||
public Vector4[] GetVector4Array(string section) {
|
||||
List<Vector4> vectors = new List<Vector4>();
|
||||
|
||||
foreach (Tuple<string, Dictionary<string, string>> tuple in _loadedData) {
|
||||
if (!tuple.Item1.Equals(section)) continue;
|
||||
|
||||
foreach (var key in tuple.Item2.Values) {
|
||||
var data = key.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
var vector = new Vector4(data.Split(',').Select(Convert.ToSingle).ToArray());
|
||||
vectors.Add(vector);
|
||||
}
|
||||
}
|
||||
|
||||
return vectors.ToArray();
|
||||
}
|
||||
|
||||
public string GetData(string section, string key, string result) {
|
||||
foreach (Tuple<string, Dictionary<string, string>> tuple in _loadedData) {
|
||||
if (tuple.Item1.Equals(section))
|
||||
return tuple.Item2.ContainsKey(key) ? tuple.Item2[key] : result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool SectionExists(string section) => _allSections.Contains(section);
|
||||
|
||||
public void Read() {
|
||||
_loadedData.Clear();
|
||||
_allSections.Clear();
|
||||
string str1 = "";
|
||||
Dictionary<string, string> source = new Dictionary<string, string>();
|
||||
string str2 = API.LoadResourceFile(API.GetCurrentResourceName(), _fileName);
|
||||
char[] chArray = { '\n' };
|
||||
foreach (string str3 in str2.Split(chArray).Select(str => str.Trim())) {
|
||||
string text = str3.Replace("\r", "");
|
||||
if (!string.IsNullOrEmpty(text) && !string.IsNullOrWhiteSpace(text)) {
|
||||
if (text.StartsWith(SectionStart)) {
|
||||
str1 = text.Substring(1);
|
||||
if (text.EndsWith(SectionEnd) && !str1.Contains(SectionStart)) {
|
||||
str1 = str1.Remove(str1.Length - 1, 1);
|
||||
_loadedData.Add(
|
||||
new Tuple<string, Dictionary<string, string>>(str1,
|
||||
new Dictionary<string, string>()));
|
||||
if (!_allSections.Contains(str1))
|
||||
_allSections.Add(str1);
|
||||
source.Clear();
|
||||
}
|
||||
}
|
||||
else if (text.EndsWith(SectionEnd) || text.StartsWith(SectionEnd)) {
|
||||
Dictionary<string, string> dictionary =
|
||||
source.ToDictionary(
|
||||
entry => entry.Key,
|
||||
entry => entry.Value);
|
||||
_loadedData.Add(new Tuple<string, Dictionary<string, string>>(str1, dictionary));
|
||||
if (!_allSections.Contains(str1))
|
||||
_allSections.Add(str1);
|
||||
source.Clear();
|
||||
}
|
||||
else if (!text.StartsWith(CommentPrefix)) {
|
||||
Tuple<string, string> data = ConvertToData(text);
|
||||
if (!source.ContainsKey(data.Item1))
|
||||
source.Add(data.Item1, data.Item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Tuple<string, string> ConvertToData(string text) {
|
||||
int length = text.IndexOf(SplitChar);
|
||||
if (length == -1)
|
||||
return new Tuple<string, string>(text, "");
|
||||
string str = "";
|
||||
if (length - 1 < text.Length)
|
||||
str = text.Substring(length + 1, text.Length - length - 1);
|
||||
return new Tuple<string, string>(text.Substring(0, length), str);
|
||||
}
|
||||
}
|
||||
|
||||
public static Config LoadConfig() {
|
||||
var script = new SectionScript("settings.ini", true);
|
||||
|
||||
var config = new Config {
|
||||
Blip = new BlipConfig {
|
||||
Position = script.GetVector3("[Blip]", "Position", Vector3.Zero),
|
||||
Sprite = (BlipSprite)script.GetValue("[Blip]", "Sprite", 380),
|
||||
Color = (BlipColor)script.GetValue("[Blip]", "Color", 44),
|
||||
Scale = script.GetValue("[Blip]", "Scale", 1.0f)
|
||||
},
|
||||
MenuTitle = script.GetValue("[General]", "MenuTitle", "Mosley's"),
|
||||
ExhibitPrice = script.GetValue("[General]", "ExhibitPrice", 500),
|
||||
TestDriveTime = script.GetValue("[General]", "TestDriveTime", 90000),
|
||||
SpawnRadius = script.GetValue("[General]", "SpawnRadius", 100f),
|
||||
MinSellPrice = script.GetValue("[General]", "MinSellPrice", 1000),
|
||||
SellBill = script.GetValue("[General]", "SellBill", 0.1f),
|
||||
ForbiddenVehicleClasses =
|
||||
script.GetIntArray("[General]", "ForbiddenVehicleClasses", Array.Empty<int>()),
|
||||
SellLocation = script.GetVector3("[General]", "SellLocation", Vector3.Zero),
|
||||
SpawnLocation = script.GetVector4("[General]", "SpawnLocation", Vector4.Zero),
|
||||
TestDriveLocation = script.GetVector4("[General]", "TestDriveLocation", Vector4.Zero),
|
||||
DigitalShowPoint = script.GetVector3("[General]", "DigitalShowPoint", Vector3.Zero),
|
||||
DigitalCamera = script.GetVector4("[General]", "DigitalCamera", Vector4.Zero),
|
||||
CarSlots = script.GetVector4Array("[CarSlots]")
|
||||
};
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
public BlipConfig Blip;
|
||||
|
||||
public string MenuTitle;
|
||||
public int ExhibitPrice;
|
||||
public int TestDriveTime;
|
||||
public float SpawnRadius;
|
||||
public int MinSellPrice;
|
||||
public float SellBill;
|
||||
|
||||
public int[] ForbiddenVehicleClasses;
|
||||
|
||||
public Vector3 SellLocation;
|
||||
public Vector4 SpawnLocation;
|
||||
public Vector4 TestDriveLocation;
|
||||
public Vector3 DigitalShowPoint;
|
||||
public Vector4 DigitalCamera;
|
||||
|
||||
public Vector4[] CarSlots;
|
||||
}
|
||||
|
||||
public struct BlipConfig {
|
||||
public Vector3 Position;
|
||||
public BlipSprite Sprite;
|
||||
public BlipColor Color;
|
||||
public float Scale;
|
||||
}
|
||||
}
|
||||
17
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Game.Utils.cs
Normal file
17
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Game.Utils.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using CitizenFX.Core;
|
||||
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class Game
|
||||
{
|
||||
public static class Utils
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.Game.Utils;
|
||||
|
||||
public static void DrawText3D(Vector3 coords, string text, double size, dynamic font) => Raw.DrawText3D(coords, text, size, font);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
89
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Game.cs
Normal file
89
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Game.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using CitizenFX.Core;
|
||||
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class Game
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.Game;
|
||||
|
||||
public static void DeleteObject(string obj) => Raw.DeleteObject(obj);
|
||||
public static void DeleteVehicle(string vehicle) => Raw.DeleteVehicle(vehicle);
|
||||
public static dynamic GetClosestObject([Optional()] Vector3 coords, [Optional()] dynamic modelFilter) => Raw.GetClosestObject(coords, modelFilter);
|
||||
public static Ped GetClosestPed([Optional()] Vector3 coords, [Optional()] dynamic modelFilter) => new Ped(Raw.GetClosestPed(coords, modelFilter));
|
||||
public static Player GetClosestPlayer([Optional()] Vector3 coords) => new Player(Raw.GetClosestPlayer(coords));
|
||||
public static Vehicle GetClosestVehicle([Optional()] Vector3 coords, [Optional()] dynamic modelFilter) => new Vehicle(Raw.GetClosestVehicle(coords, modelFilter));
|
||||
public static dynamic GetObjects() => Raw.GetObjects();
|
||||
public static dynamic GetPedMugshot(string ped, bool transparent = true) => Raw.GetPedMugshot(ped, transparent);
|
||||
public static Vehicle GetVehicleInDirection() => new Vehicle(Raw.GetVehicleInDirection());
|
||||
public static VehicleProperties GetVehicleProperties(Vehicle vehicle) => new VehicleProperties(Raw.GetVehicleProperties(vehicle.Handle));
|
||||
public static VehicleProperties GetVehicleProperties(int vehicle) => new VehicleProperties(Raw.GetVehicleProperties(vehicle));
|
||||
public static bool IsSpawnPointClear([Optional()] Vector3 coords, double maxDistance) => Raw.IsSpawnPointClear(coords, maxDistance);
|
||||
public static void SetVehicleProperties(Vehicle vehicle, VehicleProperties properties) => Raw.SetVehicleProperties(vehicle.Handle, properties.GetRaw());
|
||||
public static void SpawnLocalObject(string hash, Vector3 coords, [Optional()] Action<int> callback) => Raw.SpawnLocalObject(hash, coords, callback);
|
||||
public static void SpawnLocalObject(int hash, Vector3 coords, [Optional()] Action<int> callback) => Raw.SpawnLocalObject(hash, coords, callback);
|
||||
public static void SpawnObject(string hash, Vector3 coords, [Optional()] Action<int> callback) => Raw.SpawnObject(hash, coords, callback);
|
||||
public static void SpawnObject(int hash, Vector3 coords, [Optional()] Action<int> callback) => Raw.SpawnObject(hash, coords, callback);
|
||||
public static void SpawnLocalVehicle(string hash, Vector3 coords, double heading, [Optional()] Action<int> callback) => Raw.SpawnLocalVehicle(hash, coords, heading, callback);
|
||||
public static void SpawnLocalVehicle(int hash, Vector3 coords, double heading, [Optional()] Action<int> callback) => Raw.SpawnLocalVehicle(hash, coords, heading, callback);
|
||||
public static void SpawnVehicle(string hash, Vector3 coords, double heading, [Optional()] Action<int> callback) => Raw.SpawnVehicle(hash, coords, heading, callback);
|
||||
public static void SpawnVehicle(int hash, Vector3 coords, double heading, [Optional()] Action<int> callback) => Raw.SpawnVehicle(hash, coords, heading, callback);
|
||||
public static void Teleport(string entity, Vector3 coords, [Optional()] Action callback) => Raw.Teleport(entity, coords, callback);
|
||||
|
||||
public static List<Ped> GetPeds([Optional()] bool onlyOtherPeds)
|
||||
{
|
||||
var data = Raw.GetPeds(onlyOtherPeds);
|
||||
List<Ped> peds = new List<Ped>();
|
||||
foreach (var i in data)
|
||||
peds.Add(new Ped(i));
|
||||
|
||||
return peds;
|
||||
}
|
||||
|
||||
public static List<Player> GetPlayers(bool onlyOtherPlayers = false, bool returnKeyValue = false, bool returnPeds = false)
|
||||
{
|
||||
var data = Raw.GetPlayers(onlyOtherPlayers, returnKeyValue, returnPeds);
|
||||
List<Player> players = new List<Player>();
|
||||
foreach (var i in data)
|
||||
players.Add(new Player(i));
|
||||
|
||||
return players;
|
||||
}
|
||||
|
||||
public static List<Player> GetPlayersInArea([Optional()] Vector3 coords, double maxDistance)
|
||||
{
|
||||
var data = Raw.GetPlayersInArea(coords, maxDistance);
|
||||
List<Player> players = new List<Player>();
|
||||
foreach (var i in data)
|
||||
players.Add(new Player(i));
|
||||
|
||||
return players;
|
||||
}
|
||||
|
||||
public static List<Vehicle> GetVehicles()
|
||||
{
|
||||
var data = Raw.GetVehicles();
|
||||
List<Vehicle> vehicles = new List<Vehicle>();
|
||||
foreach (var i in data)
|
||||
vehicles.Add(new Vehicle(i));
|
||||
|
||||
return vehicles;
|
||||
}
|
||||
|
||||
public static List<Vehicle> GetVehiclesInArea([Optional()] Vector3 coords, double maxDistance)
|
||||
{
|
||||
var data = Raw.GetVehiclesInArea(coords, maxDistance);
|
||||
List<Vehicle> vehicles = new List<Vehicle>();
|
||||
foreach (var i in data)
|
||||
vehicles.Add(new Vehicle(i));
|
||||
|
||||
return vehicles;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Scaleform.Utils.cs
Normal file
15
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Scaleform.Utils.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class Scaleform
|
||||
{
|
||||
public class Utils
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.Scaleform.Utils;
|
||||
|
||||
public static int RequestScaleformMovie(string movie) => Raw.RequestScaleformMovie(movie);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Scaleform.cs
Normal file
15
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Scaleform.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class Scaleform
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.Scaleform;
|
||||
|
||||
public static void ShowBreakingNews(string title, string message, string bottom, int sec) => Raw.ShowBreakingNews(title, message, bottom, sec);
|
||||
public static void ShowFreemodeMessage(string title, string message, int sec) => Raw.ShowFreemodeMessage(title, message, sec);
|
||||
public static void ShowPopupWarning(string title, string message, string footer, int sec) => Raw.ShowPopupWarning(title, message, footer, sec);
|
||||
public static void ShowTrafficMovie(int sec) => Raw.ShowTrafficMovie(sec);
|
||||
}
|
||||
}
|
||||
}
|
||||
20
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Streaming.cs
Normal file
20
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.Streaming.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
public static partial class ESX
|
||||
{
|
||||
public static class Streaming
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.Streaming;
|
||||
|
||||
public static int RequestAnimDict(string animDict, [Optional()] Action callback) => Raw.RequestAnimDict(animDict, callback);
|
||||
public static int RequestAnimSet(string animSet, [Optional()] Action callback) => Raw.RequestAnimSet(animSet, callback);
|
||||
public static int RequestModel(string model, [Optional()] Action callback) => Raw.RequestModel(model, callback);
|
||||
public static int RequestNamedPtfxAsset(string assetName, [Optional()] Action callback) => Raw.RequestNamedPtfxAsset(assetName, callback);
|
||||
public static int RequestStreamedTextureDict(string textureDict, [Optional()] Action callback) => Raw.RequestStreamedTextureDict(textureDict, callback);
|
||||
public static int RequestWeaponAsset(string hash, [Optional()] Action callback) => Raw.RequestWeaponAsset(hash, callback);
|
||||
}
|
||||
}
|
||||
}
|
||||
18
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.UI.HUD.cs
Normal file
18
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.UI.HUD.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class UI
|
||||
{
|
||||
public class HUD
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.UI.HUD;
|
||||
|
||||
public static void RegisterElement(string name, int index, int priority, string html, dynamic data) => Raw.RegisterElement(name, index, priority, html, data);
|
||||
public static void RemoveElement(string name) => Raw.RemoveElement(name);
|
||||
public static void SetDisplay(double opacity) => Raw.SetDisplay(opacity);
|
||||
public static void UpdateElement(string name, dynamic data) => Raw.UpdateElement(name, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
90
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.UI.Menu.cs
Normal file
90
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.UI.Menu.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class UI
|
||||
{
|
||||
public class Menu
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.UI.Menu;
|
||||
public dynamic RawInstance;
|
||||
|
||||
public Menu(dynamic data) => RawInstance = data;
|
||||
|
||||
public Menu() => RawInstance = new System.Dynamic.ExpandoObject();
|
||||
|
||||
public Menu(string menuType, string nameSpace, string menuName)
|
||||
{
|
||||
RawInstance = new System.Dynamic.ExpandoObject();
|
||||
RawInstance.name = menuName;
|
||||
RawInstance.type = menuType;
|
||||
RawInstance.@namespace = nameSpace;
|
||||
|
||||
RawInstance.data = new MenuData();
|
||||
}
|
||||
|
||||
public string type
|
||||
{
|
||||
get => RawInstance.type;
|
||||
set => RawInstance.type = value;
|
||||
}
|
||||
|
||||
public string @namespace
|
||||
{
|
||||
get => RawInstance.@namespace;
|
||||
set => RawInstance.@namespace = value;
|
||||
}
|
||||
|
||||
public string name
|
||||
{
|
||||
get => RawInstance.name;
|
||||
set => RawInstance.name = value;
|
||||
}
|
||||
|
||||
public MenuData data
|
||||
{
|
||||
get => new MenuData(RawInstance.data);
|
||||
set => RawInstance.data = value;
|
||||
}
|
||||
|
||||
public void Close() => Close(this);
|
||||
|
||||
public static void Close(string type, string @namespace, string name) => Raw.Close(type, @namespace, name);
|
||||
|
||||
public static void Close(Menu menu) => Raw.Close(menu.type, menu.@namespace, menu.name);
|
||||
|
||||
public static void CloseAll() => Raw.CloseAll();
|
||||
|
||||
public static Menu GetOpened(string type, string @namespace, string name) => new Menu(Raw.GetOpened(type, @namespace, name));
|
||||
|
||||
public static bool IsOpen(string type, string @namespace, string name) => Raw.RawIsOpen(type, @namespace, name);
|
||||
|
||||
public static Menu Open(
|
||||
string type,
|
||||
string @namespace,
|
||||
string name,
|
||||
MenuData data,
|
||||
[Optional()] Action<dynamic, dynamic> submit,
|
||||
[Optional()] Action<dynamic, dynamic> cancel,
|
||||
[Optional()] Action<dynamic, dynamic> change, [Optional()] Action close) =>
|
||||
new Menu(Raw.Open(type, @namespace, name, data.Raw, submit, cancel, change, close));
|
||||
|
||||
public static void RegisterType(string type, [Optional()] Action<string, string, dynamic> open, [Optional()] Action<string, Menu> close) => Raw.RegisterType(type, open, close);
|
||||
|
||||
public static List<Menu> GetOpenedMenus()
|
||||
{
|
||||
var data = Raw.GetOpenedMenus();
|
||||
List<Menu> menus = new List<Menu>();
|
||||
foreach (var i in data)
|
||||
menus.Add(new Menu(i));
|
||||
|
||||
return menus;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
10
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.UI.cs
Normal file
10
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.UI.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class UI
|
||||
{
|
||||
public static dynamic Raw => ESX.Raw.UI;
|
||||
}
|
||||
}
|
||||
}
|
||||
63
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.cs
Normal file
63
C#/Mosleys/Mosleys.Shared/ESX/Client/ESX.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using System;
|
||||
using CitizenFX.Core;
|
||||
|
||||
public static partial class ESX
|
||||
{
|
||||
private static dynamic Raw;
|
||||
|
||||
static ESX() => BaseScript.TriggerEvent("esx:getSharedObject", new object[] { new Action<dynamic>(esx => { Raw = esx; }) });
|
||||
|
||||
public static void TriggerServerCallback(string name, Action<dynamic> callback, dynamic args = null) => Raw.TriggerServerCallback(name, callback, args);
|
||||
public static PlayerData GetPlayerData() => new PlayerData(Raw.GetPlayerData());
|
||||
public static bool IsPlayerLoaded() => Raw.IsPlayerLoaded();
|
||||
public static void SetPlayerData(dynamic key, dynamic value) => Raw.SetPlayerData(key, value);
|
||||
public static void ShowInventory() => Raw.ShowInventory();
|
||||
public static void ShowHelpNotification(string message, bool thisFrame = false, bool beep = true, int duration = -1) => Raw.ShowHelpNotification(message, thisFrame, beep, duration);
|
||||
|
||||
public static void ShowAdvancedNotification(
|
||||
string sender,
|
||||
string subject,
|
||||
string message,
|
||||
NotificationPicture notificationPicture = NotificationPicture.CHAR_MULTIPLAYER,
|
||||
IconType iconType = IconType.ChatBox,
|
||||
bool flash = false,
|
||||
bool savetoBreif = true,
|
||||
HudColor hudColor = HudColor.HUD_COLOUR_DEFAULT)
|
||||
{
|
||||
if (hudColor != HudColor.HUD_COLOUR_DEFAULT)
|
||||
{
|
||||
Raw.ShowAdvancedNotification(sender, subject, message, notificationPicture.ToString(), (int)iconType, flash, savetoBreif, (int)hudColor);
|
||||
return;
|
||||
}
|
||||
|
||||
Raw.ShowAdvancedNotification(sender, subject, message, notificationPicture.ToString(), (int)iconType, flash, savetoBreif, null);
|
||||
}
|
||||
|
||||
public static void ShowAdvancedNotification(
|
||||
string sender,
|
||||
string subject,
|
||||
string message,
|
||||
string textureDict,
|
||||
IconType iconType,
|
||||
bool flash = false,
|
||||
bool savetoBreif = true,
|
||||
HudColor hudColor = HudColor.HUD_COLOUR_DEFAULT)
|
||||
{
|
||||
if (hudColor != HudColor.HUD_COLOUR_DEFAULT)
|
||||
{
|
||||
Raw.ShowAdvancedNotification(sender, subject, message, textureDict, (int)iconType, flash, savetoBreif, (int)hudColor);
|
||||
return;
|
||||
}
|
||||
|
||||
Raw.ShowAdvancedNotification(sender, subject, message, textureDict, (int)iconType, flash, savetoBreif, null);
|
||||
}
|
||||
|
||||
public static void ShowNotification(string message, HudColor hudColor = HudColor.HUD_COLOUR_DEFAULT)
|
||||
{
|
||||
if(hudColor != HudColor.HUD_COLOUR_DEFAULT) CitizenFX.Core.Native.API.ThefeedNextPostBackgroundColor((int)hudColor);
|
||||
Raw.ShowNotification(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
231
C#/Mosleys/Mosleys.Shared/ESX/Client/Enums/HudColor.cs
Normal file
231
C#/Mosleys/Mosleys.Shared/ESX/Client/Enums/HudColor.cs
Normal file
@@ -0,0 +1,231 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public enum HudColor : int
|
||||
{
|
||||
HUD_COLOUR_PURE_WHITE,
|
||||
HUD_COLOUR_WHITE,
|
||||
HUD_COLOUR_BLACK,
|
||||
HUD_COLOUR_GREY,
|
||||
HUD_COLOUR_GREYLIGHT,
|
||||
HUD_COLOUR_GREYDARK,
|
||||
HUD_COLOUR_RED,
|
||||
HUD_COLOUR_REDLIGHT,
|
||||
HUD_COLOUR_REDDARK,
|
||||
HUD_COLOUR_BLUE,
|
||||
HUD_COLOUR_BLUELIGHT,
|
||||
HUD_COLOUR_BLUEDARK,
|
||||
HUD_COLOUR_YELLOW,
|
||||
HUD_COLOUR_YELLOWLIGHT,
|
||||
HUD_COLOUR_YELLOWDARK,
|
||||
HUD_COLOUR_ORANGE,
|
||||
HUD_COLOUR_ORANGELIGHT,
|
||||
HUD_COLOUR_ORANGEDARK,
|
||||
HUD_COLOUR_GREEN,
|
||||
HUD_COLOUR_GREENLIGHT,
|
||||
HUD_COLOUR_GREENDARK,
|
||||
HUD_COLOUR_PURPLE,
|
||||
HUD_COLOUR_PURPLELIGHT,
|
||||
HUD_COLOUR_PURPLEDARK,
|
||||
HUD_COLOUR_PINK,
|
||||
HUD_COLOUR_RADAR_HEALTH,
|
||||
HUD_COLOUR_RADAR_ARMOUR,
|
||||
HUD_COLOUR_RADAR_DAMAGE,
|
||||
HUD_COLOUR_NET_PLAYER1,
|
||||
HUD_COLOUR_NET_PLAYER2,
|
||||
HUD_COLOUR_NET_PLAYER3,
|
||||
HUD_COLOUR_NET_PLAYER4,
|
||||
HUD_COLOUR_NET_PLAYER5,
|
||||
HUD_COLOUR_NET_PLAYER6,
|
||||
HUD_COLOUR_NET_PLAYER7,
|
||||
HUD_COLOUR_NET_PLAYER8,
|
||||
HUD_COLOUR_NET_PLAYER9,
|
||||
HUD_COLOUR_NET_PLAYER10,
|
||||
HUD_COLOUR_NET_PLAYER11,
|
||||
HUD_COLOUR_NET_PLAYER12,
|
||||
HUD_COLOUR_NET_PLAYER13,
|
||||
HUD_COLOUR_NET_PLAYER14,
|
||||
HUD_COLOUR_NET_PLAYER15,
|
||||
HUD_COLOUR_NET_PLAYER16,
|
||||
HUD_COLOUR_NET_PLAYER17,
|
||||
HUD_COLOUR_NET_PLAYER18,
|
||||
HUD_COLOUR_NET_PLAYER19,
|
||||
HUD_COLOUR_NET_PLAYER20,
|
||||
HUD_COLOUR_NET_PLAYER21,
|
||||
HUD_COLOUR_NET_PLAYER22,
|
||||
HUD_COLOUR_NET_PLAYER23,
|
||||
HUD_COLOUR_NET_PLAYER24,
|
||||
HUD_COLOUR_NET_PLAYER25,
|
||||
HUD_COLOUR_NET_PLAYER26,
|
||||
HUD_COLOUR_NET_PLAYER27,
|
||||
HUD_COLOUR_NET_PLAYER28,
|
||||
HUD_COLOUR_NET_PLAYER29,
|
||||
HUD_COLOUR_NET_PLAYER30,
|
||||
HUD_COLOUR_NET_PLAYER31,
|
||||
HUD_COLOUR_NET_PLAYER32,
|
||||
HUD_COLOUR_SIMPLEBLIP_DEFAULT,
|
||||
HUD_COLOUR_MENU_BLUE,
|
||||
HUD_COLOUR_MENU_GREY_LIGHT,
|
||||
HUD_COLOUR_MENU_BLUE_EXTRA_DARK,
|
||||
HUD_COLOUR_MENU_YELLOW,
|
||||
HUD_COLOUR_MENU_YELLOW_DARK,
|
||||
HUD_COLOUR_MENU_GREEN,
|
||||
HUD_COLOUR_MENU_GREY,
|
||||
HUD_COLOUR_MENU_GREY_DARK,
|
||||
HUD_COLOUR_MENU_HIGHLIGHT,
|
||||
HUD_COLOUR_MENU_STANDARD,
|
||||
HUD_COLOUR_MENU_DIMMED,
|
||||
HUD_COLOUR_MENU_EXTRA_DIMMED,
|
||||
HUD_COLOUR_BRIEF_TITLE,
|
||||
HUD_COLOUR_MID_GREY_MP,
|
||||
HUD_COLOUR_NET_PLAYER1_DARK,
|
||||
HUD_COLOUR_NET_PLAYER2_DARK,
|
||||
HUD_COLOUR_NET_PLAYER3_DARK,
|
||||
HUD_COLOUR_NET_PLAYER4_DARK,
|
||||
HUD_COLOUR_NET_PLAYER5_DARK,
|
||||
HUD_COLOUR_NET_PLAYER6_DARK,
|
||||
HUD_COLOUR_NET_PLAYER7_DARK,
|
||||
HUD_COLOUR_NET_PLAYER8_DARK,
|
||||
HUD_COLOUR_NET_PLAYER9_DARK,
|
||||
HUD_COLOUR_NET_PLAYER10_DARK,
|
||||
HUD_COLOUR_NET_PLAYER11_DARK,
|
||||
HUD_COLOUR_NET_PLAYER12_DARK,
|
||||
HUD_COLOUR_NET_PLAYER13_DARK,
|
||||
HUD_COLOUR_NET_PLAYER14_DARK,
|
||||
HUD_COLOUR_NET_PLAYER15_DARK,
|
||||
HUD_COLOUR_NET_PLAYER16_DARK,
|
||||
HUD_COLOUR_NET_PLAYER17_DARK,
|
||||
HUD_COLOUR_NET_PLAYER18_DARK,
|
||||
HUD_COLOUR_NET_PLAYER19_DARK,
|
||||
HUD_COLOUR_NET_PLAYER20_DARK,
|
||||
HUD_COLOUR_NET_PLAYER21_DARK,
|
||||
HUD_COLOUR_NET_PLAYER22_DARK,
|
||||
HUD_COLOUR_NET_PLAYER23_DARK,
|
||||
HUD_COLOUR_NET_PLAYER24_DARK,
|
||||
HUD_COLOUR_NET_PLAYER25_DARK,
|
||||
HUD_COLOUR_NET_PLAYER26_DARK,
|
||||
HUD_COLOUR_NET_PLAYER27_DARK,
|
||||
HUD_COLOUR_NET_PLAYER28_DARK,
|
||||
HUD_COLOUR_NET_PLAYER29_DARK,
|
||||
HUD_COLOUR_NET_PLAYER30_DARK,
|
||||
HUD_COLOUR_NET_PLAYER31_DARK,
|
||||
HUD_COLOUR_NET_PLAYER32_DARK,
|
||||
HUD_COLOUR_BRONZE,
|
||||
HUD_COLOUR_SILVER,
|
||||
HUD_COLOUR_GOLD,
|
||||
HUD_COLOUR_PLATINUM,
|
||||
HUD_COLOUR_GANG1,
|
||||
HUD_COLOUR_GANG2,
|
||||
HUD_COLOUR_GANG3,
|
||||
HUD_COLOUR_GANG4,
|
||||
HUD_COLOUR_SAME_CREW,
|
||||
HUD_COLOUR_FREEMODE,
|
||||
HUD_COLOUR_PAUSE_BG,
|
||||
HUD_COLOUR_FRIENDLY,
|
||||
HUD_COLOUR_ENEMY,
|
||||
HUD_COLOUR_LOCATION,
|
||||
HUD_COLOUR_PICKUP,
|
||||
HUD_COLOUR_PAUSE_SINGLEPLAYER,
|
||||
HUD_COLOUR_FREEMODE_DARK,
|
||||
HUD_COLOUR_INACTIVE_MISSION,
|
||||
HUD_COLOUR_DAMAGE,
|
||||
HUD_COLOUR_PINKLIGHT,
|
||||
HUD_COLOUR_PM_MITEM_HIGHLIGHT,
|
||||
HUD_COLOUR_SCRIPT_VARIABLE,
|
||||
HUD_COLOUR_YOGA,
|
||||
HUD_COLOUR_TENNIS,
|
||||
HUD_COLOUR_GOLF,
|
||||
HUD_COLOUR_SHOOTING_RANGE,
|
||||
HUD_COLOUR_FLIGHT_SCHOOL,
|
||||
HUD_COLOUR_NORTH_BLUE,
|
||||
HUD_COLOUR_SOCIAL_CLUB,
|
||||
HUD_COLOUR_PLATFORM_BLUE,
|
||||
HUD_COLOUR_PLATFORM_GREEN,
|
||||
HUD_COLOUR_PLATFORM_GREY,
|
||||
HUD_COLOUR_FACEBOOK_BLUE,
|
||||
HUD_COLOUR_INGAME_BG,
|
||||
HUD_COLOUR_DARTS,
|
||||
HUD_COLOUR_WAYPOINT,
|
||||
HUD_COLOUR_MICHAEL,
|
||||
HUD_COLOUR_FRANKLIN,
|
||||
HUD_COLOUR_TREVOR,
|
||||
HUD_COLOUR_GOLF_P1,
|
||||
HUD_COLOUR_GOLF_P2,
|
||||
HUD_COLOUR_GOLF_P3,
|
||||
HUD_COLOUR_GOLF_P4,
|
||||
HUD_COLOUR_WAYPOINTLIGHT,
|
||||
HUD_COLOUR_WAYPOINTDARK,
|
||||
HUD_COLOUR_PANEL_LIGHT,
|
||||
HUD_COLOUR_MICHAEL_DARK,
|
||||
HUD_COLOUR_FRANKLIN_DARK,
|
||||
HUD_COLOUR_TREVOR_DARK,
|
||||
HUD_COLOUR_OBJECTIVE_ROUTE,
|
||||
HUD_COLOUR_PAUSEMAP_TINT,
|
||||
HUD_COLOUR_PAUSE_DESELECT,
|
||||
HUD_COLOUR_PM_WEAPONS_PURCHASABLE,
|
||||
HUD_COLOUR_PM_WEAPONS_LOCKED,
|
||||
HUD_COLOUR_END_SCREEN_BG,
|
||||
HUD_COLOUR_CHOP,
|
||||
HUD_COLOUR_PAUSEMAP_TINT_HALF,
|
||||
HUD_COLOUR_NORTH_BLUE_OFFICIAL,
|
||||
HUD_COLOUR_SCRIPT_VARIABLE_2,
|
||||
HUD_COLOUR_H,
|
||||
HUD_COLOUR_HDARK,
|
||||
HUD_COLOUR_T,
|
||||
HUD_COLOUR_TDARK,
|
||||
HUD_COLOUR_HSHARD,
|
||||
HUD_COLOUR_CONTROLLER_MICHAEL,
|
||||
HUD_COLOUR_CONTROLLER_FRANKLIN,
|
||||
HUD_COLOUR_CONTROLLER_TREVOR,
|
||||
HUD_COLOUR_CONTROLLER_CHOP,
|
||||
HUD_COLOUR_VIDEO_EDITOR_VIDEO,
|
||||
HUD_COLOUR_VIDEO_EDITOR_AUDIO,
|
||||
HUD_COLOUR_VIDEO_EDITOR_TEXT,
|
||||
HUD_COLOUR_HB_BLUE,
|
||||
HUD_COLOUR_HB_YELLOW,
|
||||
HUD_COLOUR_VIDEO_EDITOR_SCORE,
|
||||
HUD_COLOUR_VIDEO_EDITOR_AUDIO_FADEOUT,
|
||||
HUD_COLOUR_VIDEO_EDITOR_TEXT_FADEOUT,
|
||||
HUD_COLOUR_VIDEO_EDITOR_SCORE_FADEOUT,
|
||||
HUD_COLOUR_HEIST_BACKGROUND,
|
||||
HUD_COLOUR_VIDEO_EDITOR_AMBIENT,
|
||||
HUD_COLOUR_VIDEO_EDITOR_AMBIENT_FADEOUT,
|
||||
HUD_COLOUR_GB,
|
||||
HUD_COLOUR_G,
|
||||
HUD_COLOUR_B,
|
||||
HUD_COLOUR_LOW_FLOW,
|
||||
HUD_COLOUR_LOW_FLOW_DARK,
|
||||
HUD_COLOUR_G1,
|
||||
HUD_COLOUR_G2,
|
||||
HUD_COLOUR_G3,
|
||||
HUD_COLOUR_G4,
|
||||
HUD_COLOUR_G5,
|
||||
HUD_COLOUR_G6,
|
||||
HUD_COLOUR_G7,
|
||||
HUD_COLOUR_G8,
|
||||
HUD_COLOUR_G9,
|
||||
HUD_COLOUR_G10,
|
||||
HUD_COLOUR_G11,
|
||||
HUD_COLOUR_G12,
|
||||
HUD_COLOUR_G13,
|
||||
HUD_COLOUR_G14,
|
||||
HUD_COLOUR_G15,
|
||||
HUD_COLOUR_ADVERSARY,
|
||||
HUD_COLOUR_DEGEN_RED,
|
||||
HUD_COLOUR_DEGEN_YELLOW,
|
||||
HUD_COLOUR_DEGEN_GREEN,
|
||||
HUD_COLOUR_DEGEN_CYAN,
|
||||
HUD_COLOUR_DEGEN_BLUE,
|
||||
HUD_COLOUR_DEGEN_MAGENTA,
|
||||
HUD_COLOUR_STUNT_1,
|
||||
HUD_COLOUR_STUNT_2,
|
||||
HUD_COLOUR_SPECIAL_RACE_SERIES,
|
||||
HUD_COLOUR_SPECIAL_RACE_SERIES_DARK,
|
||||
HUD_COLOUR_CS,
|
||||
HUD_COLOUR_CS_DARK,
|
||||
HUD_COLOUR_TECH_GREEN,
|
||||
HUD_COLOUR_TECH_GREEN_DARK,
|
||||
HUD_COLOUR_TECH_RED,
|
||||
HUD_COLOUR_TECH_GREEN_VERY_DARK,
|
||||
HUD_COLOUR_DEFAULT //not a real value, used in logic
|
||||
}
|
||||
}
|
||||
12
C#/Mosleys/Mosleys.Shared/ESX/Client/Enums/IconType.cs
Normal file
12
C#/Mosleys/Mosleys.Shared/ESX/Client/Enums/IconType.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public enum IconType : int
|
||||
{
|
||||
ChatBox = 1,
|
||||
Email = 2,
|
||||
AddFriendRequest = 3,
|
||||
RightJumpingWindow = 7,
|
||||
RP = 8,
|
||||
Dollar = 9
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public enum NotificationPicture
|
||||
{
|
||||
CHAR_ABIGAIL,
|
||||
CHAR_ALL_PLAYERS_CONF,
|
||||
CHAR_AMANDA,
|
||||
CHAR_AMMUNATION,
|
||||
CHAR_ANDREAS,
|
||||
CHAR_ANTONIA,
|
||||
CHAR_ARTHUR,
|
||||
CHAR_ASHLEY,
|
||||
CHAR_BANK_BOL,
|
||||
CHAR_BANK_FLEECA,
|
||||
CHAR_BANK_MAZE,
|
||||
CHAR_BARRY,
|
||||
CHAR_BEVERLY,
|
||||
CHAR_BIKESITE,
|
||||
CHAR_BLANK_ENTRY,
|
||||
CHAR_BLIMP,
|
||||
CHAR_BLOCKED,
|
||||
CHAR_BOATSITE,
|
||||
CHAR_BROKEN_DOWN_GIRL,
|
||||
CHAR_BUGSTARS,
|
||||
CHAR_CALL911,
|
||||
CHAR_CARSITE,
|
||||
CHAR_CARSITE2,
|
||||
CHAR_CASTRO,
|
||||
CHAR_CHAT_CALL,
|
||||
CHAR_CHEF,
|
||||
CHAR_CHENG,
|
||||
CHAR_CHENGSR,
|
||||
CHAR_CHOP,
|
||||
CHAR_CRIS,
|
||||
CHAR_DAVE,
|
||||
CHAR_DEFAULT,
|
||||
CHAR_DENISE,
|
||||
CHAR_DETONATEBOMB,
|
||||
CHAR_DETONATEPHONE,
|
||||
CHAR_DEVIN,
|
||||
CHAR_DIAL_A_SUB,
|
||||
CHAR_DOM,
|
||||
CHAR_DOMESTIC_GIRL,
|
||||
CHAR_DREYFUSS,
|
||||
CHAR_DR_FRIEDLANDER,
|
||||
CHAR_EPSILON,
|
||||
CHAR_ESTATE_AGENT,
|
||||
CHAR_FACEBOOK,
|
||||
CHAR_FILMNOIR,
|
||||
CHAR_FLOYD,
|
||||
CHAR_FRANKLIN,
|
||||
CHAR_FRANK_TREV_CONF,
|
||||
CHAR_GAYMILITARY,
|
||||
CHAR_HAO,
|
||||
CHAR_HITCHER_GIRL,
|
||||
CHAR_HUMANDEFAULT,
|
||||
CHAR_HUNTER,
|
||||
CHAR_JIMMY,
|
||||
CHAR_JIMMY_BOSTON,
|
||||
CHAR_JOE,
|
||||
CHAR_JOSEF,
|
||||
CHAR_JOSH,
|
||||
CHAR_LAMAR,
|
||||
CHAR_LAZLOW,
|
||||
CHAR_LESTER,
|
||||
CHAR_LESTER_DEATHWISH,
|
||||
CHAR_LEST_FRANK_CONF,
|
||||
CHAR_LEST_MIKE_CONF,
|
||||
CHAR_LIFEINVADER,
|
||||
CHAR_LS_CUSTOMS,
|
||||
CHAR_LS_TOURIST_BOARD,
|
||||
CHAR_MANUEL,
|
||||
CHAR_MARNIE,
|
||||
CHAR_MARTIN,
|
||||
CHAR_MARY_ANN,
|
||||
CHAR_MAUDE,
|
||||
CHAR_MECHANIC,
|
||||
CHAR_MICHAEL,
|
||||
CHAR_MIKE_FRANK_CONF,
|
||||
CHAR_MIKE_TREV_CONF,
|
||||
CHAR_MILSITE,
|
||||
CHAR_MINOTAUR,
|
||||
CHAR_MOLLY,
|
||||
CHAR_MP_ARMY_CONTACT,
|
||||
CHAR_MP_BIKER_BOSS,
|
||||
CHAR_MP_BIKER_MECHANIC,
|
||||
CHAR_MP_BRUCIE,
|
||||
CHAR_MP_DETONATEPHONE,
|
||||
CHAR_MP_FAM_BOSS,
|
||||
CHAR_MP_FIB_CONTACT,
|
||||
CHAR_MP_FM_CONTACT,
|
||||
CHAR_MP_GERALD,
|
||||
CHAR_MP_JULIO,
|
||||
CHAR_MP_MECHANIC,
|
||||
CHAR_MP_MERRYWEATHER,
|
||||
CHAR_MP_MEX_BOSS,
|
||||
CHAR_MP_MEX_DOCKS,
|
||||
CHAR_MP_MEX_LT,
|
||||
CHAR_MP_MORS_MUTUAL,
|
||||
CHAR_MP_PROF_BOSS,
|
||||
CHAR_MP_RAY_LAVOY,
|
||||
CHAR_MP_ROBERTO,
|
||||
CHAR_MP_SNITCH,
|
||||
CHAR_MP_STRETCH,
|
||||
CHAR_MP_STRIPCLUB_PR,
|
||||
CHAR_MRS_THORNHILL,
|
||||
CHAR_MULTIPLAYER,
|
||||
CHAR_NIGEL,
|
||||
CHAR_OMEGA,
|
||||
CHAR_ONEIL,
|
||||
CHAR_ORTEGA,
|
||||
CHAR_OSCAR,
|
||||
CHAR_PATRICIA,
|
||||
CHAR_PEGASUS_DELIVERY,
|
||||
CHAR_PLANESITE,
|
||||
CHAR_PROPERTY_ARMS_TRAFFICKING,
|
||||
CHAR_PROPERTY_BAR_AIRPORT,
|
||||
CHAR_PROPERTY_BAR_BAYVIEW,
|
||||
CHAR_PROPERTY_BAR_CAFE_ROJO,
|
||||
CHAR_PROPERTY_BAR_COCKOTOOS,
|
||||
CHAR_PROPERTY_BAR_ECLIPSE,
|
||||
CHAR_PROPERTY_BAR_FES,
|
||||
CHAR_PROPERTY_BAR_HEN_HOUSE,
|
||||
CHAR_PROPERTY_BAR_HI_MEN,
|
||||
CHAR_PROPERTY_BAR_HOOKIES,
|
||||
CHAR_PROPERTY_BAR_IRISH,
|
||||
CHAR_PROPERTY_BAR_LES_BIANCO,
|
||||
CHAR_PROPERTY_BAR_MIRROR_PARK,
|
||||
CHAR_PROPERTY_BAR_PITCHERS,
|
||||
CHAR_PROPERTY_BAR_SINGLETONS,
|
||||
CHAR_PROPERTY_BAR_TEQUILALA,
|
||||
CHAR_PROPERTY_BAR_UNBRANDED,
|
||||
CHAR_PROPERTY_CAR_MOD_SHOP,
|
||||
CHAR_PROPERTY_CAR_SCRAP_YARD,
|
||||
CHAR_PROPERTY_CINEMA_DOWNTOWN,
|
||||
CHAR_PROPERTY_CINEMA_MORNINGWOOD,
|
||||
CHAR_PROPERTY_CINEMA_VINEWOOD,
|
||||
CHAR_PROPERTY_GOLF_CLUB,
|
||||
CHAR_PROPERTY_PLANE_SCRAP_YARD,
|
||||
CHAR_PROPERTY_SONAR_COLLECTIONS,
|
||||
CHAR_PROPERTY_TAXI_LOT,
|
||||
CHAR_PROPERTY_TOWING_IMPOUND,
|
||||
CHAR_PROPERTY_WEED_SHOP,
|
||||
CHAR_RON,
|
||||
CHAR_SAEEDA,
|
||||
CHAR_SASQUATCH,
|
||||
CHAR_SIMEON,
|
||||
CHAR_SOCIAL_CLUB,
|
||||
CHAR_SOLOMON,
|
||||
CHAR_STEVE,
|
||||
CHAR_STEVE_MIKE_CONF,
|
||||
CHAR_STEVE_TREV_CONF,
|
||||
CHAR_STRETCH,
|
||||
CHAR_STRIPPER_CHASTITY,
|
||||
CHAR_STRIPPER_CHEETAH,
|
||||
CHAR_STRIPPER_FUFU,
|
||||
CHAR_STRIPPER_INFERNUS,
|
||||
CHAR_STRIPPER_JULIET,
|
||||
CHAR_STRIPPER_NIKKI,
|
||||
CHAR_STRIPPER_PEACH,
|
||||
CHAR_STRIPPER_SAPPHIRE,
|
||||
CHAR_TANISHA,
|
||||
CHAR_TAXI,
|
||||
CHAR_TAXI_LIZ,
|
||||
CHAR_TENNIS_COACH,
|
||||
CHAR_TOW_TONYA,
|
||||
CHAR_TRACEY,
|
||||
CHAR_TREVOR,
|
||||
CHAR_WADE,
|
||||
CHAR_YOUTUBE
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class UI
|
||||
{
|
||||
public class MenuData
|
||||
{
|
||||
public dynamic Raw;
|
||||
|
||||
public MenuData(dynamic data) => Raw = data;
|
||||
|
||||
public MenuData()
|
||||
{
|
||||
Raw = new System.Dynamic.ExpandoObject();
|
||||
|
||||
Raw.title = new System.Dynamic.ExpandoObject();
|
||||
Raw.align = new System.Dynamic.ExpandoObject();
|
||||
Raw.elements = new System.Dynamic.ExpandoObject();
|
||||
Raw.elements.head = new System.Dynamic.ExpandoObject();
|
||||
Raw.elements.rows = new System.Dynamic.ExpandoObject();
|
||||
}
|
||||
|
||||
public List<MenuElement> elements
|
||||
{
|
||||
get
|
||||
{
|
||||
List<MenuElement> temp = new List<MenuElement>();
|
||||
foreach (var i in Raw.elements)
|
||||
temp.Add(new MenuElement(i));
|
||||
|
||||
return temp;
|
||||
}
|
||||
set => Raw.elements = value;
|
||||
}
|
||||
|
||||
public MenuElement current => new MenuElement(Raw.current);
|
||||
|
||||
public string title
|
||||
{
|
||||
get => Raw.title;
|
||||
set => Raw.title = value;
|
||||
}
|
||||
|
||||
public string align
|
||||
{
|
||||
get => Raw.align;
|
||||
set => Raw.align = value;
|
||||
}
|
||||
|
||||
public string[] head
|
||||
{
|
||||
get => Raw.elements.head;
|
||||
set => Raw.elements.head = value;
|
||||
}
|
||||
|
||||
public dynamic rows
|
||||
{
|
||||
get => Raw.elements.rows;
|
||||
set => Raw.elements.rows = value;
|
||||
}
|
||||
|
||||
public string type {
|
||||
get => Raw.type;
|
||||
set => Raw.type = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
public static partial class ESX
|
||||
{
|
||||
public static partial class UI
|
||||
{
|
||||
public class MenuElement
|
||||
{
|
||||
public dynamic Raw;
|
||||
|
||||
public MenuElement(dynamic data) => Raw = data;
|
||||
|
||||
public MenuElement(dynamic label, dynamic value, dynamic customdata = null, string type = "default")
|
||||
{
|
||||
Raw = new System.Dynamic.ExpandoObject();
|
||||
Raw.label = label;
|
||||
Raw.value = value;
|
||||
Raw.type = type;
|
||||
custom = customdata;
|
||||
}
|
||||
|
||||
public MenuElement()
|
||||
{
|
||||
Raw = new System.Dynamic.ExpandoObject();
|
||||
Raw.label = new System.Dynamic.ExpandoObject();
|
||||
Raw.value = new System.Dynamic.ExpandoObject();
|
||||
Raw.name = new System.Dynamic.ExpandoObject();
|
||||
Raw.options = new System.Dynamic.ExpandoObject();
|
||||
Raw.type = "default";
|
||||
|
||||
custom = new System.Dynamic.ExpandoObject();
|
||||
}
|
||||
|
||||
public dynamic label
|
||||
{
|
||||
get => Raw.label;
|
||||
set => Raw.label = value;
|
||||
}
|
||||
|
||||
public dynamic name {
|
||||
get => Raw.name;
|
||||
set => Raw.name = value;
|
||||
}
|
||||
|
||||
public dynamic value
|
||||
{
|
||||
get => Raw.value;
|
||||
set => Raw.value = value;
|
||||
}
|
||||
|
||||
public dynamic options {
|
||||
get => Raw.options;
|
||||
set => Raw.options = value;
|
||||
}
|
||||
|
||||
public string type
|
||||
{
|
||||
get => Raw.type;
|
||||
set => Raw.type = value;
|
||||
}
|
||||
|
||||
public dynamic custom { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
67
C#/Mosleys/Mosleys.Shared/ESX/Client/Models/PlayerData.cs
Normal file
67
C#/Mosleys/Mosleys.Shared/ESX/Client/Models/PlayerData.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
namespace Nexd.ESX.Client
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
|
||||
using CitizenFX.Core;
|
||||
using Nexd.ESX.Shared;
|
||||
|
||||
public class PlayerData
|
||||
{
|
||||
public dynamic Raw;
|
||||
|
||||
public PlayerData() { }
|
||||
public PlayerData(dynamic data) => Raw = data;
|
||||
|
||||
public Job job => new Job(Raw.job);
|
||||
|
||||
public Vector3 coords => new Vector3((float)Raw.coords.x, (float)Raw.coords.y, (float)Raw.coords.z);
|
||||
|
||||
public double heading => Raw.coords.heading;
|
||||
|
||||
public double maxWeight => Raw.maxWeight;
|
||||
|
||||
public List<Shared.Weapon> loadout
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Shared.Weapon> temp = new List<Shared.Weapon>();
|
||||
var loadout = Raw.loadout;
|
||||
|
||||
foreach (var i in loadout)
|
||||
{
|
||||
temp.Add(new Shared.Weapon(i));
|
||||
}
|
||||
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
public Account[] accounts
|
||||
{
|
||||
get
|
||||
{
|
||||
Account[] accounts = new Account[3];
|
||||
var raw = Raw.accounts;
|
||||
for (int i = 0; i < 3; i++)
|
||||
accounts[i] = new Account(raw[i]);
|
||||
|
||||
return accounts;
|
||||
}
|
||||
}
|
||||
|
||||
public List<InventoryItem> inventory
|
||||
{
|
||||
get
|
||||
{
|
||||
List<InventoryItem> inventory = new List<InventoryItem>();
|
||||
var rawdata = Raw.inventory;
|
||||
foreach (var i in rawdata)
|
||||
{
|
||||
inventory.Add(new InventoryItem(i));
|
||||
}
|
||||
|
||||
return inventory;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
334
C#/Mosleys/Mosleys.Shared/ESX/Client/Models/VehicleProperties.cs
Normal file
334
C#/Mosleys/Mosleys.Shared/ESX/Client/Models/VehicleProperties.cs
Normal file
@@ -0,0 +1,334 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Dynamic;
|
||||
using CitizenFX.Core;
|
||||
|
||||
namespace Nexd.ESX.Client {
|
||||
public class VehicleProperties {
|
||||
private dynamic Raw;
|
||||
|
||||
public VehicleProperties() {
|
||||
Raw = new ExpandoObject();
|
||||
}
|
||||
|
||||
public VehicleProperties(dynamic data) => Raw = data;
|
||||
|
||||
public dynamic GetRaw() => Raw;
|
||||
|
||||
public int model {
|
||||
get => Convert.ToInt32(Raw.model);
|
||||
set => Raw.model = Convert.ToInt32(value);
|
||||
}
|
||||
|
||||
public string plate {
|
||||
get => Raw.plate;
|
||||
set => Raw.plate = value;
|
||||
}
|
||||
|
||||
public int plateIndex {
|
||||
get => Raw.plateIndex;
|
||||
set => Raw.plateIndex = value;
|
||||
}
|
||||
|
||||
public double bodyHealth {
|
||||
get => Raw.bodyHealth;
|
||||
set => Raw.bodyHealth = value;
|
||||
}
|
||||
|
||||
public double engineHealth {
|
||||
get => Raw.engineHealth;
|
||||
set => Raw.engineHealth = value;
|
||||
}
|
||||
|
||||
public double tankHealth {
|
||||
get => Raw.tankHealth;
|
||||
set => Raw.tankHealth = value;
|
||||
}
|
||||
|
||||
public double fuelLevel {
|
||||
get => Raw.fuelLevel;
|
||||
set => Raw.fuelLevel = value;
|
||||
}
|
||||
|
||||
public double dirtLevel {
|
||||
get => Raw.dirtLevel;
|
||||
set => Raw.dirtLevel = value;
|
||||
}
|
||||
|
||||
public VehicleColor color1 {
|
||||
get => (VehicleColor)Raw.color1;
|
||||
set => Raw.color1 = (int)value;
|
||||
}
|
||||
|
||||
public VehicleColor color2 {
|
||||
get => (VehicleColor)Raw.color2;
|
||||
set => Raw.color2 = (int)value;
|
||||
}
|
||||
|
||||
public VehicleColor pearlescentColor {
|
||||
get => (VehicleColor)Raw.pearlescentColor;
|
||||
set => Raw.pearlescentColor = (int)value;
|
||||
}
|
||||
|
||||
public VehicleColor wheelColor {
|
||||
get => (VehicleColor)Raw.wheelColor;
|
||||
set => Raw.wheelColor = (int)value;
|
||||
}
|
||||
|
||||
public VehicleWheelType wheels {
|
||||
get => (VehicleWheelType)Raw.wheels;
|
||||
set => Raw.wheels = (int)value;
|
||||
}
|
||||
|
||||
public VehicleWindowTint windowTint {
|
||||
get => (VehicleWindowTint)Raw.windowTint;
|
||||
set => Raw.windowTint = (int)value;
|
||||
}
|
||||
|
||||
public List<bool> neonEnabled {
|
||||
get => Raw.neonEnabled;
|
||||
set => Raw.neonEnabled = value;
|
||||
}
|
||||
|
||||
public List<int> neonColor {
|
||||
get => Raw.neonColor;
|
||||
set => Raw.neonColor = value;
|
||||
}
|
||||
|
||||
public List<object> extras {
|
||||
get => Raw.extras;
|
||||
set => Raw.extras = value;
|
||||
}
|
||||
|
||||
public dynamic tyreSmokeColor {
|
||||
get => Raw.tyreSmokeColor;
|
||||
set => Raw.tyreSmokeColor = value;
|
||||
}
|
||||
|
||||
public int modSpoilers {
|
||||
get => Raw.modSpoilers;
|
||||
set => Raw.modSpoilers = value;
|
||||
}
|
||||
|
||||
public int modFrontBumper {
|
||||
get => Raw.modFrontBumper;
|
||||
set => Raw.modFrontBumper = value;
|
||||
}
|
||||
|
||||
public int modRearBumper {
|
||||
get => Raw.modRearBumper;
|
||||
set => Raw.modRearBumper = value;
|
||||
}
|
||||
|
||||
public int modSideSkirt {
|
||||
get => Raw.modSideSkirt;
|
||||
set => Raw.modSideSkirt = value;
|
||||
}
|
||||
|
||||
public int modExhaust {
|
||||
get => Raw.modExhaust;
|
||||
set => Raw.modExhaust = value;
|
||||
}
|
||||
|
||||
public int modFrame {
|
||||
get => Raw.modFrame;
|
||||
set => Raw.modFrame = value;
|
||||
}
|
||||
|
||||
public int modGrille {
|
||||
get => Raw.modGrille;
|
||||
set => Raw.modGrille = value;
|
||||
}
|
||||
|
||||
public int modHood {
|
||||
get => Raw.modHood;
|
||||
set => Raw.modHood = value;
|
||||
}
|
||||
|
||||
public int modFender {
|
||||
get => Raw.modFender;
|
||||
set => Raw.modFender = value;
|
||||
}
|
||||
|
||||
public int modRightFender {
|
||||
get => Raw.modRightFender;
|
||||
set => Raw.modRightFender = value;
|
||||
}
|
||||
|
||||
public int modRoof {
|
||||
get => Raw.modRoof;
|
||||
set => Raw.modRoof = value;
|
||||
}
|
||||
|
||||
public int modEngine {
|
||||
get => Raw.modEngine;
|
||||
set => Raw.modEngine = value;
|
||||
}
|
||||
|
||||
public int modBrakes {
|
||||
get => Raw.modBrakes;
|
||||
set => Raw.modBrakes = value;
|
||||
}
|
||||
|
||||
public int modTransmission {
|
||||
get => Raw.modTransmission;
|
||||
set => Raw.modTransmission = value;
|
||||
}
|
||||
|
||||
public int modHorns {
|
||||
get => Raw.modHorns;
|
||||
set => Raw.modHorns = value;
|
||||
}
|
||||
|
||||
public int modSuspension {
|
||||
get => Raw.modSuspension;
|
||||
set => Raw.modSuspension = value;
|
||||
}
|
||||
|
||||
public int modArmor {
|
||||
get => Raw.modArmor;
|
||||
set => Raw.modArmor = value;
|
||||
}
|
||||
|
||||
public int modTurbo {
|
||||
get => Raw.modTurbo;
|
||||
set => Raw.modTurbo = value;
|
||||
}
|
||||
|
||||
public bool modSmokeEnabled {
|
||||
get => Raw.modSmokeEnabled;
|
||||
set => Raw.modSmokeEnabled = value;
|
||||
}
|
||||
|
||||
public bool modXenon {
|
||||
get => Raw.modXenon;
|
||||
set => Raw.modXenon = value;
|
||||
}
|
||||
|
||||
public int modFrontWheels {
|
||||
get => Raw.modFrontWheels;
|
||||
set => Raw.modFrontWheels = value;
|
||||
}
|
||||
|
||||
public int modBackWheels {
|
||||
get => Raw.modBackWheels;
|
||||
set => Raw.modBackWheels = value;
|
||||
}
|
||||
|
||||
public int modPlateHolder {
|
||||
get => Raw.modPlateHolder;
|
||||
set => Raw.modPlateHolder = value;
|
||||
}
|
||||
|
||||
public int modVanityPlate {
|
||||
get => Raw.modVanityPlate;
|
||||
set => Raw.modVanityPlate = value;
|
||||
}
|
||||
|
||||
public int modTrimA {
|
||||
get => Raw.modTrimA;
|
||||
set => Raw.modTrimA = value;
|
||||
}
|
||||
|
||||
public int modOrnaments {
|
||||
get => Raw.modOrnaments;
|
||||
set => Raw.modOrnaments = value;
|
||||
}
|
||||
|
||||
public int modDashboard {
|
||||
get => Raw.modDashboard;
|
||||
set => Raw.modDashboard = value;
|
||||
}
|
||||
|
||||
public int modDial {
|
||||
get => Raw.modDial;
|
||||
set => Raw.modDial = value;
|
||||
}
|
||||
|
||||
public int modDoorSpeaker {
|
||||
get => Raw.modDoorSpeaker;
|
||||
set => Raw.modDoorSpeaker = value;
|
||||
}
|
||||
|
||||
public int modSeats {
|
||||
get => Raw.modSeats;
|
||||
set => Raw.modSeats = value;
|
||||
}
|
||||
|
||||
public int modSteeringWheel {
|
||||
get => Raw.modSteeringWheel;
|
||||
set => Raw.modSteeringWheel = value;
|
||||
}
|
||||
|
||||
public int modShifterLeavers {
|
||||
get => Raw.modShifterLeavers;
|
||||
set => Raw.modShifterLeavers = value;
|
||||
}
|
||||
|
||||
public int modAPlate {
|
||||
get => Raw.modAPlate;
|
||||
set => Raw.modAPlate = value;
|
||||
}
|
||||
|
||||
public int modSpeakers {
|
||||
get => Raw.modSpeakers;
|
||||
set => Raw.modSpeakers = value;
|
||||
}
|
||||
|
||||
public int modTrunk {
|
||||
get => Raw.modTrunk;
|
||||
set => Raw.modTrunk = value;
|
||||
}
|
||||
|
||||
public int modHydrolic {
|
||||
get => Raw.modHydrolic;
|
||||
set => Raw.modHydrolic = value;
|
||||
}
|
||||
|
||||
public int modEngineBlock {
|
||||
get => Raw.modEngineBlock;
|
||||
set => Raw.modEngineBlock = value;
|
||||
}
|
||||
|
||||
public int modAirFilter {
|
||||
get => Raw.modAirFilter;
|
||||
set => Raw.modAirFilter = value;
|
||||
}
|
||||
|
||||
public int modStruts {
|
||||
get => Raw.modStruts;
|
||||
set => Raw.modStruts = value;
|
||||
}
|
||||
|
||||
public int modArchCover {
|
||||
get => Raw.modArchCover;
|
||||
set => Raw.modArchCover = value;
|
||||
}
|
||||
|
||||
public int modAerials {
|
||||
get => Raw.modAerials;
|
||||
set => Raw.modAerials = value;
|
||||
}
|
||||
|
||||
public int modTrimB {
|
||||
get => Raw.modTrimB;
|
||||
set => Raw.modTrimB = value;
|
||||
}
|
||||
|
||||
public int modTank {
|
||||
get => Raw.modTank;
|
||||
set => Raw.modTank = value;
|
||||
}
|
||||
|
||||
/*public int modWindows
|
||||
{
|
||||
get => Raw.modWindows;
|
||||
set => Raw.modWindows = value;
|
||||
}*/
|
||||
|
||||
public int modLivery {
|
||||
get => Raw.modLivery;
|
||||
set => Raw.modLivery = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
26
C#/Mosleys/Mosleys.Shared/ESX/Shared/Account.cs
Normal file
26
C#/Mosleys/Mosleys.Shared/ESX/Shared/Account.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace Nexd.ESX.Shared
|
||||
{
|
||||
using System;
|
||||
|
||||
public class Account
|
||||
{
|
||||
public enum AccountType : int
|
||||
{
|
||||
Cash = 0,
|
||||
Bank = 1,
|
||||
Black = 2
|
||||
}
|
||||
|
||||
public dynamic Raw;
|
||||
|
||||
public string name => Raw.name;
|
||||
|
||||
public int money => Convert.ToInt32(Raw.money);
|
||||
|
||||
public string label => Raw.label;
|
||||
|
||||
public Account() { }
|
||||
|
||||
public Account(dynamic data) => Raw = data;
|
||||
}
|
||||
}
|
||||
25
C#/Mosleys/Mosleys.Shared/ESX/Shared/InventoryItem.cs
Normal file
25
C#/Mosleys/Mosleys.Shared/ESX/Shared/InventoryItem.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace Nexd.ESX.Shared
|
||||
{
|
||||
public class InventoryItem
|
||||
{
|
||||
public dynamic Raw;
|
||||
|
||||
public string name => Raw.name;
|
||||
|
||||
public int count => Raw.count;
|
||||
|
||||
public string label => Raw.label;
|
||||
|
||||
public double weight => Raw.weight;
|
||||
|
||||
public bool usable => Raw.usable;
|
||||
|
||||
public bool rare => Raw.rare;
|
||||
|
||||
public bool canRemove => Raw.canRemove;
|
||||
|
||||
public InventoryItem() { }
|
||||
|
||||
public InventoryItem(dynamic data) => Raw = data;
|
||||
}
|
||||
}
|
||||
29
C#/Mosleys/Mosleys.Shared/ESX/Shared/Job.cs
Normal file
29
C#/Mosleys/Mosleys.Shared/ESX/Shared/Job.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
namespace Nexd.ESX.Shared
|
||||
{
|
||||
public class Job
|
||||
{
|
||||
public dynamic Raw;
|
||||
|
||||
public int id => Raw.id;
|
||||
|
||||
public string name => Raw.name;
|
||||
|
||||
public string label => Raw.label;
|
||||
|
||||
public int grade => Raw.grade;
|
||||
|
||||
public string grade_name => Raw.grade_name;
|
||||
|
||||
public string grade_label => Raw.grade_label;
|
||||
|
||||
public int grade_salary => Raw.grade_salary;
|
||||
|
||||
public dynamic skin_male => Raw.skin_male;
|
||||
|
||||
public dynamic skin_female => Raw.skin_female;
|
||||
|
||||
public Job() { }
|
||||
|
||||
public Job(dynamic data) => Raw = data;
|
||||
}
|
||||
}
|
||||
35
C#/Mosleys/Mosleys.Shared/ESX/Shared/Weapon.cs
Normal file
35
C#/Mosleys/Mosleys.Shared/ESX/Shared/Weapon.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
namespace Nexd.ESX.Shared
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class Weapon
|
||||
{
|
||||
public dynamic Raw;
|
||||
|
||||
public string name => Raw.name;
|
||||
|
||||
public int ammo => Raw.ammo;
|
||||
|
||||
public string label => Raw.label;
|
||||
|
||||
public int tintIndex => Raw.tintIndex;
|
||||
|
||||
public List<string> components
|
||||
{
|
||||
get
|
||||
{
|
||||
List<string> temp = new List<string>();
|
||||
foreach (var i in Raw.components)
|
||||
{
|
||||
temp.Add(i);
|
||||
}
|
||||
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
public Weapon() { }
|
||||
|
||||
public Weapon(dynamic data) => Raw = data;
|
||||
}
|
||||
}
|
||||
6
C#/Mosleys/Mosleys.Shared/Models/BuyData.cs
Normal file
6
C#/Mosleys/Mosleys.Shared/Models/BuyData.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Mosleys.Shared.Models {
|
||||
public struct BuyData {
|
||||
public string Uuid { get; set; }
|
||||
public string Plate { get; set; }
|
||||
}
|
||||
}
|
||||
11
C#/Mosleys/Mosleys.Shared/Models/ExhibitUpdate.cs
Normal file
11
C#/Mosleys/Mosleys.Shared/Models/ExhibitUpdate.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Mosleys.Shared.Models {
|
||||
public struct ExhibitUpdate {
|
||||
public UpdateAction Action { get; set; }
|
||||
public ExhibitVehicle Exhibit { get; set; }
|
||||
}
|
||||
|
||||
public enum UpdateAction {
|
||||
Update,
|
||||
Delete
|
||||
}
|
||||
}
|
||||
25
C#/Mosleys/Mosleys.Shared/Models/ExhibitVehicle.cs
Normal file
25
C#/Mosleys/Mosleys.Shared/Models/ExhibitVehicle.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Dynamic;
|
||||
namespace Mosleys.Shared.Models {
|
||||
public class ExhibitVehicle {
|
||||
public string Uuid { get; set; }
|
||||
public string Owner { get; set; }
|
||||
public string Description { get; set; }
|
||||
public int Price { get; set; }
|
||||
public int Slot { get; set; }
|
||||
public ExpandoObject Vehicle { get; set; }
|
||||
public bool TestDrive { get; set; }
|
||||
|
||||
public static ExhibitVehicle FromDynamic(dynamic data) {
|
||||
var vehicle = new ExhibitVehicle();
|
||||
vehicle.Uuid = data.Uuid;
|
||||
vehicle.Owner = data.Owner;
|
||||
vehicle.Description = data.Description;
|
||||
vehicle.Price = Convert.ToInt32(data.Price);
|
||||
vehicle.Slot = Convert.ToInt32(data.Slot);
|
||||
vehicle.Vehicle = data.Vehicle;
|
||||
vehicle.TestDrive = data.TestDrive;
|
||||
return vehicle;
|
||||
}
|
||||
}
|
||||
}
|
||||
10
C#/Mosleys/Mosleys.Shared/Models/SellData.cs
Normal file
10
C#/Mosleys/Mosleys.Shared/Models/SellData.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using System.Dynamic;
|
||||
|
||||
namespace Mosleys.Shared.Models {
|
||||
public struct SellData {
|
||||
public int ParkingSpace { get; set; }
|
||||
public string Description { get; set; }
|
||||
public int Price { get; set; }
|
||||
public ExpandoObject VehicleProperties { get; set; }
|
||||
}
|
||||
}
|
||||
95
C#/Mosleys/Mosleys.Shared/Mosleys.Shared.csproj
Normal file
95
C#/Mosleys/Mosleys.Shared/Mosleys.Shared.csproj
Normal file
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{95000252-DA88-4A79-8958-CA70B42CE0F9}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Mosleys.Shared</RootNamespace>
|
||||
<AssemblyName>Mosleys.Shared</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CitizenFX.Core">
|
||||
<HintPath>..\Librarys\CitizenFX.Core.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp">
|
||||
<HintPath>..\Librarys\Microsoft.CSharp.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Config.cs" />
|
||||
<Compile Include="ESX\Client\Enums\HudColor.cs" />
|
||||
<Compile Include="ESX\Client\Enums\IconType.cs" />
|
||||
<Compile Include="ESX\Client\Enums\NotificationPicture.cs" />
|
||||
<Compile Include="ESX\Client\ESX.cs" />
|
||||
<Compile Include="ESX\Client\ESX.Game.cs" />
|
||||
<Compile Include="ESX\Client\ESX.Game.Utils.cs" />
|
||||
<Compile Include="ESX\Client\ESX.Scaleform.cs" />
|
||||
<Compile Include="ESX\Client\ESX.Scaleform.Utils.cs" />
|
||||
<Compile Include="ESX\Client\ESX.Streaming.cs" />
|
||||
<Compile Include="ESX\Client\ESX.UI.cs" />
|
||||
<Compile Include="ESX\Client\ESX.UI.HUD.cs" />
|
||||
<Compile Include="ESX\Client\ESX.UI.Menu.cs" />
|
||||
<Compile Include="ESX\Client\Models\ESX.UI.MenuData.cs" />
|
||||
<Compile Include="ESX\Client\Models\ESX.UI.MenuElement.cs" />
|
||||
<Compile Include="ESX\Client\Models\PlayerData.cs" />
|
||||
<Compile Include="ESX\Client\Models\VehicleProperties.cs" />
|
||||
<Compile Include="ESX\Shared\Account.cs" />
|
||||
<Compile Include="ESX\Shared\InventoryItem.cs" />
|
||||
<Compile Include="ESX\Shared\Job.cs" />
|
||||
<Compile Include="ESX\Shared\Weapon.cs" />
|
||||
<Compile Include="Models\BuyData.cs" />
|
||||
<Compile Include="Models\ExhibitUpdate.cs" />
|
||||
<Compile Include="Models\ExhibitVehicle.cs" />
|
||||
<Compile Include="Models\SellData.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SectionScript.cs" />
|
||||
<Compile Include="ServerConfig.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="fxmanifest.lua">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="settings.ini">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
|
||||
</Project>
|
||||
35
C#/Mosleys/Mosleys.Shared/Properties/AssemblyInfo.cs
Normal file
35
C#/Mosleys/Mosleys.Shared/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Mosleys.Shared")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Mosleys.Shared")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("95000252-DA88-4A79-8958-CA70B42CE0F9")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
9
C#/Mosleys/Mosleys.Shared/SectionScript.cs
Normal file
9
C#/Mosleys/Mosleys.Shared/SectionScript.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using CitizenFX.Core;
|
||||
using CitizenFX.Core.Native;
|
||||
|
||||
namespace Mosleys.Shared {
|
||||
|
||||
}
|
||||
154
C#/Mosleys/Mosleys.Shared/ServerConfig.cs
Normal file
154
C#/Mosleys/Mosleys.Shared/ServerConfig.cs
Normal file
@@ -0,0 +1,154 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using CitizenFX.Core.Native;
|
||||
|
||||
namespace Mosleys.Shared {
|
||||
public sealed class ServerConfig {
|
||||
private sealed class ServerSectionScript {
|
||||
private const char SplitChar = ' ';
|
||||
private const string SectionStart = "{";
|
||||
private const string SectionEnd = "}";
|
||||
private const string CommentPrefix = "//";
|
||||
private readonly string _fileName;
|
||||
|
||||
private readonly List<Tuple<string, Dictionary<string, string>>> _loadedData =
|
||||
new List<Tuple<string, Dictionary<string, string>>>();
|
||||
|
||||
private readonly List<string> _allSections = new List<string>();
|
||||
|
||||
public ServerSectionScript(string fileName, bool load = false) {
|
||||
_fileName = fileName;
|
||||
if (!load)
|
||||
return;
|
||||
Read();
|
||||
}
|
||||
|
||||
public string this[string section, string key, string result = ""] =>
|
||||
GetValue(section, key, result);
|
||||
|
||||
public T GetValue<T>(string section, string key, T result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
try {
|
||||
return (T)Convert.ChangeType(data, typeof(T));
|
||||
}
|
||||
catch (InvalidCastException) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public int[] GetIntArray(string section, string key, int[] result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
data = data.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
return data.Split(',').Select(n => Convert.ToInt32(n)).ToArray();
|
||||
}
|
||||
|
||||
public float[] GetFloatArray(string section, string key, float[] result) {
|
||||
if (!SectionExists(section))
|
||||
return result;
|
||||
string data = GetData(section, key, result.ToString());
|
||||
|
||||
data = data.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
return data.Split(',').Select(Convert.ToSingle).ToArray();
|
||||
}
|
||||
|
||||
public float[][] GetFloatArray2d(string section) {
|
||||
List<float[]> floats = new List<float[]>();
|
||||
|
||||
foreach (Tuple<string, Dictionary<string, string>> tuple in _loadedData) {
|
||||
if (!tuple.Item1.Equals(section)) continue;
|
||||
|
||||
foreach (var key in tuple.Item2.Values) {
|
||||
var data = key.Replace("[", "").Replace("]", "").Replace(" ", "");
|
||||
var vector = data.Split(',').Select(Convert.ToSingle).ToArray();
|
||||
floats.Add(vector);
|
||||
}
|
||||
}
|
||||
|
||||
return floats.ToArray();
|
||||
}
|
||||
|
||||
public string GetData(string section, string key, string result) {
|
||||
foreach (Tuple<string, Dictionary<string, string>> tuple in _loadedData) {
|
||||
if (tuple.Item1.Equals(section))
|
||||
return tuple.Item2.ContainsKey(key) ? tuple.Item2[key] : result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool SectionExists(string section) => _allSections.Contains(section);
|
||||
|
||||
public void Read() {
|
||||
_loadedData.Clear();
|
||||
_allSections.Clear();
|
||||
string str1 = "";
|
||||
Dictionary<string, string> source = new Dictionary<string, string>();
|
||||
string str2 = API.LoadResourceFile(API.GetCurrentResourceName(), _fileName);
|
||||
char[] chArray = { '\n' };
|
||||
foreach (string str3 in str2.Split(chArray).Select(str => str.Trim())) {
|
||||
string text = str3.Replace("\r", "");
|
||||
if (!string.IsNullOrEmpty(text) && !string.IsNullOrWhiteSpace(text)) {
|
||||
if (text.StartsWith(SectionStart)) {
|
||||
str1 = text.Substring(1);
|
||||
if (text.EndsWith(SectionEnd) && !str1.Contains(SectionStart)) {
|
||||
str1 = str1.Remove(str1.Length - 1, 1);
|
||||
_loadedData.Add(
|
||||
new Tuple<string, Dictionary<string, string>>(str1,
|
||||
new Dictionary<string, string>()));
|
||||
if (!_allSections.Contains(str1))
|
||||
_allSections.Add(str1);
|
||||
source.Clear();
|
||||
}
|
||||
}
|
||||
else if (text.EndsWith(SectionEnd) || text.StartsWith(SectionEnd)) {
|
||||
Dictionary<string, string> dictionary =
|
||||
source.ToDictionary(
|
||||
entry => entry.Key,
|
||||
entry => entry.Value);
|
||||
_loadedData.Add(new Tuple<string, Dictionary<string, string>>(str1, dictionary));
|
||||
if (!_allSections.Contains(str1))
|
||||
_allSections.Add(str1);
|
||||
source.Clear();
|
||||
}
|
||||
else if (!text.StartsWith(CommentPrefix)) {
|
||||
Tuple<string, string> data = ConvertToData(text);
|
||||
if (!source.ContainsKey(data.Item1))
|
||||
source.Add(data.Item1, data.Item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Tuple<string, string> ConvertToData(string text) {
|
||||
int length = text.IndexOf(SplitChar);
|
||||
if (length == -1)
|
||||
return new Tuple<string, string>(text, "");
|
||||
string str = "";
|
||||
if (length - 1 < text.Length)
|
||||
str = text.Substring(length + 1, text.Length - length - 1);
|
||||
return new Tuple<string, string>(text.Substring(0, length), str);
|
||||
}
|
||||
}
|
||||
|
||||
public ServerConfig() {
|
||||
var script = new ServerSectionScript("settings.ini", true);
|
||||
|
||||
ExhibitPrice = script.GetValue("[General]", "ExhibitPrice", 500);
|
||||
SellBill = script.GetValue("[General]", "SellBill", 0.1f);
|
||||
TargetSociety = script.GetValue("[General]", "TargetSociety", "mechanic");
|
||||
CarSlots = script.GetFloatArray2d("[CarSlots]");
|
||||
}
|
||||
public readonly int ExhibitPrice;
|
||||
public readonly float SellBill;
|
||||
public readonly string TargetSociety;
|
||||
|
||||
public readonly float[][] CarSlots;
|
||||
}
|
||||
}
|
||||
BIN
C#/Mosleys/Mosleys.Shared/bin/Release/Mosleys.Shared.dll
Normal file
BIN
C#/Mosleys/Mosleys.Shared/bin/Release/Mosleys.Shared.dll
Normal file
Binary file not shown.
21
C#/Mosleys/Mosleys.Shared/bin/Release/fxmanifest.lua
Normal file
21
C#/Mosleys/Mosleys.Shared/bin/Release/fxmanifest.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
fx_version 'cerulean'
|
||||
games { 'gta5' }
|
||||
|
||||
-- details
|
||||
author 'Leon Hoppe'
|
||||
description "Mosley's"
|
||||
version '2.0'
|
||||
|
||||
files {
|
||||
'Newtonsoft.Json.dll',
|
||||
'Mosleys.Shared.dll',
|
||||
'settings.ini'
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'Mosleys.Client.net.dll'
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'Mosleys.Server.net.dll'
|
||||
}
|
||||
42
C#/Mosleys/Mosleys.Shared/bin/Release/settings.ini
Normal file
42
C#/Mosleys/Mosleys.Shared/bin/Release/settings.ini
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
{[Blip]
|
||||
Position [-41.5, -1676.1, 30]
|
||||
Sprite 380
|
||||
Color 44
|
||||
Scale 1.0
|
||||
}
|
||||
|
||||
{[General]
|
||||
MenuTitle Mosley's
|
||||
ExhibitPrice 500
|
||||
TestDriveTime 90000
|
||||
SpawnRadius 100.0
|
||||
MinSellPrice 1000
|
||||
SellBill 0.1
|
||||
TargetSociety mechanic
|
||||
|
||||
ForbiddenVehicleClasses [10, 13, 14, 15, 16, 18, 19, 20, 21]
|
||||
|
||||
SellLocation [-30.6116, -1676.2323, 28.5]
|
||||
SpawnLocation [3.556, -1652.677, 28.853, 229.645]
|
||||
TestDriveLocation [-48.724, -1645.301, 29.034, 318.446]
|
||||
DigitalShowPoint [-31.4151, -1663.9031, 29.5]
|
||||
DigitalCamera [-24.2456, -1643.7988, 33.1410, 186.6901]
|
||||
}
|
||||
|
||||
{[CarSlots]
|
||||
0 [-24.969, -1651.355, 28.35, 258.833]
|
||||
1 [-51.790, -1694.293, 28.35, 301.206]
|
||||
2 [-56.162, -1690.660, 28.35, 298.664]
|
||||
3 [-59.606, -1685.879, 28.35, 309.221]
|
||||
4 [-53.514, -1678.981, 28.35, 301.604]
|
||||
5 [-43.349, -1666.895, 28.35, 296.207]
|
||||
6 [-35.946, -1657.419, 28.35, 144.485]
|
||||
7 [-16.085, -1653.906, 28.35, 308.377]
|
||||
8 [-27.076, -1657.913, 28.35, 286.712]
|
||||
9 [-23.641, -1643.140, 28.35, 121.021]
|
||||
10 [-18.106, -1645.940, 28.35, 132.801]
|
||||
11 [-43.647, -1690.989, 28.35, 311.298]
|
||||
12 [-47.901, -1688.066, 28.35, 306.442]
|
||||
13 [-51.714, -1683.800, 28.35, 306.119]
|
||||
}
|
||||
21
C#/Mosleys/Mosleys.Shared/fxmanifest.lua
Normal file
21
C#/Mosleys/Mosleys.Shared/fxmanifest.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
fx_version 'cerulean'
|
||||
games { 'gta5' }
|
||||
|
||||
-- details
|
||||
author 'Leon Hoppe'
|
||||
description "Mosley's"
|
||||
version '2.0'
|
||||
|
||||
files {
|
||||
'Newtonsoft.Json.dll',
|
||||
'Mosleys.Shared.dll',
|
||||
'settings.ini'
|
||||
}
|
||||
|
||||
client_scripts {
|
||||
'Mosleys.Client.net.dll'
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'Mosleys.Server.net.dll'
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
c84418636563b1fd6318339a01e7718fc7e6bb37
|
||||
@@ -0,0 +1,6 @@
|
||||
D:\Programmierstuff\C#\Mosleys\Mosleys.Shared\bin\Release\fxmanifest.lua
|
||||
D:\Programmierstuff\C#\Mosleys\Mosleys.Shared\bin\Release\Mosleys.Shared.dll
|
||||
D:\Programmierstuff\C#\Mosleys\Mosleys.Shared\obj\Release\Mosleys.Shared.csproj.AssemblyReference.cache
|
||||
D:\Programmierstuff\C#\Mosleys\Mosleys.Shared\obj\Release\Mosleys.Shared.csproj.CoreCompileInputs.cache
|
||||
D:\Programmierstuff\C#\Mosleys\Mosleys.Shared\obj\Release\Mosleys.Shared.dll
|
||||
D:\Programmierstuff\C#\Mosleys\Mosleys.Shared\bin\Release\settings.ini
|
||||
BIN
C#/Mosleys/Mosleys.Shared/obj/Release/Mosleys.Shared.dll
Normal file
BIN
C#/Mosleys/Mosleys.Shared/obj/Release/Mosleys.Shared.dll
Normal file
Binary file not shown.
42
C#/Mosleys/Mosleys.Shared/settings.ini
Normal file
42
C#/Mosleys/Mosleys.Shared/settings.ini
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
{[Blip]
|
||||
Position [-41.5, -1676.1, 30]
|
||||
Sprite 380
|
||||
Color 44
|
||||
Scale 1.0
|
||||
}
|
||||
|
||||
{[General]
|
||||
MenuTitle Mosley's
|
||||
ExhibitPrice 500
|
||||
TestDriveTime 90000
|
||||
SpawnRadius 100.0
|
||||
MinSellPrice 1000
|
||||
SellBill 0.1
|
||||
TargetSociety mechanic
|
||||
|
||||
ForbiddenVehicleClasses [10, 13, 14, 15, 16, 18, 19, 20, 21]
|
||||
|
||||
SellLocation [-30.6116, -1676.2323, 28.5]
|
||||
SpawnLocation [3.556, -1652.677, 28.853, 229.645]
|
||||
TestDriveLocation [-48.724, -1645.301, 29.034, 318.446]
|
||||
DigitalShowPoint [-31.4151, -1663.9031, 29.5]
|
||||
DigitalCamera [-24.2456, -1643.7988, 33.1410, 186.6901]
|
||||
}
|
||||
|
||||
{[CarSlots]
|
||||
0 [-24.969, -1651.355, 28.35, 258.833]
|
||||
1 [-51.790, -1694.293, 28.35, 301.206]
|
||||
2 [-56.162, -1690.660, 28.35, 298.664]
|
||||
3 [-59.606, -1685.879, 28.35, 309.221]
|
||||
4 [-53.514, -1678.981, 28.35, 301.604]
|
||||
5 [-43.349, -1666.895, 28.35, 296.207]
|
||||
6 [-35.946, -1657.419, 28.35, 144.485]
|
||||
7 [-16.085, -1653.906, 28.35, 308.377]
|
||||
8 [-27.076, -1657.913, 28.35, 286.712]
|
||||
9 [-23.641, -1643.140, 28.35, 121.021]
|
||||
10 [-18.106, -1645.940, 28.35, 132.801]
|
||||
11 [-43.647, -1690.989, 28.35, 311.298]
|
||||
12 [-47.901, -1688.066, 28.35, 306.442]
|
||||
13 [-51.714, -1683.800, 28.35, 306.119]
|
||||
}
|
||||
Reference in New Issue
Block a user