Finalize Surgery
This commit is contained in:
@@ -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."));
|
||||||
|
|
||||||
@@ -308,30 +313,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;
|
||||||
@@ -552,12 +556,21 @@ 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 (creatorCamera === undefined) {
|
||||||
|
if (charExists) {
|
||||||
|
creatorCamera = mp.cameras.new("creatorCamera", surgeryCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
||||||
|
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 = 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.pointAtCoord(creatorCoords.cameraLookAt.x, creatorCoords.cameraLookAt.y, creatorCoords.cameraLookAt.z);
|
||||||
creatorCamera.setActive(true);
|
creatorCamera.setActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
globalData.InMenu = true;
|
globalData.InMenu = true;
|
||||||
@@ -569,14 +582,28 @@ 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);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
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(true);
|
||||||
|
globalData.InMenu = false;
|
||||||
|
globalData.InMenu = false;
|
||||||
|
if (isSurgery) isSurgery = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -22,25 +22,16 @@ const localPlayer = mp.players.local;
|
|||||||
export default function charSurgery(globalData: IGlobalData) {
|
export default function charSurgery(globalData: IGlobalData) {
|
||||||
|
|
||||||
var creatorCamera: CameraMp;
|
var creatorCamera: CameraMp;
|
||||||
var newCharacter: PlayerCharacterData;
|
var activeSurgery: boolean = false;
|
||||||
|
var saveCharacter: PlayerCharacterData;
|
||||||
// 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());
|
|
||||||
|
|
||||||
var characterData: PlayerCharacterData;
|
var characterData: PlayerCharacterData;
|
||||||
|
|
||||||
function getRandomInt(min, max) {
|
function getRandomInt(min, max) {
|
||||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||||
}
|
}
|
||||||
|
|
||||||
var creatorMainMenu: NativeUI.Menu;
|
var creatorMainMenu: NativeUI.Menu;
|
||||||
var debugString = [0, 0, 0, 0, 0];
|
var debugString = [0, 0, 0, 0, 0,0,0,0,0,0,0,0,0,0];
|
||||||
|
|
||||||
mp.events.add("render", () => {
|
mp.events.add("render", () => {
|
||||||
mp.game.graphics.drawText(debugString.toString(), [0.5, 0.1],
|
mp.game.graphics.drawText(debugString.toString(), [0.5, 0.1],
|
||||||
@@ -55,11 +46,13 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
|
|
||||||
mp.events.add("toggleSurgery", (jsonCharacterData: string) => {
|
mp.events.add("toggleSurgery", (jsonCharacterData: string) => {
|
||||||
if (!mp.cameras.exists(creatorCamera)) {
|
if (!mp.cameras.exists(creatorCamera)) {
|
||||||
|
activeSurgery = true;
|
||||||
debugString[0] = 1;
|
debugString[0] = 1;
|
||||||
characterData = JSON.parse(jsonCharacterData);
|
characterData = JSON.parse(jsonCharacterData);
|
||||||
debugString[1] = 1;
|
saveCharacter = characterData;
|
||||||
|
debugString[1] = 2;
|
||||||
loadCharacterData();
|
loadCharacterData();
|
||||||
debugString[2] = 1;
|
debugString[2] = 3;
|
||||||
creatorCamera = mp.cameras.new("creatorCamera", creatorCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
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.pointAtCoord(creatorCoords.cameraLookAt.x, creatorCoords.cameraLookAt.y, creatorCoords.cameraLookAt.z);
|
||||||
creatorCamera.setActive(true);
|
creatorCamera.setActive(true);
|
||||||
@@ -72,7 +65,8 @@ export default function charSurgery(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);
|
||||||
debugString[3] = 1;
|
debugString[3] = 4;
|
||||||
|
applyCreatorOutfit();
|
||||||
getCharacterMainMenu();
|
getCharacterMainMenu();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -132,31 +126,32 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//HAUPTMENÜ
|
||||||
function getCharacterMainMenu(): NativeUI.Menu {
|
function getCharacterMainMenu(): NativeUI.Menu {
|
||||||
|
|
||||||
creatorMainMenu = new Menu("Chirurg", "", new Point(0, screenRes.y / 3), null, null);
|
creatorMainMenu = new Menu("Chirurg", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
creatorMainMenu.Visible = false;
|
creatorMainMenu.Visible = false;
|
||||||
|
debugString[4] = 5;
|
||||||
var genderItem = new UIMenuListItem("Geschlecht", "~r~Dies setzt deine Einstellungen zurück.", new ItemsCollection(["Männlich", "Weiblich"]));
|
var genderItem = new UIMenuListItem("Geschlecht", "~r~Dies setzt deine Einstellungen zurück.", new ItemsCollection(["Männlich", "Weiblich"]));
|
||||||
creatorMainMenu.AddItem(genderItem);
|
creatorMainMenu.AddItem(genderItem);
|
||||||
genderItem.Index = characterData.Gender == false ? 0 : 1;
|
genderItem.Index = characterData.Gender == false ? 0 : 1;
|
||||||
|
debugString[5] = 6;
|
||||||
var parentsItem = new UIMenuItem("Eltern", "Eltern des Charakters.");
|
var parentsItem = new UIMenuItem("Eltern", "Eltern des Charakters.");
|
||||||
creatorMainMenu.AddItem(parentsItem);
|
creatorMainMenu.AddItem(parentsItem);
|
||||||
creatorMainMenu.BindMenuToItem(getParentsMenu(creatorMainMenu), parentsItem);
|
creatorMainMenu.BindMenuToItem(getParentsMenu(creatorMainMenu), parentsItem);
|
||||||
|
debugString[6] = 7;
|
||||||
var featureItem = new UIMenuItem("Gesichtszüge", "Gesichtszüge des Charakters.")
|
var featureItem = new UIMenuItem("Gesichtsmerkmale", "Gesichtsmerkmale des Charakters.")
|
||||||
creatorMainMenu.AddItem(featureItem);
|
creatorMainMenu.AddItem(featureItem);
|
||||||
creatorMainMenu.BindMenuToItem(getFeaturesMenu(creatorMainMenu), featureItem);
|
creatorMainMenu.BindMenuToItem(getFeaturesMenu(creatorMainMenu), featureItem);
|
||||||
|
debugString[7] = 8;
|
||||||
var appearanceItem = new UIMenuItem("Aussehen", "Aussehen des Charakters.")
|
var appearanceItem = new UIMenuItem("Aussehen", "Aussehen des Charakters.")
|
||||||
creatorMainMenu.AddItem(appearanceItem);
|
creatorMainMenu.AddItem(appearanceItem);
|
||||||
creatorMainMenu.BindMenuToItem(getAppearanceMenu(creatorMainMenu), appearanceItem);
|
creatorMainMenu.BindMenuToItem(getAppearanceMenu(creatorMainMenu), appearanceItem);
|
||||||
|
debugString[8] = 9;
|
||||||
var hairAndColorItem = new UIMenuItem("Haar & Farben", "Haare & Farben deines Charakters.")
|
var hairAndColorItem = new UIMenuItem("Haar & Farben", "Haare & Farben deines Charakters.")
|
||||||
creatorMainMenu.AddItem(hairAndColorItem);
|
creatorMainMenu.AddItem(hairAndColorItem);
|
||||||
creatorMainMenu.BindMenuToItem(getHairAndColorMenu(creatorMainMenu), hairAndColorItem);
|
creatorMainMenu.BindMenuToItem(getHairAndColorMenu(creatorMainMenu), hairAndColorItem);
|
||||||
|
debugString[9] = 10;
|
||||||
|
|
||||||
//Charakterdrehung
|
//Charakterdrehung
|
||||||
var angles = [];
|
var angles = [];
|
||||||
@@ -164,14 +159,14 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
var angleItem = new UIMenuListItem("Drehung", "", new ItemsCollection(angles));
|
var angleItem = new UIMenuListItem("Drehung", "", new ItemsCollection(angles));
|
||||||
creatorMainMenu.AddItem(angleItem);
|
creatorMainMenu.AddItem(angleItem);
|
||||||
|
|
||||||
var saveItem = new UIMenuItem("Erstellen", "Erstellt deinen Charakter.");
|
var saveItem = new UIMenuItem("Operieren", "Der Chirurg macht die Arbeit, lehn dich zurück");
|
||||||
saveItem.BackColor = new Color(13, 71, 161);
|
saveItem.BackColor = new Color(13, 71, 161);
|
||||||
saveItem.HighlightedBackColor = new Color(25, 118, 210);
|
saveItem.HighlightedBackColor = new Color(25, 118, 210);
|
||||||
creatorMainMenu.AddItem(saveItem);
|
creatorMainMenu.AddItem(saveItem);
|
||||||
|
|
||||||
creatorMainMenu.ListChange.on((item, listIndex) => {
|
creatorMainMenu.ListChange.on((item, listIndex) => {
|
||||||
if (item === genderItem) {
|
if (item === genderItem) {
|
||||||
newCharacter.Gender = listIndex;
|
saveCharacter.Gender = <boolean>listIndex;
|
||||||
mp.events.callRemote("creator_GenderChange", listIndex);
|
mp.events.callRemote("creator_GenderChange", listIndex);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -179,9 +174,9 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
applyCreatorOutfit();
|
applyCreatorOutfit();
|
||||||
angleItem.Index = 0;
|
angleItem.Index = 0;
|
||||||
resetParents();
|
resetParents();
|
||||||
//resetParentsMenu(true);
|
resetFeatures();
|
||||||
//resetFeaturesMenu(true);
|
resetAppearance();
|
||||||
//resetAppearanceMenu(true);
|
|
||||||
}, 200);
|
}, 200);
|
||||||
} else if (item === angleItem) {
|
} else if (item === angleItem) {
|
||||||
localPlayer.setHeading(parseFloat(angleItem.SelectedValue));
|
localPlayer.setHeading(parseFloat(angleItem.SelectedValue));
|
||||||
@@ -192,46 +187,46 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
creatorMainMenu.MenuClose.on(() => {
|
creatorMainMenu.MenuClose.on(() => {
|
||||||
leaveCreator();
|
leaveCreator();
|
||||||
});
|
});
|
||||||
|
creatorMainMenu.Visible = true;
|
||||||
return creatorMainMenu;
|
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 {
|
function getParentsMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
var similarities = [];
|
var similarities = [];
|
||||||
for (var i = 0; i <= 100; i++) similarities.push(i + "%");
|
for (var i = 0; i <= 100; i++) similarities.push(i + "%");
|
||||||
|
|
||||||
var creatorParentsMenu = new Menu("Eltern", "", new Point(0, screenRes.y / 3), null, null);
|
creatorParentsMenu = new Menu("Eltern", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
creatorParentsMenu.Visible = false;
|
creatorParentsMenu.Visible = false;
|
||||||
|
|
||||||
var fatherItem = new UIMenuListItem("Vater", "Dem Charakter sein Vadda.", new ItemsCollection(Data.fatherNames));
|
fatherItem = new UIMenuListItem("Vater", "Dem Charakter sein Vadda.", new ItemsCollection(Data.fatherNames));
|
||||||
creatorParentsMenu.AddItem(fatherItem);
|
creatorParentsMenu.AddItem(fatherItem);
|
||||||
fatherItem.Index = characterData.Father;
|
//fatherItem.Index = characterData.Father;
|
||||||
|
|
||||||
var motherItem = new UIMenuListItem("Mutter", "Dem Charakter seine Mudda.", new ItemsCollection(Data.motherNames));
|
motherItem = new UIMenuListItem("Mutter", "Dem Charakter seine Mudda.", new ItemsCollection(Data.motherNames));
|
||||||
creatorParentsMenu.AddItem(motherItem);
|
creatorParentsMenu.AddItem(motherItem);
|
||||||
motherItem.Index = characterData.Mother;
|
//motherItem.Index = characterData.Mother;
|
||||||
|
|
||||||
var similarityItem = new UIMenuListItem("\u00c4hnlichkeit", "\u00c4hnlichkeit zu den Eltern.\n(niedriger = feminin, h\u00f6her = maskulin)", new ItemsCollection(similarities));
|
similarityItem = new UIMenuListItem("\u00c4hnlichkeit", "\u00c4hnlichkeit zu den Eltern.\n(niedriger = feminin, h\u00f6her = maskulin)", new ItemsCollection(similarities));
|
||||||
creatorParentsMenu.AddItem(similarityItem);
|
creatorParentsMenu.AddItem(similarityItem);
|
||||||
similarityItem.Index = characterData.Similarity;
|
//similarityItem.Index = characterData.Similarity;
|
||||||
|
|
||||||
var skinSimilarityItem = new UIMenuListItem("Hautfarbe", "Hautfarben \u00c4hnlichkeit zu den Eltern.\n(niedriger = Mutter, h\u00f6her = Vater)", new ItemsCollection(similarities));
|
skinSimilarityItem = new UIMenuListItem("Hautfarbe", "Hautfarben \u00c4hnlichkeit zu den Eltern.\n(niedriger = Mutter, h\u00f6her = Vater)", new ItemsCollection(similarities));
|
||||||
creatorParentsMenu.AddItem(skinSimilarityItem);
|
creatorParentsMenu.AddItem(skinSimilarityItem);
|
||||||
skinSimilarityItem.Index = characterData.SkinSimilarity;
|
//skinSimilarityItem.Index = characterData.SkinSimilarity;
|
||||||
|
|
||||||
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt die Eltern zurück. :'(");
|
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt die Eltern zurück. :'(");
|
||||||
creatorParentsMenu.AddItem(resetItem);
|
creatorParentsMenu.AddItem(resetItem);
|
||||||
|
|
||||||
creatorParentsMenu.ItemSelect.on((item, index) => {
|
creatorParentsMenu.ItemSelect.on((item, index) => {
|
||||||
switch (item) {
|
if (item == resetItem) {
|
||||||
case resetItem:
|
|
||||||
fatherItem.Index = characterData.Father;
|
|
||||||
motherItem.Index = characterData.Mother;
|
|
||||||
similarityItem.Index = characterData.Similarity;//(currentGender === 0) ? 100 : 0;
|
|
||||||
skinSimilarityItem.Index = characterData.SkinSimilarity;//(currentGender === 0) ? 100 : 0;
|
|
||||||
resetParents();
|
resetParents();
|
||||||
//creatorParentsMenu.RefreshIndex();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -239,52 +234,43 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
updateParents();
|
updateParents();
|
||||||
});
|
});
|
||||||
|
|
||||||
creatorParentsMenu.RefreshIndex();
|
debugString[10] = 11;
|
||||||
|
|
||||||
return creatorParentsMenu;
|
return creatorParentsMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateParents() {
|
function updateParents() {
|
||||||
localPlayer.setHeadBlendData(
|
localPlayer.setHeadBlendData(
|
||||||
// shape
|
// shape
|
||||||
Data.mothers[newCharacter.Mother],
|
Data.mothers[motherItem.Index],
|
||||||
Data.fathers[newCharacter.Father],
|
Data.fathers[fatherItem.Index],
|
||||||
0,
|
0,
|
||||||
|
|
||||||
// skin
|
// skin
|
||||||
Data.mothers[newCharacter.Mother],
|
Data.mothers[motherItem.Index],
|
||||||
Data.fathers[newCharacter.Father],
|
Data.fathers[fatherItem.Index],
|
||||||
0,
|
0,
|
||||||
|
|
||||||
// mixes
|
// mixes
|
||||||
newCharacter.Similarity * 0.01,
|
similarityItem.Index * 0.01,
|
||||||
newCharacter.SkinSimilarity * 0.01,
|
skinSimilarityItem.Index * 0.01,
|
||||||
0.0,
|
0.0,
|
||||||
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetParents() {
|
function resetParents(refresh = false) {
|
||||||
localPlayer.setHeadBlendData(
|
fatherItem.Index = 0;//characterData.Father.valueOf();
|
||||||
// shape
|
motherItem.Index = 0;//characterData.Mother.valueOf();
|
||||||
Data.mothers[characterData.Mother],
|
similarityItem.Index = (characterData.Gender == false) ? 100 : 0; //characterData.Similarity.valueOf();//
|
||||||
Data.fathers[characterData.Father],
|
skinSimilarityItem.Index = (characterData.Gender == false) ? 100 : 0;//characterData.SkinSimilarity.valueOf();
|
||||||
0,
|
|
||||||
|
|
||||||
// skin
|
updateParents();
|
||||||
Data.mothers[characterData.Mother],
|
if (refresh) creatorParentsMenu.RefreshIndex();
|
||||||
Data.fathers[characterData.Father],
|
|
||||||
0,
|
|
||||||
|
|
||||||
// mixes
|
|
||||||
characterData.Similarity * 0.01,
|
|
||||||
characterData.SkinSimilarity * 0.01,
|
|
||||||
0.0,
|
|
||||||
|
|
||||||
false
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Menü für Gesichtsmerkmale
|
||||||
var featureItems = [];
|
var featureItems = [];
|
||||||
function getFeaturesMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
function getFeaturesMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
@@ -293,13 +279,13 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
|
|
||||||
var creatorFeaturesMenu = new Menu("Gesichtsmerkmale", "", new Point(0, screenRes.y / 3), null, null);
|
var creatorFeaturesMenu = new Menu("Gesichtsmerkmale", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
creatorFeaturesMenu.Visible = false;
|
creatorFeaturesMenu.Visible = false;
|
||||||
|
debugString[6] = 7;
|
||||||
for (var i = 0; i < Data.featureNames.length; i++) {
|
for (var i = 0; i < Data.featureNames.length; i++) {
|
||||||
var tempFeatureItem = new UIMenuListItem(Data.featureNames[i], "", new ItemsCollection(features));
|
var tempFeatureItem = new UIMenuListItem(Data.featureNames[i], "", new ItemsCollection(features));
|
||||||
tempFeatureItem.Index = 100;
|
tempFeatureItem.Index = 100;
|
||||||
featureItems.push(tempFeatureItem);
|
featureItems.push(tempFeatureItem);
|
||||||
creatorFeaturesMenu.AddItem(tempFeatureItem);
|
creatorFeaturesMenu.AddItem(tempFeatureItem);
|
||||||
tempFeatureItem.Index = loadedFeatures[i];
|
//tempFeatureItem.Index = loadedFeatures[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt Gesichtsmerkmale zurück.");
|
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt Gesichtsmerkmale zurück.");
|
||||||
@@ -308,10 +294,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
creatorFeaturesMenu.ItemSelect.on((item, index) => {
|
creatorFeaturesMenu.ItemSelect.on((item, index) => {
|
||||||
switch (item) {
|
switch (item) {
|
||||||
case resetItem:
|
case resetItem:
|
||||||
for (var i = 0; i < Data.featureNames.length; i++) {
|
resetFeatures();
|
||||||
featureItems[i].Index = loadedFeatures[i];
|
|
||||||
updateFaceFeature(i);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -320,16 +303,24 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
updateFaceFeature(featureItems.indexOf(item));
|
updateFaceFeature(featureItems.indexOf(item));
|
||||||
});
|
});
|
||||||
|
|
||||||
creatorFeaturesMenu.RefreshIndex();
|
debugString[11] = 12;
|
||||||
return creatorFeaturesMenu;
|
return creatorFeaturesMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resetFeatures() {
|
||||||
|
for (let i = 0; i < Data.featureNames.length; i++) {
|
||||||
|
featureItems[i].Index = 100;
|
||||||
|
updateFaceFeature(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function updateFaceFeature(index) {
|
function updateFaceFeature(index) {
|
||||||
localPlayer.setFaceFeature(index, parseFloat(featureItems[index].SelectedValue));
|
localPlayer.setFaceFeature(index, parseFloat(featureItems[index].SelectedValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
var appearanceItems = [];
|
var appearanceItems = [];
|
||||||
var appearanceOpacityItems = [];
|
var appearanceOpacityItems = [];
|
||||||
|
//Menü für Aussehen
|
||||||
function getAppearanceMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
function getAppearanceMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
|
|
||||||
@@ -338,7 +329,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
|
|
||||||
var creatorAppearanceMenu = new Menu("Aussehen", "", new Point(0, screenRes.y / 3), null, null);
|
var creatorAppearanceMenu = new Menu("Aussehen", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
creatorAppearanceMenu.Visible = false;
|
creatorAppearanceMenu.Visible = false;
|
||||||
|
debugString[7] = 8;
|
||||||
for (var i = 0; i < Data.appearanceNames.length; i++) {
|
for (var i = 0; i < Data.appearanceNames.length; i++) {
|
||||||
var items = [];
|
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]);
|
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]);
|
||||||
@@ -346,13 +337,13 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
var tempAppearanceItem = new UIMenuListItem(Data.appearanceNames[i], "", new ItemsCollection(items));
|
var tempAppearanceItem = new UIMenuListItem(Data.appearanceNames[i], "", new ItemsCollection(items));
|
||||||
appearanceItems.push(tempAppearanceItem);
|
appearanceItems.push(tempAppearanceItem);
|
||||||
creatorAppearanceMenu.AddItem(tempAppearanceItem);
|
creatorAppearanceMenu.AddItem(tempAppearanceItem);
|
||||||
tempAppearanceItem.Index = loadedAppearance[i];
|
//tempAppearanceItem.Index = loadedAppearance[i];
|
||||||
|
|
||||||
var tempAppearanceOpacityItem = new UIMenuListItem(Data.appearanceNames[i] + " Transparenz", "", new ItemsCollection(opacities));
|
var tempAppearanceOpacityItem = new UIMenuListItem(Data.appearanceNames[i] + " Transparenz", "", new ItemsCollection(opacities));
|
||||||
tempAppearanceOpacityItem.Index = 100;
|
tempAppearanceOpacityItem.Index = 100;
|
||||||
appearanceOpacityItems.push(tempAppearanceOpacityItem);
|
appearanceOpacityItems.push(tempAppearanceOpacityItem);
|
||||||
creatorAppearanceMenu.AddItem(tempAppearanceOpacityItem);
|
creatorAppearanceMenu.AddItem(tempAppearanceOpacityItem);
|
||||||
tempAppearanceOpacityItem.Index = loadedAppearanceOpacity[i];
|
//tempAppearanceOpacityItem.Index = loadedAppearanceOpacity[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt das Aussehen zurück.");
|
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt das Aussehen zurück.");
|
||||||
@@ -361,7 +352,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
creatorAppearanceMenu.ItemSelect.on((item, index) => {
|
creatorAppearanceMenu.ItemSelect.on((item, index) => {
|
||||||
switch (item) {
|
switch (item) {
|
||||||
case resetItem:
|
case resetItem:
|
||||||
resetAppearanceMenu();
|
resetAppearance();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -370,7 +361,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
var idx = (creatorAppearanceMenu.CurrentSelection % 2 === 0) ? (creatorAppearanceMenu.CurrentSelection / 2) : Math.floor(creatorAppearanceMenu.CurrentSelection / 2);
|
var idx = (creatorAppearanceMenu.CurrentSelection % 2 === 0) ? (creatorAppearanceMenu.CurrentSelection / 2) : Math.floor(creatorAppearanceMenu.CurrentSelection / 2);
|
||||||
updateAppearance(idx);
|
updateAppearance(idx);
|
||||||
});
|
});
|
||||||
|
debugString[12] = 13;
|
||||||
return creatorAppearanceMenu;
|
return creatorAppearanceMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -379,7 +370,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
localPlayer.setHeadOverlay(index, overlayID, appearanceOpacityItems[index].Index * 0.01, colorForOverlayIdx(index), 0);
|
localPlayer.setHeadOverlay(index, overlayID, appearanceOpacityItems[index].Index * 0.01, colorForOverlayIdx(index), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetAppearanceMenu(refresh = false) {
|
function resetAppearance(refresh = false) {
|
||||||
for (var i = 0; i < Data.appearanceNames.length; i++) {
|
for (var i = 0; i < Data.appearanceNames.length; i++) {
|
||||||
appearanceItems[i].Index = loadedAppearance[i];
|
appearanceItems[i].Index = loadedAppearance[i];
|
||||||
appearanceOpacityItems[i].Index = loadedAppearanceOpacity[i];
|
appearanceOpacityItems[i].Index = loadedAppearanceOpacity[i];
|
||||||
@@ -387,11 +378,22 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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 {
|
function getHairAndColorMenu(parentMenu: NativeUI.Menu): NativeUI.Menu {
|
||||||
|
|
||||||
var creatorHairMenu = new Menu("Haar & Farben", "", new Point(0, screenRes.y / 3), null, null);
|
var creatorHairMenu = new Menu("Haar & Farben", "", new Point(0, screenRes.y / 3), null, null);
|
||||||
creatorHairMenu.Visible = false;
|
creatorHairMenu.Visible = false;
|
||||||
|
debugString[8] = 9;
|
||||||
var eyebrowColorItem = new UIMenuListItem("Augenbrauen Farbe", "Farbe deiner Augenbrauen", new ItemsCollection(hairColors));
|
var eyebrowColorItem = new UIMenuListItem("Augenbrauen Farbe", "Farbe deiner Augenbrauen", new ItemsCollection(hairColors));
|
||||||
creatorHairMenu.AddItem(eyebrowColorItem);
|
creatorHairMenu.AddItem(eyebrowColorItem);
|
||||||
|
|
||||||
@@ -455,17 +457,17 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
debugString[13] = 14;
|
||||||
return creatorHairMenu;
|
return creatorHairMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateHairAndColors() {
|
function updateHairAndColors() {
|
||||||
localPlayer.setEyeColor(newCharacter.EyeColor);
|
localPlayer.setEyeColor(saveCharacter.EyeColor);
|
||||||
localPlayer.setHeadOverlayColor(1, 1, newCharacter.BeardColor, 0);
|
localPlayer.setHeadOverlayColor(1, 1, saveCharacter.BeardColor, 0);
|
||||||
localPlayer.setHeadOverlayColor(2, 1, newCharacter.EyebrowColor, 0);
|
localPlayer.setHeadOverlayColor(2, 1, saveCharacter.EyebrowColor, 0);
|
||||||
localPlayer.setHeadOverlayColor(5, 2, newCharacter.BlushColor, 0);
|
localPlayer.setHeadOverlayColor(5, 2, saveCharacter.BlushColor, 0);
|
||||||
localPlayer.setHeadOverlayColor(8, 2, newCharacter.LipstickColor, 0);
|
localPlayer.setHeadOverlayColor(8, 2, saveCharacter.LipstickColor, 0);
|
||||||
localPlayer.setHeadOverlayColor(10, 1, newCharacter.ChestHairColor, 0);
|
localPlayer.setHeadOverlayColor(10, 1, saveCharacter.ChestHairColor, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function colorForOverlayIdx(index) {
|
function colorForOverlayIdx(index) {
|
||||||
@@ -473,23 +475,23 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 1:
|
case 1:
|
||||||
color = newCharacter.BeardColor;
|
color = saveCharacter.BeardColor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
color = newCharacter.EyebrowColor;
|
color = saveCharacter.EyebrowColor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
color = newCharacter.BlushColor;
|
color = saveCharacter.BlushColor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
color = newCharacter.LipstickColor;
|
color = saveCharacter.LipstickColor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
color = newCharacter.ChestHairColor;
|
color = saveCharacter.ChestHairColor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -500,7 +502,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function applyCreatorOutfit() {
|
function applyCreatorOutfit() {
|
||||||
if (newCharacter.Gender === false) {
|
if (saveCharacter.Gender === false) {
|
||||||
localPlayer.setDefaultComponentVariation();
|
localPlayer.setDefaultComponentVariation();
|
||||||
localPlayer.setComponentVariation(3, 15, 0, 2);
|
localPlayer.setComponentVariation(3, 15, 0, 2);
|
||||||
localPlayer.setComponentVariation(4, 21, 0, 2);
|
localPlayer.setComponentVariation(4, 21, 0, 2);
|
||||||
@@ -518,6 +520,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function leaveCreator() {
|
function leaveCreator() {
|
||||||
|
activeSurgery = false;
|
||||||
mp.gui.chat.show(true);
|
mp.gui.chat.show(true);
|
||||||
mp.game.ui.displayRadar(true);
|
mp.game.ui.displayRadar(true);
|
||||||
mp.game.ui.displayHud(true);
|
mp.game.ui.displayHud(true);
|
||||||
|
|||||||
@@ -271,8 +271,8 @@ ammunation(globalData);
|
|||||||
import handsup from './Player/handsup';
|
import handsup from './Player/handsup';
|
||||||
handsup();
|
handsup();
|
||||||
|
|
||||||
import charSurgery from './CharCreator/surgery';
|
//import charSurgery from './CharCreator/surgery';
|
||||||
charSurgery(globalData);
|
//charSurgery(globalData);
|
||||||
|
|
||||||
import spawnschutz from './Player/spawnschutz';
|
import spawnschutz from './Player/spawnschutz';
|
||||||
spawnschutz();
|
spawnschutz();
|
||||||
|
|||||||
@@ -552,7 +552,23 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
if (CharacterCreator.surgeryPoint.DistanceTo(player.Position) <= 1.5)
|
if (CharacterCreator.surgeryPoint.DistanceTo(player.Position) <= 1.5)
|
||||||
{
|
{
|
||||||
CharacterCreator.StartSurgery(player);
|
var freeSurgery = player.GetUser().FreeSurgery;
|
||||||
|
if(freeSurgery == false && player.GetUser().BankAccount.Balance < 15000)
|
||||||
|
{
|
||||||
|
ChatService.ErrorMessage(player, "Du benötigst $15.000 auf dem Bankkonto um die Operation durchzuführen");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ChatService.SendMessage(player, "~r~ACHTUNG! Dadurch wird dein alter Charakter gelöscht. Du kannst dir hiermit einen neuen erstellen.\nBeim Wechsel des Geschlechts verlierst du ebenfalls deine gekaufte Kleidung");
|
||||||
|
if (freeSurgery == true)
|
||||||
|
{
|
||||||
|
ChatService.SendMessage(player, "Du kannst deinen Charakter dieses mal kostenlos erstellen");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ChatService.SendMessage(player, "Die Änderung des Charakters kostet ~g~$15.000");
|
||||||
|
}
|
||||||
|
ChatService.SendMessage(player, "Du kannst die Charaktererstellung wieder verlassen und behältst deinen alten Charakter! Bitte starte mit ~g~J");
|
||||||
|
player.SetData<bool>("charSurgery", true);
|
||||||
}
|
}
|
||||||
if (user.FactionLeader)
|
if (user.FactionLeader)
|
||||||
{
|
{
|
||||||
@@ -638,6 +654,12 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(player.GetData<bool>("charSurgery") == true)
|
||||||
|
{
|
||||||
|
CharacterCreator.StartSurgery(player);
|
||||||
|
player.ResetData("charSurgery");
|
||||||
|
}
|
||||||
|
|
||||||
User u = player.GetUser();
|
User u = player.GetUser();
|
||||||
|
|
||||||
if (u.JobId == null) return;
|
if (u.JobId == null) return;
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
currentPlayerCreatorDimension++;
|
currentPlayerCreatorDimension++;
|
||||||
NAPI.Data.SetWorldData("playerCreatorDimension", currentPlayerCreatorDimension);
|
NAPI.Data.SetWorldData("playerCreatorDimension", currentPlayerCreatorDimension);
|
||||||
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
|
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
|
||||||
player.TriggerEvent("toggleCreator");
|
player.TriggerEvent("toggleCreator",false);
|
||||||
player.SafeTeleport(new Vector3(402.8664, -996.4108, -99.00027));
|
player.SafeTeleport(new Vector3(402.8664, -996.4108, -99.00027));
|
||||||
//player.Position = new Vector3(user.PositionX, user.PositionY, user.PositionZ);
|
//player.Position = new Vector3(user.PositionX, user.PositionY, user.PositionZ);
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using Newtonsoft.Json;
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
using ReallifeGamemode.Database.Models;
|
using ReallifeGamemode.Database.Models;
|
||||||
|
using ReallifeGamemode.Server.Events;
|
||||||
using ReallifeGamemode.Server.Extensions;
|
using ReallifeGamemode.Server.Extensions;
|
||||||
|
|
||||||
namespace ReallifeGamemode.Server.Managers
|
namespace ReallifeGamemode.Server.Managers
|
||||||
@@ -31,6 +32,21 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
[RemoteEvent("creatorSave")]
|
[RemoteEvent("creatorSave")]
|
||||||
public void CreatorSave(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)
|
public void CreatorSave(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var charExists = false;
|
||||||
|
var genderSwap = false;
|
||||||
|
|
||||||
|
var cUser = player.GetUser();
|
||||||
|
|
||||||
|
if (cUser.CharacterId != null)
|
||||||
|
{
|
||||||
|
charExists = true;
|
||||||
|
if(cUser.Character.Gender != gender)
|
||||||
|
{
|
||||||
|
genderSwap = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var jParentData = JObject.Parse(parentData);
|
var jParentData = JObject.Parse(parentData);
|
||||||
var jFeatureData = JArray.Parse(featureData);
|
var jFeatureData = JArray.Parse(featureData);
|
||||||
var jAppearanceData = JArray.Parse(appearanceData);
|
var jAppearanceData = JArray.Parse(appearanceData);
|
||||||
@@ -161,6 +177,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
ChestHairColor = chestHairColor
|
ChestHairColor = chestHairColor
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
saveCharacter.Characters.Add(character);
|
saveCharacter.Characters.Add(character);
|
||||||
saveCharacter.SaveChanges();
|
saveCharacter.SaveChanges();
|
||||||
|
|
||||||
@@ -169,6 +186,17 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
|
|
||||||
user.CharacterId = character.Id;
|
user.CharacterId = character.Id;
|
||||||
|
|
||||||
|
if (genderSwap)
|
||||||
|
{
|
||||||
|
var charClothes = saveCharacter.CharacterClothes.Where(c => c.UserId == user.Id);
|
||||||
|
|
||||||
|
foreach(var cloth in charClothes)
|
||||||
|
{
|
||||||
|
saveCharacter.Remove(cloth);
|
||||||
|
saveCharacter.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (var x = 1; x <= 11; x++)
|
for (var x = 1; x <= 11; x++)
|
||||||
{
|
{
|
||||||
var s = 0;
|
var s = 0;
|
||||||
@@ -232,6 +260,8 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
if (!charExists || genderSwap)
|
||||||
|
{
|
||||||
var createClothes = new Database.Entities.CharacterCloth()
|
var createClothes = new Database.Entities.CharacterCloth()
|
||||||
{
|
{
|
||||||
UserId = userId,
|
UserId = userId,
|
||||||
@@ -243,12 +273,19 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
};
|
};
|
||||||
saveCharacter.CharacterClothes.Add(createClothes);
|
saveCharacter.CharacterClothes.Add(createClothes);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (charExists)
|
||||||
|
{
|
||||||
|
user.BankAccount.Balance -= 15000;
|
||||||
|
if(user.FreeSurgery == true) user.FreeSurgery = false;
|
||||||
|
}
|
||||||
saveCharacter.SaveChanges();
|
saveCharacter.SaveChanges();
|
||||||
}
|
}
|
||||||
//HeadOverlay makeupHo = new HeadOverlay()
|
//HeadOverlay makeupHo = new HeadOverlay()
|
||||||
@@ -270,6 +307,12 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
player.SafeTeleport(Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING, true);
|
player.SafeTeleport(Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING, true);
|
||||||
player.TriggerEvent("draw", player.Name, player.Handle.Value);
|
player.TriggerEvent("draw", player.Name, player.Handle.Value);
|
||||||
player.Dimension = 0;
|
player.Dimension = 0;
|
||||||
|
|
||||||
|
if (charExists)
|
||||||
|
{
|
||||||
|
ApplyCharacter(player);
|
||||||
|
UpdateCharacterCloth.LoadCharacterDefaults(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -424,6 +467,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
public static void StartSurgery(Player player)
|
public static void StartSurgery(Player player)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
Character c = player.GetUser().GetCharacter();
|
Character c = player.GetUser().GetCharacter();
|
||||||
|
|
||||||
var PlayerCharacterData = new
|
var PlayerCharacterData = new
|
||||||
@@ -487,7 +531,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
BlushColor = c.BlushColor,
|
BlushColor = c.BlushColor,
|
||||||
LipstickColor = c.LipstickColor,
|
LipstickColor = c.LipstickColor,
|
||||||
ChestHairColor = c.ChestHairColor
|
ChestHairColor = c.ChestHairColor
|
||||||
};
|
};*/
|
||||||
|
|
||||||
var currentPlayerCreatorDimension = (uint)NAPI.Data.GetWorldData("playerCreatorDimension");
|
var currentPlayerCreatorDimension = (uint)NAPI.Data.GetWorldData("playerCreatorDimension");
|
||||||
currentPlayerCreatorDimension++;
|
currentPlayerCreatorDimension++;
|
||||||
@@ -495,7 +539,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
|
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
|
||||||
player.SafeTeleport(new Vector3(266.472, -1339.1357, 24.5378));
|
player.SafeTeleport(new Vector3(266.472, -1339.1357, 24.5378));
|
||||||
player.Heading = 146.35101f;
|
player.Heading = 146.35101f;
|
||||||
player.TriggerEvent("toggleSurgery", JsonConvert.SerializeObject(PlayerCharacterData));
|
player.TriggerEvent("toggleCreator", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[RemoteEvent("surgeryLeave")]
|
[RemoteEvent("surgeryLeave")]
|
||||||
@@ -504,6 +548,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
player.Dimension = 0;
|
player.Dimension = 0;
|
||||||
player.SafeTeleport(new Vector3(258.581, -1345.1406, 24.5378), Main.DEFAULT_SPAWN_HEADING, true);
|
player.SafeTeleport(new Vector3(258.581, -1345.1406, 24.5378), Main.DEFAULT_SPAWN_HEADING, true);
|
||||||
ApplyCharacter(player);
|
ApplyCharacter(player);
|
||||||
|
UpdateCharacterCloth.LoadCharacterDefaults(player);
|
||||||
}
|
}
|
||||||
[RemoteEvent("SaveSurgery")]
|
[RemoteEvent("SaveSurgery")]
|
||||||
public static void SaveSurgery(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)
|
public static void SaveSurgery(Player player, bool gender, string parentData, string featureData, string appearanceData, string hairAndColorData)
|
||||||
|
|||||||
Reference in New Issue
Block a user