Finalize Surgery
This commit is contained in:
@@ -22,25 +22,16 @@ const localPlayer = mp.players.local;
|
||||
export default function charSurgery(globalData: IGlobalData) {
|
||||
|
||||
var creatorCamera: CameraMp;
|
||||
var newCharacter: 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 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];
|
||||
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],
|
||||
@@ -55,11 +46,13 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
|
||||
mp.events.add("toggleSurgery", (jsonCharacterData: string) => {
|
||||
if (!mp.cameras.exists(creatorCamera)) {
|
||||
activeSurgery = true;
|
||||
debugString[0] = 1;
|
||||
characterData = JSON.parse(jsonCharacterData);
|
||||
debugString[1] = 1;
|
||||
saveCharacter = characterData;
|
||||
debugString[1] = 2;
|
||||
loadCharacterData();
|
||||
debugString[2] = 1;
|
||||
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);
|
||||
@@ -72,7 +65,8 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
localPlayer.clearTasksImmediately();
|
||||
localPlayer.freezePosition(true);
|
||||
mp.game.cam.renderScriptCams(true, false, 0, true, false);
|
||||
debugString[3] = 1;
|
||||
debugString[3] = 4;
|
||||
applyCreatorOutfit();
|
||||
getCharacterMainMenu();
|
||||
}
|
||||
});
|
||||
@@ -132,31 +126,32 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
//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);
|
||||
|
||||
var featureItem = new UIMenuItem("Gesichtszüge", "Gesichtszüge des Charakters.")
|
||||
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 = [];
|
||||
@@ -164,14 +159,14 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
var angleItem = new UIMenuListItem("Drehung", "", new ItemsCollection(angles));
|
||||
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.HighlightedBackColor = new Color(25, 118, 210);
|
||||
creatorMainMenu.AddItem(saveItem);
|
||||
|
||||
creatorMainMenu.ListChange.on((item, listIndex) => {
|
||||
if (item === genderItem) {
|
||||
newCharacter.Gender = listIndex;
|
||||
saveCharacter.Gender = <boolean>listIndex;
|
||||
mp.events.callRemote("creator_GenderChange", listIndex);
|
||||
|
||||
setTimeout(() => {
|
||||
@@ -179,9 +174,9 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
applyCreatorOutfit();
|
||||
angleItem.Index = 0;
|
||||
resetParents();
|
||||
//resetParentsMenu(true);
|
||||
//resetFeaturesMenu(true);
|
||||
//resetAppearanceMenu(true);
|
||||
resetFeatures();
|
||||
resetAppearance();
|
||||
|
||||
}, 200);
|
||||
} else if (item === angleItem) {
|
||||
localPlayer.setHeading(parseFloat(angleItem.SelectedValue));
|
||||
@@ -192,46 +187,46 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
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 + "%");
|
||||
|
||||
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;
|
||||
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
skinSimilarityItem.Index = characterData.SkinSimilarity;
|
||||
//skinSimilarityItem.Index = characterData.SkinSimilarity;
|
||||
|
||||
var resetItem = new UIMenuItem("Zurücksetzen", "~r~Setzt die Eltern zurück. :'(");
|
||||
creatorParentsMenu.AddItem(resetItem);
|
||||
|
||||
creatorParentsMenu.ItemSelect.on((item, index) => {
|
||||
switch (item) {
|
||||
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();
|
||||
//creatorParentsMenu.RefreshIndex();
|
||||
break;
|
||||
if (item == resetItem) {
|
||||
resetParents();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -239,52 +234,43 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
updateParents();
|
||||
});
|
||||
|
||||
creatorParentsMenu.RefreshIndex();
|
||||
debugString[10] = 11;
|
||||
|
||||
return creatorParentsMenu;
|
||||
}
|
||||
|
||||
function updateParents() {
|
||||
localPlayer.setHeadBlendData(
|
||||
// shape
|
||||
Data.mothers[newCharacter.Mother],
|
||||
Data.fathers[newCharacter.Father],
|
||||
Data.mothers[motherItem.Index],
|
||||
Data.fathers[fatherItem.Index],
|
||||
0,
|
||||
|
||||
// skin
|
||||
Data.mothers[newCharacter.Mother],
|
||||
Data.fathers[newCharacter.Father],
|
||||
Data.mothers[motherItem.Index],
|
||||
Data.fathers[fatherItem.Index],
|
||||
0,
|
||||
|
||||
// mixes
|
||||
newCharacter.Similarity * 0.01,
|
||||
newCharacter.SkinSimilarity * 0.01,
|
||||
similarityItem.Index * 0.01,
|
||||
skinSimilarityItem.Index * 0.01,
|
||||
0.0,
|
||||
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
function resetParents() {
|
||||
localPlayer.setHeadBlendData(
|
||||
// shape
|
||||
Data.mothers[characterData.Mother],
|
||||
Data.fathers[characterData.Father],
|
||||
0,
|
||||
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();
|
||||
|
||||
// skin
|
||||
Data.mothers[characterData.Mother],
|
||||
Data.fathers[characterData.Father],
|
||||
0,
|
||||
|
||||
// mixes
|
||||
characterData.Similarity * 0.01,
|
||||
characterData.SkinSimilarity * 0.01,
|
||||
0.0,
|
||||
|
||||
false
|
||||
);
|
||||
updateParents();
|
||||
if (refresh) creatorParentsMenu.RefreshIndex();
|
||||
}
|
||||
|
||||
//Menü für Gesichtsmerkmale
|
||||
var featureItems = [];
|
||||
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);
|
||||
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];
|
||||
//tempFeatureItem.Index = loadedFeatures[i];
|
||||
}
|
||||
|
||||
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) => {
|
||||
switch (item) {
|
||||
case resetItem:
|
||||
for (var i = 0; i < Data.featureNames.length; i++) {
|
||||
featureItems[i].Index = loadedFeatures[i];
|
||||
updateFaceFeature(i);
|
||||
}
|
||||
resetFeatures();
|
||||
break;
|
||||
}
|
||||
});
|
||||
@@ -320,16 +303,24 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
updateFaceFeature(featureItems.indexOf(item));
|
||||
});
|
||||
|
||||
creatorFeaturesMenu.RefreshIndex();
|
||||
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 {
|
||||
|
||||
|
||||
@@ -338,7 +329,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
|
||||
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]);
|
||||
@@ -346,13 +337,13 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
var tempAppearanceItem = new UIMenuListItem(Data.appearanceNames[i], "", new ItemsCollection(items));
|
||||
appearanceItems.push(tempAppearanceItem);
|
||||
creatorAppearanceMenu.AddItem(tempAppearanceItem);
|
||||
tempAppearanceItem.Index = loadedAppearance[i];
|
||||
//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];
|
||||
//tempAppearanceOpacityItem.Index = loadedAppearanceOpacity[i];
|
||||
}
|
||||
|
||||
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) => {
|
||||
switch (item) {
|
||||
case resetItem:
|
||||
resetAppearanceMenu();
|
||||
resetAppearance();
|
||||
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);
|
||||
updateAppearance(idx);
|
||||
});
|
||||
|
||||
debugString[12] = 13;
|
||||
return creatorAppearanceMenu;
|
||||
}
|
||||
|
||||
@@ -379,7 +370,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
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++) {
|
||||
appearanceItems[i].Index = loadedAppearance[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 {
|
||||
|
||||
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);
|
||||
|
||||
@@ -455,17 +457,17 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
debugString[13] = 14;
|
||||
return creatorHairMenu;
|
||||
}
|
||||
|
||||
function updateHairAndColors() {
|
||||
localPlayer.setEyeColor(newCharacter.EyeColor);
|
||||
localPlayer.setHeadOverlayColor(1, 1, newCharacter.BeardColor, 0);
|
||||
localPlayer.setHeadOverlayColor(2, 1, newCharacter.EyebrowColor, 0);
|
||||
localPlayer.setHeadOverlayColor(5, 2, newCharacter.BlushColor, 0);
|
||||
localPlayer.setHeadOverlayColor(8, 2, newCharacter.LipstickColor, 0);
|
||||
localPlayer.setHeadOverlayColor(10, 1, newCharacter.ChestHairColor, 0);
|
||||
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) {
|
||||
@@ -473,23 +475,23 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
|
||||
switch (index) {
|
||||
case 1:
|
||||
color = newCharacter.BeardColor;
|
||||
color = saveCharacter.BeardColor;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
color = newCharacter.EyebrowColor;
|
||||
color = saveCharacter.EyebrowColor;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
color = newCharacter.BlushColor;
|
||||
color = saveCharacter.BlushColor;
|
||||
break;
|
||||
|
||||
case 8:
|
||||
color = newCharacter.LipstickColor;
|
||||
color = saveCharacter.LipstickColor;
|
||||
break;
|
||||
|
||||
case 10:
|
||||
color = newCharacter.ChestHairColor;
|
||||
color = saveCharacter.ChestHairColor;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -500,7 +502,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
}
|
||||
|
||||
function applyCreatorOutfit() {
|
||||
if (newCharacter.Gender === false) {
|
||||
if (saveCharacter.Gender === false) {
|
||||
localPlayer.setDefaultComponentVariation();
|
||||
localPlayer.setComponentVariation(3, 15, 0, 2);
|
||||
localPlayer.setComponentVariation(4, 21, 0, 2);
|
||||
@@ -518,6 +520,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
}
|
||||
|
||||
function leaveCreator() {
|
||||
activeSurgery = false;
|
||||
mp.gui.chat.show(true);
|
||||
mp.game.ui.displayRadar(true);
|
||||
mp.game.ui.displayHud(true);
|
||||
|
||||
Reference in New Issue
Block a user