Merge branch 'develop' into 'master'
0.8.0 See merge request log-gtav/reallife-gamemode!67
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -2,32 +2,32 @@
|
|||||||
const mothers = [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 45];
|
const mothers = [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 45];
|
||||||
const fatherNames = ["Benjamin", "Daniel", "Joshua", "Noah", "Andrew", "Juan", "Alex", "Isaac", "Evan", "Ethan", "Vincent", "Angel", "Diego", "Adrian", "Gabriel", "Michael", "Santiago", "Kevin", "Louis", "Samuel", "Anthony", "Claude", "Niko", "John"];
|
const fatherNames = ["Benjamin", "Daniel", "Joshua", "Noah", "Andrew", "Juan", "Alex", "Isaac", "Evan", "Ethan", "Vincent", "Angel", "Diego", "Adrian", "Gabriel", "Michael", "Santiago", "Kevin", "Louis", "Samuel", "Anthony", "Claude", "Niko", "John"];
|
||||||
const motherNames = ["Hannah", "Aubrey", "Jasmine", "Gisele", "Amelia", "Isabella", "Zoe", "Ava", "Camila", "Violet", "Sophia", "Evelyn", "Nicole", "Ashley", "Gracie", "Brianna", "Natalie", "Olivia", "Elizabeth", "Charlotte", "Emma", "Misty"];
|
const motherNames = ["Hannah", "Aubrey", "Jasmine", "Gisele", "Amelia", "Isabella", "Zoe", "Ava", "Camila", "Violet", "Sophia", "Evelyn", "Nicole", "Ashley", "Gracie", "Brianna", "Natalie", "Olivia", "Elizabeth", "Charlotte", "Emma", "Misty"];
|
||||||
const featureNames = ["Nose Width", "Nose Bottom Height", "Nose Tip Length", "Nose Bridge Depth", "Nose Tip Height", "Nose Broken", "Brow Height", "Brow Depth", "Cheekbone Height", "Cheekbone Width", "Cheek Depth", "Eye Size", "Lip Thickness", "Jaw Width", "Jaw Shape", "Chin Height", "Chin Depth", "Chin Width", "Chin Indent", "Neck Width"];
|
const featureNames = ["Nasenbreite", "Nasenbodenhöhe", "Nasenspitzenlänge", "Nasenrückentiefe", "Nasenspitzenhöhe", "Nasenbruch", "Augenbrauenhöhe", "Augenbrauentiefe", "Wangenknochenhöhe", "Wangenknochenbreite", "Wangentiefe", "Augengröße", "Lippenvolumen", "Kieferweite", "Kieferform", "Kinnhöhe", "Kinntiefe", "Kinnweite", "Kinnbeule", "Nackenbreite"];
|
||||||
const appearanceNames = ["Blemishes", "Facial Hair", "Eyebrows", "Ageing", "Makeup", "Blush", "Complexion", "Sun Damage", "Lipstick", "Moles & Freckles", "Chest Hair"];
|
const appearanceNames = ["Gesichtsmakel", "Gesichtsbehaarung", "Augenbrauen", "Alterung", "Makeup", "Errötungen", "Teint", "Sonnenschaden", "Lippenstift", "Muttermale & Sommersprossen", "Brustbehaarung"];
|
||||||
|
|
||||||
const appearanceItemNames = [
|
const appearanceItemNames = [
|
||||||
// blemishes
|
// blemishes
|
||||||
["None", "Measles", "Pimples", "Spots", "Break Out", "Blackheads", "Build Up", "Pustules", "Zits", "Full Acne", "Acne", "Cheek Rash", "Face Rash", "Picker", "Puberty", "Eyesore", "Chin Rash", "Two Face", "T Zone", "Greasy", "Marked", "Acne Scarring", "Full Acne Scarring", "Cold Sores", "Impetigo"],
|
["Keine", "Masern", "Pickel", "Flecken", "Ausbruch", "Mitesser", "Aufbau", "Pusteln", "Pickel", "Vollakne", "Akne", "Wangenausschlag", "Gesichtsausschlag", "Picker", "Pubertät", "Schandfleck", "Kinnausschlag", "Zwei Gesichter", "T Zone", "Fettig", "Gekennzeichnet", "Aknenarben", "Vollakne Narben", "Fieberbläschen", "Eiterflechte"],
|
||||||
// facial hair
|
// facial hair
|
||||||
["None", "Light Stubble", "Balbo", "Circle Beard", "Goatee", "Chin", "Chin Fuzz", "Pencil Chin Strap", "Scruffy", "Musketeer", "Mustache", "Trimmed Beard", "Stubble", "Thin Circle Beard", "Horseshoe", "Pencil and 'Chops", "Chin Strap Beard", "Balbo and Sideburns", "Mutton Chops", "Scruffy Beard", "Curly", "Curly & Deep Stranger", "Handlebar", "Faustic", "Otto & Patch", "Otto & Full Stranger", "Light Franz", "The Hampstead", "The Ambrose", "Lincoln Curtain"],
|
["Keine", "Leichte Stoppeln", "Balbo", "Kreis Bart", "Spitzbart", "Kinn", "Kinn Flaum", "Pencil Chin Strap", "Scruffy", "Musketier", "Schnurrbart", "Getrimmt", "Stoppelbart", "Dünner Kreis Bart", "Hufeisen", "Koteletten", "Kinnriemen Bart", "Balbo und Koteletten", "Koteletten 2", "Schäbiger Bart", "Lockig", "Lockig", "Lenker Bart", "Faustisch", "Otto & Patch", "Otto & Full Stranger", "Light Franz", "The Hampstead", "Der Ambrosius", "Lincoln Curtain"],
|
||||||
// eyebrows
|
// eyebrows
|
||||||
["None", "Balanced", "Fashion", "Cleopatra", "Quizzical", "Femme", "Seductive", "Pinched", "Chola", "Triomphe", "Carefree", "Curvaceous", "Rodent", "Double Tram", "Thin", "Penciled", "Mother Plucker", "Straight and Narrow", "Natural", "Fuzzy", "Unkempt", "Caterpillar", "Regular", "Mediterranean", "Groomed", "Bushels", "Feathered", "Prickly", "Monobrow", "Winged", "Triple Tram", "Arched Tram", "Cutouts", "Fade Away", "Solo Tram"],
|
["Keine", "Ausbalanciert", "Fashion", "Kleopatra", "Fragend", "Weiblich", "Verführerisch", "Geklemmt", "Chola", "Triomphe", "Sorglos", "Kurvenreich", "Nagetier", "Double Tram", "Dünn", "Gezeichnet", "Mother Plucker", "Gerade und schmal", "Natürlich", "Flaumig", "Ungepflegt", "Raupe", "Regulär", "Mediterran", "Gepflegt", "Scheffel", "Gefiedert", "Stachelig", "Monobraue", "Geflügelt", "Triple Tram", "Arched Tram", "Ausschnitte", "Verblassen", "Solo Tram"],
|
||||||
// ageing
|
// ageing
|
||||||
["None", "Crow's Feet", "First Signs", "Middle Aged", "Worry Lines", "Depression", "Distinguished", "Aged", "Weathered", "Wrinkled", "Sagging", "Tough Life", "Vintage", "Retired", "Junkie", "Geriatric"],
|
["Keine", "Krähenfüße ", "Erste Anzeichen", "Im mittleren Alter", "Sorgenfalten", "Depression", "Ausgezeichnet", "Alt", "Verwittert", "Faltig", "Durchhängen", "Hartes Leben", "Vintage", "Im Ruhestand", "Junkie", "Geriatrisch"],
|
||||||
// makeup
|
// makeup
|
||||||
["None", "Smoky Black", "Bronze", "Soft Gray", "Retro Glam", "Natural Look", "Cat Eyes", "Chola", "Vamp", "Vinewood Glamour", "Bubblegum", "Aqua Dream", "Pin Up", "Purple Passion", "Smoky Cat Eye", "Smoldering Ruby", "Pop Princess"],
|
["Keine", "Smoky Black", "Bronze", "Soft Gray", "Retro Glam", "Natural Look", "Cat Eyes", "Chola", "Vamp", "Vinewood Glamour", "Bubblegum", "Aqua Dream", "Pin Up", "Purple Passion", "Smoky Cat Eye", "Smoldering Ruby", "Pop Princess"],
|
||||||
// blush
|
// blush
|
||||||
["None", "Full", "Angled", "Round", "Horizontal", "High", "Sweetheart", "Eighties"],
|
["Keine", "Voll", "Abgewinkelt", "Rund", "Horizontal", "Hoch", "Sweetheart", "Achtziger Jahre"],
|
||||||
// complexion
|
// complexion
|
||||||
["None", "Rosy Cheeks", "Stubble Rash", "Hot Flush", "Sunburn", "Bruised", "Alchoholic", "Patchy", "Totem", "Blood Vessels", "Damaged", "Pale", "Ghostly"],
|
["Keine", "Rosige Wangen", "Stoppelausschlag", "Hitzewallungen", "Sonnenbrand", "Gequetscht", "AlkoholikerIn", "Lückenhaft", "Totem", "Blutgefäße", "Beschädigt", "Blass", "Gespenstisch"],
|
||||||
// sun damage
|
// sun damage
|
||||||
["None", "Uneven", "Sandpaper", "Patchy", "Rough", "Leathery", "Textured", "Coarse", "Rugged", "Creased", "Cracked", "Gritty"],
|
["Keine", "Ungleichmäßig", "Sandpapier", "Lückenhaft", "Rau", "Lederig", "Strukturiert", "Grob", "Robust", "Zerknittert", "Gebrochen", "Grobkörnig"],
|
||||||
// lipstick
|
// lipstick
|
||||||
["None", "Color Matte", "Color Gloss", "Lined Matte", "Lined Gloss", "Heavy Lined Matte", "Heavy Lined Gloss", "Lined Nude Matte", "Liner Nude Gloss", "Smudged", "Geisha"],
|
["Keine", "Color Matte", "Color Gloss", "Lined Matte", "Lined Gloss", "Heavy Lined Matte", "Heavy Lined Gloss", "Lined Nude Matte", "Liner Nude Gloss", "Smudged", "Geisha"],
|
||||||
// freckles
|
// freckles
|
||||||
["None", "Cherub", "All Over", "Irregular", "Dot Dash", "Over the Bridge", "Baby Doll", "Pixie", "Sun Kissed", "Beauty Marks", "Line Up", "Modelesque", "Occasional", "Speckled", "Rain Drops", "Double Dip", "One Sided", "Pairs", "Growth"],
|
["Keine", "Cherub", "All Over", "Irregular", "Dot Dash", "Over the Bridge", "Baby Doll", "Pixie", "Sun Kissed", "Beauty Marks", "Line Up", "Modelesque", "Occasional", "Speckled", "Rain Drops", "Double Dip", "One Sided", "Pairs", "Growth"],
|
||||||
// chest hair
|
// chest hair
|
||||||
["None", "Natural", "The Strip", "The Tree", "Hairy", "Grisly", "Ape", "Groomed Ape", "Bikini", "Lightning Bolt", "Reverse Lightning", "Love Heart", "Chestache", "Happy Face", "Skull", "Snail Trail", "Slug and Nips", "Hairy Arms"]
|
["Keine", "Natural", "The Strip", "The Tree", "Hairy", "Grisly", "Ape", "Groomed Ape", "Bikini", "Lightning Bolt", "Reverse Lightning", "Love Heart", "Chestache", "Happy Face", "Skull", "Snail Trail", "Slug and Nips", "Hairy Arms"]
|
||||||
];
|
];
|
||||||
|
|
||||||
const hairList = [
|
const hairList = [
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ const creatorCoords = {
|
|||||||
cameraLookAt: new mp.Vector3(402.8664, -996.4108, -98.5)
|
cameraLookAt: new mp.Vector3(402.8664, -996.4108, -98.5)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const surgeryCoords = {
|
||||||
|
camera: new mp.Vector3(265.6026, -1340.2378, 25.000),
|
||||||
|
cameraLookAt: new mp.Vector3(266.472, -1339.1357, 25.000)
|
||||||
|
};
|
||||||
|
|
||||||
const localPlayer = mp.players.local;
|
const localPlayer = mp.players.local;
|
||||||
|
|
||||||
export default function charCreator(globalData: IGlobalData) {
|
export default function charCreator(globalData: IGlobalData) {
|
||||||
@@ -218,7 +223,7 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
let genderItem = new UIMenuListItem("Geschlecht", "~r~Dies setzt deine Einstellungen zur\u00fcck.", new ItemsCollection(["M\u00e4nnlich", "Weiblich"]));
|
let genderItem = new UIMenuListItem("Geschlecht", "~r~Dies setzt deine Einstellungen zur\u00fcck.", new ItemsCollection(["M\u00e4nnlich", "Weiblich"]));
|
||||||
creatorMainMenu.AddItem(genderItem);
|
creatorMainMenu.AddItem(genderItem);
|
||||||
creatorMainMenu.AddItem(new UIMenuItem("Eltern", "Eltern des Charakters."));
|
creatorMainMenu.AddItem(new UIMenuItem("Eltern", "Eltern des Charakters."));
|
||||||
creatorMainMenu.AddItem(new UIMenuItem("Gesichtsz\u00fcge", "Gesichtsz\u00fcge des Charakters."));
|
creatorMainMenu.AddItem(new UIMenuItem("Gesichtsmerkmale", "Gesichtsmerkmale des Charakters."));
|
||||||
creatorMainMenu.AddItem(new UIMenuItem("Aussehen", "Aussehen des Charakters."));
|
creatorMainMenu.AddItem(new UIMenuItem("Aussehen", "Aussehen des Charakters."));
|
||||||
creatorMainMenu.AddItem(new UIMenuItem("Haar & Farben", "Haare & Farben deines Charakters."));
|
creatorMainMenu.AddItem(new UIMenuItem("Haar & Farben", "Haare & Farben deines Charakters."));
|
||||||
|
|
||||||
@@ -232,10 +237,13 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
saveItem.HighlightedBackColor = new Color(25, 118, 210);
|
saveItem.HighlightedBackColor = new Color(25, 118, 210);
|
||||||
creatorMainMenu.AddItem(saveItem);
|
creatorMainMenu.AddItem(saveItem);
|
||||||
|
|
||||||
//let cancelItem = new UIMenuItem("Abbrechen", "Setzt alle \u00c4nderungen zur\u00fcck.");
|
if (isSurgery) {
|
||||||
//cancelItem.BackColor = new Color(213, 0, 0);
|
let cancelItem = new UIMenuItem("Abbrechen", "Bricht die Operation ab");
|
||||||
//cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
cancelItem.BackColor = new Color(213, 0, 0);
|
||||||
//creatorMainMenu.AddItem(cancelItem);
|
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||||
|
creatorMainMenu.AddItem(cancelItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
creatorMainMenu.ListChange.on((item, listIndex) => {
|
creatorMainMenu.ListChange.on((item, listIndex) => {
|
||||||
if (item === genderItem) {
|
if (item === genderItem) {
|
||||||
@@ -308,30 +316,29 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
chestHairColorItem.Index
|
chestHairColorItem.Index
|
||||||
];
|
];
|
||||||
for (let i = 0; i < creatorMenus.length; i++) creatorMenus[i].Visible = false;
|
for (let i = 0; i < creatorMenus.length; i++) creatorMenus[i].Visible = false;
|
||||||
mp.gui.chat.show(true);
|
|
||||||
mp.game.ui.displayRadar(true);
|
|
||||||
mp.game.ui.displayHud(true);
|
|
||||||
localPlayer.freezePosition(false);
|
|
||||||
localPlayer.setDefaultComponentVariation();
|
localPlayer.setDefaultComponentVariation();
|
||||||
localPlayer.setComponentVariation(2, Data.hairList[currentGender][hairItem.Index].ID, 0, 2);
|
localPlayer.setComponentVariation(2, Data.hairList[currentGender][hairItem.Index].ID, 0, 2);
|
||||||
mp.game.cam.renderScriptCams(false, false, 0, true, false);
|
mp.game.cam.renderScriptCams(false, false, 0, true, false);
|
||||||
mp.events.callRemote("creatorSave", currentGender, JSON.stringify(parentData), JSON.stringify(featureData), JSON.stringify(appearanceData), JSON.stringify(hairAndColors));
|
mp.events.callRemote("creatorSave", currentGender, JSON.stringify(parentData), JSON.stringify(featureData), JSON.stringify(appearanceData), JSON.stringify(hairAndColors));
|
||||||
globalData.InMenu = false;
|
leaveCreator();
|
||||||
globalData.InMenu = false;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
mp.events.callRemote("creator_Leave");
|
if (isSurgery) mp.events.callRemote("surgeryLeave");
|
||||||
globalData.InMenu = false;
|
leaveCreator();
|
||||||
globalData.InMenu = false;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
creatorMainMenu.MenuClose.on(() => {
|
creatorMainMenu.MenuClose.on(() => {
|
||||||
mp.events.callRemote("creator_Leave");
|
if (isSurgery) {
|
||||||
globalData.InMenu = false;
|
mp.events.callRemote("surgeryLeave");
|
||||||
globalData.InMenu = false;
|
leaveCreator();
|
||||||
|
} else {
|
||||||
|
creatorMainMenu.Open();
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
creatorMainMenu.Visible = false;
|
creatorMainMenu.Visible = false;
|
||||||
@@ -384,7 +391,7 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
let features = [];
|
let features = [];
|
||||||
for (let i = -1.0; i <= 1.01; i += 0.01) features.push(i.toFixed(2));
|
for (let i = -1.0; i <= 1.01; i += 0.01) features.push(i.toFixed(2));
|
||||||
|
|
||||||
let creatorFeaturesMenu = new Menu("Gesichtsz\u00fcge", "", new Point(0, screenRes.y / 3), null, null);
|
let creatorFeaturesMenu = new Menu("Gesichtsmerkmale", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
|
||||||
for (let i = 0; i < Data.featureNames.length; i++) {
|
for (let i = 0; i < Data.featureNames.length; i++) {
|
||||||
let tempFeatureItem = new UIMenuListItem(Data.featureNames[i], "", new ItemsCollection(features));
|
let tempFeatureItem = new UIMenuListItem(Data.featureNames[i], "", new ItemsCollection(features));
|
||||||
@@ -394,7 +401,7 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
creatorFeaturesMenu.AddItem(new UIMenuItem("Zuf\u00e4llig", "~r~Zuf\u00e4llige Gesichtsz\u00fcge."));
|
creatorFeaturesMenu.AddItem(new UIMenuItem("Zuf\u00e4llig", "~r~Zuf\u00e4llige Gesichtsz\u00fcge."));
|
||||||
creatorFeaturesMenu.AddItem(new UIMenuItem("Zur\u00fccksetzen", "~r~Setzt Gesichtsz\u00fcge zur\u00fcck."));
|
creatorFeaturesMenu.AddItem(new UIMenuItem("Zur\u00fccksetzen", "~r~Setzt Gesichtsmerkmale zurück."));
|
||||||
|
|
||||||
creatorFeaturesMenu.ItemSelect.on((item, index) => {
|
creatorFeaturesMenu.ItemSelect.on((item, index) => {
|
||||||
switch (item.Text) {
|
switch (item.Text) {
|
||||||
@@ -552,12 +559,26 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
creatorMenus.push(creatorHairMenu);
|
creatorMenus.push(creatorHairMenu);
|
||||||
// CREATOR HAIR & COLORS END
|
// CREATOR HAIR & COLORS END
|
||||||
|
|
||||||
|
var isSurgery = false;
|
||||||
|
|
||||||
// EVENTS
|
// EVENTS
|
||||||
mp.events.add("toggleCreator", () => {
|
mp.events.add("toggleCreator", (charExists) => {
|
||||||
if (creatorCamera === undefined) {
|
if (!mp.cameras.exists(creatorCamera)) {
|
||||||
creatorCamera = mp.cameras.new("creatorCamera", creatorCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
if (charExists) {
|
||||||
creatorCamera.pointAtCoord(creatorCoords.cameraLookAt.x, creatorCoords.cameraLookAt.y, creatorCoords.cameraLookAt.z);
|
creatorCamera = mp.cameras.new("creatorCamera", surgeryCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
||||||
creatorCamera.setActive(true);
|
creatorCamera.pointAtCoord(surgeryCoords.cameraLookAt.x, surgeryCoords.cameraLookAt.y, surgeryCoords.cameraLookAt.z);
|
||||||
|
creatorCamera.setActive(true);
|
||||||
|
isSurgery = true;
|
||||||
|
} else {
|
||||||
|
creatorCamera = mp.cameras.new("creatorCamera", creatorCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
||||||
|
creatorCamera.pointAtCoord(creatorCoords.cameraLookAt.x, creatorCoords.cameraLookAt.y, creatorCoords.cameraLookAt.z);
|
||||||
|
creatorCamera.setActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
resetAppearanceMenu();
|
||||||
|
resetFeaturesMenu();
|
||||||
|
resetHairAndColorsMenu();
|
||||||
|
resetParentsMenu();
|
||||||
|
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
@@ -569,14 +590,67 @@ export default function charCreator(globalData: IGlobalData) {
|
|||||||
localPlayer.clearTasksImmediately();
|
localPlayer.clearTasksImmediately();
|
||||||
localPlayer.freezePosition(true);
|
localPlayer.freezePosition(true);
|
||||||
mp.game.cam.renderScriptCams(true, false, 0, true, false);
|
mp.game.cam.renderScriptCams(true, false, 0, true, false);
|
||||||
|
applyCreatorOutfit();
|
||||||
|
mp.events.callRemote("creator_GenderChange", 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("sendToServer", (characterData) => {
|
mp.events.add("sendToServer", (characterData) => {
|
||||||
mp.events.callRemote("creatorSave", characterData);
|
mp.events.callRemote("creatorSave", characterData);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
creatorMenus.forEach(menu => {
|
creatorMenus.forEach(menu => {
|
||||||
menu.Visible = false;
|
menu.Visible = false;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function leaveCreator() {
|
||||||
|
mp.gui.chat.show(true);
|
||||||
|
mp.game.ui.displayRadar(true);
|
||||||
|
mp.game.ui.displayHud(true);
|
||||||
|
localPlayer.freezePosition(false);
|
||||||
|
mp.game.cam.renderScriptCams(false, false, 0, true, false);
|
||||||
|
creatorCamera.destroy();
|
||||||
|
globalData.InMenu = false;
|
||||||
|
globalData.InMenu = false;
|
||||||
|
if (isSurgery) isSurgery = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
mp.events.add("render", () => {
|
||||||
|
if (mp.cameras.exists(creatorCamera)) disableInput();
|
||||||
|
});
|
||||||
|
|
||||||
|
function disableInput() {
|
||||||
|
|
||||||
|
//WASD
|
||||||
|
mp.game.controls.disableControlAction(0, 30, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 31, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 32, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 33, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 34, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 35, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 266, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 267, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 268, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 269, true);
|
||||||
|
|
||||||
|
//SPACE
|
||||||
|
mp.game.controls.disableControlAction(0, 22, true);
|
||||||
|
|
||||||
|
//R
|
||||||
|
mp.game.controls.disableControlAction(0, 140, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 263, true);
|
||||||
|
|
||||||
|
//LMB
|
||||||
|
mp.game.controls.disableControlAction(0, 24, true);
|
||||||
|
mp.game.controls.disableControlAction(0, 257, true);
|
||||||
|
|
||||||
|
//LEFT CTRL
|
||||||
|
mp.game.controls.disableControlAction(0, 36, true);
|
||||||
|
|
||||||
|
//Q
|
||||||
|
mp.game.controls.disableControlAction(0, 44, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
534
ReallifeGamemode.Client/CharCreator/surgery.ts
Normal file
534
ReallifeGamemode.Client/CharCreator/surgery.ts
Normal file
@@ -0,0 +1,534 @@
|
|||||||
|
import * as NativeUI from '../libs/NativeUI';
|
||||||
|
import * as Data from './data';
|
||||||
|
|
||||||
|
const Menu = NativeUI.Menu;
|
||||||
|
const UIMenuItem = NativeUI.UIMenuItem;
|
||||||
|
const UIMenuListItem = NativeUI.UIMenuListItem;
|
||||||
|
const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
|
||||||
|
const BadgeStyle = NativeUI.BadgeStyle;
|
||||||
|
const Point = NativeUI.Point;
|
||||||
|
const ItemsCollection = NativeUI.ItemsCollection;
|
||||||
|
const Color = NativeUI.Color;
|
||||||
|
const Font = NativeUI.Font;
|
||||||
|
var screenRes = mp.game.graphics.getScreenResolution(0, 0);
|
||||||
|
|
||||||
|
const creatorCoords = {
|
||||||
|
camera: new mp.Vector3(265.6026, -1340.2378, 25.000),
|
||||||
|
cameraLookAt: new mp.Vector3(266.472, -1339.1357, 25.000)
|
||||||
|
};
|
||||||
|
|
||||||
|
const localPlayer = mp.players.local;
|
||||||
|
|
||||||
|
export default function charSurgery(globalData: IGlobalData) {
|
||||||
|
|
||||||
|
var creatorCamera: CameraMp;
|
||||||
|
var activeSurgery: boolean = false;
|
||||||
|
var saveCharacter: PlayerCharacterData;
|
||||||
|
var characterData: PlayerCharacterData;
|
||||||
|
|
||||||
|
function getRandomInt(min, max) {
|
||||||
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||||
|
}
|
||||||
|
|
||||||
|
var creatorMainMenu: NativeUI.Menu;
|
||||||
|
var debugString = [0, 0, 0, 0, 0,0,0,0,0,0,0,0,0,0];
|
||||||
|
|
||||||
|
mp.events.add("render", () => {
|
||||||
|
mp.game.graphics.drawText(debugString.toString(), [0.5, 0.1],
|
||||||
|
{
|
||||||
|
font: 4,
|
||||||
|
color: [255, 255, 255, 255],
|
||||||
|
scale: [0.5, 0.5],
|
||||||
|
outline: true,
|
||||||
|
centre: false
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("toggleSurgery", (jsonCharacterData: string) => {
|
||||||
|
if (!mp.cameras.exists(creatorCamera)) {
|
||||||
|
activeSurgery = true;
|
||||||
|
debugString[0] = 1;
|
||||||
|
characterData = JSON.parse(jsonCharacterData);
|
||||||
|
saveCharacter = characterData;
|
||||||
|
debugString[1] = 2;
|
||||||
|
loadCharacterData();
|
||||||
|
debugString[2] = 3;
|
||||||
|
creatorCamera = mp.cameras.new("creatorCamera", creatorCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
||||||
|
creatorCamera.pointAtCoord(creatorCoords.cameraLookAt.x, creatorCoords.cameraLookAt.y, creatorCoords.cameraLookAt.z);
|
||||||
|
creatorCamera.setActive(true);
|
||||||
|
|
||||||
|
globalData.InMenu = true;
|
||||||
|
globalData.InMenu = true;
|
||||||
|
mp.gui.chat.show(false);
|
||||||
|
mp.game.ui.displayRadar(false);
|
||||||
|
mp.game.ui.displayHud(false);
|
||||||
|
localPlayer.clearTasksImmediately();
|
||||||
|
localPlayer.freezePosition(true);
|
||||||
|
mp.game.cam.renderScriptCams(true, false, 0, true, false);
|
||||||
|
debugString[3] = 4;
|
||||||
|
applyCreatorOutfit();
|
||||||
|
getCharacterMainMenu();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var loadedFeatures;
|
||||||
|
var loadedAppearance;
|
||||||
|
var loadedAppearanceOpacity;
|
||||||
|
|
||||||
|
function loadCharacterData() {
|
||||||
|
loadedFeatures = [
|
||||||
|
characterData.NoseWidth,
|
||||||
|
characterData.NoseBottomHeight,
|
||||||
|
characterData.NoseTipLength,
|
||||||
|
characterData.NoseBridgeDepth,
|
||||||
|
characterData.NoseTipHeight,
|
||||||
|
characterData.NoseBroken,
|
||||||
|
characterData.BrowHeight,
|
||||||
|
characterData.BrowDepth,
|
||||||
|
characterData.CheekboneHeight,
|
||||||
|
characterData.CheekboneWidth,
|
||||||
|
characterData.CheekDepth,
|
||||||
|
characterData.EyeSize,
|
||||||
|
characterData.LipThickness,
|
||||||
|
characterData.JawWidth,
|
||||||
|
characterData.JawShape,
|
||||||
|
characterData.ChinHeight,
|
||||||
|
characterData.ChinDepth,
|
||||||
|
characterData.ChinWidth,
|
||||||
|
characterData.ChinIndent,
|
||||||
|
characterData.NeckWidth
|
||||||
|
];
|
||||||
|
loadedAppearance = [
|
||||||
|
characterData.Blemishes,
|
||||||
|
characterData.FacialHair,
|
||||||
|
characterData.Eyebrows,
|
||||||
|
characterData.Ageing,
|
||||||
|
characterData.Makeup,
|
||||||
|
characterData.Blush,
|
||||||
|
characterData.Complexion,
|
||||||
|
characterData.SunDamage,
|
||||||
|
characterData.Lipstick,
|
||||||
|
characterData.Freckles,
|
||||||
|
characterData.ChestHair
|
||||||
|
];
|
||||||
|
loadedAppearanceOpacity = [
|
||||||
|
characterData.BlemishesOpacity,
|
||||||
|
characterData.FacialHairOpacity,
|
||||||
|
characterData.EyebrowsOpacity,
|
||||||
|
characterData.AgeingOpacity,
|
||||||
|
characterData.MakeupOpacity,
|
||||||
|
characterData.BlushOpacity,
|
||||||
|
characterData.ComplexionOpacity,
|
||||||
|
characterData.SunDamageOpacity,
|
||||||
|
characterData.LipstickOpacity,
|
||||||
|
characterData.FrecklesOpacity,
|
||||||
|
characterData.ChestHairOpacity
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
//HAUPTMENÜ
|
||||||
|
function getCharacterMainMenu(): NativeUI.Menu {
|
||||||
|
|
||||||
|
creatorMainMenu = new Menu("Chirurg", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
creatorMainMenu.Visible = false;
|
||||||
|
debugString[4] = 5;
|
||||||
|
var genderItem = new UIMenuListItem("Geschlecht", "~r~Dies setzt deine Einstellungen zurück.", new ItemsCollection(["Männlich", "Weiblich"]));
|
||||||
|
creatorMainMenu.AddItem(genderItem);
|
||||||
|
genderItem.Index = characterData.Gender == false ? 0 : 1;
|
||||||
|
debugString[5] = 6;
|
||||||
|
var parentsItem = new UIMenuItem("Eltern", "Eltern des Charakters.");
|
||||||
|
creatorMainMenu.AddItem(parentsItem);
|
||||||
|
creatorMainMenu.BindMenuToItem(getParentsMenu(creatorMainMenu), parentsItem);
|
||||||
|
debugString[6] = 7;
|
||||||
|
var featureItem = new UIMenuItem("Gesichtsmerkmale", "Gesichtsmerkmale des Charakters.")
|
||||||
|
creatorMainMenu.AddItem(featureItem);
|
||||||
|
creatorMainMenu.BindMenuToItem(getFeaturesMenu(creatorMainMenu), featureItem);
|
||||||
|
debugString[7] = 8;
|
||||||
|
var appearanceItem = new UIMenuItem("Aussehen", "Aussehen des Charakters.")
|
||||||
|
creatorMainMenu.AddItem(appearanceItem);
|
||||||
|
creatorMainMenu.BindMenuToItem(getAppearanceMenu(creatorMainMenu), appearanceItem);
|
||||||
|
debugString[8] = 9;
|
||||||
|
var hairAndColorItem = new UIMenuItem("Haar & Farben", "Haare & Farben deines Charakters.")
|
||||||
|
creatorMainMenu.AddItem(hairAndColorItem);
|
||||||
|
creatorMainMenu.BindMenuToItem(getHairAndColorMenu(creatorMainMenu), hairAndColorItem);
|
||||||
|
debugString[9] = 10;
|
||||||
|
|
||||||
|
//Charakterdrehung
|
||||||
|
var angles = [];
|
||||||
|
for (var i = -180.0; i <= 180.0; i += 5.0) angles.push(i.toFixed(1));
|
||||||
|
var angleItem = new UIMenuListItem("Drehung", "", new ItemsCollection(angles));
|
||||||
|
creatorMainMenu.AddItem(angleItem);
|
||||||
|
|
||||||
|
var saveItem = new UIMenuItem("Operieren", "Der Chirurg macht die Arbeit, lehn dich zurück");
|
||||||
|
saveItem.BackColor = new Color(13, 71, 161);
|
||||||
|
saveItem.HighlightedBackColor = new Color(25, 118, 210);
|
||||||
|
creatorMainMenu.AddItem(saveItem);
|
||||||
|
|
||||||
|
creatorMainMenu.ListChange.on((item, listIndex) => {
|
||||||
|
if (item === genderItem) {
|
||||||
|
saveCharacter.Gender = <boolean>listIndex;
|
||||||
|
mp.events.callRemote("creator_GenderChange", listIndex);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
localPlayer.clearTasksImmediately();
|
||||||
|
applyCreatorOutfit();
|
||||||
|
angleItem.Index = 0;
|
||||||
|
resetParents();
|
||||||
|
resetFeatures();
|
||||||
|
resetAppearance();
|
||||||
|
|
||||||
|
}, 200);
|
||||||
|
} else if (item === angleItem) {
|
||||||
|
localPlayer.setHeading(parseFloat(angleItem.SelectedValue));
|
||||||
|
localPlayer.clearTasksImmediately();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
creatorMainMenu.MenuClose.on(() => {
|
||||||
|
leaveCreator();
|
||||||
|
});
|
||||||
|
creatorMainMenu.Visible = true;
|
||||||
|
return creatorMainMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
var fatherItem: NativeUI.UIMenuListItem;
|
||||||
|
var motherItem: NativeUI.UIMenuListItem;
|
||||||
|
var similarityItem: NativeUI.UIMenuListItem;
|
||||||
|
var skinSimilarityItem: NativeUI.UIMenuListItem;
|
||||||
|
var creatorParentsMenu: NativeUI.Menu;
|
||||||
|
|
||||||
|
//MENÜ FÜR ELTERN
|
||||||
|
function getParentsMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
var similarities = [];
|
||||||
|
for (var i = 0; i <= 100; i++) similarities.push(i + "%");
|
||||||
|
|
||||||
|
creatorParentsMenu = new Menu("Eltern", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
creatorParentsMenu.Visible = false;
|
||||||
|
|
||||||
|
fatherItem = new UIMenuListItem("Vater", "Dem Charakter sein Vadda.", new ItemsCollection(Data.fatherNames));
|
||||||
|
creatorParentsMenu.AddItem(fatherItem);
|
||||||
|
//fatherItem.Index = characterData.Father;
|
||||||
|
|
||||||
|
motherItem = new UIMenuListItem("Mutter", "Dem Charakter seine Mudda.", new ItemsCollection(Data.motherNames));
|
||||||
|
creatorParentsMenu.AddItem(motherItem);
|
||||||
|
//motherItem.Index = characterData.Mother;
|
||||||
|
|
||||||
|
similarityItem = new UIMenuListItem("\u00c4hnlichkeit", "\u00c4hnlichkeit zu den Eltern.\n(niedriger = feminin, h\u00f6her = maskulin)", new ItemsCollection(similarities));
|
||||||
|
creatorParentsMenu.AddItem(similarityItem);
|
||||||
|
//similarityItem.Index = characterData.Similarity;
|
||||||
|
|
||||||
|
skinSimilarityItem = new UIMenuListItem("Hautfarbe", "Hautfarben \u00c4hnlichkeit zu den Eltern.\n(niedriger = Mutter, h\u00f6her = Vater)", new ItemsCollection(similarities));
|
||||||
|
creatorParentsMenu.AddItem(skinSimilarityItem);
|
||||||
|
//skinSimilarityItem.Index = characterData.SkinSimilarity;
|
||||||
|
|
||||||
|
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt die Eltern zurück. :'(");
|
||||||
|
creatorParentsMenu.AddItem(resetItem);
|
||||||
|
|
||||||
|
creatorParentsMenu.ItemSelect.on((item, index) => {
|
||||||
|
if (item == resetItem) {
|
||||||
|
resetParents();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
creatorParentsMenu.ListChange.on((item, listIndex) => {
|
||||||
|
updateParents();
|
||||||
|
});
|
||||||
|
|
||||||
|
debugString[10] = 11;
|
||||||
|
|
||||||
|
return creatorParentsMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateParents() {
|
||||||
|
localPlayer.setHeadBlendData(
|
||||||
|
// shape
|
||||||
|
Data.mothers[motherItem.Index],
|
||||||
|
Data.fathers[fatherItem.Index],
|
||||||
|
0,
|
||||||
|
|
||||||
|
// skin
|
||||||
|
Data.mothers[motherItem.Index],
|
||||||
|
Data.fathers[fatherItem.Index],
|
||||||
|
0,
|
||||||
|
|
||||||
|
// mixes
|
||||||
|
similarityItem.Index * 0.01,
|
||||||
|
skinSimilarityItem.Index * 0.01,
|
||||||
|
0.0,
|
||||||
|
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetParents(refresh = false) {
|
||||||
|
fatherItem.Index = 0;//characterData.Father.valueOf();
|
||||||
|
motherItem.Index = 0;//characterData.Mother.valueOf();
|
||||||
|
similarityItem.Index = (characterData.Gender == false) ? 100 : 0; //characterData.Similarity.valueOf();//
|
||||||
|
skinSimilarityItem.Index = (characterData.Gender == false) ? 100 : 0;//characterData.SkinSimilarity.valueOf();
|
||||||
|
|
||||||
|
updateParents();
|
||||||
|
if (refresh) creatorParentsMenu.RefreshIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Menü für Gesichtsmerkmale
|
||||||
|
var featureItems = [];
|
||||||
|
function getFeaturesMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
|
var features = [];
|
||||||
|
for (var i = -1.0; i <= 1.01; i += 0.01) features.push(i.toFixed(2));
|
||||||
|
|
||||||
|
var creatorFeaturesMenu = new Menu("Gesichtsmerkmale", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
creatorFeaturesMenu.Visible = false;
|
||||||
|
debugString[6] = 7;
|
||||||
|
for (var i = 0; i < Data.featureNames.length; i++) {
|
||||||
|
var tempFeatureItem = new UIMenuListItem(Data.featureNames[i], "", new ItemsCollection(features));
|
||||||
|
tempFeatureItem.Index = 100;
|
||||||
|
featureItems.push(tempFeatureItem);
|
||||||
|
creatorFeaturesMenu.AddItem(tempFeatureItem);
|
||||||
|
//tempFeatureItem.Index = loadedFeatures[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt Gesichtsmerkmale zurück.");
|
||||||
|
creatorFeaturesMenu.AddItem(resetItem);
|
||||||
|
|
||||||
|
creatorFeaturesMenu.ItemSelect.on((item, index) => {
|
||||||
|
switch (item) {
|
||||||
|
case resetItem:
|
||||||
|
resetFeatures();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
creatorFeaturesMenu.ListChange.on((item, listIndex) => {
|
||||||
|
updateFaceFeature(featureItems.indexOf(item));
|
||||||
|
});
|
||||||
|
|
||||||
|
debugString[11] = 12;
|
||||||
|
return creatorFeaturesMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetFeatures() {
|
||||||
|
for (let i = 0; i < Data.featureNames.length; i++) {
|
||||||
|
featureItems[i].Index = 100;
|
||||||
|
updateFaceFeature(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateFaceFeature(index) {
|
||||||
|
localPlayer.setFaceFeature(index, parseFloat(featureItems[index].SelectedValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
var appearanceItems = [];
|
||||||
|
var appearanceOpacityItems = [];
|
||||||
|
//Menü für Aussehen
|
||||||
|
function getAppearanceMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
|
|
||||||
|
var opacities = [];
|
||||||
|
for (var i = 0; i <= 100; i++) opacities.push(i + "%");
|
||||||
|
|
||||||
|
var creatorAppearanceMenu = new Menu("Aussehen", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
creatorAppearanceMenu.Visible = false;
|
||||||
|
debugString[7] = 8;
|
||||||
|
for (var i = 0; i < Data.appearanceNames.length; i++) {
|
||||||
|
var items = [];
|
||||||
|
for (var j = 0, max = mp.game.ped.getNumHeadOverlayValues(i); j <= max; j++) items.push(Data.appearanceItemNames[i][j] === undefined ? j.toString() : Data.appearanceItemNames[i][j]);
|
||||||
|
|
||||||
|
var tempAppearanceItem = new UIMenuListItem(Data.appearanceNames[i], "", new ItemsCollection(items));
|
||||||
|
appearanceItems.push(tempAppearanceItem);
|
||||||
|
creatorAppearanceMenu.AddItem(tempAppearanceItem);
|
||||||
|
//tempAppearanceItem.Index = loadedAppearance[i];
|
||||||
|
|
||||||
|
var tempAppearanceOpacityItem = new UIMenuListItem(Data.appearanceNames[i] + " Transparenz", "", new ItemsCollection(opacities));
|
||||||
|
tempAppearanceOpacityItem.Index = 100;
|
||||||
|
appearanceOpacityItems.push(tempAppearanceOpacityItem);
|
||||||
|
creatorAppearanceMenu.AddItem(tempAppearanceOpacityItem);
|
||||||
|
//tempAppearanceOpacityItem.Index = loadedAppearanceOpacity[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt das Aussehen zurück.");
|
||||||
|
creatorAppearanceMenu.AddItem(resetItem);
|
||||||
|
|
||||||
|
creatorAppearanceMenu.ItemSelect.on((item, index) => {
|
||||||
|
switch (item) {
|
||||||
|
case resetItem:
|
||||||
|
resetAppearance();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
creatorAppearanceMenu.ListChange.on((item, listIndex) => {
|
||||||
|
var idx = (creatorAppearanceMenu.CurrentSelection % 2 === 0) ? (creatorAppearanceMenu.CurrentSelection / 2) : Math.floor(creatorAppearanceMenu.CurrentSelection / 2);
|
||||||
|
updateAppearance(idx);
|
||||||
|
});
|
||||||
|
debugString[12] = 13;
|
||||||
|
return creatorAppearanceMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateAppearance(index) {
|
||||||
|
var overlayID = (appearanceItems[index].Index === 0) ? 255 : appearanceItems[index].Index - 1;
|
||||||
|
localPlayer.setHeadOverlay(index, overlayID, appearanceOpacityItems[index].Index * 0.01, colorForOverlayIdx(index), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetAppearance(refresh = false) {
|
||||||
|
for (var i = 0; i < Data.appearanceNames.length; i++) {
|
||||||
|
appearanceItems[i].Index = loadedAppearance[i];
|
||||||
|
appearanceOpacityItems[i].Index = loadedAppearanceOpacity[i];
|
||||||
|
updateAppearance(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// color arrays
|
||||||
|
var hairColors = [];
|
||||||
|
for (var i = 0; i < Data.maxHairColor; i++) hairColors.push(i.toString());
|
||||||
|
|
||||||
|
var blushColors = [];
|
||||||
|
for (var i = 0; i < Data.maxBlushColor; i++) blushColors.push(i.toString());
|
||||||
|
|
||||||
|
var lipstickColors = [];
|
||||||
|
for (var i = 0; i < Data.maxLipstickColor; i++) lipstickColors.push(i.toString());
|
||||||
|
|
||||||
|
//Menü für Haar & Farben
|
||||||
|
function getHairAndColorMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
|
var creatorHairMenu = new Menu("Haar & Farben", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
creatorHairMenu.Visible = false;
|
||||||
|
debugString[8] = 9;
|
||||||
|
var eyebrowColorItem = new UIMenuListItem("Augenbrauen Farbe", "Farbe deiner Augenbrauen", new ItemsCollection(hairColors));
|
||||||
|
creatorHairMenu.AddItem(eyebrowColorItem);
|
||||||
|
|
||||||
|
var beardColorItem = new UIMenuListItem("Farbe der Gesichtsbehaarung", "Farbe deiner Gesichtsbehaarung", new ItemsCollection(hairColors));
|
||||||
|
creatorHairMenu.AddItem(beardColorItem);
|
||||||
|
|
||||||
|
var eyeColorItem = new UIMenuListItem("Augenfarbe", "Farbe deiner Augen", new ItemsCollection(Data.eyeColors));
|
||||||
|
creatorHairMenu.AddItem(eyeColorItem);
|
||||||
|
|
||||||
|
var blushColorItem = new UIMenuListItem("Rouge", "Farbe des Rouges.", new ItemsCollection(blushColors));
|
||||||
|
creatorHairMenu.AddItem(blushColorItem);
|
||||||
|
|
||||||
|
var lipstickColorItem = new UIMenuListItem("Lippenstift Farbe", "Farbe deines Lippenstifts.", new ItemsCollection(lipstickColors));
|
||||||
|
creatorHairMenu.AddItem(lipstickColorItem);
|
||||||
|
|
||||||
|
var chestHairColorItem = new UIMenuListItem("Farbe der Brustbehaarung", "Farbe deiner Brustbehaarung", new ItemsCollection(hairColors));
|
||||||
|
creatorHairMenu.AddItem(chestHairColorItem);
|
||||||
|
|
||||||
|
var cancelItem = new UIMenuItem("Zurücksetzen", "~r~Zurücksetzen von Haar & Farben");
|
||||||
|
creatorHairMenu.AddItem(cancelItem);
|
||||||
|
|
||||||
|
creatorHairMenu.ItemSelect.on((item, index) => {
|
||||||
|
switch (item) {
|
||||||
|
case cancelItem:
|
||||||
|
eyebrowColorItem.Index = characterData.EyebrowColor;
|
||||||
|
beardColorItem.Index = characterData.BeardColor;
|
||||||
|
eyeColorItem.Index = characterData.EyeColor;
|
||||||
|
blushColorItem.Index = characterData.BlushColor;
|
||||||
|
lipstickColorItem.Index = characterData.LipstickColor;
|
||||||
|
chestHairColorItem.Index = characterData.ChestHairColor;
|
||||||
|
updateHairAndColors();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
creatorHairMenu.ListChange.on((item, listIndex) => {
|
||||||
|
switch (creatorHairMenu.CurrentSelection) {
|
||||||
|
|
||||||
|
case 0: // eyebrow color
|
||||||
|
localPlayer.setHeadOverlayColor(2, 1, listIndex, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: // facial hair color
|
||||||
|
localPlayer.setHeadOverlayColor(1, 1, listIndex, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // eye color
|
||||||
|
localPlayer.setEyeColor(listIndex);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: // blush color
|
||||||
|
localPlayer.setHeadOverlayColor(5, 2, listIndex, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4: // lipstick color
|
||||||
|
localPlayer.setHeadOverlayColor(8, 2, listIndex, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5: // chest hair color
|
||||||
|
localPlayer.setHeadOverlayColor(10, 1, listIndex, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
debugString[13] = 14;
|
||||||
|
return creatorHairMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateHairAndColors() {
|
||||||
|
localPlayer.setEyeColor(saveCharacter.EyeColor);
|
||||||
|
localPlayer.setHeadOverlayColor(1, 1, saveCharacter.BeardColor, 0);
|
||||||
|
localPlayer.setHeadOverlayColor(2, 1, saveCharacter.EyebrowColor, 0);
|
||||||
|
localPlayer.setHeadOverlayColor(5, 2, saveCharacter.BlushColor, 0);
|
||||||
|
localPlayer.setHeadOverlayColor(8, 2, saveCharacter.LipstickColor, 0);
|
||||||
|
localPlayer.setHeadOverlayColor(10, 1, saveCharacter.ChestHairColor, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function colorForOverlayIdx(index) {
|
||||||
|
var color;
|
||||||
|
|
||||||
|
switch (index) {
|
||||||
|
case 1:
|
||||||
|
color = saveCharacter.BeardColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
color = saveCharacter.EyebrowColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
color = saveCharacter.BlushColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 8:
|
||||||
|
color = saveCharacter.LipstickColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 10:
|
||||||
|
color = saveCharacter.ChestHairColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
color = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
function applyCreatorOutfit() {
|
||||||
|
if (saveCharacter.Gender === false) {
|
||||||
|
localPlayer.setDefaultComponentVariation();
|
||||||
|
localPlayer.setComponentVariation(3, 15, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(4, 21, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(6, 34, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(8, 15, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(11, 15, 0, 2);
|
||||||
|
} else {
|
||||||
|
localPlayer.setDefaultComponentVariation();
|
||||||
|
localPlayer.setComponentVariation(3, 15, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(4, 10, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(6, 35, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(8, 15, 0, 2);
|
||||||
|
localPlayer.setComponentVariation(11, 15, 0, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function leaveCreator() {
|
||||||
|
activeSurgery = false;
|
||||||
|
mp.gui.chat.show(true);
|
||||||
|
mp.game.ui.displayRadar(true);
|
||||||
|
mp.game.ui.displayHud(true);
|
||||||
|
localPlayer.freezePosition(false);
|
||||||
|
mp.game.cam.renderScriptCams(false, false, 0, true, false);
|
||||||
|
creatorCamera.destroy(true);
|
||||||
|
mp.events.callRemote("surgeryLeave");
|
||||||
|
globalData.InMenu = false;
|
||||||
|
globalData.InMenu = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
55
ReallifeGamemode.Client/Gui/bigmap.ts
Normal file
55
ReallifeGamemode.Client/Gui/bigmap.ts
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
import { GlobalData } from "..";
|
||||||
|
|
||||||
|
export default function bigmap() {
|
||||||
|
var bigmap = { status: 0, timer: null };
|
||||||
|
|
||||||
|
bigmap.status = 0;
|
||||||
|
bigmap.timer = null;
|
||||||
|
|
||||||
|
mp.game.ui.setRadarZoom(1.0);
|
||||||
|
mp.game.ui.setRadarBigmapEnabled(false, false);
|
||||||
|
|
||||||
|
mp.events.add("render", () => {
|
||||||
|
mp.game.controls.disableControlAction(0, 48, true);
|
||||||
|
if (mp.game.controls.isDisabledControlJustPressed(0, 48) && !GlobalData.InChat) {
|
||||||
|
if (bigmap.status === 0) {
|
||||||
|
mp.game.ui.setRadarZoom(0.0);
|
||||||
|
bigmap.status = 1;
|
||||||
|
|
||||||
|
bigmap.timer = setTimeout(() => {
|
||||||
|
mp.game.ui.setRadarBigmapEnabled(false, true);
|
||||||
|
mp.game.ui.setRadarZoom(1.0);
|
||||||
|
|
||||||
|
bigmap.status = 0;
|
||||||
|
bigmap.timer = null;
|
||||||
|
}, 10000);
|
||||||
|
} else if (bigmap.status === 1) {
|
||||||
|
if (bigmap.timer != null) {
|
||||||
|
clearTimeout(bigmap.timer);
|
||||||
|
bigmap.timer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
mp.game.ui.setRadarBigmapEnabled(true, false);
|
||||||
|
mp.game.ui.setRadarZoom(0.0);
|
||||||
|
bigmap.status = 2;
|
||||||
|
|
||||||
|
bigmap.timer = setTimeout(() => {
|
||||||
|
mp.game.ui.setRadarBigmapEnabled(false, true);
|
||||||
|
mp.game.ui.setRadarZoom(1.0);
|
||||||
|
|
||||||
|
bigmap.status = 0;
|
||||||
|
bigmap.timer = null;
|
||||||
|
}, 10000);
|
||||||
|
} else {
|
||||||
|
if (bigmap.timer != null) {
|
||||||
|
clearTimeout(bigmap.timer);
|
||||||
|
bigmap.timer = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
mp.game.ui.setRadarBigmapEnabled(false, false);
|
||||||
|
mp.game.ui.setRadarZoom(1.0);
|
||||||
|
bigmap.status = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,6 +1,13 @@
|
|||||||
export default function playerBlips() {
|
import { afkStatus } from '../Player/antiafk';
|
||||||
|
import { getWantedCount } from './wanteds';
|
||||||
|
|
||||||
|
export default function playerBlips() {
|
||||||
var playerBlipMap: Map<PlayerMp, BlipMp>;
|
var playerBlipMap: Map<PlayerMp, BlipMp>;
|
||||||
var ready = false;
|
var ready = false;
|
||||||
|
var escapeTimer = null;
|
||||||
|
|
||||||
|
const PD_BLIP = 38;
|
||||||
|
const FIB_BLIP = 63;
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
if (!ready) return;
|
if (!ready) return;
|
||||||
@@ -43,9 +50,30 @@
|
|||||||
|
|
||||||
pBlip.setColour(isNaN(color) ? 0 : color);
|
pBlip.setColour(isNaN(color) ? 0 : color);
|
||||||
pBlip.setPosition(player.position.x, player.position.y, player.position.z);
|
pBlip.setPosition(player.position.x, player.position.y, player.position.z);
|
||||||
|
|
||||||
|
if ((color == PD_BLIP || color == FIB_BLIP || afkStatus)) {
|
||||||
|
if (escapeTimer) {
|
||||||
|
mp.events.call("SERVER:SetWantedFlash", false);
|
||||||
|
clearInterval(escapeTimer);
|
||||||
|
escapeTimer = null;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!escapeTimer && !afkStatus && getWantedCount() > 0) {
|
||||||
|
mp.events.call("SERVER:SetWantedFlash", true);
|
||||||
|
escapeTimer = setInterval(() => {
|
||||||
|
if (getWantedCount() == 0) {
|
||||||
|
clearInterval(escapeTimer);
|
||||||
|
escapeTimer = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mp.events.callRemote("CLIENT:EscapeWanted");
|
||||||
|
}, 300000); //120000 -> 2 min , 300000 -> 5min
|
||||||
|
}
|
||||||
}, 50);
|
}, 50);
|
||||||
|
|
||||||
mp.events.add("playerReady", () => {
|
mp.events.add("playerReady", () => {
|
||||||
|
|||||||
@@ -308,8 +308,8 @@ export default function (globalData: IGlobalData): void {
|
|||||||
})
|
})
|
||||||
mp.game.graphics.drawRect(0.0, 0.555, 0.3, 0.11, 0, 0, 0, 70)
|
mp.game.graphics.drawRect(0.0, 0.555, 0.3, 0.11, 0, 0, 0, 70)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editMode === true) {
|
if (editMode === true) {
|
||||||
mp.game.graphics.drawText("~r~EDIT-MODE AKTIV", [0.5, 0],
|
mp.game.graphics.drawText("~r~EDIT-MODE AKTIV", [0.5, 0],
|
||||||
{
|
{
|
||||||
@@ -356,7 +356,7 @@ export default function (globalData: IGlobalData): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (noDmZone) {
|
if (noDmZone) {
|
||||||
mp.game.graphics.drawText("~r~NoDM Zone", [0.92, 0.7],
|
mp.game.graphics.drawText("~r~DM freie Zone", [0.92, 0.7],
|
||||||
{
|
{
|
||||||
font: 2,
|
font: 2,
|
||||||
color: [255, 255, 255, 255],
|
color: [255, 255, 255, 255],
|
||||||
|
|||||||
32
ReallifeGamemode.Client/Gui/notification.ts
Normal file
32
ReallifeGamemode.Client/Gui/notification.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
export default function notification() {
|
||||||
|
const _SET_NOTIFICATION_COLOR_NEXT = "0x39BBF623FC803EAC";
|
||||||
|
const _SET_NOTIFICATION_BACKGROUND_COLOR = "0x92F0DA1E27DB96DC";
|
||||||
|
|
||||||
|
mp.events.add("BN_Show", (message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => {
|
||||||
|
if (textColor > -1) mp.game.invoke(_SET_NOTIFICATION_COLOR_NEXT, textColor);
|
||||||
|
if (bgColor > -1) mp.game.invoke(_SET_NOTIFICATION_BACKGROUND_COLOR, bgColor);
|
||||||
|
if (flashing) mp.game.ui.setNotificationFlashColor(flashColor[0], flashColor[1], flashColor[2], flashColor[3]);
|
||||||
|
|
||||||
|
mp.game.gxt.set("BNOTIF_LONG_TEXT_ENTRY", `~a~${message}`);
|
||||||
|
mp.game.ui.setNotificationTextEntry("BNOTIF_LONG_TEXT_ENTRY");
|
||||||
|
mp.game.ui.addTextComponentSubstringPlayerName(""); // needed for text color to work
|
||||||
|
mp.game.ui.drawNotification(flashing, true);
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("BN_ShowWithPicture", (title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => {
|
||||||
|
if (textColor > -1) mp.game.invoke(_SET_NOTIFICATION_COLOR_NEXT, textColor);
|
||||||
|
if (bgColor > -1) mp.game.invoke(_SET_NOTIFICATION_BACKGROUND_COLOR, bgColor);
|
||||||
|
if (flashing) mp.game.ui.setNotificationFlashColor(flashColor[0], flashColor[1], flashColor[2], flashColor[3]);
|
||||||
|
mp.game.graphics.requestStreamedTextureDict(notifPic, true);
|
||||||
|
|
||||||
|
mp.game.gxt.set("BNOTIF_LONG_TEXT_ENTRY_IMG", `~a~${message}`);
|
||||||
|
mp.game.ui.setNotificationTextEntry("BNOTIF_LONG_TEXT_ENTRY_IMG");
|
||||||
|
mp.game.ui.addTextComponentSubstringPlayerName(""); // needed for text color to work
|
||||||
|
mp.game.ui.setNotificationMessage(notifPic, notifPic, flashing, icon, title, sender);
|
||||||
|
});
|
||||||
|
|
||||||
|
const notifications = {
|
||||||
|
show: (message, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => mp.events.call("BN_Show", message, flashing, textColor, bgColor, flashColor),
|
||||||
|
showWithPicture: (title, sender, message, notifPic, icon = 0, flashing = false, textColor = -1, bgColor = -1, flashColor = [77, 77, 77, 200]) => mp.events.call("BN_ShowWithPicture", title, sender, message, notifPic, icon, flashing, textColor, bgColor, flashColor)
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,38 +5,46 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export default function playerList(globalData: IGlobalData): void {
|
export default function playerList(globalData: IGlobalData): void {
|
||||||
|
|
||||||
var playerlistBrowser: BrowserMp = null;
|
var playerlistBrowser: BrowserMp = null;
|
||||||
var pList;
|
var pList = [];
|
||||||
|
var loaded = false;
|
||||||
var factionPlayersMap: Map<number, number> = new Map<number, number>();
|
var factionPlayersMap: Map<number, number> = new Map<number, number>();
|
||||||
const factionIds = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
const factionIds = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||||
|
|
||||||
mp.events.add("showPlayerlist", (playersJson) => {
|
mp.events.add("loadPlayerListCEF", () => {
|
||||||
if (playerlistBrowser !== null) {
|
if (playerlistBrowser !== null) {
|
||||||
playerlistBrowser.destroy();
|
playerlistBrowser.destroy();
|
||||||
playerlistBrowser = null;
|
|
||||||
globalData.InMenu = false;
|
|
||||||
mp.gui.cursor.show(false, false);
|
|
||||||
mp.gui.chat.activate(true);
|
|
||||||
}
|
}
|
||||||
else if (!globalData.InMenu) {
|
playerlistBrowser = mp.browsers.new('package://assets/html/onlinelist/index.html');
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("showPlayerlist", (playersJson) => {
|
||||||
|
if (!globalData.InMenu && !loaded) {
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
playerlistBrowser = mp.browsers.new('package://assets/html/onlinelist/index.html');
|
loaded = true;
|
||||||
mp.gui.chat.activate(false);
|
mp.gui.chat.activate(false);
|
||||||
mp.gui.cursor.show(true, true);
|
mp.gui.cursor.show(true, true);
|
||||||
pList = JSON.parse(playersJson);
|
pList = JSON.parse(playersJson);
|
||||||
|
playerlistBrowser.execute(`showPlayerList()`);
|
||||||
|
} else if (loaded) {
|
||||||
|
globalData.InMenu = false;
|
||||||
|
loaded = false;
|
||||||
|
mp.gui.cursor.show(false, false);
|
||||||
|
mp.gui.chat.activate(true);
|
||||||
|
playerlistBrowser.execute(`closePlayerList()`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("CEF:PlayerList_Loaded", () => {
|
mp.events.add("CEF:PlayerList_Loaded", () => {
|
||||||
|
playerlistBrowser.execute(`clear_row()`);
|
||||||
|
|
||||||
factionIds.forEach(f => {
|
factionIds.forEach(f => {
|
||||||
factionPlayersMap.set(f, 0);
|
factionPlayersMap.set(f, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
pList.forEach((player) => {
|
pList.forEach((player) => {
|
||||||
var facId = player.FactionId;
|
playerlistBrowser.execute(`addPlayerEntry('${player.Id}', '${player.Name}', '${player.FactionId}', '${player.Ping}');`);
|
||||||
playerlistBrowser.execute(`addPlayerEntry('${player.Id}','${player.Name}', '${facId}','${player.Ping}');`);
|
factionPlayersMap.set(player.factionId, factionPlayersMap.get(player.factionId) + 1);
|
||||||
factionPlayersMap.set(facId, factionPlayersMap.get(facId) + 1);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
factionPlayersMap.forEach((value, key) => {
|
factionPlayersMap.forEach((value, key) => {
|
||||||
@@ -54,4 +62,4 @@ export default function playerList(globalData: IGlobalData): void {
|
|||||||
// table = table + tableRow;
|
// table = table + tableRow;
|
||||||
// })
|
// })
|
||||||
// return document.write(table);
|
// return document.write(table);
|
||||||
//}
|
//}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import * as NativeUI from '../../libs/NativeUI';
|
import * as NativeUI from '../../libs/NativeUI';
|
||||||
|
|
||||||
const Menu = NativeUI.Menu;
|
const Menu = NativeUI.Menu;
|
||||||
const UIMenuItem = NativeUI.UIMenuItem;
|
const UIMenuItem = NativeUI.UIMenuItem;
|
||||||
@@ -25,7 +25,7 @@ export default function vehicleMenu(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
else if (!globalData.InMenu) {
|
else if (!globalData.InMenu) {
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
lastDriversBrowser = mp.browsers.new('package://assets/vehicle/lastPlayers.html');
|
lastDriversBrowser = mp.browsers.new('package://assets/html/driver-history/index.html');
|
||||||
mp.gui.chat.activate(false);
|
mp.gui.chat.activate(false);
|
||||||
mp.gui.cursor.show(true, true);
|
mp.gui.cursor.show(true, true);
|
||||||
}
|
}
|
||||||
@@ -50,52 +50,65 @@ export default function vehicleMenu(globalData: IGlobalData) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add('ToggleVehicleMenu', () => {
|
mp.events.add('ToggleVehicleMenu', () => {
|
||||||
if (menuBrowser !== null) {
|
if (globalData.InMenu && menuBrowser !== null) {
|
||||||
menuBrowser.destroy();
|
menuBrowser.destroy();
|
||||||
menuBrowser = null;
|
menuBrowser = null;
|
||||||
globalData.InMenu = false;
|
globalData.InMenu = false;
|
||||||
mp.gui.chat.show(true);
|
mp.gui.chat.show(true);
|
||||||
mp.gui.cursor.show(false, false);
|
mp.gui.cursor.show(false, false);
|
||||||
mp.game.graphics.stopScreenEffect("FocusIn");
|
|
||||||
mp.game.graphics.startScreenEffect("FocusOut", 0, false);
|
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
menuBrowser = mp.browsers.new("package://assets/html/interaction/index.html");
|
||||||
|
mp.gui.chat.show(false);
|
||||||
|
globalData.InMenu = true;
|
||||||
|
mp.gui.cursor.show(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
mp.game.graphics.stopScreenEffect("FocusOut");
|
|
||||||
mp.game.graphics.startScreenEffect("FocusIn", 0, false);
|
|
||||||
menuBrowser = mp.browsers.new("package://assets/html/vehiclemenu/index.html");
|
|
||||||
mp.gui.chat.show(false);
|
|
||||||
globalData.InMenu = true;
|
|
||||||
mp.gui.cursor.show(true, true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add('doAction', (action) => {
|
mp.events.add('doAction', (action) => {
|
||||||
mp.events.call('ToggleVehicleMenu');
|
mp.events.call('ToggleVehicleMenu');
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case 8: // Motor
|
case 1: // Motor an-/ausschalten
|
||||||
mp.events.callRemote("VehicleMenu_ToggleEngine");
|
mp.events.callRemote("VehicleMenu_ToggleEngine");
|
||||||
break;
|
break;
|
||||||
case 5: // Auf -/ Abschließen
|
case 2: // Gurt an-/ablegen
|
||||||
|
mp.events.callRemote("CLIENT:VehicleMenu_UseSeatbelt");
|
||||||
|
break;
|
||||||
|
case 3: // Fahrzeug auf-/abschließen
|
||||||
mp.events.callRemote("VehicleMenu_LockCar");
|
mp.events.callRemote("VehicleMenu_LockCar");
|
||||||
break;
|
break;
|
||||||
case 3: // Türen
|
case 4: // Fahrzeug tanken
|
||||||
showDoorsMenu();
|
|
||||||
break;
|
break;
|
||||||
case 7: // Parken
|
case 5: // Fahrzeug parken
|
||||||
mp.events.callRemote("CLIENT:VehicleMenu_ParkCar");
|
mp.events.callRemote("CLIENT:VehicleMenu_ParkCar");
|
||||||
break;
|
break;
|
||||||
|
case 6: // Türen öffnen/schließen
|
||||||
|
showDoorsMenu();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mp.events.add("SERVER:ChangeSeatbeltState", () => {
|
||||||
|
var currentState = mp.players.local.getConfigFlag(32, true);
|
||||||
|
currentState = !currentState;
|
||||||
|
mp.players.local.setConfigFlag(32, currentState);
|
||||||
|
var msg = `Sicherheitsgurt ${(currentState ? '~r~abgelegt' : '~g~angelegt')}`;
|
||||||
|
mp.events.call("BN_Show", msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add(RageEnums.EventKey.PLAYER_LEAVE_VEHICLE, (vehicle, seat) => {
|
||||||
|
mp.players.local.setConfigFlag(32, true);
|
||||||
|
});
|
||||||
|
|
||||||
function showDoorsMenu() {
|
function showDoorsMenu() {
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
|
|
||||||
var doorMenu = new Menu("Türen", "Türen verwalten", new Point(0, screenRes.y / 3), null, null);
|
var doorMenu = new Menu("Türen", "Türen verwalten", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
|
||||||
doorMenu.AddItem(new UIMenuListItem("Tür", "Welche Tür darf's sein?", new ItemsCollection([
|
doorMenu.AddItem(new UIMenuListItem("Tür", "Welche Tür darf's sein?", new ItemsCollection([
|
||||||
" Fahrertür",
|
"Fahrertür",
|
||||||
" Beifahrertür",
|
"Beifahrertür",
|
||||||
"Hinten links",
|
"Hinten links",
|
||||||
"Hinten rechts",
|
"Hinten rechts",
|
||||||
"Motorhaube",
|
"Motorhaube",
|
||||||
@@ -109,10 +122,10 @@ export default function vehicleMenu(globalData: IGlobalData) {
|
|||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
var doorId = -1;
|
var doorId = -1;
|
||||||
switch (item.SelectedItem.DisplayText) {
|
switch (item.SelectedItem.DisplayText) {
|
||||||
case " Fahrertür":
|
case "Fahrertür":
|
||||||
doorId = 0;
|
doorId = 0;
|
||||||
break;
|
break;
|
||||||
case " Beifahrertür":
|
case "Beifahrertür":
|
||||||
doorId = 1;
|
doorId = 1;
|
||||||
break;
|
break;
|
||||||
case "Hinten links":
|
case "Hinten links":
|
||||||
@@ -144,4 +157,4 @@ export default function vehicleMenu(globalData: IGlobalData) {
|
|||||||
|
|
||||||
doorMenu.Open();
|
doorMenu.Open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,6 +132,17 @@ export default function (globalData: IGlobalData) {
|
|||||||
item.SetRightLabel(moneyFormat(Number((p.financialInterest * 100).toFixed(3))) + "%");
|
item.SetRightLabel(moneyFormat(Number((p.financialInterest * 100).toFixed(3))) + "%");
|
||||||
paycheckMenu.AddItem(item);
|
paycheckMenu.AddItem(item);
|
||||||
|
|
||||||
|
item = new UIMenuItem("Gesamt");
|
||||||
|
if (p.amount >= 0) {
|
||||||
|
item.SetRightLabel("~g~+ $" + moneyFormat(Number(p.amount.toFixed(2))));
|
||||||
|
} else {
|
||||||
|
item.SetRightLabel("~r~- $" + moneyFormat(Number(p.amount.toFixed(2))));
|
||||||
|
}
|
||||||
|
item.BackColor = new Color(0, 0, 0);
|
||||||
|
item.HighlightedBackColor = new Color(0, 0, 0);
|
||||||
|
item.HighlightedForeColor = new Color(255, 255, 255);
|
||||||
|
paycheckMenu.AddItem(item)
|
||||||
|
|
||||||
menu.AddItem(paycheckItem);
|
menu.AddItem(paycheckItem);
|
||||||
menu.BindMenuToItem(paycheckMenu, paycheckItem);
|
menu.BindMenuToItem(paycheckMenu, paycheckItem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
export default function antiAfk(globalData: IGlobalData) {
|
export let afkStatus: boolean = false;
|
||||||
|
|
||||||
|
export default function antiAfk(globalData: IGlobalData) {
|
||||||
let lastPosition: Vector3Mp = mp.players.local.position;
|
let lastPosition: Vector3Mp = mp.players.local.position;
|
||||||
let afkCounter: number = 0;
|
let afkCounter: number = 0;
|
||||||
|
|
||||||
let afkStatus: boolean = false;
|
|
||||||
|
|
||||||
setInterval(checkAfkPosition, 1000 * 10);
|
setInterval(checkAfkPosition, 1000 * 10);
|
||||||
|
|
||||||
function checkAfkPosition() {
|
function checkAfkPosition() {
|
||||||
|
|
||||||
if (!globalData.LoggedIn) {
|
if (!globalData.LoggedIn) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,10 +122,10 @@ export default function keys(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//X // Fahrzeug Verwaltung - Menü
|
//Z // Fahrzeug Verwaltung - Menü
|
||||||
mp.keys.bind(0x58, false, function () {
|
KeyBinder.bind("z", () => {
|
||||||
if (!globalData.InChat && !globalData.InMenu && !globalData.InTuning) {
|
if (!globalData.InChat && !globalData.InTuning) {
|
||||||
mp.events.callRemote("keyPress:X");
|
mp.events.callRemote("keyPress:Z");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -56,18 +56,25 @@ const muellbaseVector1 = new mp.Vector3(521.6251, -2194.5068, 5.985945);
|
|||||||
const muellbaseVector2 = new mp.Vector3(454.88348, -2158.1938, 5.9788494);
|
const muellbaseVector2 = new mp.Vector3(454.88348, -2158.1938, 5.9788494);
|
||||||
const muellbaseVector3 = new mp.Vector3(529.06635, -2088.4097, 8.303088);
|
const muellbaseVector3 = new mp.Vector3(529.06635, -2088.4097, 8.303088);
|
||||||
|
|
||||||
|
const krankenhausVector1 = new mp.Vector3(-508.50705, -351.24368, 34);
|
||||||
|
//const krankenhausVector2 = new mp.Vector3(-437.00146, -357.10526, 32.735916
|
||||||
|
const krankenhausVector2 = new mp.Vector3(-442.62323, -356.99185, 33);
|
||||||
|
const krankenhausVector3 = new mp.Vector3(-448.9346, -297.23972, 33.68);
|
||||||
|
const krankenhausVector4 = new mp.Vector3(-504.952, -315.21698, 35.04881);
|
||||||
|
|
||||||
const polygon_busbase = polygons.add([busbaseVector1, busbaseVector2, busbaseVector3, busbaseVector4], 15, false, [255, 155, 0, 255], 0);
|
const polygon_busbase = polygons.add([busbaseVector1, busbaseVector2, busbaseVector3, busbaseVector4], 15, false, [255, 155, 0, 255], 0);
|
||||||
const polygon_stadthalle = polygons.add([stadthalleVector1, stadthalleVector2, stadthalleVector3, stadthalleVector4], 15, false, [255, 155, 0, 255], 0);
|
const polygon_stadthalle = polygons.add([stadthalleVector1, stadthalleVector2, stadthalleVector3, stadthalleVector4], 15, false, [255, 155, 0, 255], 0);
|
||||||
const polygon_fahrschule = polygons.add([fahrschuleVector1, fahrschuleVector2, fahrschuleVector3, fahrschuleVector4, fahrschuleVector5], 15, false, [255, 155, 0, 255], 0);
|
const polygon_fahrschule = polygons.add([fahrschuleVector1, fahrschuleVector2, fahrschuleVector3, fahrschuleVector4, fahrschuleVector5], 15, false, [255, 155, 0, 255], 0);
|
||||||
const polygon_pilotAnfaenger = polygons.add([pilotAnfaengerVector1, pilotAnfaengerVector2, pilotAnfaengerVector3, pilotAnfaengerVector4], 15, false, [255, 155, 0, 255], 0);
|
const polygon_pilotAnfaenger = polygons.add([pilotAnfaengerVector1, pilotAnfaengerVector2, pilotAnfaengerVector3, pilotAnfaengerVector4], 15, false, [255, 155, 0, 255], 0);
|
||||||
const polygon_pilotProfi = polygons.add([pilotProfiVector1, pilotProfiVector2, pilotProfiVector3, pilotProfiVector4], 15, false, [255, 155, 0, 255], 0);
|
const polygon_pilotProfi = polygons.add([pilotProfiVector1, pilotProfiVector2, pilotProfiVector3, pilotProfiVector4], 15, false, [255, 155, 0, 255], 0);
|
||||||
const polygon_muellbase = polygons.add([muellbaseVector1, muellbaseVector2, muellbaseVector3], 15, false, [255, 155, 0, 255], 0);
|
const polygon_muellbase = polygons.add([muellbaseVector1, muellbaseVector2, muellbaseVector3], 15, false, [255, 155, 0, 255], 0);
|
||||||
|
const polygon_krankenhaus = polygons.add([krankenhausVector1, krankenhausVector2, krankenhausVector3, krankenhausVector4], 50, false, [255, 155, 0, 255], 0);
|
||||||
|
|
||||||
const polygon_prison = polygons.add([prisonVector1, prisonVector2, prisonVector3, prisonVector4, prisonVector5, prisonVector6, prisonVector7, prisonVector8,
|
const polygon_prison = polygons.add([prisonVector1, prisonVector2, prisonVector3, prisonVector4, prisonVector5, prisonVector6, prisonVector7, prisonVector8,
|
||||||
prisonVector9, prisonVector10, prisonVector11, prisonVector12, prisonVector13, prisonVector14, prisonVector15, prisonVector16,
|
prisonVector9, prisonVector10, prisonVector11, prisonVector12, prisonVector13, prisonVector14, prisonVector15, prisonVector16,
|
||||||
prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 40, false, [255, 155, 0, 255], 0);
|
prisonVector17, prisonVector18, prisonVector19, prisonVector20, prisonVector21, prisonVector22, prisonVector23, prisonVector24], 40, false, [255, 155, 0, 255], 0);
|
||||||
|
|
||||||
export let listNoDMZones = [polygon_busbase, polygon_stadthalle, polygon_fahrschule, polygon_pilotAnfaenger, polygon_pilotProfi, polygon_muellbase];
|
export let listNoDMZones = [polygon_busbase, polygon_stadthalle, polygon_fahrschule, polygon_pilotAnfaenger, polygon_pilotProfi, polygon_muellbase, polygon_krankenhaus];
|
||||||
export let isInAnyNoDMPolygon;
|
export let isInAnyNoDMPolygon;
|
||||||
|
|
||||||
export default function polygonHandler() {
|
export default function polygonHandler() {
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import * as NativeUI from '../libs/NativeUI';
|
import * as NativeUI from '../libs/NativeUI';
|
||||||
import jailList from './criminalrelease';
|
|
||||||
import InputHelper from '../inputhelper';
|
import InputHelper from '../inputhelper';
|
||||||
|
|
||||||
const Menu = NativeUI.Menu;
|
const Menu = NativeUI.Menu;
|
||||||
@@ -30,16 +29,11 @@ cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
|||||||
export default function reportList(globalData: IGlobalData) {
|
export default function reportList(globalData: IGlobalData) {
|
||||||
|
|
||||||
var reportMenu: NativeUI.Menu;
|
var reportMenu: NativeUI.Menu;
|
||||||
|
|
||||||
var users;
|
var users;
|
||||||
var reportTexts;
|
var reportTexts;
|
||||||
|
|
||||||
var user = "";
|
var user = "";
|
||||||
var reportText = "";
|
var reportText = "";
|
||||||
|
|
||||||
|
|
||||||
//Weapon Menu
|
|
||||||
|
|
||||||
mp.events.add('showReportMenu', (userTickets, TicketsArr) => {
|
mp.events.add('showReportMenu', (userTickets, TicketsArr) => {
|
||||||
if (!globalData.InMenu) {
|
if (!globalData.InMenu) {
|
||||||
|
|
||||||
@@ -95,9 +89,9 @@ export default function reportList(globalData: IGlobalData) {
|
|||||||
|
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
|
|
||||||
var types = ["Quick Report", "Ticket Report"];
|
var types = ["Ticket", "Quick-Report"];
|
||||||
|
|
||||||
reportMenu = new Menu("QuickReport/Ticket", "", new Point(0, screenRes.y / 3), null, null);
|
reportMenu = new Menu("Report", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
var typesItem = new UIMenuListItem("Typ", "", new ItemsCollection(types));
|
var typesItem = new UIMenuListItem("Typ", "", new ItemsCollection(types));
|
||||||
reportMenu.AddItem(typesItem);
|
reportMenu.AddItem(typesItem);
|
||||||
|
|
||||||
@@ -170,4 +164,4 @@ export default function reportList(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,29 +26,24 @@ export default function weaponList(globalData: IGlobalData) {
|
|||||||
|
|
||||||
var weaponMenu: NativeUI.Menu;
|
var weaponMenu: NativeUI.Menu;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var primaries;
|
var primaries;
|
||||||
var secondaries;
|
var secondaries;
|
||||||
var melees;
|
var melees;
|
||||||
var specialsWep;
|
var specialsWep;
|
||||||
var time;
|
var time;
|
||||||
var armor;
|
var armor;
|
||||||
|
|
||||||
var primary = "";
|
|
||||||
var secondary = "";
|
|
||||||
var melee = "";
|
|
||||||
var specialWep = "";
|
|
||||||
var timer = "";
|
|
||||||
|
|
||||||
|
|
||||||
//Weapon Menu
|
//Weapon Menu
|
||||||
|
|
||||||
mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, armorArr, jsonTime, jsonAmountInfos) => {
|
mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, armorArr, jsonTime, jsonAmountInfos) => {
|
||||||
if (!globalData.InMenu) {
|
if (!globalData.InMenu) {
|
||||||
|
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
|
var primary = "";
|
||||||
|
var secondary = "";
|
||||||
|
var melee = "";
|
||||||
|
var specialWep = "";
|
||||||
|
var timer = "";
|
||||||
primaries = primariesArr;
|
primaries = primariesArr;
|
||||||
secondaries = secondariesArr;
|
secondaries = secondariesArr;
|
||||||
melees = meleesArr;
|
melees = meleesArr;
|
||||||
@@ -114,7 +109,6 @@ export default function weaponList(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function getWeaponStockMenu(parentMenu: NativeUI.Menu, ): NativeUI.Menu {
|
function getWeaponStockMenu(parentMenu: NativeUI.Menu, ): NativeUI.Menu {
|
||||||
var weaponStockMenu = new NativeUI.Menu("Bestand","", new Point(0, screenRes.y / 3), null, null);
|
var weaponStockMenu = new NativeUI.Menu("Bestand","", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
|
||||||
|
|||||||
@@ -1,143 +1,174 @@
|
|||||||
const vehicleColors = {
|
const vehicleColors = {
|
||||||
"Klassisch (Util)": {
|
"Klassisch (Util)": {
|
||||||
"Schwarz": 15,
|
"Black": 15,
|
||||||
"Silber": 18,
|
"Black Poly": 16,
|
||||||
"Dunkelsilber": 17,
|
"Dark silver": 17,
|
||||||
"Schattensilber": 20,
|
"Silver": 18,
|
||||||
"Metall": 19,
|
"Gun Metal": 19,
|
||||||
"Rot": 43,
|
"Shadow Silver": 20,
|
||||||
"Hellrot": 44,
|
"Red": 43,
|
||||||
"Granatrot": 45,
|
"Bright Red": 44,
|
||||||
"Gr\u00fcn": 57,
|
"Garnet Red": 45,
|
||||||
"Dunkelgr\u00fcn": 56,
|
"Dark Green": 56,
|
||||||
"Blau": 77,
|
"Green": 57,
|
||||||
"Hellblau": 81,
|
"Dark Blue": 75,
|
||||||
"Dunkelblau": 75,
|
"Midnight Blue": 76,
|
||||||
"Mitternachtsblau": 76,
|
"Blue": 77,
|
||||||
"Meeresblau": 78,
|
"Sea Foam Blue": 78,
|
||||||
"Leuchtendes Blau": 79,
|
"Lightning blue": 79,
|
||||||
"Braun": 108,
|
"Maui Blue Poly": 80,
|
||||||
"Hellbraun": 109,
|
"Bright Blue": 81,
|
||||||
"Wei\u00df": 122
|
"Brown": 108,
|
||||||
},
|
"Medium Brown": 109,
|
||||||
"Klassisch (Worn)": {
|
"Light Brown": 110,
|
||||||
"Schwarz": 21,
|
"Off White": 122
|
||||||
"Graphit Schwarz": 22,
|
},
|
||||||
"Silber": 24,
|
"Klassisch (Worn)": {
|
||||||
"Silber Grau": 23,
|
"Black": 21,
|
||||||
"Silber Blau": 25,
|
"Graphite": 22,
|
||||||
"Schattensilber": 26,
|
"Silver Grey": 23,
|
||||||
"Rot": 46,
|
"Silver": 24,
|
||||||
"Dunkelrot": 48,
|
"Blue Silver": 25,
|
||||||
"Goldrot": 47,
|
"Shadow Silver": 26,
|
||||||
"Gr\u00fcn": 59,
|
"Red": 46,
|
||||||
"Dunkelgr\u00fcn": 58,
|
"Golden Red": 47,
|
||||||
"Blau": 86,
|
"Dark Red": 48,
|
||||||
"Hellblau": 87,
|
"Dark Green": 58,
|
||||||
"Dunkelblau": 85,
|
"Green": 59,
|
||||||
"Babyblau": 157,
|
"Sea Wash": 60,
|
||||||
"Beige": 113,
|
"Dark blue": 85,
|
||||||
"Braun": 114,
|
"Blue": 86,
|
||||||
"Dunkelbraun": 115,
|
"Light blue": 87,
|
||||||
"Wei\u00df 1": 134,
|
"Honey Beige": 113,
|
||||||
"Wei\u00df 2": 121,
|
"Brown": 114,
|
||||||
"Wei\u00df 3": 132,
|
"Dark Brown": 115,
|
||||||
"Orange": 123,
|
"Straw Beige": 116,
|
||||||
"Helleres Orange": 124
|
"Off White": 121,
|
||||||
},
|
"Orange": 123,
|
||||||
"Metallic": {
|
"Light Orange": 124,
|
||||||
"Schwarz": 0,
|
"Taxi Yellow": 126,
|
||||||
"Graphit Schwarz": 1,
|
"Orange ": 130,
|
||||||
"Schwarzer Stahl": 2,
|
"White": 132,
|
||||||
"Dunkles Silber": 3,
|
"Olive Army Green": 133
|
||||||
"Silber": 4,
|
},
|
||||||
"Blaues Silber": 5,
|
"Metallic": {
|
||||||
"Grauer Stahl": 6,
|
"Black": 0,
|
||||||
"Schattensilber": 7,
|
"Graphite Black": 1,
|
||||||
"Steinsilber": 8,
|
"Black Steal": 2,
|
||||||
"Mitternachtssilber": 9,
|
"Dark Silver": 3,
|
||||||
"Metall": 10,
|
"Silver": 4,
|
||||||
"Anthrazitgrau": 11,
|
"Blue Silver": 5,
|
||||||
"Rot": 27,
|
"Steel Gray": 6,
|
||||||
"Turin Rot": 28,
|
"Shadow Silver": 7,
|
||||||
"Formel Rot": 29,
|
"Stone Silver": 8,
|
||||||
"Feuer Rot": 30,
|
"Midnight Silver": 9,
|
||||||
"W\u00fcsten Rot": 33,
|
"Gun Metal": 10,
|
||||||
"Lava Rot": 150,
|
"Anthracite Grey": 11,
|
||||||
"Schwarz Rot": 143,
|
"Red": 27,
|
||||||
"Orange": 38,
|
"Torino Red": 28,
|
||||||
"Helleres Orange": 138,
|
"Formula Red": 29,
|
||||||
"Sonnenaufgang Orange": 36,
|
"Blaze Red": 30,
|
||||||
"Schokoorange": 104,
|
"Graceful Red": 31,
|
||||||
"Gr\u00fcn": 53,
|
"Garnet Red": 32,
|
||||||
"Hellgr\u00fcn": 139,
|
"Desert Red": 33,
|
||||||
"Dunkelgr\u00fcn": 49,
|
"Cabernet Red": 34,
|
||||||
"Renngr\u00fcn": 50,
|
"Candy Red": 35,
|
||||||
"Meeresgr\u00fcn": 51,
|
"Sunrise Orange": 36,
|
||||||
"Olivgr\u00fcn": 52,
|
"Classic Gold": 37,
|
||||||
"Limettengr\u00fcn": 92,
|
"Orange": 38,
|
||||||
"Blau": 64,
|
"Dark Green": 49,
|
||||||
"Dunkelblau": 62,
|
"Racing Green": 50,
|
||||||
"Hellblau": 70,
|
"Sea Green": 51,
|
||||||
"Mitternachtsblau": 61,
|
"Olive Green": 52,
|
||||||
"Babyblau": 140,
|
"Green": 53,
|
||||||
"Marineblau": 65,
|
"Gasoline Blue Green": 54,
|
||||||
"Hafenblau": 66,
|
"Midnight Blue": 61,
|
||||||
"Diamantblau": 67,
|
"Dark Blue": 62,
|
||||||
"Surfblau": 68,
|
"Saxony Blue": 63,
|
||||||
"Nautisches Blau": 69,
|
"Blue": 64,
|
||||||
"Lila Blau": 71,
|
"Mariner Blue": 65,
|
||||||
"Ultra Blau": 73,
|
"Harbor Blue": 66,
|
||||||
"Schwarz Blau": 141,
|
"Diamond Blue": 67,
|
||||||
"Gelb": 88,
|
"Surf Blue": 68,
|
||||||
"Renngelb": 89,
|
"Nautical Blue": 69,
|
||||||
"Vogelgelb": 91,
|
"Bright Blue": 70,
|
||||||
"Champagner Grau": 93,
|
"Purple Blue": 71,
|
||||||
"Pueblo Beige": 94,
|
"Spinnaker Blue": 72,
|
||||||
"Schokobraun": 96,
|
"Ultra Blue": 73,
|
||||||
"Goldbraun": 97,
|
"Bright Blue ": 74,
|
||||||
"Hellbraun": 98,
|
"Taxi Yellow": 88,
|
||||||
"Moosbraun": 100,
|
"Race Yellow": 89,
|
||||||
"Wei\u00df": 111,
|
"Bronze": 90,
|
||||||
"Sahnewei\u00df": 107,
|
"Yellow Bird": 91,
|
||||||
"Frostwei\u00df": 112,
|
"Lime": 92,
|
||||||
"Pink": 137,
|
"Champagne": 93,
|
||||||
"Lila": 145,
|
"Pueblo Beige": 94,
|
||||||
"Schwarz Lila": 142
|
"Dark Ivory": 95,
|
||||||
},
|
"Choco Brown": 96,
|
||||||
"Matt": {
|
"Golden Brown": 97,
|
||||||
"Schwarz": 12,
|
"Light Brown": 98,
|
||||||
"Grau": 13,
|
"Straw Beige": 99,
|
||||||
"Hellgrau": 14,
|
"Moss Brown": 100,
|
||||||
"Rot": 39,
|
"Biston Brown": 101,
|
||||||
"Dunkelrot": 40,
|
"Beechwood": 102,
|
||||||
"Orange": 41,
|
"Dark Beechwood": 103,
|
||||||
"Gelb": 42,
|
"Choco Orange": 104,
|
||||||
"Limonengr\u00fcn": 55,
|
"Beach Sand": 105,
|
||||||
"Blau": 83,
|
"Sun Bleeched Sand": 106,
|
||||||
"Dunkelblau": 82,
|
"Cream": 107,
|
||||||
"Mitternachtsblau": 61,
|
"White": 111,
|
||||||
"Gr\u00fcn": 128,
|
"Frost White": 112,
|
||||||
"Waldgr\u00fcn": 151,
|
"Securicor Green": 125,
|
||||||
"Laubgr\u00fcn": 155,
|
"Vermillion Pink": 137,
|
||||||
"Olivgr\u00fcn": 152,
|
"Black Blue": 141,
|
||||||
"Braun": 129,
|
"Black Purple": 142,
|
||||||
"Wei\u00df": 131,
|
"Black Red": 143,
|
||||||
"Lila": 148,
|
"Purple": 145,
|
||||||
"Dunkellila": 149,
|
"Dark Blue V": 146,
|
||||||
"W\u00fcstenbraun": 153,
|
"Lava Red": 150
|
||||||
"W\u00fcstenbr<62>une": 154
|
},
|
||||||
},
|
"Matt": {
|
||||||
"Spezial": {
|
"Black": 12,
|
||||||
"Geb\u00fcrsteter Stahl": 117,
|
"Gray": 13,
|
||||||
"Geb\u00fcrsteter schwarzer Stahl": 118,
|
"Light Grey": 14,
|
||||||
"Geb\u00fcrstetes Aluminium": 119,
|
"Red": 39,
|
||||||
"Geb\u00fcrstetes Gold": 159,
|
"Dark Red": 40,
|
||||||
"Gold": 37,
|
"Orange": 41,
|
||||||
"Pures Gold": 158,
|
"Yellow": 42,
|
||||||
"Chrome": 120,
|
"Lime Green": 55,
|
||||||
"Bronze": 90
|
"Dark Blue": 82,
|
||||||
}
|
"Blue": 83,
|
||||||
|
"Midnight Blue": 84,
|
||||||
|
"Green": 128,
|
||||||
|
"Brown": 129,
|
||||||
|
"White": 131,
|
||||||
|
"Purple": 148,
|
||||||
|
"Dark Purple": 149,
|
||||||
|
"Forest Green": 151,
|
||||||
|
"Olive Drab": 152,
|
||||||
|
"Desert Brown": 153,
|
||||||
|
"Desert Tan": 154,
|
||||||
|
"Foilage Green": 155
|
||||||
|
},
|
||||||
|
"Spezial": {
|
||||||
|
"Brushed Steel": 117,
|
||||||
|
"Brushed Black steel": 118,
|
||||||
|
"Brushed Aluminium": 119,
|
||||||
|
"Chrome": 120,
|
||||||
|
"Police Car Blue": 127,
|
||||||
|
"Pure White": 134,
|
||||||
|
"Hot Pink": 135,
|
||||||
|
"Salmon pink": 136,
|
||||||
|
"Orange": 138,
|
||||||
|
"Green": 139,
|
||||||
|
"Blue": 140,
|
||||||
|
"Hunter Green": 144,
|
||||||
|
"MODSHOP BLACK1": 147,
|
||||||
|
"DEFAULT ALLOY COLOR": 156,
|
||||||
|
"Epsilon Blue": 157,
|
||||||
|
"Pure Gold": 158,
|
||||||
|
"Brushed Gold": 159
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export default vehicleColors;
|
export default vehicleColors;
|
||||||
@@ -22,11 +22,11 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
|
|
||||||
const disableInput = [75, 278, 279, 280, 281, 23, 59, 60, 71, 72, 74];
|
const disableInput = [75, 278, 279, 280, 281, 23, 59, 60, 71, 72, 74];
|
||||||
|
|
||||||
const carModTypes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 22, -1, 25, 27, 28, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 46, 48, 69];
|
const carModTypes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 22, -2, -1, 25, 27, 28, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 46, 48, 69];
|
||||||
|
|
||||||
const carModSlotName = [
|
const carModSlotName = [
|
||||||
{ Slot: 0, Name: "Spoiler", Price: 1000 },
|
{ Slot: 0, Name: "Spoiler", Price: 1000 },
|
||||||
{ Slot: 1, Name: "Frontstoßstange", Price: 1500},
|
{ Slot: 1, Name: "Frontstoßstange", Price: 1500 },
|
||||||
{ Slot: 2, Name: "Heckstoßstange", Price: 1500 },
|
{ Slot: 2, Name: "Heckstoßstange", Price: 1500 },
|
||||||
{ Slot: 3, Name: "Seitenschweller", Price: 1500 },
|
{ Slot: 3, Name: "Seitenschweller", Price: 1500 },
|
||||||
{ Slot: 4, Name: "Auspuff", Price: 500 },
|
{ Slot: 4, Name: "Auspuff", Price: 500 },
|
||||||
@@ -36,14 +36,14 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
{ Slot: 8, Name: "Extra 1", Price: 2000 },
|
{ Slot: 8, Name: "Extra 1", Price: 2000 },
|
||||||
{ Slot: 9, Name: "Extra 2", Price: 2000 },
|
{ Slot: 9, Name: "Extra 2", Price: 2000 },
|
||||||
{ Slot: 10, Name: "Dach", Price: 1500 },
|
{ Slot: 10, Name: "Dach", Price: 1500 },
|
||||||
{ Slot: 11, Name: "Motor", Price: 50000 },
|
{ Slot: 11, Name: "Motor", BasePercentage: 20, PriceIncreasePerLevel: 7.5 },
|
||||||
{ Slot: 12, Name: "Bremsen", Price: 30000 },
|
{ Slot: 12, Name: "Bremsen", BasePercentage: 5, PriceIncreasePerLevel: 2.5 },
|
||||||
{ Slot: 13, Name: "Getriebe", Price: 15000 },
|
{ Slot: 13, Name: "Getriebe", BasePercentage: 10, PriceIncreasePerLevel: 2.5 },
|
||||||
{ Slot: 14, Name: "Hupe", Price: 500 },
|
{ Slot: 14, Name: "Hupe", Price: 500 },
|
||||||
{ Slot: 15, Name: "Federung", Price: 2000 },
|
{ Slot: 15, Name: "Federung", Price: 2000 },
|
||||||
{ Slot: 18, Name: "Turbo", Price: 40000 },
|
{ Slot: 18, Name: "Turbo", BasePercentage: 45, PriceIncreasePerLevel: 0 },
|
||||||
{ Slot: 22, Name: "Licht", Price: 500 },
|
{ Slot: 22, Name: "Licht", Price: 500 },
|
||||||
{ Slot: 23, Name: "Reifen", Price: 1000 },
|
{ Slot: -2, Name: "Reifen", Price: 2500 },
|
||||||
{ Slot: -1, Name: "Lackierung", Price: 1000 },
|
{ Slot: -1, Name: "Lackierung", Price: 1000 },
|
||||||
{ Slot: 25, Name: "Nummernschildhalter", Price: 500 },
|
{ Slot: 25, Name: "Nummernschildhalter", Price: 500 },
|
||||||
{ Slot: 27, Name: "Innenausstatung", Price: 500 },
|
{ Slot: 27, Name: "Innenausstatung", Price: 500 },
|
||||||
@@ -117,6 +117,49 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const wheelTypes = [
|
||||||
|
{
|
||||||
|
Name: "Sport",
|
||||||
|
Type: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Muscle",
|
||||||
|
Type: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Lowrider",
|
||||||
|
Type: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "SUV",
|
||||||
|
Type: 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Offroad",
|
||||||
|
Type: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Tuner",
|
||||||
|
Type: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "High End",
|
||||||
|
Type: 7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Benny's Originals",
|
||||||
|
Type: 8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Benny's Bespoke",
|
||||||
|
Type: 9,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "Street",
|
||||||
|
Type: 11,
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
var mainMenu: NativeUI.Menu;
|
var mainMenu: NativeUI.Menu;
|
||||||
|
|
||||||
mp.events.add('showTuningInfo', () => {
|
mp.events.add('showTuningInfo', () => {
|
||||||
@@ -162,10 +205,10 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var currentMod = new Array<number>();
|
var currentMod = new Array<number>();
|
||||||
var currentActiveModItem = new Array<NativeUI.UIMenuItem>();
|
var currentActiveModItem = new Array<VehicleModMenuItem>();
|
||||||
var currentSelectedItem: VehicleModMenuItem = null;
|
var currentSelectedItem: VehicleModMenuItem = null;
|
||||||
|
|
||||||
mp.events.add("showTuningMenu", (noMoney) => {
|
mp.events.add("showTuningMenu", (noMoney, basePrice) => {
|
||||||
mp.events.call("hideTuningInfo", false);
|
mp.events.call("hideTuningInfo", false);
|
||||||
mp.gui.chat.show(false);
|
mp.gui.chat.show(false);
|
||||||
|
|
||||||
@@ -206,6 +249,13 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
mainMenu.AddItem(colorItem);
|
mainMenu.AddItem(colorItem);
|
||||||
mainMenu.BindMenuToItem(colorMenu, colorItem);
|
mainMenu.BindMenuToItem(colorMenu, colorItem);
|
||||||
|
|
||||||
|
return;
|
||||||
|
} else if (modType == -2) {
|
||||||
|
var wheelsItem = new UIMenuItem("Reifen");
|
||||||
|
var wheelsMenu = getWheelsMenu(localVehicle);
|
||||||
|
|
||||||
|
mainMenu.AddItem(wheelsItem);
|
||||||
|
mainMenu.BindMenuToItem(wheelsMenu, wheelsItem);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,9 +276,6 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var price = noMoney? 0 : getModSlotPrice(modType);
|
|
||||||
|
|
||||||
|
|
||||||
if (mod === null) {
|
if (mod === null) {
|
||||||
mod = localVehicle.getMod(modType);
|
mod = localVehicle.getMod(modType);
|
||||||
}
|
}
|
||||||
@@ -248,6 +295,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
currentMod[modType] = mod;
|
currentMod[modType] = mod;
|
||||||
|
|
||||||
for (var x = -1; x < modNum; x++) {
|
for (var x = -1; x < modNum; x++) {
|
||||||
|
var price = noMoney ? 0 : getModSlotPrice(modType, basePrice, x);
|
||||||
var modText = "";
|
var modText = "";
|
||||||
if (x === -1) {
|
if (x === -1) {
|
||||||
modText = "Serie";
|
modText = "Serie";
|
||||||
@@ -265,7 +313,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
modMenu.CurrentSelection = x;
|
modMenu.CurrentSelection = x;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
item.SetRightLabel("$"+ moneyformat(price));
|
item.SetRightLabel("$" + moneyformat(price));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -304,8 +352,6 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mainMenu.ItemSelect.on((item: NativeUI.UIMenuItem, index: number) => {
|
mainMenu.ItemSelect.on((item: NativeUI.UIMenuItem, index: number) => {
|
||||||
if (item === repairItem) {
|
if (item === repairItem) {
|
||||||
mp.events.callRemote("repairVehicle");
|
mp.events.callRemote("repairVehicle");
|
||||||
@@ -315,7 +361,9 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
mainMenu.Visible = true;
|
mainMenu.Visible = true;
|
||||||
|
|
||||||
mainMenu.MenuClose.on(() => {
|
mainMenu.MenuClose.on(() => {
|
||||||
localVehicle.setLights(0);
|
if (localVehicle && mp.vehicles.exists(localVehicle)) {
|
||||||
|
localVehicle.setLights(0);
|
||||||
|
}
|
||||||
globalData.InTuning = false;
|
globalData.InTuning = false;
|
||||||
globalData.InMenu = false;
|
globalData.InMenu = false;
|
||||||
mp.events.call("hideTuningInfo", false);
|
mp.events.call("hideTuningInfo", false);
|
||||||
@@ -325,7 +373,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
|
|
||||||
mp.events.add("SERVER:Tuning_ModSucessfull", (modType: number, index: number) => {
|
mp.events.add("SERVER:Tuning_ModSucessfull", (modType: number, index: number) => {
|
||||||
currentMod[modType] = index - 1;
|
currentMod[modType] = index - 1;
|
||||||
currentActiveModItem[modType].SetRightLabel("$" + moneyformat(currentSelectedItem.price));
|
currentActiveModItem[modType].SetRightLabel("$" + moneyformat(currentActiveModItem[modType].price));
|
||||||
currentActiveModItem[modType].SetRightBadge(NativeUI.BadgeStyle.None);
|
currentActiveModItem[modType].SetRightBadge(NativeUI.BadgeStyle.None);
|
||||||
currentSelectedItem.SetRightBadge(BadgeStyle.Car);
|
currentSelectedItem.SetRightBadge(BadgeStyle.Car);
|
||||||
currentSelectedItem.SetRightLabel("");
|
currentSelectedItem.SetRightLabel("");
|
||||||
@@ -456,8 +504,21 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
return realModName;
|
return realModName;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getModSlotPrice(modType: number): number {
|
function getModSlotPrice(modType: number, basePrice: number, modIndex?: number): number {
|
||||||
return carModSlotName.filter(x => x.Slot == modType)[0].Price;
|
if (modIndex === -1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
let price = 0;
|
||||||
|
let priceInfo = carModSlotName.filter(x => x.Slot == modType)[0];
|
||||||
|
|
||||||
|
if (priceInfo.BasePercentage) {
|
||||||
|
price = ((priceInfo.BasePercentage + priceInfo.PriceIncreasePerLevel * modIndex) / 100) * basePrice;
|
||||||
|
} else {
|
||||||
|
price = priceInfo.Price;
|
||||||
|
}
|
||||||
|
|
||||||
|
return price;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setHeadlightsColor(vehicle, index) {
|
function setHeadlightsColor(vehicle, index) {
|
||||||
@@ -480,6 +541,99 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var currentWheelType = null;
|
||||||
|
var currentWheel = null;
|
||||||
|
var currentWheelItem: NativeUI.UIMenuItem = null;
|
||||||
|
var wheelPrice = getModSlotPrice(-2, 0, 0);
|
||||||
|
var currentSelectedWheelItem: NativeUI.UIMenuItem = null;
|
||||||
|
|
||||||
|
function getWheelsMenu(vehicle: VehicleMp): NativeUI.Menu {
|
||||||
|
var wheelsMenu = new NativeUI.Menu("Reifen", "rollin on dem rims", new NativeUI.Point(0, screenRes.y / 3));
|
||||||
|
|
||||||
|
currentWheelType = vehicle.getWheelType();
|
||||||
|
currentWheel = vehicle.getMod(23);
|
||||||
|
currentWheelItem = null;
|
||||||
|
|
||||||
|
wheelTypes.forEach(wheelType => {
|
||||||
|
var type = wheelType.Type;
|
||||||
|
|
||||||
|
var modsLoaded = false;
|
||||||
|
|
||||||
|
var menuOpenTime: number = null;
|
||||||
|
|
||||||
|
var typeItem = new UIMenuItem(wheelType.Name);
|
||||||
|
wheelsMenu.AddItem(typeItem);
|
||||||
|
|
||||||
|
var wheelTypeMenu = new Menu(wheelType.Name, "skyr", new Point(0, screenRes.y / 3));
|
||||||
|
|
||||||
|
wheelsMenu.BindMenuToItem(wheelTypeMenu, typeItem);
|
||||||
|
|
||||||
|
wheelTypeMenu.IndexChange.on((index: number) => {
|
||||||
|
vehicle.setMod(23, index);
|
||||||
|
});
|
||||||
|
|
||||||
|
wheelTypeMenu.MenuOpen.on(() => {
|
||||||
|
menuOpenTime = Date.now();
|
||||||
|
vehicle.setWheelType(type);
|
||||||
|
if (modsLoaded) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var wheelNums = vehicle.getNumMods(23);
|
||||||
|
|
||||||
|
for (var i = 0; i < wheelNums; i++) {
|
||||||
|
var modText = "";
|
||||||
|
|
||||||
|
modText = mp.game.ui.getLabelText(vehicle.getModTextLabel(23, i));
|
||||||
|
if (modText === "NULL") modText = getModName(vehicle, 23, i);
|
||||||
|
|
||||||
|
var item = new VehicleModMenuItem(modText);
|
||||||
|
|
||||||
|
if (type == currentWheelType && i == currentWheel) {
|
||||||
|
currentWheelItem = item;
|
||||||
|
currentWheelItem.SetRightBadge(BadgeStyle.Car);
|
||||||
|
} else {
|
||||||
|
item.SetRightLabel("$" + moneyformat(wheelPrice));
|
||||||
|
}
|
||||||
|
|
||||||
|
wheelTypeMenu.AddItem(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
modsLoaded = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
wheelTypeMenu.ItemSelect.on((item, index: number) => {
|
||||||
|
if (Date.now() - menuOpenTime < 500 || item == currentWheelItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentSelectedWheelItem = item;
|
||||||
|
mp.events.callRemote("CLIENT:Tuning_SetVehicleWheels", type, index, wheelPrice);
|
||||||
|
});
|
||||||
|
|
||||||
|
wheelTypeMenu.MenuClose.on(() => {
|
||||||
|
vehicle.setWheelType(currentWheelType);
|
||||||
|
vehicle.setMod(23, currentWheel);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
return wheelsMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
mp.events.add("SERVER:Tuning_SetWheelsSuccessfull", (type, index) => {
|
||||||
|
currentWheelType = type;
|
||||||
|
currentWheel = index;
|
||||||
|
|
||||||
|
if (currentWheelItem) {
|
||||||
|
currentWheelItem.SetRightLabel("$" + moneyformat(wheelPrice));
|
||||||
|
currentWheelItem.SetRightBadge(BadgeStyle.None);
|
||||||
|
}
|
||||||
|
|
||||||
|
currentWheelItem = currentSelectedWheelItem;
|
||||||
|
currentWheelItem.SetRightBadge(BadgeStyle.Car);
|
||||||
|
currentWheelItem.SetRightLabel("");
|
||||||
|
})
|
||||||
|
|
||||||
function getColorMenu(): NativeUI.Menu {
|
function getColorMenu(): NativeUI.Menu {
|
||||||
var currentColors = mp.players.local.vehicle.getColours(0, 0);
|
var currentColors = mp.players.local.vehicle.getColours(0, 0);
|
||||||
|
|
||||||
@@ -489,7 +643,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
var primaryColor = getSingleColorMenu("Primärfarbe", currentPrimaryColor, primaryColorSelect, primaryColorChange);
|
var primaryColor = getSingleColorMenu("Primärfarbe", currentPrimaryColor, primaryColorSelect, primaryColorChange);
|
||||||
var secondaryColor = getSingleColorMenu("Sekundärfarbe", currentSecondaryColor, secondaryColorSelect, secondaryColorChange);
|
var secondaryColor = getSingleColorMenu("Sekundärfarbe", currentSecondaryColor, secondaryColorSelect, secondaryColorChange);
|
||||||
|
|
||||||
var menu = new Menu("Lackierungen", "Ändere die Farbe deines Fahrzeugs", new Point(0, screenRes.y / 3));
|
var menu = new Menu("Lackierungen", "Fahrzeugfarbe ändern", new Point(0, screenRes.y / 3));
|
||||||
|
|
||||||
var primaryColorItem = new UIMenuItem("Primärfarbe");
|
var primaryColorItem = new UIMenuItem("Primärfarbe");
|
||||||
var secondaryColorItem = new UIMenuItem("Sekundärfarbe");
|
var secondaryColorItem = new UIMenuItem("Sekundärfarbe");
|
||||||
@@ -512,7 +666,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getSingleColorMenu(title: string, currentColor: number, onSelect: (color: number) => void, onChange: (color: number) => void): NativeUI.Menu {
|
function getSingleColorMenu(title: string, currentColor: number, onSelect: (color: number) => void, onChange: (color: number) => void): NativeUI.Menu {
|
||||||
var menu = new Menu(title, "Ändere die Farbe deines Fahrzeugs", new Point(0, screenRes.y / 3));
|
var menu = new Menu(title, "Fahrzeugfarbe ändern", new Point(0, screenRes.y / 3));
|
||||||
|
|
||||||
var colorCategories = Object.keys(vehicleColors);
|
var colorCategories = Object.keys(vehicleColors);
|
||||||
|
|
||||||
@@ -522,7 +676,7 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
var categoryItem = new UIMenuItem(category);
|
var categoryItem = new UIMenuItem(category);
|
||||||
menu.AddItem(categoryItem);
|
menu.AddItem(categoryItem);
|
||||||
|
|
||||||
var categoryMenu = new Menu(category, "Ändere die Farbe deines Fahrzeugs", new Point(0, screenRes.y / 3));
|
var categoryMenu = new Menu(category, "Fahrzeugfarbe ändern", new Point(0, screenRes.y / 3));
|
||||||
|
|
||||||
var categoryColors = Object.keys(vehicleColors[category]);
|
var categoryColors = Object.keys(vehicleColors[category]);
|
||||||
categoryColors.forEach(categoryColor => {
|
categoryColors.forEach(categoryColor => {
|
||||||
@@ -578,6 +732,8 @@ export default function tuning(globalData: IGlobalData) {
|
|||||||
mp.events.callRemote("CLIENT:TuningManager_SetVehicleColor", false, color);
|
mp.events.callRemote("CLIENT:TuningManager_SetVehicleColor", false, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class VehicleModMenuItem extends UIMenuItem {
|
class VehicleModMenuItem extends UIMenuItem {
|
||||||
public price: number;
|
public price: number;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,12 @@
|
|||||||
if (taxiLight) vehicle.setTaxiLights(taxiLight);
|
if (taxiLight) vehicle.setTaxiLights(taxiLight);
|
||||||
|
|
||||||
var mod18 = vehicle.getVariable('mod18');
|
var mod18 = vehicle.getVariable('mod18');
|
||||||
|
var wheelType = vehicle.getVariable('wheelType');
|
||||||
|
|
||||||
|
if (wheelType !== undefined) {
|
||||||
|
vehicle.setWheelType(wheelType);
|
||||||
|
vehicle.setMod(23, vehicle.getMod(23));
|
||||||
|
}
|
||||||
|
|
||||||
if (mod18 !== undefined) {
|
if (mod18 !== undefined) {
|
||||||
vehicle.toggleMod(18, mod18);
|
vehicle.toggleMod(18, mod18);
|
||||||
@@ -22,8 +28,13 @@
|
|||||||
if (!veh) {
|
if (!veh) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (slot == -2) {
|
||||||
|
veh.setWheelType(newval);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
veh.toggleMod(slot, newval);
|
||||||
|
}
|
||||||
|
|
||||||
veh.toggleMod(slot, newval);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.addDataHandler("vehicleTaxiLight", (entity: VehicleMp, state: boolean) => {
|
mp.events.addDataHandler("vehicleTaxiLight", (entity: VehicleMp, state: boolean) => {
|
||||||
|
|||||||
@@ -1,12 +1,29 @@
|
|||||||
let cam: CameraMp = mp.cameras.new('spectateCam');;
|
let cam: CameraMp;
|
||||||
|
|
||||||
|
let specPlayer: PlayerMp;
|
||||||
|
|
||||||
mp.events.add("SERVER:ADMIN_SPECTATE", (targetPlayer) => {
|
mp.events.add("SERVER:ADMIN_SPECTATE", (targetPlayer) => {
|
||||||
cam.attachTo(targetPlayer.handle, 10.0, 0.0, 10.0, true);
|
//cam.attachTo(targetPlayer.handle, 0, 1.0, 1.0, 1.0, 0, 0, 0, true, false, false, false, 0, false);
|
||||||
cam.setActive(true);
|
specPlayer = targetPlayer;
|
||||||
|
cam = mp.cameras.new('spectateCam');
|
||||||
|
cam.attachTo(targetPlayer.handle, 0, -4, 1.5, true);
|
||||||
|
cam.pointAt(targetPlayer.handle, 0, 0, 0, true);
|
||||||
|
cam.setActive(true);
|
||||||
|
mp.game.cam.renderScriptCams(true, false, 0, true, false);
|
||||||
|
mp.players.local.attachTo(targetPlayer.handle, 0, 0, -4, 1, 0, 0, 0, true, false, false, false, 0, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("SERVER:ADMIN_STOP_SPECTATE", () => {
|
mp.events.add("SERVER:ADMIN_STOP_SPECTATE", () => {
|
||||||
if (cam.isActive() == true) {
|
if (mp.cameras.exists(cam)) {
|
||||||
cam.setActive(false);
|
cam.destroy();
|
||||||
|
mp.game.cam.renderScriptCams(false, false, 0, true, false);
|
||||||
|
mp.players.local.detach(true, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("render", () => {
|
||||||
|
if (mp.cameras.exists(cam)) {
|
||||||
|
cam.setRot(0, 0, specPlayer.getRotation(0).z, 0);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'OSL';
|
font-family: 'OSL';
|
||||||
src: url('package://assets/font/OSL.ttf') format('truetype');
|
src: url('../../font/OSL.ttf') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'OSB';
|
font-family: 'OSB';
|
||||||
src: url('package://assets/font/OpenSans-Bold.ttf') format('truetype');
|
src: url('../../font/OpenSans-Bold.ttf') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
|
|||||||
@@ -110,4 +110,4 @@ a {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 5.25em;
|
width: 5.25em;
|
||||||
}
|
}
|
||||||
/*# sourceMappingURL=main.css.map */
|
/*# sourceMappingURL=main.css.map */
|
||||||
@@ -6,4 +6,4 @@
|
|||||||
],
|
],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "main.css"
|
"file": "main.css"
|
||||||
}
|
}
|
||||||
109
ReallifeGamemode.Client/assets/css/interaction/style.css
Normal file
109
ReallifeGamemode.Client/assets/css/interaction/style.css
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
html {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
*, *:before, *:after {
|
||||||
|
-webkit-box-sizing: inherit;
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100vh;
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 15vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: .5em;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu__item {
|
||||||
|
width: 8em;
|
||||||
|
padding: .5em;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu__item:not(:last-child) {
|
||||||
|
margin-right: .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu__item:hover {
|
||||||
|
background-color: rgba(0, 0, 0, 0.125);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu__icon {
|
||||||
|
max-width: 3em;
|
||||||
|
height: auto;
|
||||||
|
-ms-flex-item-align: center;
|
||||||
|
-ms-grid-row-align: center;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu__text {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex--column {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: column;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=style.css.map */
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"mappings": "AAAA,AAAA,IAAI,CAAC;EAAE,UAAU,EAAE,UAAU;CAAI;;AACjC,AAAA,CAAC,EAAE,CAAC,AAAA,OAAO,EAAE,CAAC,AAAA,MAAM,CAAC;EAAE,UAAU,EAAE,OAAO;CAAI;;AAE9C,AAAA,IAAI,EAAE,IAAI,CAAC;EACT,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;CACb;;AAED,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,MAAM;EAEvB,WAAW,EAAE,oIAAoI;CAClJ;;AAED,AAAA,IAAI,CAAC;EACH,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EACnB,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,IAAI;CACb;;AAED,AAAA,aAAa,CAAC;EACZ,gBAAgB,EAAO,kBAAK;EAC5B,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EAEV,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,IAAI;EAEb,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,KAAK;CAsBb;;AApBE,AAAD,mBAAO,CAAC;EACN,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,GAAG;CAInB;;AAPA,AAKC,mBALK,AAKJ,IAAK,CAAA,WAAW,EAAE;EAAE,YAAY,EAAE,IAAI;CAAI;;AAL5C,AAMC,mBANK,AAMJ,MAAM,CAAC;EAAE,gBAAgB,EAAO,oBAAK;CAAW;;AAGlD,AAAD,mBAAO,CAAC;EACN,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,IAAI;EAEZ,UAAU,EAAE,MAAM;CACnB;;AAEA,AAAD,mBAAO,CAAC;EACN,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;CACjB;;AAGH,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;CACvB",
|
||||||
|
"sources": [
|
||||||
|
"style.scss"
|
||||||
|
],
|
||||||
|
"names": [],
|
||||||
|
"file": "style.css"
|
||||||
|
}
|
||||||
68
ReallifeGamemode.Client/assets/css/interaction/style.scss
Normal file
68
ReallifeGamemode.Client/assets/css/interaction/style.scss
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
html { box-sizing: border-box; }
|
||||||
|
*, *:before, *:after { box-sizing: inherit; }
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100vh;
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 15vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vehicle-menu {
|
||||||
|
background-color: rgba(black, .5);
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: .5em;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
&__item {
|
||||||
|
width: 8em;
|
||||||
|
padding: .5em;
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
&:not(:last-child) { margin-right: .5em; }
|
||||||
|
&:hover { background-color: rgba(black, .125); }
|
||||||
|
}
|
||||||
|
|
||||||
|
&__icon {
|
||||||
|
max-width: 3em;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__text {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: .5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex--column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
@@ -47,7 +47,7 @@ body {
|
|||||||
header {
|
header {
|
||||||
height: 5em;
|
height: 5em;
|
||||||
margin-bottom: 2em;
|
margin-bottom: 2em;
|
||||||
background-image: url("package://assets/img/login/logo.png");
|
background-image: url("../../img/login/logo.png");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
@@ -155,7 +155,7 @@ main form button.transparent:focus {
|
|||||||
|
|
||||||
main form button.transparent#submit {
|
main form button.transparent#submit {
|
||||||
width: 3.25em;
|
width: 3.25em;
|
||||||
background-image: url("package://assets/img/login/enter.png");
|
background-image: url("../../img/login/enter.png");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: right;
|
background-position: right;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
@@ -175,6 +175,10 @@ main form #alert.hidden {
|
|||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
footer, .credits {
|
||||||
|
color: rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
height: -webkit-fit-content;
|
height: -webkit-fit-content;
|
||||||
height: -moz-fit-content;
|
height: -moz-fit-content;
|
||||||
@@ -185,7 +189,6 @@ footer {
|
|||||||
align-self: center;
|
align-self: center;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 1em;
|
bottom: 1em;
|
||||||
color: rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
footer .link-list {
|
footer .link-list {
|
||||||
@@ -199,6 +202,14 @@ footer .link-list {
|
|||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.credits {
|
||||||
|
position: absolute;
|
||||||
|
top: .25em;
|
||||||
|
right: .5em;
|
||||||
|
font-size: .8em;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
body.light {
|
body.light {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
@@ -208,7 +219,7 @@ body.light main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.light header {
|
body.light header {
|
||||||
background-image: url("package://assets/img/login/logo-light.png");
|
background-image: url("../../img/login/logo-light.png");
|
||||||
opacity: .75;
|
opacity: .75;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,7 +232,7 @@ body.light form span#password-visibility::before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.light form button.transparent#submit {
|
body.light form button.transparent#submit {
|
||||||
background-image: url("package://assets/img/login/enter-dark.png");
|
background-image: url("../../img/login/enter-dark.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
body.light form #alert {
|
body.light form #alert {
|
||||||
@@ -230,7 +241,7 @@ body.light form #alert {
|
|||||||
border: 1px solid rgba(255, 125, 125, 0.15);
|
border: 1px solid rgba(255, 125, 125, 0.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
body.light footer {
|
body.light footer, body.light .credits {
|
||||||
color: rgba(255, 255, 255, 0.5);
|
color: rgba(255, 255, 255, 0.5);
|
||||||
}
|
}
|
||||||
/*# sourceMappingURL=styles.css.map */
|
/*# sourceMappingURL=styles.css.map */
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": [
|
"sources": [
|
||||||
"styles.scss"
|
"styles.scss"
|
||||||
],
|
],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "styles.css"
|
"file": "styles.css"
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ header {
|
|||||||
height: 5em;
|
height: 5em;
|
||||||
margin-bottom: 2em;
|
margin-bottom: 2em;
|
||||||
|
|
||||||
background-image: url('package://assets/img/login/logo.png');
|
background-image: url('../../img/login/logo.png');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
@@ -141,7 +141,7 @@ main {
|
|||||||
&#submit {
|
&#submit {
|
||||||
width: 3.25em;
|
width: 3.25em;
|
||||||
|
|
||||||
background-image: url('package://assets/img/login/enter.png');
|
background-image: url('../../img/login/enter.png');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: right;
|
background-position: right;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
@@ -166,6 +166,8 @@ main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
footer, .credits { color: rgba(0, 0, 0, .5); }
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
height: fit-content;
|
height: fit-content;
|
||||||
width: 60ch;
|
width: 60ch;
|
||||||
@@ -174,8 +176,6 @@ footer {
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 1em;
|
bottom: 1em;
|
||||||
|
|
||||||
color: rgba(0, 0, 0, .5);
|
|
||||||
|
|
||||||
.link-list {
|
.link-list {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -185,6 +185,14 @@ footer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.credits {
|
||||||
|
position: absolute;
|
||||||
|
top: .25em;
|
||||||
|
right: .5em;
|
||||||
|
font-size: .8em;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
body.light {
|
body.light {
|
||||||
color: #333;
|
color: #333;
|
||||||
|
|
||||||
@@ -193,7 +201,7 @@ body.light {
|
|||||||
}
|
}
|
||||||
|
|
||||||
header {
|
header {
|
||||||
background-image: url('package://assets/img/login/logo-light.png');
|
background-image: url('../../img/login/logo-light.png');
|
||||||
opacity: .75;
|
opacity: .75;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +218,7 @@ body.light {
|
|||||||
|
|
||||||
button.transparent {
|
button.transparent {
|
||||||
&#submit {
|
&#submit {
|
||||||
background-image: url('package://assets/img/login/enter-dark.png');
|
background-image: url('../../img/login/enter-dark.png');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,7 +229,5 @@ body.light {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer, .credits { color: rgba(255, 255, 255, .5); }
|
||||||
color: rgba(255, 255, 255, .5);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,9 +104,22 @@ table th:last-child, table td:last-child {
|
|||||||
}
|
}
|
||||||
|
|
||||||
table tr td {
|
table tr td {
|
||||||
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table tr td span.player__status {
|
||||||
|
position: absolute;
|
||||||
|
top: .45em;
|
||||||
|
right: 1em;
|
||||||
|
font-size: .9em;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1.15;
|
||||||
|
padding: .4em .5em;
|
||||||
|
background-color: rgba(255, 255, 255, 0.125);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
table tr td:nth-child(1) {
|
table tr td:nth-child(1) {
|
||||||
width: 7ch !important;
|
width: 7ch !important;
|
||||||
}
|
}
|
||||||
@@ -209,4 +222,12 @@ ol.inline.stats {
|
|||||||
ol.inline.stats abbr {
|
ol.inline.stats abbr {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
/*# sourceMappingURL=style.css.map */
|
|
||||||
|
.show {
|
||||||
|
display: show;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=style.css.map */
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": [
|
"sources": [
|
||||||
"style.scss"
|
"style.scss"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -80,8 +80,23 @@ table {
|
|||||||
|
|
||||||
tr {
|
tr {
|
||||||
td {
|
td {
|
||||||
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
span.player__status {
|
||||||
|
position: absolute;
|
||||||
|
top: .45em;
|
||||||
|
right: 1em;
|
||||||
|
|
||||||
|
font-size: .9em;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1.15;
|
||||||
|
padding: .4em .5em;
|
||||||
|
|
||||||
|
background-color: rgba(white, .125);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
&:nth-child(1) { width: 7ch !important; }
|
&:nth-child(1) { width: 7ch !important; }
|
||||||
&:nth-child(2) {
|
&:nth-child(2) {
|
||||||
max-width: 36ch;
|
max-width: 36ch;
|
||||||
@@ -140,4 +155,7 @@ ol.inline.stats {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
abbr { text-decoration: none; }
|
abbr { text-decoration: none; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.show { display: show; }
|
||||||
|
.hidden { display: none; }
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'OSL';
|
font-family: 'OSL';
|
||||||
src: url('package://assets/font/OpenSans-Bold.ttf') format('truetype');
|
src: url('../../font/OpenSans-Bold.ttf') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
*:focus {
|
*:focus {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/Introduction/style.css" />
|
<link rel="stylesheet" href="../../css/Introduction/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
Steuerung: <br />
|
Steuerung: <br />
|
||||||
T - Chat öffnen <br />
|
T - Chat öffnen <br />
|
||||||
M - Interaktionsmenü öffnen und schließen <br />
|
M - Interaktionsmenü öffnen und schließen <br />
|
||||||
X - Fahrzeug auf-/abschließen sowie im Fahrzeuginteraktionsmenü öffnen <br />
|
Z - Fahrzeug auf-/abschließen sowie im Fahrzeuginteraktionsmenü öffnen <br />
|
||||||
N - Fahrzeugmotor Starten <br />
|
N - Fahrzeugmotor Starten <br />
|
||||||
O - Onlineliste öffnen/schließen <br />
|
O - Onlineliste öffnen/schließen <br />
|
||||||
I - Inventar öffnen/schließen <br />
|
I - Inventar öffnen/schließen <br />
|
||||||
@@ -39,6 +39,6 @@
|
|||||||
<a target="_blank" id="close"></a>
|
<a target="_blank" id="close"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
||||||
<script src="package://assets/js/Introduction/application.js"></script>
|
<script src="../../js/Introduction/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js" type="text/javascript"></script>
|
<script src="../../js/jquery-3.3.1.min.js" type="text/javascript"></script>
|
||||||
<script src="./script.js"></script>
|
<script src="./script.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/Introduction/style.css" />
|
<link rel="stylesheet" href="../../css/Introduction/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -33,6 +33,6 @@
|
|||||||
<a target="_blank" id="close"></a>
|
<a target="_blank" id="close"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
||||||
<script src="package://assets/js/School/application.js"></script>
|
<script src="../../js/School/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="package://assets/css/login/style.css" />
|
<link rel="stylesheet" href="../../css/login/style.css" />
|
||||||
<link rel="stylesheet" href="package://assets/css/jquery-ui.min.css" />
|
<link rel="stylesheet" href="../../css/jquery-ui.min.css" />
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
</div> <!-- /form -->
|
</div> <!-- /form -->
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
<script type="text/javascript" src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script type="text/javascript" src="package://assets/js/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="../../js/jquery-ui.min.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/Introduction/style.css" />
|
<link rel="stylesheet" href="../../css/Introduction/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<a target="_blank" id="close"></a>
|
<a target="_blank" id="close"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
||||||
<script src="package://assets/js/wantedlist/application.js"></script>
|
<script src="../../js/wantedlist/application.js"></script>
|
||||||
<script src="./script.js"></script>
|
<script src="./script.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -3,9 +3,9 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link rel="stylesheet" href="package://assets/css/atm/atm.css">
|
<link rel="stylesheet" href="../../css/atm/atm.css">
|
||||||
<audio id="click">
|
<audio id="click">
|
||||||
<source src="package://assets/sound/atm/click.ogg" type="audio/ogg">
|
<source src="../../sound/atm/click.ogg" type="audio/ogg">
|
||||||
</audio>
|
</audio>
|
||||||
</head>
|
</head>
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
@@ -292,8 +292,8 @@
|
|||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<div id="invisible" style="display:none"></div>
|
<div id="invisible" style="display:none"></div>
|
||||||
<script src="package://assets/js/jquery-3.1.1.min.js"></script>
|
<script src="../../js/jquery-3.1.1.min.js"></script>
|
||||||
<script src="package://assets/js/bootstrap.min.js"></script>
|
<script src="../../js/bootstrap.min.js"></script>
|
||||||
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
|
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" type="text/css" href="package://assets/css/chat/checkbox.css" media="screen">
|
<link rel="stylesheet" type="text/css" href="../../css/chat/checkbox.css" media="screen">
|
||||||
<link rel="stylesheet" type="text/css" href="package://assets/css/chat/main.css" media="screen">
|
<link rel="stylesheet" type="text/css" href="../../css/chat/main.css" media="screen">
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<ul id="chat_messages"></ul>
|
<ul id="chat_messages"></ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript" src="package://assets/js/chat/jquery-1.11.3.min.js"></script>
|
<script type="text/javascript" src="../../js/chat/jquery-1.11.3.min.js"></script>
|
||||||
<script src="package://assets/js/chat/main.js"></script>
|
<script src="../../js/chat/main.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/Introduction/style.css" />
|
<link rel="stylesheet" href="../../css/Introduction/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
<div class="input-main">
|
<div class="input-main">
|
||||||
<h1>Letze Fahrer</h1>
|
<h1>Letze(r) Fahrer</h1>
|
||||||
</div>
|
</div>
|
||||||
<div id="content" class="form" role="form">
|
<div id="content" class="form" role="form">
|
||||||
<ul id="drivers-list">
|
<ul id="drivers-list">
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<a id="close" href="#"></a>
|
<a id="close" href="#"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="../js/jquery-3.3.1.min.js"></script>
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script src="./application.js"></script>
|
<script src="../../js/driver-history/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title></title>
|
<title></title>
|
||||||
<link rel="stylesheet" href="package://assets/css/factionmanagement/ranks/style.css" />
|
<link rel="stylesheet" href="../../css/factionmanagement/ranks/style.css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
<button class="save-btn">Speichern</button>
|
<button class="save-btn">Speichern</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script src="package://assets/js/jquery.tablednd.0.8.min.js"></script>
|
<script src="../../js/jquery.tablednd.0.8.min.js"></script>
|
||||||
<script src="package://assets/js/jquery.gettable.js"></script>
|
<script src="../../js/jquery.gettable.js"></script>
|
||||||
<script src="package://assets/js/factionmanagement/ranks/script.js"></script>
|
<script src="../../js/factionmanagement/ranks/script.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/helpcommand/style.css" />
|
<link rel="stylesheet" href="../../css/helpcommand/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -66,6 +66,6 @@
|
|||||||
<a target="_blank" id="close"></a>
|
<a target="_blank" id="close"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
||||||
<script src="package://assets/js/helpcommand/application.js"></script>
|
<script src="../../js/helpcommand/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/helpcommand/style.css" />
|
<link rel="stylesheet" href="../../css/helpcommand/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -42,6 +42,6 @@
|
|||||||
<a target="_blank" id="close"></a>
|
<a target="_blank" id="close"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
||||||
<script src="package://assets/js/helpcommand/application.js"></script>
|
<script src="../../js/helpcommand/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/helpcommand/style.css" />
|
<link rel="stylesheet" href="../../css/helpcommand/style.css" />
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
@@ -40,6 +40,6 @@
|
|||||||
<a target="_blank" id="close"></a>
|
<a target="_blank" id="close"></a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
|
||||||
<script src="package://assets/js/helpcommand/application_userhelp.js"></script>
|
<script src="../../js/helpcommand/application_userhelp.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,10 +5,10 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Eingabe | Life of German</title>
|
<title>Eingabe | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/inputhelper/style.css" />
|
<link rel="stylesheet" href="../../css/inputhelper/style.css" />
|
||||||
<link rel="stylesheet" href="package://assets/font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<!--<a target="_blank" id="close"></a>-->
|
<!--<a target="_blank" id="close"></a>-->
|
||||||
</main>
|
</main>
|
||||||
<script type="text/javascript" src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
mp.trigger('cef_request_title');
|
mp.trigger('cef_request_title');
|
||||||
@@ -48,6 +48,6 @@
|
|||||||
$('.input-main h1').text(title);
|
$('.input-main h1').text(title);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script src="package://assets/js/inputhelper/application.js"></script>
|
<script src="../../js/inputhelper/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
59
ReallifeGamemode.Client/assets/html/interaction/index.html
Normal file
59
ReallifeGamemode.Client/assets/html/interaction/index.html
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="../../css/interaction/style.css">
|
||||||
|
<title>Fahrzeugmenu</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<ul class="vehicle-menu">
|
||||||
|
<li class="vehicle-menu__item" tabindex="1">
|
||||||
|
<div class="flex--column">
|
||||||
|
<img class="vehicle-menu__icon" src="../../img/interaction/engine.png"></img>
|
||||||
|
<span class="vehicle-menu__text">Motor<br>an-/ausschalten</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="vehicle-menu__item" tabindex="2">
|
||||||
|
<div class="flex--column">
|
||||||
|
<img class="vehicle-menu__icon" src="../../img/interaction/belt.png"></img>
|
||||||
|
<span class="vehicle-menu__text">Gurt<br>an-/ablegen</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="vehicle-menu__item" tabindex="3">
|
||||||
|
<div class="flex--column">
|
||||||
|
<img class="vehicle-menu__icon" src="../../img/interaction/key.png"></img>
|
||||||
|
<span class="vehicle-menu__text">Fahrzeug<br>auf-/abschließen</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<!--
|
||||||
|
<li class="vehicle-menu__item" tabindex="4">
|
||||||
|
<div class="flex--column">
|
||||||
|
<img class="vehicle-menu__icon" src="../../img/interaction/gas-station.png"></img>
|
||||||
|
<span class="vehicle-menu__text">Fahrzeug<br>tanken</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
-->
|
||||||
|
<li class="vehicle-menu__item" tabindex="5">
|
||||||
|
<div class="flex--column">
|
||||||
|
<img class="vehicle-menu__icon" src="../../img/interaction/parking.png"></img>
|
||||||
|
<span class="vehicle-menu__text">Fahrzeug<br>parken</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="vehicle-menu__item" tabindex="6">
|
||||||
|
<div class="flex--column">
|
||||||
|
<img class="vehicle-menu__icon" src="../../img/interaction/car-door.png"></img>
|
||||||
|
<span class="vehicle-menu__text">Türen<br>öffnen/schließen</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
|
<script src="../../js/interaction/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -10,76 +10,78 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="alerts" id='alertbox'>
|
<div name="inventory" class="inventory hidden">
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="sidebar">
|
<div class="alerts" id='alertbox'>
|
||||||
<ul>
|
</div>
|
||||||
<li name="side1" class="sidebaritem1" onclick="switchSite('backpackClass')">
|
|
||||||
<img class="sideicon1" src="img/backpack/backpack.svg"><p class="bartext">Rucksack</p>
|
|
||||||
</li>
|
|
||||||
<li name="side2" class="sidebaritem2" onclick="getVehicle()">
|
|
||||||
<img class="sideicon2" src="img/backpack/car.svg"><p class="bartext">Fahrzeug</p>
|
|
||||||
</li>
|
|
||||||
<!-- <li name="side3" class="sidebaritem3" onclick="switchSite('tradeClass')"><img class="sideicon4" src="img/backpack/trading.svg"><p class="bartext">Handel</p></li>
|
|
||||||
<li name="side4" class="sidebaritem4 hidden" onclick="switchSite('handelClass')"><img class="sideicon4" src="img/backpack/trading.svg"><p class="bartext">Handeln</p></li>
|
|
||||||
<li name="side5" class="sidebaritem5 hidden" onclick="getTrade()"><img class="sideicon4" src="img/backpack/save-money.svg"><p class="bartext">Anfrage</p></li> -->
|
|
||||||
<li name="side6" class="sidebaritem6 hidden" onclick="switchSite('backClass')">
|
|
||||||
<img class="sideicon4" src="img/backpack/back.svg"><p class="bartext">Zurück</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div name="backpackClass" class="backpack">
|
<div class="sidebar">
|
||||||
<div class="main">
|
<ul>
|
||||||
<div class="Betrag" style="display: none;">
|
<li name="side1" class="sidebaritem1" onclick="switchSite('backpackClass')">
|
||||||
<div class="BoxBlue">
|
<img class="sideicon1" src="img/backpack/backpack.svg"><p class="bartext">Rucksack</p>
|
||||||
<input type="text" id="tf_zahl" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
</li>
|
||||||
<button id="tf_cancle" onclick="">Schließen</button>
|
<li name="side2" class="sidebaritem2" onclick="getVehicle()">
|
||||||
<button id="tf_submitZahl" onclick="">Bestätigen</button>
|
<img class="sideicon2" src="img/backpack/car.svg"><p class="bartext">Fahrzeug</p>
|
||||||
<img class="blueIcon1" src="img/backpack/trash2.svg"></img>
|
</li>
|
||||||
|
<!-- <li name="side3" class="sidebaritem3" onclick="switchSite('tradeClass')"><img class="sideicon4" src="img/backpack/trading.svg"><p class="bartext">Handel</p></li>
|
||||||
|
<li name="side4" class="sidebaritem4 hidden" onclick="switchSite('handelClass')"><img class="sideicon4" src="img/backpack/trading.svg"><p class="bartext">Handeln</p></li>
|
||||||
|
<li name="side5" class="sidebaritem5 hidden" onclick="getTrade()"><img class="sideicon4" src="img/backpack/save-money.svg"><p class="bartext">Anfrage</p></li> -->
|
||||||
|
<li name="side6" class="sidebaritem6 hidden" onclick="switchSite('backClass')">
|
||||||
|
<img class="sideicon4" src="img/backpack/back.svg"><p class="bartext">Zurück</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div name="backpackClass" class="backpack">
|
||||||
|
<div class="main">
|
||||||
|
<div class="Betrag" style="display: none;">
|
||||||
|
<div class="BoxBlue">
|
||||||
|
<input type="text" id="tf_zahl" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
||||||
|
<button id="tf_cancle" onclick="">Schließen</button>
|
||||||
|
<button id="tf_submitZahl" onclick="">Bestätigen</button>
|
||||||
|
<img class="blueIcon1" src="img/backpack/trash2.svg"></img>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="Betrag2" style="display: none;">
|
||||||
<div class="Betrag2" style="display: none;">
|
<div class="BoxBlue">
|
||||||
<div class="BoxBlue">
|
<input type="text" id="tf_zahl2" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
||||||
<input type="text" id="tf_zahl2" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
|
||||||
|
|
||||||
<button id="tf_cancle2" onclick="">Schließen</button>
|
<button id="tf_cancle2" onclick="">Schließen</button>
|
||||||
<button id="tf_submitZahlToVehicle" onclick="">Zum Fahrzeug transferieren</button>
|
<button id="tf_submitZahlToVehicle" onclick="">Zum Fahrzeug transferieren</button>
|
||||||
<img class="blueIcon1" src="img/backpack/car.svg"></img>
|
<img class="blueIcon1" src="img/backpack/car.svg"></img>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="title">
|
||||||
|
<div class="titlecount"><span id="count1">0</span> / 40 Kilogramm</div>
|
||||||
|
<div class="titletext">Rucksack</div>
|
||||||
|
</div>
|
||||||
|
<div class="items">
|
||||||
|
<ul id="List0"></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="title">
|
|
||||||
<div class="titlecount"><span id="count1">0</span> / 40 Kilogramm</div>
|
|
||||||
<div class="titletext">Rucksack</div>
|
|
||||||
</div>
|
|
||||||
<div class="items">
|
|
||||||
<ul id="List0"></ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div name="vehClass" class="veh hidden">
|
<div name="vehClass" class="veh hidden">
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<div class="titlecount"><span id="count2">0</span> / <span id="trunkSize">0</span> Kilogramm</div>
|
<div class="titlecount"><span id="count2">0</span> / <span id="trunkSize">0</span> Kilogramm</div>
|
||||||
<div class="titletext">Fahrzeug</div>
|
<div class="titletext">Fahrzeug</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="Betrag4" style="display: none;">
|
<div class="Betrag4" style="display: none;">
|
||||||
<div class="BoxBlue">
|
<div class="BoxBlue">
|
||||||
|
|
||||||
<img class="blueIcon1" src="img/backpack/backpack.svg">
|
<img class="blueIcon1" src="img/backpack/backpack.svg">
|
||||||
<button id="tf_cancle4" onclick="">Schließen</button><input type="text" id="tf_zahl4" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
<button id="tf_cancle4" onclick="">Schließen</button><input type="text" id="tf_zahl4" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
||||||
<button id="tf_submitZahl4" onclick="">Zum Rucksack transferieren</button>
|
<button id="tf_submitZahl4" onclick="">Zum Rucksack transferieren</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="items">
|
||||||
|
<ul id="List4"></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="items">
|
|
||||||
<ul id="List4"></ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- <div name="handelClass" class="handel hidden">
|
<!-- <div name="handelClass" class="handel hidden">
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="Betrag3" style="display:none;">
|
<div class="Betrag3" style="display:none;">
|
||||||
<input type="text" id="tf_zahl3" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
<input type="text" id="tf_zahl3" name="number" placeholder="Betrag eingeben" min="1" step="1" oninput="this.value=this.value.replace(/[^0-9]/g,'');">
|
||||||
@@ -107,7 +109,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<div id="invisible" style="display: none"></div>
|
<div id="invisible" style="display: none"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script src="../../js/jquery-3.3.1.min.js"></script>
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@@ -176,6 +179,20 @@
|
|||||||
|
|
||||||
var vehInvItem = [];
|
var vehInvItem = [];
|
||||||
|
|
||||||
|
function showInventory() {
|
||||||
|
lastClass = "backpackClass";
|
||||||
|
|
||||||
|
document.getElementsByName("backpackClass")[0].classList.remove("hidden");
|
||||||
|
document.getElementsByName("vehClass")[0].classList.remove("hidden");
|
||||||
|
document.getElementsByName("vehClass")[0].classList.toggle("hidden");
|
||||||
|
//document.getElementsByName("handelClass")[0].style.visibility = "hidden";
|
||||||
|
document.getElementsByName("inventory")[0].classList.remove("hidden");
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeInventory() {
|
||||||
|
document.getElementsByName("inventory")[0].classList.toggle("hidden");
|
||||||
|
}
|
||||||
|
|
||||||
function setBackpackItems(jsonItemArr) {
|
function setBackpackItems(jsonItemArr) {
|
||||||
console.log(jsonItemArr);
|
console.log(jsonItemArr);
|
||||||
var parsedItemArr = JSON.parse(jsonItemArr)
|
var parsedItemArr = JSON.parse(jsonItemArr)
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/licenses/schein.css">
|
<link rel="stylesheet" href="../../css/licenses/schein.css">
|
||||||
</head>
|
</head>
|
||||||
<body scroll="no">
|
<body scroll="no">
|
||||||
<div id="schein">
|
<div id="schein">
|
||||||
|
|
||||||
<img src="package://assets/img/licenses/schein.png">
|
<img src="../../img/licenses/schein.png">
|
||||||
|
|
||||||
<div id="name">
|
<div id="name">
|
||||||
|
|
||||||
@@ -22,6 +22,6 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
|
||||||
<script src="package://assets/js/licenses/scheine.js"></script>
|
<script src="../../js/licenses/scheine.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -5,10 +5,10 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Login | Life of German</title>
|
<title>Login | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/login/styles.css">
|
<link rel="stylesheet" href="../../css/login/styles.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="light">
|
<body class="light">
|
||||||
@@ -43,7 +43,9 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<a href="https://icons8.com/icons/material-outlined" class="credits">Icons von icons8.com</a>
|
||||||
<script src="package://assets/js/login/application.js"></script>
|
|
||||||
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
|
<script src="../../js/login/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Registrierung | Life of German</title>
|
<title>Registrierung | Life of German</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="package://assets/css/login/styles.css">
|
<link rel="stylesheet" href="../../css/login/styles.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/font-awesome/css/fontawesome.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/fontawesome.min.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/font-awesome/css/regular.min.css">
|
<link rel="stylesheet" href="../../font/font-awesome/css/regular.min.css">
|
||||||
<link rel="stylesheet" href="package://assets/font/roboto-mono/include_500.css">
|
<link rel="stylesheet" href="../../font/roboto-mono/include_500.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="light">
|
<body class="light">
|
||||||
@@ -50,7 +50,9 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<a href="https://icons8.com/icons/material-outlined" class="credits">Icons von icons8.com</a>
|
||||||
<script src="package://assets/js/login/application.js"></script>
|
|
||||||
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
|
<script src="../../js/login/application.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -8,44 +8,47 @@
|
|||||||
<link rel="stylesheet" href="../../css/onlinelist/style.css">
|
<link rel="stylesheet" href="../../css/onlinelist/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="wrapper">
|
<div name="OnlineList" class="onlineList hidden">
|
||||||
<div class="heading">
|
<div class="wrapper">
|
||||||
<h1>Spielerliste</h1>
|
<div class="heading">
|
||||||
<h2>Spieler: <span id="player-count">0</span></h2>
|
<h1>Spielerliste</h1>
|
||||||
|
<h2>Spieler: <span id="player-count">0</span></h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="factions">
|
||||||
|
<ol class="inline stats">
|
||||||
|
<li><span class="group group--1">LSPD</span>: <span id="1">0</span></li>
|
||||||
|
<li><span class="group group--3">FIB</span>: <span id="3">0</span></li>
|
||||||
|
<li><span class="group group--2">LSED</span>: <span id="2">0</span></li>
|
||||||
|
|
||||||
|
<li><span class="group group--7">GSF</span>: <span id="7">0</span></li>
|
||||||
|
<li><span class="group group--8">FYB</span>: <span id="8">0</span></li>
|
||||||
|
<li><span class="group group--5">LSV</span>: <span id="5">0</span></li>
|
||||||
|
|
||||||
|
<li><span class="group group--9">WZN</span>: <span id="9">0</span></li>
|
||||||
|
<li><span class="group group--0">ZIVI</span>: <span id="0">0</span></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th data-sort="int">ID</th>
|
||||||
|
<th data-sort="string">Name</th>
|
||||||
|
<th data-sort="string">Fraktion</th>
|
||||||
|
<th data-sort="int">Ping (ms)</th>
|
||||||
|
<tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody id="players">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="factions">
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<ol class="inline stats">
|
<script src="../../js/onlinelist/stupidtable.min.js"></script>
|
||||||
<li><span class="group group--1">LSPD</span>: <span id="1">0</span></li>
|
<script src="../../js/onlinelist/script.js"></script>
|
||||||
<li><span class="group group--3">FIB</span>: <span id="3">0</span></li>
|
|
||||||
<li><span class="group group--2">LSED</span>: <span id="2">0</span></li>
|
|
||||||
|
|
||||||
<li><span class="group group--7">GSF</span>: <span id="7">0</span></li>
|
|
||||||
<li><span class="group group--8">FYB</span>: <span id="8">0</span></li>
|
|
||||||
<li><span class="group group--5">LSV</span>: <span id="5">0</span></li>
|
|
||||||
|
|
||||||
<li><span class="group group--9">WZN</span>: <span id="9">0</span></li>
|
|
||||||
<li><span class="group group--0">ZIVI</span>: <span id="0">0</span></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th data-sort="int">ID</th>
|
|
||||||
<th data-sort="string">Name</th>
|
|
||||||
<th data-sort="string">Fraktion</th>
|
|
||||||
<th data-sort="int">Ping (ms)</th>
|
|
||||||
<tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody id="players">
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="../../js/jquery-3.3.1.min.js"></script>
|
|
||||||
<script src="../../js/onlinelist/stupidtable.min.js"></script>
|
|
||||||
<script src="../../js/onlinelist/script.js"></script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link rel="stylesheet" href="package://assets/css/save/blip/style.css" />
|
<link rel="stylesheet" href="../../css/save/blip/style.css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script src="package://assets/js/save/blip/script.js" type="text/javascript"></script>
|
<script src="../../js/save/blip/script.js" type="text/javascript"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<script>
|
<script>
|
||||||
function playSound(soundname, typ, volume) {
|
function playSound(soundname, typ, volume) {
|
||||||
var sound = new Howl({
|
var sound = new Howl({
|
||||||
src: ['package://assets/sound/' + soundname + '.'+ typ],
|
src: ['../../sound/' + soundname + '.'+ typ],
|
||||||
loop: false,
|
loop: false,
|
||||||
volume: volume
|
volume: volume
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="stylesheet" href="package://assets/css/vehiclemenu/style.css">
|
<link rel="stylesheet" href="../../css/vehiclemenu/style.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<p>Schließen</p>
|
<p>Schließen</p>
|
||||||
<img class="m" src="package://assets/img/vehiclemenu/exit.png">
|
<img class="m" src="../../img/vehiclemenu/exit.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="2">
|
<li class="" tabindex="2">
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<!--<p>Geld Geben</p>
|
<!--<p>Geld Geben</p>
|
||||||
<img class="m4" src="package://assets/img/vehiclemenu/i9.png">-->
|
<img class="m4" src="../../img/vehiclemenu/i9.png">-->
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="3">
|
<li class="" tabindex="3">
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<p>Türen öffnen / schließen</p>
|
<p>Türen öffnen / schließen</p>
|
||||||
<img class="m6" src="package://assets/img/vehiclemenu/door.png">
|
<img class="m6" src="../../img/vehiclemenu/door.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="4">
|
<li class="" tabindex="4">
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<!--<p>Lizenzen zeigen</p>
|
<!--<p>Lizenzen zeigen</p>
|
||||||
<img class="m6" src="package://assets/img/vehiclemenu/i11.png">-->
|
<img class="m6" src="../../img/vehiclemenu/i11.png">-->
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="5">
|
<li class="" tabindex="5">
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<p>Auf -/ Abschließen</p>
|
<p>Auf -/ Abschließen</p>
|
||||||
<img class="m" src="package://assets/img/vehiclemenu/lock.png">
|
<img class="m" src="../../img/vehiclemenu/lock.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="6">
|
<li class="" tabindex="6">
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<p>Tanken</p>
|
<p>Tanken</p>
|
||||||
<img class="m2" src="package://assets/img/vehiclemenu/fill.png">
|
<img class="m2" src="../../img/vehiclemenu/fill.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="7">
|
<li class="" tabindex="7">
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<p>Fahrzeug parken</p>
|
<p>Fahrzeug parken</p>
|
||||||
<img class="m" src="package://assets/img/vehiclemenu/park.png">
|
<img class="m" src="../../img/vehiclemenu/park.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="8">
|
<li class="" tabindex="8">
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<p>Motor betätigen</p>
|
<p>Motor betätigen</p>
|
||||||
<img class="m" src="package://assets/img/vehiclemenu/power.png">
|
<img class="m" src="../../img/vehiclemenu/power.png">
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="" tabindex="9">
|
<li class="" tabindex="9">
|
||||||
@@ -99,12 +99,12 @@
|
|||||||
<div class="bg"></div>
|
<div class="bg"></div>
|
||||||
<div class="label">
|
<div class="label">
|
||||||
<!--<p>Durchsuchen</p>
|
<!--<p>Durchsuchen</p>
|
||||||
<img class="m5" src="package://assets/img/vehiclemenu/i14.png">-->
|
<img class="m5" src="../../img/vehiclemenu/i14.png">-->
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<!--<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>-->
|
<!--<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>-->
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<style>
|
<style>
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Pricedown';
|
font-family: 'Pricedown';
|
||||||
src: url('package://assets/font/Pricedown.ttf');
|
src: url('../../font/Pricedown.ttf');
|
||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
@@ -48,10 +48,10 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="wanteds" style="display: none;">
|
<div id="wanteds" style="display: none;">
|
||||||
<img src="package://assets/img/wanteds/star.svg" id="wanted-star"> <span id="wanted-count">10</span>
|
<img src="../../img/wanteds/star.svg" id="wanted-star"> <span id="wanted-count">10</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
|
<script src="../../js/jquery-3.3.1.min.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function setWanteds(count) {
|
function setWanteds(count) {
|
||||||
if (count === 0) {
|
if (count === 0) {
|
||||||
|
|||||||
BIN
ReallifeGamemode.Client/assets/img/interaction/belt.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/interaction/belt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 680 B |
BIN
ReallifeGamemode.Client/assets/img/interaction/car-door.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/interaction/car-door.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 490 B |
@@ -0,0 +1 @@
|
|||||||
|
https://icons8.com/icons/material-outlined
|
||||||
BIN
ReallifeGamemode.Client/assets/img/interaction/engine.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/interaction/engine.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 508 B |
BIN
ReallifeGamemode.Client/assets/img/interaction/gas-station.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/interaction/gas-station.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 446 B |
BIN
ReallifeGamemode.Client/assets/img/interaction/key.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/interaction/key.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 782 B |
BIN
ReallifeGamemode.Client/assets/img/interaction/parking.png
Normal file
BIN
ReallifeGamemode.Client/assets/img/interaction/parking.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 524 B |
@@ -1,7 +1,7 @@
|
|||||||
let chat =
|
let chat =
|
||||||
{
|
{
|
||||||
size: 0,
|
size: 0,
|
||||||
history_limit: 50,
|
history_limit: 150,
|
||||||
container: null,
|
container: null,
|
||||||
input: null,
|
input: null,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|||||||
8
ReallifeGamemode.Client/assets/js/interaction/main.js
Normal file
8
ReallifeGamemode.Client/assets/js/interaction/main.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
$(document).ready(function () {
|
||||||
|
$("li.vehicle-menu__item").click(function () {
|
||||||
|
var action = parseInt($(this).attr("tabindex"));
|
||||||
|
|
||||||
|
//console.log(action);
|
||||||
|
mp.trigger('doAction', action);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -29,7 +29,18 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function customizeNamePrompt(name) {
|
||||||
|
$('main h2').html("Willkommen auf Life of German!");
|
||||||
|
$('main p').html('Wir freuen uns, sehr dass Du auf unseren Server gestoßen bist!<br>Leider hast Du noch keinen eigenen Namen im RAGE:MP-Clienten festgelegt.<br><br>Bevor Du auf unserem Server starten kannst, musst Du das nachholen. Befolge hierzu die folgenden Schritte:<br><ol style="margin-top: .25em"><li>Spiel schließen (F1 drücken und das Fenster schließen)</li><li>Rockstar Games Launcher schließen</li><li>RAGE:MP-Client starten</li><li>Oben rechts auf das Symbol für Einstellungen klicken</li><li>Unter dem Punkt "Allgemein" > "Name wählen" kannst Du nun einen eigenen Namen festlegen</li><li>Jetzt kannst Du auf unserem Server spielen</li></ol>Solltest Du weitere Hilfe benötigen, kannst Du uns im TeamSpeak über die RAGE:MP Support-Anmeldung kontaktieren: <strong>ts.log.ac</strong>');
|
||||||
|
$('main form').remove();
|
||||||
|
}
|
||||||
|
|
||||||
function setPlayerName(name) {
|
function setPlayerName(name) {
|
||||||
|
if (name.toLowerCase().startsWith("weirdnewbie")) {
|
||||||
|
customizeNamePrompt();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$('span#name').html(name);
|
$('span#name').html(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,4 +52,4 @@ function showError(error) {
|
|||||||
|
|
||||||
function disableLightMode() {
|
function disableLightMode() {
|
||||||
$("body").removeClass("light");
|
$("body").removeClass("light");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
window.onbeforeunload = () => { window.scrollTo(0, 0); }
|
window.onbeforeunload = () => { window.scrollTo(0, 0); }
|
||||||
$(document).ready(function () { mp.trigger('CEF:PlayerList_Loaded'); });
|
|
||||||
|
|
||||||
setPlayerCount = (factionId, value) => {
|
setPlayerCount = (factionId, value) => {
|
||||||
if (factionId == -1) {
|
if (factionId == -1) {
|
||||||
@@ -9,6 +8,19 @@ setPlayerCount = (factionId, value) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showPlayerList() {
|
||||||
|
document.getElementsByName("OnlineList")[0].classList.remove("hidden");
|
||||||
|
mp.events.call("CEF:PlayerList_Loaded");
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
}
|
||||||
|
function closePlayerList() {
|
||||||
|
document.getElementsByName("OnlineList")[0].classList.toggle("hidden");
|
||||||
|
}
|
||||||
|
|
||||||
|
function clear_row() {
|
||||||
|
document.getElementById('players').innerHTML = '';
|
||||||
|
}
|
||||||
|
|
||||||
function getFactionNameByFactionId(factionId) {
|
function getFactionNameByFactionId(factionId) {
|
||||||
switch (parseInt(factionId)) {
|
switch (parseInt(factionId)) {
|
||||||
case 1: return "LSPD";
|
case 1: return "LSPD";
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
/* style.css für Tabliste */
|
|
||||||
.greyFont {
|
|
||||||
color: gray;
|
|
||||||
font-size: 14px;
|
|
||||||
width: 250px;
|
|
||||||
}
|
|
||||||
div {
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
overflow: hidden;
|
|
||||||
font-family: 'Roboto', sans-serif;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #222;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-family: 'Roboto', sans-serif;
|
|
||||||
font-weight: 700;
|
|
||||||
font-size: 18px;
|
|
||||||
color: white;
|
|
||||||
margin:5px;
|
|
||||||
padding: 5px;
|
|
||||||
border: 1px solid #808080;
|
|
||||||
width: 20.75em;
|
|
||||||
}
|
|
||||||
.TabWrapper {
|
|
||||||
background: rgba(0,0,0,0.6);
|
|
||||||
height: 600px;
|
|
||||||
width: 600px;
|
|
||||||
display: block;
|
|
||||||
padding: 5px;
|
|
||||||
position: absolute;
|
|
||||||
left: 32%;
|
|
||||||
top: 10%;
|
|
||||||
}
|
|
||||||
th, td {
|
|
||||||
color: white;
|
|
||||||
font-size: 18px;
|
|
||||||
width:10%;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.scroll {
|
|
||||||
height: 600px;
|
|
||||||
width: 600px;
|
|
||||||
font-size: 12px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
.force-overflow {
|
|
||||||
min-height: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#style1::-webkit-scrollbar {
|
|
||||||
width: 10px;
|
|
||||||
background-color: #F5F5F5;
|
|
||||||
}
|
|
||||||
|
|
||||||
#style1::-webkit-scrollbar-thumb {
|
|
||||||
background-color: #FF0040;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6f1478ada7534b954caaec991bb2a3a24767b978de82533965e0c21c3d02831f
|
|
||||||
size 8491
|
|
||||||
3
ReallifeGamemode.Client/dlcpacks/ballas/dlc.rpf
Normal file
3
ReallifeGamemode.Client/dlcpacks/ballas/dlc.rpf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:82a3c95809185d4b5c6cc532257ac53a65498fb4ca29eec574dc109a6103542c
|
||||||
|
size 42496
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6c1a845cfe60c75b75dd72add91c3bb7e6890c4df6cb10649be3740416b34d17
|
|
||||||
size 3076608
|
|
||||||
3
ReallifeGamemode.Client/dlcpacks/fibgarage/dlc.rpf
Normal file
3
ReallifeGamemode.Client/dlcpacks/fibgarage/dlc.rpf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d7c638247cd28299585423da1746b80f7262daa3e86ffafd9d3254b9a66ef8e2
|
||||||
|
size 38912
|
||||||
3
ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf
Normal file
3
ReallifeGamemode.Client/dlcpacks/heal/dlc.rpf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:47bcdf0ebccd66fce417009ed5e5652a05f1ee538d83b029366efcd30dd22fb4
|
||||||
|
size 38912
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:e350a25ff37d9d2d13a628558e96cb8fe91c5e5ad210d5f2697d1c981b7976f9
|
|
||||||
size 110010880
|
|
||||||
3
ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf
Normal file
3
ReallifeGamemode.Client/dlcpacks/vagos/dlc.rpf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b37467f388864d04bcde0d8a303c76b701816e90e7661e17d060aa4aff165143
|
||||||
|
size 118272
|
||||||
67
ReallifeGamemode.Client/global.d.ts
vendored
67
ReallifeGamemode.Client/global.d.ts
vendored
@@ -89,4 +89,71 @@ declare type Weapon = {
|
|||||||
declare type WeaponCategory = {
|
declare type WeaponCategory = {
|
||||||
Category: number;
|
Category: number;
|
||||||
Weapons: Weapon[];
|
Weapons: Weapon[];
|
||||||
|
}
|
||||||
|
|
||||||
|
declare type RentcarProperty = {
|
||||||
|
Name: string;
|
||||||
|
Price: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare type PlayerCharacterData = {
|
||||||
|
Gender: boolean;
|
||||||
|
Father: number;
|
||||||
|
Mother: number;
|
||||||
|
Similarity: number;
|
||||||
|
SkinSimilarity: number;
|
||||||
|
|
||||||
|
NoseWidth: number;
|
||||||
|
NoseBottomHeight: number;
|
||||||
|
NoseTipLength: number;
|
||||||
|
NoseBridgeDepth: number;
|
||||||
|
NoseTipHeight: number;
|
||||||
|
NoseBroken: number;
|
||||||
|
BrowHeight: number;
|
||||||
|
BrowDepth: number;
|
||||||
|
CheekboneHeight: number;
|
||||||
|
CheekboneWidth: number;
|
||||||
|
CheekDepth: number;
|
||||||
|
EyeSize: number;
|
||||||
|
LipThickness: number;
|
||||||
|
JawWidth: number;
|
||||||
|
JawShape: number;
|
||||||
|
ChinHeight: number;
|
||||||
|
ChinDepth: number;
|
||||||
|
ChinWidth: number;
|
||||||
|
ChinIndent: number;
|
||||||
|
NeckWidth: number;
|
||||||
|
|
||||||
|
Blemishes: number;
|
||||||
|
BlemishesOpacity: number;
|
||||||
|
FacialHair: number;
|
||||||
|
FacialHairOpacity: number;
|
||||||
|
Eyebrows: number;
|
||||||
|
EyebrowsOpacity: number;
|
||||||
|
Ageing: number;
|
||||||
|
AgeingOpacity: number;
|
||||||
|
Makeup: number;
|
||||||
|
MakeupOpacity: number;
|
||||||
|
Blush: number;
|
||||||
|
BlushOpacity: number;
|
||||||
|
Complexion: number;
|
||||||
|
ComplexionOpacity: number;
|
||||||
|
SunDamage: number;
|
||||||
|
SunDamageOpacity: number;
|
||||||
|
Lipstick: number;
|
||||||
|
LipstickOpacity: number;
|
||||||
|
Freckles: number;
|
||||||
|
FrecklesOpacity: number;
|
||||||
|
ChestHair: number;
|
||||||
|
ChestHairOpacity: number;
|
||||||
|
|
||||||
|
Hair: number;
|
||||||
|
HairColor: number;
|
||||||
|
HairHighlightColor: number;
|
||||||
|
EyebrowColor: number;
|
||||||
|
BeardColor: number;
|
||||||
|
EyeColor: number;
|
||||||
|
BlushColor: number;
|
||||||
|
LipstickColor: number;
|
||||||
|
ChestHairColor: number;
|
||||||
}
|
}
|
||||||
@@ -208,7 +208,7 @@ import PilotRouteList from './Jobs/PilotRouteSelect';
|
|||||||
PilotRouteList(globalData);
|
PilotRouteList(globalData);
|
||||||
|
|
||||||
import weapondamageUtil from './util/weapondamage';
|
import weapondamageUtil from './util/weapondamage';
|
||||||
weapondamageUtil();
|
weapondamageUtil(globalData);
|
||||||
|
|
||||||
import soundUtil from './util/sound';
|
import soundUtil from './util/sound';
|
||||||
soundUtil();
|
soundUtil();
|
||||||
@@ -271,9 +271,20 @@ ammunation(globalData);
|
|||||||
import handsup from './Player/handsup';
|
import handsup from './Player/handsup';
|
||||||
handsup();
|
handsup();
|
||||||
|
|
||||||
|
//import charSurgery from './CharCreator/surgery';
|
||||||
|
//charSurgery(globalData);
|
||||||
|
|
||||||
import spawnschutz from './Player/spawnschutz';
|
import spawnschutz from './Player/spawnschutz';
|
||||||
spawnschutz();
|
spawnschutz();
|
||||||
|
|
||||||
|
import bigmap from './Gui/bigmap';
|
||||||
|
bigmap();
|
||||||
|
|
||||||
|
import notification from './Gui/notification';
|
||||||
|
notification();
|
||||||
|
|
||||||
|
import rentCar from './util/rentcar';
|
||||||
|
rentCar(globalData);
|
||||||
|
|
||||||
require('./Gui/policedepartment');
|
require('./Gui/policedepartment');
|
||||||
require('./Gui/helptext');
|
require('./Gui/helptext');
|
||||||
@@ -287,4 +298,4 @@ interface VehicleData {
|
|||||||
|
|
||||||
export {
|
export {
|
||||||
VehicleData
|
VehicleData
|
||||||
}
|
}
|
||||||
@@ -12,51 +12,27 @@
|
|||||||
|
|
||||||
var loaded = false;
|
var loaded = false;
|
||||||
|
|
||||||
mp.events.add('inventoryShow', () => {
|
mp.events.add('loadInventoryCEF', () => {
|
||||||
if (invBrowser !== null) {
|
|
||||||
invBrowser.destroy()
|
|
||||||
invBrowser = null;
|
|
||||||
globalData.InMenu = false;
|
|
||||||
loaded = false;
|
|
||||||
mp.gui.cursor.show(false, false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!globalData.InMenu) {
|
|
||||||
globalData.InMenu = true;
|
|
||||||
mp.gui.cursor.show(true, true);
|
|
||||||
itemArr = [];
|
|
||||||
vehItemArr = [];
|
|
||||||
invBrowser = mp.browsers.new('package://assets/html/inventory/inventory.html');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var offer = 0;
|
|
||||||
|
|
||||||
var tradeItemID;
|
|
||||||
var tradeItemAmount;
|
|
||||||
var tradeItemName;
|
|
||||||
var tradeItemWeight;
|
|
||||||
|
|
||||||
mp.events.add('openInventory', () => {
|
|
||||||
globalData.InMenu = true;
|
|
||||||
mp.gui.cursor.show(true, true);
|
|
||||||
itemArr = [];
|
itemArr = [];
|
||||||
vehItemArr = [];
|
vehItemArr = [];
|
||||||
|
if (invBrowser !== null) {
|
||||||
|
invBrowser.destroy
|
||||||
|
}
|
||||||
invBrowser = mp.browsers.new('package://assets/html/inventory/inventory.html');
|
invBrowser = mp.browsers.new('package://assets/html/inventory/inventory.html');
|
||||||
});
|
});
|
||||||
mp.events.add('closeInventory', () => {
|
|
||||||
invBrowser.destroy()
|
|
||||||
invBrowser = null;
|
|
||||||
globalData.InMenu = false;
|
|
||||||
loaded = false;
|
|
||||||
mp.gui.cursor.show(false, false);
|
|
||||||
return;
|
|
||||||
});
|
|
||||||
|
|
||||||
mp.events.addDataHandler("tradeOffer", (entity, value) => {
|
mp.events.add('inventoryShow', () => {
|
||||||
if (entity.type === "player") {
|
if (!globalData.InMenu && !loaded) {
|
||||||
offer = parseInt(value);
|
globalData.InMenu = true;
|
||||||
if (invBrowser != null)
|
mp.gui.cursor.show(true, true);
|
||||||
invBrowser.execute(`changeTradeStatus('${JSON.stringify(offer)}')`);
|
loaded = true;
|
||||||
|
|
||||||
|
invBrowser.execute(`showInventory()`);
|
||||||
|
} else if (loaded) {
|
||||||
|
globalData.InMenu = false;
|
||||||
|
mp.gui.cursor.show(false, false);
|
||||||
|
loaded = false;
|
||||||
|
invBrowser.execute(`closeInventory()`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -81,17 +57,6 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("CEF:InventoryLoaded", () => {
|
|
||||||
invBrowser.execute(`setBackpackItems('${JSON.stringify(itemArr)}')`);
|
|
||||||
if (vehItemArr.length != 0) {
|
|
||||||
invBrowser.execute(`setVehicleItems('${JSON.stringify(vehItemArr)}')`);
|
|
||||||
}
|
|
||||||
|
|
||||||
//invBrowser.execute(`setTradeItems('${JSON.stringify(tradeItemArr)}')`);
|
|
||||||
//invBrowser.execute(`setOfferItems('${JSON.stringify(offerItemArr)}')`);
|
|
||||||
loaded = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
mp.events.add("CEF:callVehicleInventory", () => {
|
mp.events.add("CEF:callVehicleInventory", () => {
|
||||||
mp.events.callRemote("CLIENT:getVehicleInventory")
|
mp.events.callRemote("CLIENT:getVehicleInventory")
|
||||||
});
|
});
|
||||||
@@ -117,8 +82,8 @@
|
|||||||
mp.events.add("aproveUse", (amount, name) => {
|
mp.events.add("aproveUse", (amount, name) => {
|
||||||
if (invBrowser !== null) {
|
if (invBrowser !== null) {
|
||||||
mp.game.audio.playSoundFrontend(1, "LOCAL_PLYR_CASH_COUNTER_COMPLETE", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS", true);
|
mp.game.audio.playSoundFrontend(1, "LOCAL_PLYR_CASH_COUNTER_COMPLETE", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS", true);
|
||||||
invBrowser.execute(`alertGreen('${JSON.stringify(amount)}','${JSON.stringify(name)}')`);
|
//invBrowser.execute(`alertGreen('${JSON.stringify(amount)}','${JSON.stringify(name)}')`);
|
||||||
mp.events.call("closeInventory");
|
//mp.events.call("inventoryShow");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -171,16 +136,4 @@
|
|||||||
mp.events.add("CEF:UseItemInv", (itemId) => {
|
mp.events.add("CEF:UseItemInv", (itemId) => {
|
||||||
mp.events.callRemote('invUseItem', itemId);
|
mp.events.callRemote('invUseItem', itemId);
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("CEF:tradeItem", (money, User, tradeItems, tradeItemAmount) => {
|
|
||||||
if (invBrowser !== null) {
|
|
||||||
try {
|
|
||||||
invBrowser.destroy()
|
|
||||||
invBrowser = null;
|
|
||||||
mp.events.callRemote('tradeItem', 0, User, tradeItems, tradeItemAmount);
|
|
||||||
} finally {
|
|
||||||
mp.gui.cursor.show(false, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
export default function gangwarHandle(globalData: IGlobalData) {
|
export default function gangwarHandle(globalData: IGlobalData) {
|
||||||
|
var gangwarKillCounter = 0;
|
||||||
|
|
||||||
function inside(point, vs) {
|
function inside(point, vs) {
|
||||||
let x = point[0],
|
let x = point[0],
|
||||||
y = point[1];
|
y = point[1];
|
||||||
@@ -625,4 +627,12 @@
|
|||||||
//turf.render();
|
//turf.render();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mp.events.add("gangWarKillNotification", (deathPlayername) => {
|
||||||
|
mp.events.call("BN_Show", "~y~GANGWAR~w~: Du hast ~r~" + deathPlayername + " ~w~getötet. Kills: " + ++gangwarKillCounter);
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("resetKillcounter", () => {
|
||||||
|
gangwarKillCounter = 0;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ export default function animationSync() {
|
|||||||
mp.events.addDataHandler("AnimationData", (entity, string) => {
|
mp.events.addDataHandler("AnimationData", (entity, string) => {
|
||||||
entity.clearTasksImmediately();
|
entity.clearTasksImmediately();
|
||||||
if (animationBreakTimer) {
|
if (animationBreakTimer) {
|
||||||
clearInterval(animationBreakTimer);
|
clearTimeout(animationBreakTimer);
|
||||||
animationBreakTimer = null;
|
animationBreakTimer = null;
|
||||||
}
|
}
|
||||||
if (string == null) {
|
if (string == null) {
|
||||||
@@ -109,13 +109,12 @@ export default function animationSync() {
|
|||||||
|
|
||||||
if (mp.players.local == entity) {
|
if (mp.players.local == entity) {
|
||||||
if (!endless) {
|
if (!endless) {
|
||||||
animationBreakTimer = setInterval(() => breakAnimation(name), 120000);
|
animationBreakTimer = setTimeout(() => breakAnimation(name), 120000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!loop) {
|
if (!loop) {
|
||||||
let a = setInterval(function () {
|
let a = setTimeout(function () {
|
||||||
clearInterval(a);
|
clearTimeout(a);
|
||||||
mp.game.wait(500);
|
|
||||||
mp.events.callRemote("CLIENT:ClearAnimationData", true);
|
mp.events.callRemote("CLIENT:ClearAnimationData", true);
|
||||||
}, duration);
|
}, duration);
|
||||||
}
|
}
|
||||||
@@ -126,7 +125,7 @@ export default function animationSync() {
|
|||||||
let { animName, msg } = animationBreakMessage.find(c => c.animName == name)
|
let { animName, msg } = animationBreakMessage.find(c => c.animName == name)
|
||||||
|
|
||||||
if (msg)
|
if (msg)
|
||||||
mp.events.call("renderTextOnScreen", msg);
|
mp.events.call("BN_Show", msg);
|
||||||
|
|
||||||
clearInterval(animationBreakTimer);
|
clearInterval(animationBreakTimer);
|
||||||
animationBreakTimer = null;
|
animationBreakTimer = null;
|
||||||
|
|||||||
104
ReallifeGamemode.Client/util/rentcar.ts
Normal file
104
ReallifeGamemode.Client/util/rentcar.ts
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
import * as NativeUI from '../libs/NativeUI';
|
||||||
|
|
||||||
|
const Menu = NativeUI.Menu;
|
||||||
|
const UIMenuItem = NativeUI.UIMenuItem;
|
||||||
|
const UIMenuListItem = NativeUI.UIMenuListItem;
|
||||||
|
const Point = NativeUI.Point;
|
||||||
|
const ItemsCollection = NativeUI.ItemsCollection;
|
||||||
|
const Color = NativeUI.Color;
|
||||||
|
|
||||||
|
|
||||||
|
let screenRes = mp.game.graphics.getScreenResolution(0, 0);
|
||||||
|
|
||||||
|
let sendItem = new UIMenuItem("Mieten", "Fahrzeug Mieten");
|
||||||
|
sendItem.BackColor = new Color(13, 71, 161);
|
||||||
|
sendItem.HighlightedBackColor = new Color(25, 118, 210);
|
||||||
|
|
||||||
|
let cancelItem = new UIMenuItem("Abbrechen", "");
|
||||||
|
cancelItem.BackColor = new Color(213, 0, 0);
|
||||||
|
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||||
|
|
||||||
|
|
||||||
|
export default function rentCar(globalData: IGlobalData) {
|
||||||
|
|
||||||
|
var rentcarMenu: NativeUI.Menu;
|
||||||
|
var vehiclesToRent: RentcarProperty[] = [];
|
||||||
|
var vehicleNames: string[] = [];
|
||||||
|
var vehiclePrices: number[] = [];
|
||||||
|
var selectedIndex: number;
|
||||||
|
|
||||||
|
var payTimer;
|
||||||
|
var totalTime: number = 0;
|
||||||
|
var totalBill: number = 0;
|
||||||
|
|
||||||
|
mp.events.add('showRentcarMenu', (vehiclestring, rentcarLocation) => {
|
||||||
|
if (globalData.InMenu) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
globalData.InMenu = true;
|
||||||
|
|
||||||
|
vehiclesToRent = JSON.parse(vehiclestring);
|
||||||
|
|
||||||
|
vehicleNames = [];
|
||||||
|
vehiclePrices = [];
|
||||||
|
for (let entry of vehiclesToRent) {
|
||||||
|
vehicleNames.push(entry.Name);
|
||||||
|
vehiclePrices.push(entry.Price);
|
||||||
|
}
|
||||||
|
|
||||||
|
rentcarMenu = new Menu("Fahrzeugverleih", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
|
rentcarMenu.AddItem(new UIMenuListItem("Fahrzeug", "$" + vehiclePrices[0] + " alle 3 Minuten", new ItemsCollection(vehicleNames)));
|
||||||
|
|
||||||
|
rentcarMenu.AddItem(sendItem);
|
||||||
|
rentcarMenu.AddItem(cancelItem);
|
||||||
|
rentcarMenu.Visible = true;
|
||||||
|
//outeText = "Route 1";
|
||||||
|
|
||||||
|
selectedIndex = 0;
|
||||||
|
|
||||||
|
rentcarMenu.ListChange.on((item: NativeUI.UIMenuListItem, index) => {
|
||||||
|
switch (item.Text) {
|
||||||
|
case "Fahrzeug":
|
||||||
|
item.Description = "$" + vehiclePrices[index] + " alle 3 Minuten";
|
||||||
|
selectedIndex = index;
|
||||||
|
//item.Description = item.SelectedValue;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rentcarMenu.ItemSelect.on((item) => {
|
||||||
|
if (item.Text === "Mieten") {
|
||||||
|
mp.events.callRemote("SERVER:rentcarBooked", vehicleNames[selectedIndex], vehiclePrices[selectedIndex], rentcarLocation);
|
||||||
|
rentcarMenu.Close();
|
||||||
|
globalData.InMenu = false;
|
||||||
|
} else if (item.Text === "Abbrechen") {
|
||||||
|
rentcarMenu.Close();
|
||||||
|
globalData.InMenu = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rentcarMenu.MenuClose.on(() => {
|
||||||
|
globalData.InMenu = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add('triggerRentcarTimer', (interval, pricePerInterval) => {
|
||||||
|
totalBill = pricePerInterval;
|
||||||
|
mp.events.callRemote("SERVER:updateRentCarBill", totalBill, totalTime);
|
||||||
|
clearInterval(payTimer);
|
||||||
|
|
||||||
|
payTimer = setInterval(() => {
|
||||||
|
totalTime += interval;
|
||||||
|
totalBill += pricePerInterval;
|
||||||
|
|
||||||
|
mp.events.callRemote("SERVER:updateRentCarBill", totalBill, totalTime);
|
||||||
|
}, interval * 1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add('abortRentcarTimer', () => {
|
||||||
|
clearInterval(payTimer);
|
||||||
|
totalBill = 0;
|
||||||
|
totalTime = 0;
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,5 +1,65 @@
|
|||||||
export default function waypointUtil() {
|
export default function waypointUtil() {
|
||||||
|
|
||||||
|
let x_saved: number;
|
||||||
|
let y_saved: number;
|
||||||
|
let z_saved: number;
|
||||||
|
let waypointSet: boolean;
|
||||||
|
|
||||||
mp.events.add("SERVER:Util_setWaypoint", (x, y) => {
|
mp.events.add("SERVER:Util_setWaypoint", (x, y) => {
|
||||||
mp.game.ui.setNewWaypoint(x, y);
|
mp.game.ui.setNewWaypoint(x, y);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mp.events.add("playerCreateWaypoint", (position) => {
|
||||||
|
x_saved = position.x;
|
||||||
|
y_saved = position.y;
|
||||||
|
z_saved = position.z;
|
||||||
|
waypointSet = true;
|
||||||
|
mp.events.callRemote("SERVER:waypointToDriver", position.x, position.y);
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("playerRemoveWaypoint", () => {
|
||||||
|
waypointSet = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
var timer;
|
||||||
|
var val: number;
|
||||||
|
var timeoutConter: number;
|
||||||
|
|
||||||
|
mp.events.add("tpToWaypoint", () => {
|
||||||
|
if (!waypointSet) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
val = 1000;
|
||||||
|
timeoutConter = 0;
|
||||||
|
|
||||||
|
let getGroundZ = mp.game.gameplay.getGroundZFor3dCoord(x_saved, y_saved, z_saved, 0, false);
|
||||||
|
|
||||||
|
if (getGroundZ == 0) {
|
||||||
|
mp.players.local.position = new mp.Vector3(x_saved, y_saved, val);
|
||||||
|
mp.players.local.freezePosition(true);
|
||||||
|
|
||||||
|
timer = setInterval(function () {
|
||||||
|
getGroundZ = mp.game.gameplay.getGroundZFor3dCoord(x_saved, y_saved, val, 0, false);
|
||||||
|
mp.players.local.freezePosition(false);
|
||||||
|
mp.players.local.position = new mp.Vector3(x_saved, y_saved, val);
|
||||||
|
|
||||||
|
if (getGroundZ == 0) {
|
||||||
|
timeoutConter++;
|
||||||
|
val -= 100;
|
||||||
|
mp.players.local.freezePosition(true);
|
||||||
|
} else {
|
||||||
|
mp.players.local.position = new mp.Vector3(x_saved, y_saved, getGroundZ);
|
||||||
|
clearInterval(timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeoutConter >= 20) {
|
||||||
|
mp.players.local.freezePosition(false);
|
||||||
|
clearInterval(timer);
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
} else {
|
||||||
|
mp.players.local.position = new mp.Vector3(x_saved, y_saved, getGroundZ);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ function isTargetInPolygon(pos): boolean {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function weapondamageUtil() {
|
export default function weapondamageUtil(globalData: IGlobalData) {
|
||||||
let blockInput = false;
|
let blockInput = false;
|
||||||
|
|
||||||
mp.players.local.setSuffersCriticalHits(false);
|
mp.players.local.setSuffersCriticalHits(false);
|
||||||
@@ -32,6 +32,10 @@ export default function weapondamageUtil() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (globalData.IsAfk == true && getWantedCount() === 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (spawnschutzEnabled && getWantedCount() === 0) {
|
if (spawnschutzEnabled && getWantedCount() === 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,4 +7,6 @@
|
|||||||
$root = $PSScriptRoot
|
$root = $PSScriptRoot
|
||||||
|
|
||||||
dotnet tool update dotnet-ef --global
|
dotnet tool update dotnet-ef --global
|
||||||
dotnet ef migrations add $MigrationName --project "$root\ReallifeGamemode.Database.csproj" --startup-project "$root\..\ReallifeGamemode.Server\ReallifeGamemode.Server.csproj" --configuration "Database"
|
dotnet ef migrations add $MigrationName --project "$root\ReallifeGamemode.Database.csproj" --startup-project "$root\..\ReallifeGamemode.Server\ReallifeGamemode.Server.csproj" --configuration "Database"
|
||||||
|
|
||||||
|
pause
|
||||||
@@ -22,6 +22,7 @@ namespace ReallifeGamemode.Database.Entities
|
|||||||
public float Y { get; set; }
|
public float Y { get; set; }
|
||||||
public float Z { get; set; }
|
public float Z { get; set; }
|
||||||
public float Radius { get; set; }
|
public float Radius { get; set; }
|
||||||
|
public bool AlwaysOpen { get; set; }
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public Vector3 Position => new Vector3(X, Y, Z);
|
public Vector3 Position => new Vector3(X, Y, Z);
|
||||||
|
|||||||
@@ -127,6 +127,8 @@ namespace ReallifeGamemode.Database.Entities
|
|||||||
|
|
||||||
public int warn { get; set; } = 0;
|
public int warn { get; set; } = 0;
|
||||||
|
|
||||||
|
public bool FreeSurgery { get; set; } = true;
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public Player Player
|
public Player Player
|
||||||
{
|
{
|
||||||
|
|||||||
2176
ReallifeGamemode.Database/Migrations/20210420165544_Surgery.Designer.cs
generated
Normal file
2176
ReallifeGamemode.Database/Migrations/20210420165544_Surgery.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
110
ReallifeGamemode.Database/Migrations/20210420165544_Surgery.cs
Normal file
110
ReallifeGamemode.Database/Migrations/20210420165544_Surgery.cs
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace ReallifeGamemode.Database.Migrations
|
||||||
|
{
|
||||||
|
public partial class Surgery : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_ChatLogs_Users_UserId",
|
||||||
|
table: "ChatLogs");
|
||||||
|
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_ChatLogs_Factions_FactionId",
|
||||||
|
table: "ChatLogs");
|
||||||
|
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_ChatLogs_Groups_GroupId",
|
||||||
|
table: "ChatLogs");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<bool>(
|
||||||
|
name: "FreeSurgery",
|
||||||
|
table: "Users",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: false);
|
||||||
|
|
||||||
|
migrationBuilder.AlterColumn<int>(
|
||||||
|
name: "UserId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
nullable: false,
|
||||||
|
oldClrType: typeof(int),
|
||||||
|
oldType: "int",
|
||||||
|
oldNullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_ChatLogs_Users_UserId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "Users",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_ChatLogs_Factions_FactionId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
column: "FactionId",
|
||||||
|
principalTable: "Factions",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_ChatLogs_Groups_GroupId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
column: "GroupId",
|
||||||
|
principalTable: "Groups",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_ChatLogs_Users_UserId",
|
||||||
|
table: "ChatLogs");
|
||||||
|
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_ChatLogs_Factions_FactionId",
|
||||||
|
table: "ChatLogs");
|
||||||
|
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_ChatLogs_Groups_GroupId",
|
||||||
|
table: "ChatLogs");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "FreeSurgery",
|
||||||
|
table: "Users");
|
||||||
|
|
||||||
|
migrationBuilder.AlterColumn<int>(
|
||||||
|
name: "UserId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
type: "int",
|
||||||
|
nullable: true,
|
||||||
|
oldClrType: typeof(int));
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_ChatLogs_Users_UserId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
column: "UserId",
|
||||||
|
principalTable: "Users",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_ChatLogs_Factions_FactionId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
column: "FactionId",
|
||||||
|
principalTable: "Factions",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_ChatLogs_Groups_GroupId",
|
||||||
|
table: "ChatLogs",
|
||||||
|
column: "GroupId",
|
||||||
|
principalTable: "Groups",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2180
ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs
generated
Normal file
2180
ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace ReallifeGamemode.Database.Migrations
|
||||||
|
{
|
||||||
|
public partial class AddDoorAlwaysOpenFlag : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<bool>(
|
||||||
|
name: "AlwaysOpen",
|
||||||
|
table: "Doors",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "AlwaysOpen",
|
||||||
|
table: "Doors");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -398,6 +398,9 @@ namespace ReallifeGamemode.Database.Migrations
|
|||||||
.ValueGeneratedOnAdd()
|
.ValueGeneratedOnAdd()
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("AlwaysOpen")
|
||||||
|
.HasColumnType("tinyint(1)");
|
||||||
|
|
||||||
b.Property<string>("Category")
|
b.Property<string>("Category")
|
||||||
.HasColumnType("longtext CHARACTER SET utf8mb4");
|
.HasColumnType("longtext CHARACTER SET utf8mb4");
|
||||||
|
|
||||||
@@ -1450,6 +1453,9 @@ namespace ReallifeGamemode.Database.Migrations
|
|||||||
b.Property<bool>("FlyingLicensePlane")
|
b.Property<bool>("FlyingLicensePlane")
|
||||||
.HasColumnType("tinyint(1)");
|
.HasColumnType("tinyint(1)");
|
||||||
|
|
||||||
|
b.Property<bool>("FreeSurgery")
|
||||||
|
.HasColumnType("tinyint(1)");
|
||||||
|
|
||||||
b.Property<int?>("GroupId")
|
b.Property<int?>("GroupId")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
$root = $PSScriptRoot
|
$root = $PSScriptRoot
|
||||||
|
|
||||||
dotnet tool update dotnet-ef --global
|
dotnet tool update dotnet-ef --global
|
||||||
dotnet ef database update --project "$root\ReallifeGamemode.Database.csproj" --startup-project "$root\..\ReallifeGamemode.Server\ReallifeGamemode.Server.csproj" --configuration "Database"
|
dotnet ef database update --project "$root\ReallifeGamemode.Database.csproj" --startup-project "$root\..\ReallifeGamemode.Server\ReallifeGamemode.Server.csproj" --configuration "Database"
|
||||||
|
pause
|
||||||
@@ -132,6 +132,11 @@ namespace ReallifeGamemode.Server.Bank
|
|||||||
|
|
||||||
using (var dbContext = new DatabaseContext())
|
using (var dbContext = new DatabaseContext())
|
||||||
{
|
{
|
||||||
|
if (player.GetUser().PlayedMinutes < 180)
|
||||||
|
{
|
||||||
|
player.SendNotification("~r~Du kannst Geld erst ab 3 Spielstunden vergeben");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (player.GetUser(dbContext) == target.GetUser(dbContext))
|
if (player.GetUser(dbContext) == target.GetUser(dbContext))
|
||||||
{
|
{
|
||||||
player.SendNotification($"~r~Du kannst dir selber kein Geld überweisen.");
|
player.SendNotification($"~r~Du kannst dir selber kein Geld überweisen.");
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
|
|
||||||
#region Support
|
#region Support
|
||||||
|
|
||||||
[Command("tog", "~m~Benutzung: ~s~/tog [Typ = ~g~IP~s~, ~g~deathlogs~s~, ~g~LC~s~, ~g~Connect~s~, ~g~D~s~, ~g~GA~s~, ~g~All~s~]", GreedyArg = true)]
|
[Command("tog", "~m~Benutzung: ~s~/tog [Typ = ~g~ip~s~, ~g~deathlogs~s~, ~g~lc~s~, ~g~connect~s~, ~g~d~s~, ~g~ga~s~, ~g~all~s~]", GreedyArg = true)]
|
||||||
public void CmdAdminTog(Player player, string typ, string option1 = null, string option2 = null)
|
public void CmdAdminTog(Player player, string typ, string option1 = null, string option2 = null)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||||
@@ -187,12 +187,12 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
if (player.HasData("togip"))
|
if (player.HasData("togip"))
|
||||||
{
|
{
|
||||||
player.ResetData("togip");
|
player.ResetData("togip");
|
||||||
player.SendNotification("~g~[Info]~w~ Ip´s werden nun ausgeblendet.");
|
player.SendNotification("Die IP-Adressen sind nun ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SetData("togip", true);
|
player.SetData("togip", true);
|
||||||
player.SendNotification("~g~[Info]~w~ Ip´s werden nun angezeigt.");
|
player.SendNotification("Die IP-Adressen sind nun ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -200,12 +200,12 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
if (player.HasData("togdeath"))
|
if (player.HasData("togdeath"))
|
||||||
{
|
{
|
||||||
player.ResetData("togdeath");
|
player.ResetData("togdeath");
|
||||||
player.SendNotification("~g~[Info]~w~ Deathlogs werden nun ausgeblendet.");
|
player.SendNotification("Du hast die Todesbenachrichtigungen ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SetData("togdeath", true);
|
player.SetData("togdeath", true);
|
||||||
player.SendNotification("~g~[Info]~w~ Deathlogs werden nun angezeigt.");
|
player.SendNotification("Du hast die Todesbenachrichtigungen ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -213,12 +213,12 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
if (player.HasData("toglc"))
|
if (player.HasData("toglc"))
|
||||||
{
|
{
|
||||||
player.ResetData("toglc");
|
player.ResetData("toglc");
|
||||||
player.SendNotification("~g~[Info]~w~ Leaderchat wird nun ausgeblendet.");
|
player.SendNotification("Du hast den /lc-Chat ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SetData("toglc", true);
|
player.SetData("toglc", true);
|
||||||
player.SendNotification("~g~[Info]~w~ Leaderchat wird nun angezeigt.");
|
player.SendNotification("Du hast den /lc-Chat ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -226,40 +226,40 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
if (player.HasData("togconnect"))
|
if (player.HasData("togconnect"))
|
||||||
{
|
{
|
||||||
player.ResetData("togconnect");
|
player.ResetData("togconnect");
|
||||||
player.SendNotification("~g~[Info]~w~ Connect-Logs werden nun ausgeblendet.");
|
player.SendNotification("Du hast die Connect-Nachrichten ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SetData("togconnect", true);
|
player.SetData("togconnect", true);
|
||||||
player.SendNotification("~g~[Info]~w~ Connect-Logs werden nun angezeigt.");
|
player.SendNotification("Du hast die Connect-Nachrichten ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "d":
|
case "d":
|
||||||
if (player.HasData("togd"))
|
if (player.HasData("togd"))
|
||||||
{
|
{
|
||||||
player.ResetData("togd");
|
player.ResetData("togd");
|
||||||
player.SendNotification("~g~[Info]~w~ D-Chat wird nun ausgeblendet.");
|
player.SendNotification("Du hast den /d-Chat ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SetData("togd", true);
|
player.SetData("togd", true);
|
||||||
player.SendNotification("~g~[Info]~w~ D-Chat wird nun angezeigt.");
|
player.SendNotification("Du hast den /d-Chat ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "ga":
|
case "ga":
|
||||||
if (player.HasData("togga"))
|
if (player.HasData("togga"))
|
||||||
{
|
{
|
||||||
player.ResetData("togga");
|
player.ResetData("togga");
|
||||||
player.SendNotification("~g~[Info]~w~ GA-Chat wird nun ausgeblendet.");
|
player.SendNotification("Du hast den /ga-Chat ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.SetData("togga", true);
|
player.SetData("togga", true);
|
||||||
player.SendNotification("~g~[Info]~w~ GA-Chat wird nun angezeigt.");
|
player.SendNotification("Du hast den /ga-Chat ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "all":
|
case "all":
|
||||||
if(!player.HasData("togall"))
|
if (!player.HasData("togall"))
|
||||||
{
|
{
|
||||||
player.SetData("togip", true);
|
player.SetData("togip", true);
|
||||||
player.SetData("togdeath", true);
|
player.SetData("togdeath", true);
|
||||||
@@ -270,7 +270,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
player.SetData("togga", true);
|
player.SetData("togga", true);
|
||||||
player.SetData("togall", true);
|
player.SetData("togall", true);
|
||||||
|
|
||||||
player.SendNotification("~g~[Info]~s~ Alle Logs wurden eingeschaltet");
|
player.SendNotification("Du hast alle Benachrichtigungen ~g~aktiviert~s~.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -283,7 +283,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
player.ResetData("togga");
|
player.ResetData("togga");
|
||||||
player.ResetData("togall");
|
player.ResetData("togall");
|
||||||
|
|
||||||
player.SendNotification("~g~[Info]~s~ Alle Logs wurden ausgeschaltet");
|
player.SendNotification("Du hast alle Benachrichtigungen ~r~deaktiviert~s~.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -314,6 +314,12 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
player.TriggerEvent("toggleTSupportMode", false);
|
player.TriggerEvent("toggleTSupportMode", false);
|
||||||
player.SetData("SAdminduty", false);
|
player.SetData("SAdminduty", false);
|
||||||
ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support");
|
ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support");
|
||||||
|
|
||||||
|
if (user.GetData<bool>("adminUnshow") == true)
|
||||||
|
{
|
||||||
|
user.SetData("adminUnshow", false);
|
||||||
|
player.TriggerEvent("toggleAdminUnshowMode", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
user.SetBlipAndNametagColor();
|
user.SetBlipAndNametagColor();
|
||||||
}
|
}
|
||||||
@@ -351,7 +357,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
[Command("o", "~m~Benutzung: ~s~/o [Nachricht]", GreedyArg = true)]
|
[Command("o", "~m~Benutzung: ~s~/o [Nachricht]", GreedyArg = true)]
|
||||||
public void CmdAdminO(Player player, string message)
|
public void CmdAdminO(Player player, string message)
|
||||||
{
|
{
|
||||||
if(!player.IsLoggedIn())
|
if (!player.IsLoggedIn())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -470,11 +476,11 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
msg = Regex.Replace(msg, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
msg = Regex.Replace(msg, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
||||||
|
|
||||||
ChatService.SendMessage(player, "~y~PM an " + target.Name + ": " + msg + " ");
|
ChatService.SendMessage(player, "~y~PM an " + target.Name + ": " + msg + " ");
|
||||||
string Message = "~y~PM von " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + msg + "";
|
string Message = "~y~PM von " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + msg;
|
||||||
ChatService.SendMessage(target, Message);
|
ChatService.SendMessage(target, Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("skick", "~m~Benutzung: ~s~/skick [Player] [Grund]", GreedyArg = true)]
|
[Command("skick", "~m~Benutzung: ~s~/skick [Spieler] [Grund]", GreedyArg = true)]
|
||||||
public void CmdAdminSKick(Player player, string targetname, string reason)
|
public void CmdAdminSKick(Player player, string targetname, string reason)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||||
@@ -497,14 +503,14 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
|
|
||||||
string adminPlayername = NAPI.Player.GetPlayerName(player);
|
string adminPlayername = NAPI.Player.GetPlayerName(player);
|
||||||
ChatService.SendMessage(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason);
|
ChatService.SendMessage(target, "~r~INFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt (Grund: " + reason + ").");
|
||||||
|
|
||||||
NAPI.Task.Run(() =>
|
NAPI.Task.Run(() =>
|
||||||
{
|
{
|
||||||
target.Kick();
|
target.Kick();
|
||||||
}, 2500);
|
}, 2500);
|
||||||
|
|
||||||
ChatService.BroadcastAdmin("~y~SKICK: ~w~" + target.Name + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason, AdminLevel.SUPPORTER);
|
ChatService.BroadcastAdmin("~y~SKICK: ~w~" + target.Name + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt (Grund: " + reason + ").", AdminLevel.SUPPORTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("clearchat", "~m~Benutzung: ~s~/clearchat")]
|
[Command("clearchat", "~m~Benutzung: ~s~/clearchat")]
|
||||||
@@ -544,6 +550,40 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
#endregion Support
|
#endregion Support
|
||||||
|
|
||||||
#region Admin
|
#region Admin
|
||||||
|
[Command("towaypoint", "~m~Benutzung: ~s~/towaypoint", Alias = "tow")]
|
||||||
|
public void CmdAdminToWaypoint(Player player)
|
||||||
|
{
|
||||||
|
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||||
|
{
|
||||||
|
ChatService.NotAuthorized(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.TriggerEvent("tpToWaypoint");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]", Alias = "rmss")]
|
||||||
|
public void CmdAdminRmss(Player player, String targetname)
|
||||||
|
{
|
||||||
|
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||||
|
{
|
||||||
|
ChatService.NotAuthorized(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player target = PlayerService.GetPlayerByNameOrId(targetname);
|
||||||
|
|
||||||
|
if (target == null || !target.IsLoggedIn())
|
||||||
|
{
|
||||||
|
ChatService.PlayerNotFound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
target.SendChatMessage(player.Name + " hat deinen Spawnschutz entfernt");
|
||||||
|
player.SendChatMessage("Du hast den Spawnschutz von " + target.Name + " entfernt");
|
||||||
|
target.TriggerEvent("abortSpawnschutz");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
[Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]")]
|
[Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]")]
|
||||||
public void CmdAdminRmss(Player player, String targetname)
|
public void CmdAdminRmss(Player player, String targetname)
|
||||||
@@ -838,14 +878,14 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
|
|
||||||
string adminPlayername = NAPI.Player.GetPlayerName(player);
|
string adminPlayername = NAPI.Player.GetPlayerName(player);
|
||||||
|
|
||||||
ChatService.SendMessage(target, "~r~KICKINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt: " + reason);
|
ChatService.SendMessage(target, "~r~INFO: ~w~Du wurdest von " + adminPlayername + " vom Server gekickt (Grund: " + reason + ").");
|
||||||
|
|
||||||
NAPI.Task.Run(() =>
|
NAPI.Task.Run(() =>
|
||||||
{
|
{
|
||||||
target.Kick();
|
target.Kick();
|
||||||
}, 2500);
|
}, 2500);
|
||||||
|
|
||||||
ChatService.Broadcast("~y~INFO: ~w~" + target.Name + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt: " + reason);
|
ChatService.Broadcast("!{#FF4040}[KICK] ~w~" + target.Name + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " gekickt (Grund: " + reason + ").");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("warn", "~m~Benutzung: ~s~/warn [Player] [Grund]", GreedyArg = true)]
|
[Command("warn", "~m~Benutzung: ~s~/warn [Player] [Grund]", GreedyArg = true)]
|
||||||
@@ -875,13 +915,13 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
if (userwarn.warn >= 3)
|
if (userwarn.warn >= 3)
|
||||||
{
|
{
|
||||||
ChatService.BroadcastAdmin("~y~INFO: Das war der 3. Warn - bitte bannen!", AdminLevel.ADMIN);
|
ChatService.BroadcastAdmin("~y~INFO: ~w~" + targetPlayername + " hat jetzt drei Warns – bitte bannen!", AdminLevel.ADMIN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatService.SendMessage(target, "~r~WARNINFO: ~w~Du wurdest von " + adminPlayername + " verwarnt: " + reason);
|
ChatService.SendMessage(target, "!{#FF4040}[WARN] ~w~Du wurdest von " + adminPlayername + " verwarnt (Grund: " + reason + ").");
|
||||||
|
|
||||||
ChatService.BroadcastAdmin("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " verwarnt: " + reason, AdminLevel.ADMIN);
|
ChatService.BroadcastAdmin("~y~INFO: " + targetPlayername + " ~w~wurde von " + player.GetUser().AdminLevel.GetName() + " ~y~" + adminPlayername + " ~w~verwarnt (Grund: " + reason + ").", AdminLevel.ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("ip", "~m~Benutzung: ~s~/ip [Spieler]")]
|
[Command("ip", "~m~Benutzung: ~s~/ip [Spieler]")]
|
||||||
@@ -899,11 +939,11 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
ChatService.PlayerNotFound(player);
|
ChatService.PlayerNotFound(player);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ChatService.SendMessage(player, "IP von ~y~" + NAPI.Player.GetPlayerName(target) + ": ~g~" + target.Address);
|
ChatService.SendMessage(player, "~y~IP: ~w~Die IP-Adresse von ~y~" + NAPI.Player.GetPlayerName(target) + " ~w~lautet: ~y~" + target.Address);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("ban", "~m~Benutzung: ~s~/ban [User] [Grund] [Zeit in Minuten(0 für Permanent)]", GreedyArg = true)]
|
[Command("ban", "~m~Benutzung: ~s~/ban [User] [Zeit in Minuten (0 = Permanent)] [Grund]", GreedyArg = true)]
|
||||||
public void CmdAdminBan(Player admin, string user, string reason, string strmins = "0")
|
public void CmdAdminBan(Player admin, string user, string strmins, string reason)
|
||||||
{
|
{
|
||||||
if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||||
{
|
{
|
||||||
@@ -934,11 +974,11 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
reason = Regex.Replace(reason, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
reason = Regex.Replace(reason, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
||||||
|
|
||||||
string adminPlayername = NAPI.Player.GetPlayerName(admin);
|
string adminPlayername = NAPI.Player.GetPlayerName(admin);
|
||||||
String banMessage = "~r~BANINFO: ~w~Du wurdest von " + adminPlayername + " vom Server gebannt: " + reason;
|
String banMessage = "~r~INFO: ~w~Du wurdest von " + adminPlayername + " permanent vom Server gebannt (Grund: " + reason + ").";
|
||||||
|
|
||||||
if (mins > 0)
|
if (mins > 0)
|
||||||
{
|
{
|
||||||
banMessage = "~r~BANINFO: ~w~Du wurdest von " + adminPlayername + " für " + mins + " Minuten vom Server gebannt: " + reason;
|
banMessage = "~r~INFO: ~w~Du wurdest von " + adminPlayername + " für " + mins + " Minuten vom Server gebannt (Grund: " + reason + ").";
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatService.SendMessage(target, banMessage);
|
ChatService.SendMessage(target, banMessage);
|
||||||
@@ -949,7 +989,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
}, 2500);
|
}, 2500);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("unban", "~m~Benutzung: ~s~/unban [Name] ")]
|
[Command("unban", "~m~Benutzung: ~s~/unban [Name]")]
|
||||||
public void CmdAdminUnban(Player admin, string userName)
|
public void CmdAdminUnban(Player admin, string userName)
|
||||||
{
|
{
|
||||||
if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||||
@@ -998,7 +1038,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
user.UnbanPlayer();
|
user.UnbanPlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
string message = "~b~[ADMIN] ~s~Der Spieler ~y~" + user.Name + " ~s~wurde von ~y~" + admin.Name + " ~s~entbannt.";
|
string message = "~y~INFO: ~w~Der Spieler ~y~" + user.Name + " ~w~wurde von ~y~" + admin.Name + " ~w~entbannt.";
|
||||||
ChatService.BroadcastAdmin(message, AdminLevel.ADMIN);
|
ChatService.BroadcastAdmin(message, AdminLevel.ADMIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1180,7 +1220,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
target.RemoveAllWeapons();
|
target.RemoveAllWeapons();
|
||||||
ChatService.SendMessage(target, "~b~Deine Waffen wurden dir von " + player.Name + "(Admin) abgenommen");
|
ChatService.SendMessage(target, "~b~Deine Waffen wurden dir von " + player.Name + " (Admin) abgenommen");
|
||||||
ChatService.SendMessage(player, "~b~Dem Spieler " + target.Name + " wurden erfolgreich alle Waffen abgenommen ");
|
ChatService.SendMessage(player, "~b~Dem Spieler " + target.Name + " wurden erfolgreich alle Waffen abgenommen ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1509,33 +1549,6 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
Medic.delReviveTask(target);
|
Medic.delReviveTask(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("aunshow", "~m~Benutzung:~s~ /aunshow")]
|
|
||||||
public void CmdAdminUnshow(Player player)
|
|
||||||
{
|
|
||||||
User user = player.GetUser();
|
|
||||||
if (!user.IsAdmin(AdminLevel.HEADADMIN))
|
|
||||||
{
|
|
||||||
ChatService.NotAuthorized(player);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool currentStatus = user.GetData<bool>("adminUnshow");
|
|
||||||
currentStatus = !currentStatus;
|
|
||||||
user.SetData("adminUnshow", currentStatus);
|
|
||||||
player.TriggerEvent("toggleAdminUnshowMode", currentStatus);
|
|
||||||
|
|
||||||
user.SetBlipAndNametagColor();
|
|
||||||
|
|
||||||
if(currentStatus)
|
|
||||||
{
|
|
||||||
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du bist nun Unshow");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du bist nun nicht mehr Unshow");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Command("setap", "~m~Benutzung: ~s~/setap [Spieler] (Armor)")]
|
[Command("setap", "~m~Benutzung: ~s~/setap [Spieler] (Armor)")]
|
||||||
public void CmdAdminSetAP(Player player, string name, int armor = 100)
|
public void CmdAdminSetAP(Player player, string name, int armor = 100)
|
||||||
{
|
{
|
||||||
@@ -1809,12 +1822,16 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
[Command("spectate", "~m~Benutzung: ~s~/spectate [NAME/ID]", Alias = "spec")]
|
[Command("spectate", "~m~Benutzung: ~s~/spectate [NAME/ID]", Alias = "spec")]
|
||||||
public void CmdAdminSpectate(Player player, string targetname = null)
|
public void CmdAdminSpectate(Player player, string targetname = null)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
User user = player.GetUser();
|
||||||
|
if (!user.IsAdmin(AdminLevel.ADMIN))
|
||||||
{
|
{
|
||||||
ChatService.NotAuthorized(player);
|
ChatService.NotAuthorized(player);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player target;
|
Player target;
|
||||||
|
|
||||||
|
bool currentStatus = player.GetData<bool>("adminUnshow");
|
||||||
|
|
||||||
if (targetname != null)
|
if (targetname != null)
|
||||||
{
|
{
|
||||||
target = PlayerService.GetPlayerByNameOrId(targetname);
|
target = PlayerService.GetPlayerByNameOrId(targetname);
|
||||||
@@ -1823,14 +1840,71 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
ChatService.PlayerNotFound(player);
|
ChatService.PlayerNotFound(player);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.TriggerEvent("SERVER:ADMIN_SPECTATE", target);
|
|
||||||
|
if (target.Name == player.Name)
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Du kannst dich nicht selbst spectaten");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!currentStatus)
|
||||||
|
{
|
||||||
|
currentStatus = !currentStatus;
|
||||||
|
player.SetData("adminUnshow", currentStatus);
|
||||||
|
}
|
||||||
|
player.TriggerEvent("toggleAdminUnshowMode", currentStatus);
|
||||||
|
player.SetData<Vector3>("specPosition", player.Position);
|
||||||
|
|
||||||
|
player.SafeTeleport(target.Position);
|
||||||
|
|
||||||
|
NAPI.Task.Run(() =>
|
||||||
|
{
|
||||||
|
player.TriggerEvent("SERVER:ADMIN_SPECTATE", target);
|
||||||
|
}, 100);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
currentStatus = !currentStatus;
|
||||||
|
player.SetData("adminUnshow", currentStatus);
|
||||||
player.TriggerEvent("SERVER:ADMIN_STOP_SPECTATE");
|
player.TriggerEvent("SERVER:ADMIN_STOP_SPECTATE");
|
||||||
}
|
player.TriggerEvent("toggleAdminUnshowMode", currentStatus);
|
||||||
|
player.SafeTeleport(player.GetData<Vector3>("specPosition"));
|
||||||
|
}
|
||||||
|
user.SetBlipAndNametagColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command("aunshow", "~m~Benutzung:~s~ /aunshow")]
|
||||||
|
public void CmdAdminUnshow(Player player)
|
||||||
|
{
|
||||||
|
User user = player.GetUser();
|
||||||
|
if (!user.IsAdmin(AdminLevel.HEADADMIN))
|
||||||
|
{
|
||||||
|
ChatService.NotAuthorized(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!player.IsTSupport())
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Du bist nicht im T-Support");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool currentStatus = player.GetData<bool>("adminUnshow");
|
||||||
|
currentStatus = !currentStatus;
|
||||||
|
player.SetData("adminUnshow", currentStatus);
|
||||||
|
player.TriggerEvent("toggleAdminUnshowMode", currentStatus);
|
||||||
|
|
||||||
|
user.SetBlipAndNametagColor();
|
||||||
|
|
||||||
|
if (currentStatus)
|
||||||
|
{
|
||||||
|
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du bist nun Unshow");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du bist nun nicht mehr Unshow");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Admin
|
#endregion Admin
|
||||||
|
|
||||||
@@ -2162,18 +2236,15 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Weather weatherBefore = NAPI.World.GetWeather();
|
Weather weatherBefore = World.WeatherSync.Weather;
|
||||||
NAPI.World.SetWeather(weather);
|
World.WeatherSync.SetWeather(weather);
|
||||||
Weather weatherAfter = NAPI.World.GetWeather();
|
Weather weatherAfter = World.WeatherSync.Weather;
|
||||||
|
|
||||||
|
ChatService.SendMessage(player, "~w~Wetter geändert: " + weatherAfter);
|
||||||
|
|
||||||
if (!weatherBefore.Equals(weatherAfter))
|
if (!weatherBefore.Equals(weatherAfter))
|
||||||
{
|
{
|
||||||
ChatService.SendMessage(player, "~w~Wetter geändert: " + NAPI.World.GetWeather());
|
NAPI.Notification.SendNotificationToAll("Das Wetter wurde von ~g~" + player.Name + " ~s~auf ~g~" + weatherAfter + "~s~ geändert.", true);
|
||||||
NAPI.Notification.SendNotificationToAll("Das Wetter wurde von ~g~" + player.Name + " ~s~auf ~g~" + NAPI.World.GetWeather() + "~s~ geändert.", true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChatService.SendMessage(player, "~w~Das Wetter konnte nicht geändert werden");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3562,10 +3633,10 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast ein Payday gedroppt.");
|
ChatService.SendMessage(player, "~b~[ADMIN]~s~ Du hast einen PayDay gedroppt.");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("setwage", "~m~Benutzung: ~s~/setwage [Name/Id] [Lohn]")]
|
[Command("setwage", "~m~Benutzung: ~s~/setwage [Spieler] [Lohn]")]
|
||||||
public void CmdAdminSetWage(Player player, string nameOrId, int wage)
|
public void CmdAdminSetWage(Player player, string nameOrId, int wage)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||||
@@ -3759,13 +3830,14 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
player.SendChatMessage("~m~Benutzung:~s~ /business [price] [Option]");
|
player.SendChatMessage("~m~Benutzung:~s~ /business [price] [Option]");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("checkstats", "~m~Benutzung:~s~ /checkstats [Name / ID]")]
|
[Command("checkstats", "~m~Benutzung:~s~ /checkstats [Spieler]")]
|
||||||
public void CmdAdminCheckStats(Player player, string nameOrId)
|
public void CmdAdminCheckStats(Player player, string nameOrId)
|
||||||
{
|
{
|
||||||
User user = player.GetUser();
|
User user = player.GetUser();
|
||||||
if (!user.IsAdmin(AdminLevel.SUPPORTER))
|
if (!user.IsAdmin(AdminLevel.SUPPORTER))
|
||||||
{
|
{
|
||||||
ChatService.NotAuthorized(player);
|
ChatService.NotAuthorized(player);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||||
@@ -3782,7 +3854,18 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
bool bikeLicense = targetUser.DriverLicenseBike;
|
bool bikeLicense = targetUser.DriverLicenseBike;
|
||||||
bool flyingLicense = targetUser.FlyingLicensePlane;
|
bool flyingLicense = targetUser.FlyingLicensePlane;
|
||||||
bool weaponLicense = targetUser.WeaponLicense;
|
bool weaponLicense = targetUser.WeaponLicense;
|
||||||
ChatService.SendMessage(player, $"Stats von {target.Name} - HandMoney: {handmoney.ToMoneyString()}, BankMoney: {bankmoney.ToMoneyString()}, DriverLicense: {driverLicense.ToString()}, BikeLicense: {bikeLicense.ToString()}, FlyingLicense: {flyingLicense.ToString()}, WeaponLicense: {weaponLicense.ToString()}");
|
int playedHours = targetUser.PlayedMinutes / 60;
|
||||||
|
string playedHoursString = "";
|
||||||
|
int jailTime = targetUser.JailTime;
|
||||||
|
|
||||||
|
if (user.IsAdmin(AdminLevel.HEADADMIN)) {
|
||||||
|
playedHoursString = playedHours.ToString();
|
||||||
|
} else {
|
||||||
|
int newbiePlayedHoursThreshold = GlobalHelper.newbiePlayedMinutesThreshold / 60;
|
||||||
|
playedHoursString = playedHours > newbiePlayedHoursThreshold ? (newbiePlayedHoursThreshold + "+") : playedHours.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
ChatService.SendMessage(player, $"Statistiken von {target.Name} - HandMoney: {handmoney.ToMoneyString()}, BankMoney: {bankmoney.ToMoneyString()}, DriverLicense: {driverLicense.ToString()}, BikeLicense: {bikeLicense.ToString()}, FlyingLicense: {flyingLicense.ToString()}, WeaponLicense: {weaponLicense.ToString()}, playedHours: {playedHoursString}, JailTime: {jailTime.ToString()}");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion ALevel1337
|
#endregion ALevel1337
|
||||||
@@ -3899,10 +3982,16 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
[RemoteEvent("Noclip")]
|
[RemoteEvent("Noclip")]
|
||||||
public void Noclip(Player player)
|
public void Noclip(Player player)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
if (!player.GetUser().IsAdmin(AdminLevel.HEADADMIN))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (!player.IsTSupport())
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Du bist nicht im T-Support");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (player.HasData("Adminduty") && player.GetData<bool>("Adminduty"))
|
if (player.HasData("Adminduty") && player.GetData<bool>("Adminduty"))
|
||||||
player.TriggerEvent("ADMIN:NoClip");
|
player.TriggerEvent("ADMIN:NoClip");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
@@ -82,15 +82,15 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
|
|
||||||
message = Regex.Replace(message, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
message = Regex.Replace(message, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
||||||
|
|
||||||
string rank = string.Empty;
|
string factionName = string.Empty;
|
||||||
|
|
||||||
if (f?.GangOwned == true)
|
if (f?.GangOwned == true)
|
||||||
{
|
{
|
||||||
rank = user.FactionRank.RankName;
|
factionName = user.Faction.Name + " – " + user.FactionRank.RankName;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rank = "[ADMIN]";
|
factionName = "ADMIN";
|
||||||
}
|
}
|
||||||
|
|
||||||
var logEntry = new GangChatLogEntry()
|
var logEntry = new GangChatLogEntry()
|
||||||
@@ -102,7 +102,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
dbContext.GangChatLogs.Add(logEntry);
|
dbContext.GangChatLogs.Add(logEntry);
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
|
||||||
string broadcastMessage = "!{FF0000}** " + rank + " " + player.Name + ": " + message + " **";
|
string broadcastMessage = "!{E52222}** [" + factionName + "] " + player.Name + ": " + message + " **";
|
||||||
using (var context = new DatabaseContext())
|
using (var context = new DatabaseContext())
|
||||||
{
|
{
|
||||||
ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.GangOwned), true, (admin) => admin.HasData("togga"));
|
ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.GangOwned), true, (admin) => admin.HasData("togga"));
|
||||||
@@ -166,11 +166,11 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
|
|
||||||
if (f?.StateOwned ?? false)
|
if (f?.StateOwned ?? false)
|
||||||
{
|
{
|
||||||
factionName = user.FactionRank.RankName;
|
factionName = user.Faction.Name + " – " + user.FactionRank.RankName;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
factionName = "[ADMIN]";
|
factionName = "ADMIN";
|
||||||
}
|
}
|
||||||
|
|
||||||
var logEntry = new DepartmentChatLogEntry()
|
var logEntry = new DepartmentChatLogEntry()
|
||||||
@@ -182,7 +182,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
dbContext.DepartmentChatLogs.Add(logEntry);
|
dbContext.DepartmentChatLogs.Add(logEntry);
|
||||||
dbContext.SaveChanges();
|
dbContext.SaveChanges();
|
||||||
|
|
||||||
string broadcastMessage = "!{CC3333}** " + factionName + " " + player.Name + ": " + message + ", over **";
|
string broadcastMessage = "!{CC3333}** [" + factionName + "] " + player.Name + ": " + message + ", over **";
|
||||||
using (var context = new DatabaseContext())
|
using (var context = new DatabaseContext())
|
||||||
{
|
{
|
||||||
ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.StateOwned), true, (admin) => admin.HasData("togd"));
|
ChatService.BroadcastFaction(broadcastMessage, context.Factions.ToList().FindAll(c => c.StateOwned), true, (admin) => admin.HasData("togd"));
|
||||||
@@ -511,7 +511,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
|
|
||||||
#region Staatsfraktionen (LSPD / FBI) Commands
|
#region Staatsfraktionen (LSPD / FBI) Commands
|
||||||
|
|
||||||
[Command("m", "~m~Benutzung: ~s~/m [Message]", GreedyArg = true)]
|
[Command("m", "~m~Benutzung: ~s~/m [Nachricht]", GreedyArg = true)]
|
||||||
public void CmdFactionMegaphone(Player player, string message)
|
public void CmdFactionMegaphone(Player player, string message)
|
||||||
{
|
{
|
||||||
User user = player.GetUser();
|
User user = player.GetUser();
|
||||||
@@ -533,7 +533,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatService.SendInRange(player.Position, 50, "!{#FFFF00}[" + player.GetUser().Faction.Name + " " + player.Name + ": !{#FFFF00}" + message + "]");
|
ChatService.SendInRange(player.Position, 50, "!{#FFFF00}Megafon (" + player.Name + "): " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("cuff", "~m~Benutzung: ~s~/cuff")]
|
[Command("cuff", "~m~Benutzung: ~s~/cuff")]
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
@@ -16,7 +17,26 @@ using ReallifeGamemode.Services;
|
|||||||
namespace ReallifeGamemode.Server.Commands
|
namespace ReallifeGamemode.Server.Commands
|
||||||
{
|
{
|
||||||
internal class UserCommands : Script
|
internal class UserCommands : Script
|
||||||
{
|
{
|
||||||
|
[Command("rent", "~m~rent stop")]
|
||||||
|
public void CmdUserStopRent(Player player, String option = "") {
|
||||||
|
if (!player.IsLoggedIn()) return;
|
||||||
|
|
||||||
|
if (option != "stop")
|
||||||
|
{
|
||||||
|
player.SendChatMessage("Mit \"/rent stop\" kannst du die Miete kündigen");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!player.HasData("hasRentcar"))
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Du hast zurzeit kein Fahrzeug gemietet");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Rentcar.cancelRent(player);
|
||||||
|
}
|
||||||
|
|
||||||
[Command("eventport", "~m~eventport")]
|
[Command("eventport", "~m~eventport")]
|
||||||
public void CmdUserEventport(Player player, String option = "")
|
public void CmdUserEventport(Player player, String option = "")
|
||||||
{
|
{
|
||||||
@@ -71,6 +91,42 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
player.SendNotification("Du hast dich zum Event teleportiert");
|
player.SendNotification("Du hast dich zum Event teleportiert");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Command("sms", "~m~Benutzung: ~s~/sms [Spieler] [Nachricht]", GreedyArg = true)]
|
||||||
|
public void CmdUserSMS(Player player, string name, string msg)
|
||||||
|
{
|
||||||
|
if (!player.IsLoggedIn()) return;
|
||||||
|
|
||||||
|
Player target = PlayerService.GetPlayerByNameOrId(name);
|
||||||
|
if (target == null || !target.IsLoggedIn())
|
||||||
|
{
|
||||||
|
ChatService.PlayerNotFound(player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target == player)
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Du kannst dir keine SMS schreiben");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using (var dbContext = new DatabaseContext())
|
||||||
|
{
|
||||||
|
User user = player.GetUser(dbContext);
|
||||||
|
if (user.BankAccount.Balance < 5) {
|
||||||
|
ChatService.ErrorMessage(player, "Dafür hast du nicht genug Geld auf deinem Bankkonto");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
user.BankAccount.Balance -= 5;
|
||||||
|
dbContext.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = Regex.Replace(msg, "(~[a-zA-Z]~)|(!{(.*)})", "");
|
||||||
|
|
||||||
|
ChatService.SendMessage(player, $"~y~SMS ~w~an ~y~{ target.Name }~w~: { msg }");
|
||||||
|
ChatService.SendMessage(target, $"~y~SMS ~w~von ~y~{ player.Name }~w~: { msg }");
|
||||||
|
}
|
||||||
|
|
||||||
[Command("look", "~m~look")]
|
[Command("look", "~m~look")]
|
||||||
public void CmdUserLook(Player player)
|
public void CmdUserLook(Player player)
|
||||||
{
|
{
|
||||||
@@ -178,7 +234,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
{
|
{
|
||||||
player.SendChatMessage("E - Interagieren (ATM, Türen, Shops, Friseur etc.");
|
player.SendChatMessage("E - Interagieren (ATM, Türen, Shops, Friseur etc.");
|
||||||
player.SendChatMessage("M - Interaktionsmenü öffnen und schließen");
|
player.SendChatMessage("M - Interaktionsmenü öffnen und schließen");
|
||||||
player.SendChatMessage("X - Fahrzeug auf -/ abschließen sowie im Fahrzeuginteraktionsmenü öffnen");
|
player.SendChatMessage("Z - Fahrzeug auf -/ abschließen sowie im Fahrzeuginteraktionsmenü öffnen");
|
||||||
player.SendChatMessage("N - Fahrzeugmotor Starten");
|
player.SendChatMessage("N - Fahrzeugmotor Starten");
|
||||||
player.SendChatMessage("O - Onlineliste öffnen / schließen");
|
player.SendChatMessage("O - Onlineliste öffnen / schließen");
|
||||||
player.SendChatMessage("I - Inventar öffnen / schließen");
|
player.SendChatMessage("I - Inventar öffnen / schließen");
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
|||||||
new Vector3(-255.55, -1419.48, 32.75),
|
new Vector3(-255.55, -1419.48, 32.75),
|
||||||
new Vector3(-369.08, -1415.37, 29.68),
|
new Vector3(-369.08, -1415.37, 29.68),
|
||||||
new Vector3(-114.48, -1251.43, 37.59),
|
new Vector3(-114.48, -1251.43, 37.59),
|
||||||
new Vector3(59.22, -1261.71, 29.84),
|
new Vector3(70.312744, -1250.7972, 29.84),
|
||||||
new Vector3(39.12, -1165.28, 29.87),
|
new Vector3(39.12, -1165.28, 29.87),
|
||||||
new Vector3(-307.52, -1200.85, 37.79),
|
new Vector3(-307.52, -1200.85, 37.79),
|
||||||
new Vector3(-441.79, -1251.67, 46.37),
|
new Vector3(-441.79, -1251.67, 46.37),
|
||||||
|
|||||||
@@ -78,6 +78,11 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
player.TriggerEvent("CLIENT:AddPed", 3, "s_m_m_pilot_01", -1621.4542236328125, -3152.724365234375, 13.991769790649414, 50.73009490966797, 0, false, true, 0, "none", true, true, true);//Ped_Pilot LS Airport
|
player.TriggerEvent("CLIENT:AddPed", 3, "s_m_m_pilot_01", -1621.4542236328125, -3152.724365234375, 13.991769790649414, 50.73009490966797, 0, false, true, 0, "none", true, true, true);//Ped_Pilot LS Airport
|
||||||
player.TriggerEvent("CLIENT:AddPed", 4, "u_m_o_finguru_01", -534.4425659179688, -2145.747314453125, 5.992100715637207, 53.96156692504883, 0, false, true, 0, "none", true, true, true);//Ped Busfahrer
|
player.TriggerEvent("CLIENT:AddPed", 4, "u_m_o_finguru_01", -534.4425659179688, -2145.747314453125, 5.992100715637207, 53.96156692504883, 0, false, true, 0, "none", true, true, true);//Ped Busfahrer
|
||||||
player.TriggerEvent("CLIENT:AddPed", 5, "csb_prolsec", 1690.84, 2591.17 , 45.91, -2.66, 0, false, true, 0, "none", true, true, true);//Ped Knast
|
player.TriggerEvent("CLIENT:AddPed", 5, "csb_prolsec", 1690.84, 2591.17 , 45.91, -2.66, 0, false, true, 0, "none", true, true, true);//Ped Knast
|
||||||
|
player.TriggerEvent("CLIENT:AddPed", 6, "ig_siemonyetarian", -1023.1589, -2693.6948, 13.98, 173.95613, 0, false, true, 0, "none", true, true, true);//Ped Rentcar NoobSpawn
|
||||||
|
player.TriggerEvent("CLIENT:AddPed", 7, "ig_siemonyetarian", -369.1589, -230.92816, 36.028805, 150.26433, 0, false, true, 0, "none", true, true, true);//Ped Rentcar KH/Stadthalle
|
||||||
|
player.TriggerEvent("CLIENT:AddPed", 8, "ig_siemonyetarian", 1222.0868, 2726.5286, 38.00415, 113.77263, 0, false, true, 0, "none", true, true, true);//Ped Rentcar Knast
|
||||||
|
player.TriggerEvent("CLIENT:AddPed", 9, "ig_siemonyetarian", -215.4218292236328, 6218.90478515625, 31.491567611694336, -135.07437133789062, 0, false, true, 0, "none", true, true, true);//Ped Rentcar Paleto
|
||||||
|
player.TriggerEvent("CLIENT:AddPed", 10, "ig_siemonyetarian", 818.239990234375, -1040.833984375, 26.750696182250977, 3.0542829036712646, 0, false, true, 0, "none", true, true, true);//Ped Rentcar Lamesa
|
||||||
|
|
||||||
TimeSpan currentTime = TimeManager.CurrentTime;
|
TimeSpan currentTime = TimeManager.CurrentTime;
|
||||||
bool disableLightMode = currentTime > LightModeTimeFrom && currentTime < LightModeTimeTo;
|
bool disableLightMode = currentTime > LightModeTimeFrom && currentTime < LightModeTimeTo;
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
|
|
||||||
var playerInGangwar = player.HasData("inGangWar");
|
var playerInGangwar = player.HasData("inGangWar");
|
||||||
var killerInGangwar = killer.HasData("inGangWar");
|
var killerInGangwar = killer.HasData("inGangWar");
|
||||||
|
|
||||||
NAPI.Util.ConsoleOutput($"OnPlayerDeath - Player {player.Name} died - PlayerInGangwar = {playerInGangwar}, KillerInGangwar = {killerInGangwar}");
|
NAPI.Util.ConsoleOutput($"OnPlayerDeath - Player {player.Name} died - PlayerInGangwar = {playerInGangwar}, KillerInGangwar = {killerInGangwar}");
|
||||||
if (playerInGangwar && killerInGangwar)
|
if (playerInGangwar && killerInGangwar)
|
||||||
{
|
{
|
||||||
@@ -148,7 +149,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
if (copNearby)
|
if (copNearby)
|
||||||
{
|
{
|
||||||
user.SetJailTime(true, dbContext);
|
user.SetJailTime(true, dbContext);
|
||||||
Jail.Check_PutBehindBars(user, "cell");
|
Jail.Check_PutBehindBars(user, JailInLocations.InCell);
|
||||||
ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert.");
|
ChatService.HQMessage(user.Name + " wurde ins Gefängnis eingeliefert.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user