diff --git a/GolemHelper/Automation/AutomationLogic.cpp b/GolemHelper/Automation/AutomationLogic.cpp index c71ab1f..93be3ca 100644 --- a/GolemHelper/Automation/AutomationLogic.cpp +++ b/GolemHelper/Automation/AutomationLogic.cpp @@ -61,7 +61,7 @@ void AutomationLogic::ApplyHealerBoons() { try { g_api->GameBinds.InvokeAsync(EGameBinds_MiscInteract, 50); - int initialDelay = g_state.useCustomDelays ? g_state.stepDelay : 390; + int initialDelay = g_state.useCustomDelays ? g_state.initialDelay : 390; Sleep(initialDelay); int delay = g_state.useCustomDelays ? g_state.stepDelay : 290; @@ -128,7 +128,7 @@ void AutomationLogic::ApplyAllBoons() { try { g_api->GameBinds.InvokeAsync(EGameBinds_MiscInteract, 50); - int initialDelay = g_state.useCustomDelays ? g_state.stepDelay : 390; + int initialDelay = g_state.useCustomDelays ? g_state.initialDelay : 390; Sleep(initialDelay); for (int i = 0; i < 20; i++) { @@ -182,7 +182,7 @@ void AutomationLogic::ApplyGolemSettings() { try { g_api->GameBinds.InvokeAsync(EGameBinds_MiscInteract, 50); - int initialDelay = g_state.useCustomDelays ? g_state.stepDelay : 390; + int initialDelay = g_state.useCustomDelays ? g_state.initialDelay : 390; Sleep(initialDelay); for (int i = 0; i < 25; i++) { @@ -234,4 +234,4 @@ void AutomationLogic::ApplyGolemSettings() { } g_api->Log(ELogLevel_INFO, "GolemHelper", "Golem settings sequence completed (25 steps)!"); -} +} \ No newline at end of file diff --git a/GolemHelper/Common/Types.h b/GolemHelper/Common/Types.h index df34ee4..ed400c4 100644 --- a/GolemHelper/Common/Types.h +++ b/GolemHelper/Common/Types.h @@ -28,8 +28,11 @@ struct GolemHelperState { bool showUI = false; bool useCustomDelays = false; bool showAdvanced = false; + bool showTimingSettings = false; int debugCounter = 0; - int stepDelay = 290; + + int initialDelay = 390; + int stepDelay = 290; }; struct MenuCoordinates { diff --git a/GolemHelper/Config/ConfigManager.cpp b/GolemHelper/Config/ConfigManager.cpp index 1a099b8..faaabd4 100644 --- a/GolemHelper/Config/ConfigManager.cpp +++ b/GolemHelper/Config/ConfigManager.cpp @@ -21,12 +21,13 @@ void ConfigManager::SaveCustomDelaySettings() { configFile << "[GolemHelper]" << std::endl; configFile << "useCustomDelays=" << (g_state.useCustomDelays ? "1" : "0") << std::endl; configFile << "stepDelay=" << g_state.stepDelay << std::endl; + configFile << "initialDelay=" << g_state.initialDelay << std::endl; configFile.close(); - char logBuffer[200]; - sprintf_s(logBuffer, "Custom delay settings saved: enabled=%s, delay=%dms", - g_state.useCustomDelays ? "true" : "false", g_state.stepDelay); + char logBuffer[250]; + sprintf_s(logBuffer, "Custom delay settings saved: enabled=%s, stepDelay=%dms, initialDelay=%dms", + g_state.useCustomDelays ? "true" : "false", g_state.stepDelay, g_state.initialDelay); g_api->Log(ELogLevel_INFO, "GolemHelper", logBuffer); } @@ -66,13 +67,19 @@ void ConfigManager::LoadCustomDelaySettings() { g_state.stepDelay = delay; } } + else if (key == "initialDelay") { + int delay = std::stoi(value); + if (delay >= 100 && delay <= 1000) { + g_state.initialDelay = delay; + } + } } configFile.close(); - char logBuffer[200]; - sprintf_s(logBuffer, "Custom delay settings loaded: enabled=%s, delay=%dms", - g_state.useCustomDelays ? "true" : "false", g_state.stepDelay); + char logBuffer[250]; + sprintf_s(logBuffer, "Custom delay settings loaded: enabled=%s, stepDelay=%dms, initialDelay=%dms", + g_state.useCustomDelays ? "true" : "false", g_state.stepDelay, g_state.initialDelay); g_api->Log(ELogLevel_INFO, "GolemHelper", logBuffer); } diff --git a/GolemHelper/GolemHelper.cpp b/GolemHelper/GolemHelper.cpp index 35f7d54..7d3c334 100644 --- a/GolemHelper/GolemHelper.cpp +++ b/GolemHelper/GolemHelper.cpp @@ -36,7 +36,7 @@ void Load(AddonAPI* aApi) { "Toggle GolemHelper UI" ); - g_api->Log(ELogLevel_INFO, "GolemHelper", "=== GolemHelper v1.2.2.0 Loaded ==="); + g_api->Log(ELogLevel_INFO, "GolemHelper", "=== GolemHelper v1.2.3.0 Loaded ==="); g_api->Log(ELogLevel_INFO, "GolemHelper", "GolemHelper addon loaded successfully!"); } @@ -59,7 +59,7 @@ extern "C" __declspec(dllexport) AddonDefinition* GetAddonDef() { def.Signature = -424248; def.APIVersion = NEXUS_API_VERSION; def.Name = "GolemHelper"; - def.Version = { 1, 2, 2, 0 }; + def.Version = { 1, 2, 3, 0 }; def.Author = "Azrub"; def.Description = "Automates the process of setting optimal boon and golem configurations in the training area"; def.Load = Load; diff --git a/GolemHelper/UI/UIManager.cpp b/GolemHelper/UI/UIManager.cpp index 8e30cae..d969fb0 100644 --- a/GolemHelper/UI/UIManager.cpp +++ b/GolemHelper/UI/UIManager.cpp @@ -13,7 +13,7 @@ void UIManager::RenderUI() { if (ImGui::Begin("GolemHelper", &g_state.showUI, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::TextColored(ImVec4(0.2f, 0.8f, 1.0f, 1.0f), "GolemHelper v1.2.2.0"); + ImGui::TextColored(ImVec4(0.2f, 0.8f, 1.0f, 1.0f), "GolemHelper v1.2.3.0"); ImGui::Separator(); ImGui::Text("Status:"); @@ -143,34 +143,47 @@ void UIManager::RenderUI() { ImGui::Spacing(); ImGui::Separator(); - ImGui::Text("Timing Settings"); - bool oldUseCustomDelays = g_state.useCustomDelays; - int oldStepDelay = g_state.stepDelay; + if (ImGui::CollapsingHeader("Set Custom Delays")) { - ImGui::Checkbox("Use Custom Step Delay", &g_state.useCustomDelays); + bool oldUseCustomDelays = g_state.useCustomDelays; + int oldStepDelay = g_state.stepDelay; + int oldInitialDelay = g_state.initialDelay; - if (g_state.useCustomDelays) { - ImGui::SetNextItemWidth(205); - ImGui::SliderInt("", &g_state.stepDelay, 100, 1000, "%d ms"); + ImGui::Checkbox("Use Custom Delays", &g_state.useCustomDelays); ImGui::Spacing(); + + ImGui::Text("Initial Delay (after F key):"); + ImGui::SetNextItemWidth(205); + ImGui::SliderInt("##initial", &g_state.initialDelay, 100, 1000, "%d ms"); + + ImGui::Text("Step Delay (between clicks):"); + ImGui::SetNextItemWidth(205); + ImGui::SliderInt("##step", &g_state.stepDelay, 100, 1000, "%d ms"); + + ImGui::Spacing(); + if (ImGui::Button("Reset to Default", ImVec2(120, 0))) { g_state.stepDelay = 290; + g_state.initialDelay = 390; ConfigManager::SaveCustomDelaySettings(); } ImGui::SameLine(); if (ImGui::Button("Slow Mode", ImVec2(80, 0))) { g_state.stepDelay = 1000; + g_state.initialDelay = 600; ConfigManager::SaveCustomDelaySettings(); } ImGui::Spacing(); - ImGui::TextColored(ImVec4(0.8f, 0.8f, 0.2f, 1.0f), "Increase delay if clicks fail"); - } + ImGui::TextColored(ImVec4(0.8f, 0.8f, 0.2f, 1.0f), "Increase delays if clicks fail"); - if (oldUseCustomDelays != g_state.useCustomDelays || oldStepDelay != g_state.stepDelay) { - ConfigManager::SaveCustomDelaySettings(); + if (oldUseCustomDelays != g_state.useCustomDelays || + oldStepDelay != g_state.stepDelay || + oldInitialDelay != g_state.initialDelay) { + ConfigManager::SaveCustomDelaySettings(); + } } } @@ -195,7 +208,9 @@ void UIManager::RenderOptions() { g_state.hitboxType = HITBOX_SMALL; g_state.useCustomDelays = false; g_state.showAdvanced = false; + g_state.showTimingSettings = false; g_state.stepDelay = 290; + g_state.initialDelay = 390; g_state.boonsEnabled = true; g_state.golemEnabled = true; @@ -241,6 +256,7 @@ void UIManager::RenderOptions() { ImGui::Text("- Timing: %s", g_state.useCustomDelays ? "Custom" : "Default"); if (g_state.useCustomDelays) { - ImGui::Text("- Custom Delay: %d ms", g_state.stepDelay); + ImGui::Text("- Step Delay: %d ms", g_state.stepDelay); + ImGui::Text("- Initial Delay: %d ms", g_state.initialDelay); } -} +} \ No newline at end of file