diff --git a/resource/common/locale/English.json b/resource/common/locale/English.json index e155186..42b804a 100644 --- a/resource/common/locale/English.json +++ b/resource/common/locale/English.json @@ -39,8 +39,8 @@ "Country": "Country", "CurrentDay": "Current day", "DaysPassed": "Days passed", + "DisableCheats": "Disable cheats", "DisableReplay": "Disable F1 & F3 replay", - "DsiableCheats": "Disable cheats", "Enable": "Enable", "EnableText": "Forward: I\tBackward: K\n\nLeft: J\t\t Right: L\n\nSlower: RCtrl\tFaster: RShift\n\nZoom: Mouse wheel", "ExtraColors": "Extra colors", @@ -160,6 +160,75 @@ "VehStopKey": "Vehicle instant start", "Version": "Version" }, + "Player": { + "AimSkinChanger": "Aim skin changer", + "AimSkinChangerTip": "Changes to the ped, player is targeting with a weapon.\nTo use aim a ped with a weapon and press ", + "AppearanceTab": "Appearance", + "Armour": "Armour", + "Body": "Body", + "BountyYourself": "Bounty on yourself", + "BulletProof": "Bullet proof", + "CameraZoom": "Camera zoom", + "ChangeToCJ": "Change to CJ skin", + "ClothesTab": "Clothes", + "ClothesTip": "If CJ is wearing a full suit, click 'Extras' or 'Remove all' to remove it.", + "CollisionProof": "Collision proof", + "CoordCopied": "Coordinates copied", + "CopyCoordinates": "Copy coordinates", + "CustomSkinsDirTip": "Place your dff & txd files inside 'modloader/CustomSkins'", + "CustomSkinsTab": "Custom skins", + "CustomSkinsTip": "Note: Your txd & dff names can't exceed 8 characters. Don't change names while the game is running.", + "CustomSkinTutorial": "Custom skin allows to change player skins without replacing any existing game ped skins.\n\nSteps to enable 'Custom Skins',\n\n\n1. Download & install modloader\n\n2. Create a folder inside 'modloader' folder with the name 'CustomSkins'\n\n3. Download ped skins online ( .dff & .txd files) and put them inside.\n\n4. Restart your game.\n\n\n\nLimitations:\n\n1. Your .dff & .txd file names must not exceed 8 characters.\n\n2. Do not rename them while the game is running\n\n\nDoing so will crash your game.", + "CycleJump": "Higher cycle jumps", + "DownloadModloader": "Download modloader", + "DrunkEffect": "Drunk effect", + "Energy": "Energy", + "ExplosionProof": "Explosion proof", + "FastSprint": "Fast sprint", + "FastSprintTip": "Best to enable God Mode & Infinite sprint too", + "Fat": "Fat", + "FireProof": "Fire proof", + "FreeHealthcare": "Free healthcare", + "GodDisabled": "God mode disabled", + "GodEnabled": "God mode enabled", + "GodMode": "God mode", + "Health": "Health", + "HealthRegen": "Health regeneration", + "HealthRegenTip": "Player heals if not taken damage for 5 seconds", + "InfO2": "Infinite oxygen", + "InfSprint": "Infinite sprint", + "InvisPlayer": "Invisible player", + "LockControl": "Lock control", + "LungCapacity": "Lung capacity", + "MaxAppeal": "Max sex appeal", + "MaxHealth": "Max health", + "MeeleProof": "Meele proof", + "MegaJump": "Mega jump", + "MegaPunch": "Mega punch", + "Money": "Money", + "Muscle": "Muscle", + "NeedCJSkin": "You need to be in CJ skin", + "NeverGetHungry": "Never get hungry", + "NeverWanted": "Never wanted", + "NoFee": "No arrest fee", + "PedSkinsTab": "Ped skins", + "PlayerFlags": "Player flags,", + "RemoveAll": "Remove all", + "RemoveClothesTab": "Remove clothes", + "RespawnDieLoc": "Respawn die location", + "RespawnDieLocTip": "Respawn to the location you died from", + "Respect": "Respect", + "SkinChangeFrozen": "Player must be frozen to change skins", + "Skinny": "Skinny", + "SkinsTab": "Skins", + "SpecialNotImplement": "Spawning special peds isn't implemented yet", + "Stamina": "Stamina", + "Suicide": "Suicide", + "TopDownCamera": "Top down camera", + "TotalSkins": "Total skins: ", + "WantedLevel": "Wanted level", + "WorkSkinOnly": "Only contains the skins that works" + }, "Teleport": { "AddLocation": "Add location", "Coordinates": "Coordinates", @@ -316,13 +385,18 @@ "AddNew": "Add new", "AnimationPage": "Animation", "CheckboxTab": "Checkboxes", + "Default": "Def", + "Enabled": "Enabled", "GamePage": "Game", "Info": "Info", + "Maximum": "Max", "MenuPage": "Menu", "MenusTab": "Menus", + "Minimum": "Min", "PedPage": "Ped", "PlayerPage": "Player", "Search": "Search", + "SetValue": "Set value", "SpawnTab": "Spawn", "TeleportPage": "Teleport", "VehiclePage": "Vehicle", diff --git a/src/game.cpp b/src/game.cpp index d7f8367..c390778 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -430,11 +430,11 @@ void Game::ShowPage() if (ImGui::BeginTabBar("Game", ImGuiTabBarFlags_NoTooltip + ImGuiTabBarFlags_FittingPolicyScroll)) { - if (ImGui::BeginTabItem(TEXT("Windo.CheckboxTab"))) + if (ImGui::BeginTabItem(TEXT("Window.CheckboxTab"))) { ImGui::Spacing(); ImGui::Columns(2, nullptr, false); - if (ImGui::Checkbox(TEXT("Game.DsiableCheats"), &m_bDisableCheats)) + if (ImGui::Checkbox(TEXT("Game.DisableCheats"), &m_bDisableCheats)) { if (m_bDisableCheats) { @@ -573,7 +573,7 @@ void Game::ShowPage() ImGui::Columns(1); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem(TEXT("Game.MenusTab"))) + if (ImGui::BeginTabItem(TEXT("Window.MenusTab"))) { #ifdef GTASA if (ImGui::CollapsingHeader(TEXT("Game.CurrentDay"))) diff --git a/src/player.cpp b/src/player.cpp index 4717ac7..6e6b9c7 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -224,7 +224,7 @@ void Player::Init() { if (m_bGodMode) { - SetHelpMessage("God mode disabled", false, false, false); + SetHelpMessage(TEXT("Player.GodDisabled")); #ifdef GTASA patch::Set(0x96916D, m_bGodMode, false); player->m_nPhysicalFlags.bBulletProof = 0; @@ -249,7 +249,7 @@ void Player::Init() } else { - SetHelpMessage("God mode enabled", false, false, false); + SetHelpMessage(TEXT("Player.GodEnabled")); m_bGodMode = true; } } @@ -351,7 +351,7 @@ void Player::ChangePlayerModel(std::string& cat, std::string& key, std::string& // CStreaming::LoadAllRequestedModels(true); // player->SetModelIndex(109); // CStreaming::SetMissionDoesntRequireSpecialChar(109); - SetHelpMessage("Spawning special peds isn't implemented yet.", false, false, false); + SetHelpMessage(TEXT("Player.SpecialNotImplement")); } else { @@ -375,16 +375,16 @@ void Player::ShowPage() #endif CPlayerInfo *pInfo = &CWorld::Players[CWorld::PlayerInFocus]; - if (ImGui::Button("Copy coordinates", ImVec2(Ui::GetSize(2)))) + if (ImGui::Button(TEXT("Player.CopyCoordinates"), ImVec2(Ui::GetSize(2)))) { CVector pos = pPlayer->GetPosition(); std::string text = std::to_string(pos.x) + ", " + std::to_string(pos.y) + ", " + std::to_string(pos.z); ImGui::SetClipboardText(text.c_str()); - SetHelpMessage("Coordinates copied", false, false, false); + SetHelpMessage(TEXT("Player.CoordCopied")); } ImGui::SameLine(); - if (ImGui::Button("Suicide", ImVec2(Ui::GetSize(2)))) + if (ImGui::Button(TEXT("Player.Suicide"), ImVec2(Ui::GetSize(2)))) { pPlayer->m_fHealth = 0.0; } @@ -393,7 +393,7 @@ void Player::ShowPage() if (ImGui::BeginTabBar("Player", ImGuiTabBarFlags_NoTooltip + ImGuiTabBarFlags_FittingPolicyScroll)) { - if (ImGui::BeginTabItem("Checkboxes")) + if (ImGui::BeginTabItem(TEXT("Window.CheckboxTab"))) { ImGui::Spacing(); @@ -402,33 +402,26 @@ void Player::ShowPage() ImGui::Columns(2, 0, false); #ifdef GTASA - Ui::CheckboxAddress("Bounty on yourself", 0x96913F); + Ui::CheckboxAddress(TEXT("Player.BountyYourself"), 0x96913F); ImGui::BeginDisabled(m_TopDownCamera::m_bEnabled); - if (Ui::CheckboxWithHint("Drunk effect", &m_bDrunkEffect)) + if (Ui::CheckboxWithHint(TEXT("Player.DrunkEffect"), &m_bDrunkEffect)) { if (!m_bDrunkEffect) { Command (0, 0); } } - if (Ui::CheckboxWithHint("Fast Sprint", &m_bFastSprint, "Best to enable God Mode & Infinite sprint too")) + if (Ui::CheckboxWithHint(TEXT("Player.FastSprint"), &m_bFastSprint, TEXT("Player.FastSprintTip"))) { - if(m_bFastSprint) - { - patch::Set(0x8D2458, 0.1f); - } - else - { - patch::Set(0x8D2458, 5.0f); - } + patch::Set(0x8D2458, m_bFastSprint ? 0.1f : 5.0f); } ImGui::EndDisabled(); #endif - Ui::CheckboxAddress("Free healthcare", BY_GAME((int)&pInfo->m_bFreeHealthCare, + Ui::CheckboxAddress(TEXT("Player.FreeHealthcare"), BY_GAME((int)&pInfo->m_bFreeHealthCare, (int)&pInfo->m_bFreeHealthCare, (int)&pInfo->m_bGetOutOfHospitalFree)); - if (Ui::CheckboxWithHint("God mode", &m_bGodMode)) + if (Ui::CheckboxWithHint(TEXT("Player.GodMode"), &m_bGodMode)) { #ifdef GTASA patch::Set(0x96916D, m_bGodMode, false); @@ -451,39 +444,39 @@ void Player::ShowPage() pPlayer->m_nEntityFlags.bMeleeProof = m_bGodMode; #endif } - Ui::CheckboxWithHint("Health regeneration", &m_bHealthRegen, "Player heals if not taken damage for 5 seconds"); + Ui::CheckboxWithHint(TEXT("Player.HealthRegen"), &m_bHealthRegen, TEXT("Player.HealthRegenTip")); #ifdef GTASA - Ui::CheckboxAddress("Higher cycle jumps", 0x969161); - Ui::CheckboxAddress("Infinite oxygen", 0x96916E); - if (Ui::CheckboxBitFlag("Invisible player", pPlayer->m_nPedFlags.bDontRender)) + Ui::CheckboxAddress(TEXT("Player.CycleJump"), 0x969161); + Ui::CheckboxAddress(TEXT("Player.InfO2"), 0x96916E); + if (Ui::CheckboxBitFlag(TEXT("Player.InvisPlayer"), pPlayer->m_nPedFlags.bDontRender)) { pPlayer->m_nPedFlags.bDontRender = (pPlayer->m_nPedFlags.bDontRender == 1) ? 0 : 1; } - Ui::CheckboxAddress("Infinite sprint", 0xB7CEE4); + Ui::CheckboxAddress(TEXT("Player.InfSprint"), 0xB7CEE4); #else - Ui::CheckboxAddress("Infinite sprint", BY_GAME(NULL, (int)&pInfo->m_bNeverGetsTired, (int)&pInfo->m_bInfiniteSprint)); + Ui::CheckboxAddress(TEXT("Player.InfSprint"), BY_GAME(NULL, (int)&pInfo->m_bNeverGetsTired, (int)&pInfo->m_bInfiniteSprint)); #endif ImGui::NextColumn(); #ifdef GTASA - if (Ui::CheckboxBitFlag("Lock control", pad->bPlayerSafe)) + if (Ui::CheckboxBitFlag(TEXT("Player.LockControl"), pad->bPlayerSafe)) { pad->bPlayerSafe = (pad->bPlayerSafe == 1) ? 0 : 1; } - Ui::CheckboxAddressEx("Max sex appeal", 0x969180, 1, 0); - Ui::CheckboxAddress("Mega jump", 0x96916C); - Ui::CheckboxAddress("Mega punch", 0x969173); - Ui::CheckboxAddress("Never get hungry", 0x969174); + Ui::CheckboxAddressEx(TEXT("Player.MaxAppeal"), 0x969180, 1, 0); + Ui::CheckboxAddress(TEXT("Player.MegaJump"), 0x96916C); + Ui::CheckboxAddress(TEXT("Player.MegaPunch"), 0x969173); + Ui::CheckboxAddress(TEXT("Player.NeverGetHungry"), 0x969174); bool never_wanted = patch::Get(0x969171, false); - if (Ui::CheckboxWithHint("Never wanted", &never_wanted)) + if (Ui::CheckboxWithHint(TEXT("Player.NeverWanted"), &never_wanted)) { CCheat::NotWantedCheat(); } #else static bool neverWanted = false; - if (Ui::CheckboxWithHint("Never wanted", &neverWanted)) + if (Ui::CheckboxWithHint(TEXT("Player.NeverWanted"), &neverWanted)) { if (neverWanted) { @@ -511,19 +504,19 @@ void Player::ShowPage() } } #endif - Ui::CheckboxAddress("No arrest fee", (int)&pInfo->m_bGetOutOfJailFree); - Ui::CheckboxWithHint("Respawn die location", &m_KeepPosition::m_bEnabled, "Respawn to the location you died from"); + Ui::CheckboxAddress(TEXT("Player.NoFee"), (int)&pInfo->m_bGetOutOfJailFree); + Ui::CheckboxWithHint(TEXT("Player.RespawnDieLoc"), &m_KeepPosition::m_bEnabled, TEXT("Player.RespawnDieLocTip")); ImGui::Columns(1); ImGui::NewLine(); - ImGui::TextWrapped("Player flags,"); + ImGui::TextWrapped(TEXT("Player.PlayerFlags")); ImGui::Columns(2, 0, false); bool state = BY_GAME(pPlayer->m_nPhysicalFlags.bBulletProof, pPlayer->m_nFlags.bBulletProof, pPlayer->m_nEntityFlags.bBulletProof); - if (Ui::CheckboxWithHint("Bullet proof", &state, nullptr, m_bGodMode)) + if (Ui::CheckboxWithHint(TEXT("Player.BulletProof"), &state, nullptr, m_bGodMode)) { BY_GAME(pPlayer->m_nPhysicalFlags.bBulletProof, pPlayer->m_nFlags.bBulletProof, pPlayer->m_nEntityFlags.bBulletProof) = state; @@ -531,7 +524,7 @@ void Player::ShowPage() state = BY_GAME(pPlayer->m_nPhysicalFlags.bCollisionProof, pPlayer->m_nFlags.bCollisionProof, pPlayer->m_nEntityFlags.bCollisionProof); - if (Ui::CheckboxWithHint("Collision proof", &state, nullptr, m_bGodMode)) + if (Ui::CheckboxWithHint(TEXT("Player.CollisionProof"), &state, nullptr, m_bGodMode)) { BY_GAME(pPlayer->m_nPhysicalFlags.bCollisionProof, pPlayer->m_nFlags.bCollisionProof, pPlayer->m_nEntityFlags.bCollisionProof) = state; @@ -539,7 +532,7 @@ void Player::ShowPage() state = BY_GAME(pPlayer->m_nPhysicalFlags.bExplosionProof, pPlayer->m_nFlags.bExplosionProof, pPlayer->m_nEntityFlags.bExplosionProof); - if (Ui::CheckboxWithHint("Explosion proof", &state, nullptr, m_bGodMode)) + if (Ui::CheckboxWithHint(TEXT("Player.ExplosionProof"), &state, nullptr, m_bGodMode)) { BY_GAME(pPlayer->m_nPhysicalFlags.bExplosionProof, pPlayer->m_nFlags.bExplosionProof, pPlayer->m_nEntityFlags.bExplosionProof) = state; @@ -549,7 +542,7 @@ void Player::ShowPage() state = BY_GAME(pPlayer->m_nPhysicalFlags.bFireProof, pPlayer->m_nFlags.bFireProof, pPlayer->m_nEntityFlags.bFireProof); - if (Ui::CheckboxWithHint("Fire proof", &state, nullptr, m_bGodMode)) + if (Ui::CheckboxWithHint(TEXT("Player.FireProof"), &state, nullptr, m_bGodMode)) { BY_GAME(pPlayer->m_nPhysicalFlags.bFireProof, pPlayer->m_nFlags.bFireProof, pPlayer->m_nEntityFlags.bFireProof) = state; @@ -557,7 +550,7 @@ void Player::ShowPage() state = BY_GAME(pPlayer->m_nPhysicalFlags.bMeeleProof, pPlayer->m_nFlags.bMeleeProof, pPlayer->m_nEntityFlags.bMeleeProof); - if (Ui::CheckboxWithHint("Meele proof", &state, nullptr, m_bGodMode)) + if (Ui::CheckboxWithHint(TEXT("Player.MeeleProof"), &state, nullptr, m_bGodMode)) { BY_GAME(pPlayer->m_nPhysicalFlags.bMeeleProof, pPlayer->m_nFlags.bMeleeProof, pPlayer->m_nEntityFlags.bMeleeProof) = state; @@ -567,38 +560,44 @@ void Player::ShowPage() ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Menus")) + if (ImGui::BeginTabItem(TEXT("Window.MenusTab"))) { ImGui::BeginChild("PlayerMenus"); - Ui::EditReference("Armour", pPlayer->m_fArmour, 0, 100, 150); + Ui::EditReference(TEXT("Player.Armour"), pPlayer->m_fArmour, 0, 100, 150); #ifdef GTASA - if (ImGui::CollapsingHeader("Body")) + if (ImGui::CollapsingHeader(TEXT("Player.Body"))) { if (pPlayer->m_nModelIndex == 0) { ImGui::Columns(3, 0, false); - if (ImGui::RadioButton("Fat", &m_nUiBodyState, 2)) + if (ImGui::RadioButton(TEXT("Player.Fat"), &m_nUiBodyState, 2)) + { CCheat::FatCheat(); + } ImGui::NextColumn(); - if (ImGui::RadioButton("Muscle", &m_nUiBodyState, 1)) + if (ImGui::RadioButton(TEXT("Player.Muscle"), &m_nUiBodyState, 1)) + { CCheat::MuscleCheat(); + } ImGui::NextColumn(); - if (ImGui::RadioButton("Skinny", &m_nUiBodyState, 0)) + if (ImGui::RadioButton(TEXT("Player.Skinny"), &m_nUiBodyState, 0)) + { CCheat::SkinnyCheat(); + } ImGui::Columns(1); } else { - ImGui::TextWrapped("You need to be in CJ skin."); + ImGui::TextWrapped(TEXT("Player.NeedCJSkin")); ImGui::Spacing(); - if (ImGui::Button("Change to CJ skin", ImVec2(Ui::GetSize(1)))) + if (ImGui::Button(TEXT("Player.ChangeToCJ"), ImVec2(Ui::GetSize(1)))) { pPlayer->SetModelIndex(0); Util::ClearCharTasksVehCheck(pPlayer); @@ -608,39 +607,39 @@ void Player::ShowPage() ImGui::Separator(); } - Ui::EditStat("Energy", STAT_ENERGY); - Ui::EditStat("Fat", STAT_FAT); + Ui::EditStat(TEXT("Player.Energy"), STAT_ENERGY); + Ui::EditStat(TEXT("Player.Fat"), STAT_FAT); #endif - Ui::EditReference("Health", pPlayer->m_fHealth, 0, 100, BY_GAME(static_cast(pPlayer->m_fMaxHealth), 100, 100)); + Ui::EditReference(TEXT("Player.Health"), pPlayer->m_fHealth, 0, 100, BY_GAME(static_cast(pPlayer->m_fMaxHealth), 100, 100)); #ifdef GTASA - Ui::EditStat("Lung capacity", STAT_LUNG_CAPACITY); - Ui::EditStat("Max health", STAT_MAX_HEALTH, 0, 569, 1450); - Ui::EditAddress("Money", 0xB7CE50, -99999999, 0, 99999999); + Ui::EditStat(TEXT("Player.LungCapacity"), STAT_LUNG_CAPACITY); + Ui::EditStat(TEXT("Player.MaxHealth"), STAT_MAX_HEALTH, 0, 569, 1450); + Ui::EditAddress(TEXT("Player.Money"), 0xB7CE50, -99999999, 0, 99999999); #else int money = pInfo->m_nMoney; - Ui::EditAddress("Money", (int)&money, -9999999, 0, 99999999); + Ui::EditAddress(TEXT("Player.Money"), (int)&money, -9999999, 0, 99999999); pInfo->m_nMoney = money; pInfo->m_nDisplayMoney = money; #endif #ifdef GTASA - Ui::EditStat("Muscle", STAT_MUSCLE); - Ui::EditStat("Respect", STAT_RESPECT); - Ui::EditStat("Stamina", STAT_STAMINA); - if (ImGui::CollapsingHeader("Top down camera")) + Ui::EditStat(TEXT("Player.Muscle"), STAT_MUSCLE); + Ui::EditStat(TEXT("Player.Respect"), STAT_RESPECT); + Ui::EditStat(TEXT("Player.Stamina"), STAT_STAMINA); + if (ImGui::CollapsingHeader(TEXT("Player.TopDownCamera"))) { - if (ImGui::Checkbox("Enabled", &m_TopDownCamera::m_bEnabled)) + if (ImGui::Checkbox(TEXT("Window.Enabled"), &m_TopDownCamera::m_bEnabled)) { Command(); } ImGui::Spacing(); - ImGui::SliderFloat("Camera zoom", &m_TopDownCamera::m_fOffset, 20.0f, 60.0f); + ImGui::SliderFloat(TEXT("Player.CameraZoom"), &m_TopDownCamera::m_fOffset, 20.0f, 60.0f); ImGui::Spacing(); ImGui::Separator(); } #endif - if (ImGui::CollapsingHeader("Wanted level")) + if (ImGui::CollapsingHeader(TEXT("Player.WantedLevel"))) { #ifdef GTASA int val = pPlayer->m_pPlayerData->m_pWanted->m_nWantedLevel; @@ -652,16 +651,16 @@ void Player::ShowPage() #endif ImGui::Columns(3, 0, false); - ImGui::Text("Min: 0"); + ImGui::Text("%s: 0", TEXT("Window.Minimum")); ImGui::NextColumn(); - ImGui::Text("Def: 0"); + ImGui::Text("%s: 0", TEXT("Window.Default")); ImGui::NextColumn(); - ImGui::Text("Max: %d", max_wl); + ImGui::Text("%s: %d", TEXT("Window.Maximum"), max_wl); ImGui::Columns(1); ImGui::Spacing(); - if (ImGui::InputInt("Set value##Wanted level", &val)) + if (ImGui::InputInt(TEXT("Window.SetValue"), &val)) { #ifdef GTASA pPlayer->CheatWantedLevel(val); @@ -673,7 +672,7 @@ void Player::ShowPage() } ImGui::Spacing(); - if (ImGui::Button("Minimum##Wanted level", Ui::GetSize(3))) + if (ImGui::Button(TEXT("Window.Minimum"), Ui::GetSize(3))) { #ifdef GTASA pPlayer->CheatWantedLevel(0); @@ -686,7 +685,7 @@ void Player::ShowPage() ImGui::SameLine(); - if (ImGui::Button("Default##Wanted level", Ui::GetSize(3))) + if (ImGui::Button(TEXT("Window.Default"), Ui::GetSize(3))) { #ifdef GTASA pPlayer->CheatWantedLevel(0); @@ -699,7 +698,7 @@ void Player::ShowPage() ImGui::SameLine(); - if (ImGui::Button("Maximum##Wanted level", Ui::GetSize(3))) + if (ImGui::Button(TEXT("Window.Maximum"), Ui::GetSize(3))) { #ifdef GTASA pPlayer->CheatWantedLevel(max_wl); @@ -718,22 +717,21 @@ void Player::ShowPage() } #ifdef GTASA - if (ImGui::BeginTabItem("Appearance")) + if (ImGui::BeginTabItem(TEXT("Player.AppearanceTab"))) { ImGui::Spacing(); - if (Ui::CheckboxWithHint("Aim skin changer", &m_bAimSkinChanger, - (("Changes to the ped, player is targeting with a weapon.\nTo use aim a ped with a weapon and press ") - + aimSkinChanger.Pressed()))) + if (Ui::CheckboxWithHint(TEXT("Player.AimSkinChanger"), &m_bAimSkinChanger, TEXT("Player.AimSkinChangerTip") + aimSkinChanger.Pressed())) + { gConfig.SetValue("aim_skin_changer", m_bAimSkinChanger); + } if (ImGui::BeginTabBar("AppearanceTabBar")) { - if (ImGui::BeginTabItem("Clothes")) + if (ImGui::BeginTabItem(TEXT("Player.ClothesTab"))) { if (pPlayer->m_nModelIndex == 0) { - Ui::DrawImages(m_ClothData, ChangePlayerCloth, nullptr, - [](std::string str) + Ui::DrawImages(m_ClothData, ChangePlayerCloth, nullptr, [](std::string str) { std::stringstream ss(str); std::string temp; @@ -746,10 +744,10 @@ void Player::ShowPage() } else { - ImGui::TextWrapped("You need to be in CJ skin."); + ImGui::TextWrapped(TEXT("Player.NeedCJSkin")); ImGui::Spacing(); - if (ImGui::Button("Change to CJ skin", ImVec2(Ui::GetSize(1)))) + if (ImGui::Button(TEXT("Player.ChangeToCJ"), ImVec2(Ui::GetSize(1)))) { pPlayer->SetModelIndex(0); Util::ClearCharTasksVehCheck(pPlayer); @@ -758,14 +756,14 @@ void Player::ShowPage() ImGui::EndTabItem(); } if (pPlayer->m_nModelIndex == 0 - && ImGui::BeginTabItem("Remove Clothes")) + && ImGui::BeginTabItem(TEXT("Player.RemoveClothesTab"))) { - ImGui::TextWrapped("If CJ is wearing a full suit, click 'Extras' or 'Remove all' to remove it."); + ImGui::TextWrapped(TEXT("Player.ClothesTip")); ImGui::Spacing(); ImGui::BeginChild("ClothesRemove"); size_t count = 0; - if (ImGui::Button("Remove all", ImVec2(Ui::GetSize(2)))) + if (ImGui::Button(TEXT("Player.RemoveAll"), ImVec2(Ui::GetSize(2)))) { CPlayerPed* player = FindPlayerPed(); for (uint i = 0; i < 18; i++) @@ -793,7 +791,7 @@ void Player::ShowPage() ImGui::EndChild(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Ped skins")) + if (ImGui::BeginTabItem(TEXT("Player.PedSkinsTab"))) { Ui::DrawImages(Ped::m_PedData, ChangePlayerModel, nullptr, [](std::string str) @@ -802,19 +800,18 @@ void Player::ShowPage() }); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("Custom skins")) + if (ImGui::BeginTabItem(TEXT("Player.CustomSkinsTab"))) { ImGui::Spacing(); if (m_bModloaderInstalled) { - Ui::FilterWithHint("Search", m_ClothData.m_Filter, - std::string("Total skins: " + std::to_string(m_CustomSkins::m_List.size())) + Ui::FilterWithHint(TEXT("Window.Search"), m_ClothData.m_Filter, + std::string(TEXT("Player.TotalSkins") + std::to_string(m_CustomSkins::m_List.size())) .c_str()); - Ui::ShowTooltip("Place your dff & txd files inside 'modloader/CustomSkins'"); + Ui::ShowTooltip(TEXT("Player.CustomSkinsDirTip")); ImGui::Spacing(); - ImGui::TextWrapped( - "Note: Your txd & dff names can't exceed 8 characters. Don't change names while the game is running."); + ImGui::TextWrapped(TEXT("Player.CustomSkinsTip")); ImGui::Spacing(); for (std::string name : m_CustomSkins::m_List) { @@ -829,19 +826,9 @@ void Player::ShowPage() } else { - ImGui::TextWrapped( - "Custom skin allows to change player skins without replacing any existing game ped skins.\n\ -Steps to enable 'Custom Skins',\n\n\ -1. Download & install modloader\n\ -2. Create a folder inside 'modloader' folder with the name 'CustomSkins'\n\ -3. Download ped skins online ( .dff & .txd files) and put them inside.\n\ -4. Restart your game.\n\n\n\ -Limitations:\n\ -1. Your .dff & .txd file names must not exceed 8 characters.\n\ -2. Do not rename them while the game is running\n\ -\nDoing so will crash your game."); + ImGui::TextWrapped(TEXT("Player.CustomSkinTutorial")); ImGui::Spacing(); - if (ImGui::Button("Download Modloader", ImVec2(Ui::GetSize(1)))) + if (ImGui::Button(TEXT("Player.DownloadModloader"), ImVec2(Ui::GetSize(1)))) ShellExecute(NULL, "open", "https://gtaforums.com/topic/669520-mod-loader/", NULL, NULL, SW_SHOWNORMAL); } @@ -852,14 +839,14 @@ Limitations:\n\ ImGui::EndTabItem(); } #else - if (ImGui::BeginTabItem("Skins")) + if (ImGui::BeginTabItem(TEXT("Player.SkinsTab"))) { ImGui::Spacing(); #ifdef GTA3 - ImGui::TextWrapped("Player must be frozen to change skins."); + ImGui::TextWrapped(TEXT("Player.SkinChangeFrozen")); CPad::GetPad(0)->m_bDisablePlayerControls = true; #else - ImGui::TextWrapped("Only contains the skins that works."); + ImGui::TextWrapped(TEXT("Player.WorkSkinOnly")); #endif Ui::DrawJSON(skinData, ChangePlayerModel, nullptr); ImGui::EndTabItem(); diff --git a/src/version.h b/src/version.h index e4c4689..5fa8921 100644 --- a/src/version.h +++ b/src/version.h @@ -2,5 +2,5 @@ #define MENU_NAME "Cheat Menu" #define MENU_VERSION_NUMBER "3.2" #define MENU_VERSION MENU_VERSION_NUMBER"-beta" -#define BUILD_NUMBER "20220221" +#define BUILD_NUMBER "20220226" #define MENU_TITLE MENU_NAME " v" MENU_VERSION