Release v1.2.3.0
Dual delay system with collapsible UI - Added separate Initial Delay and Step Delay sliders for better timing control - Fixed custom delay bug where 290ms custom was failing vs 290ms default - Implemented collapsible "Set Custom Delays" section for cleaner UI - Added internal "Use Custom Delays" checkbox for easy on/off control - Users can now configure delays, enable them, and collapse section to save space - Updated config system to save/load both delay values
This commit is contained in:
parent
4adbe16698
commit
995dc8b505
5 changed files with 53 additions and 27 deletions
|
|
@ -61,7 +61,7 @@ void AutomationLogic::ApplyHealerBoons() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
g_api->GameBinds.InvokeAsync(EGameBinds_MiscInteract, 50);
|
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);
|
Sleep(initialDelay);
|
||||||
|
|
||||||
int delay = g_state.useCustomDelays ? g_state.stepDelay : 290;
|
int delay = g_state.useCustomDelays ? g_state.stepDelay : 290;
|
||||||
|
|
@ -128,7 +128,7 @@ void AutomationLogic::ApplyAllBoons() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
g_api->GameBinds.InvokeAsync(EGameBinds_MiscInteract, 50);
|
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);
|
Sleep(initialDelay);
|
||||||
|
|
||||||
for (int i = 0; i < 20; i++) {
|
for (int i = 0; i < 20; i++) {
|
||||||
|
|
@ -182,7 +182,7 @@ void AutomationLogic::ApplyGolemSettings() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
g_api->GameBinds.InvokeAsync(EGameBinds_MiscInteract, 50);
|
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);
|
Sleep(initialDelay);
|
||||||
|
|
||||||
for (int i = 0; i < 25; i++) {
|
for (int i = 0; i < 25; i++) {
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,10 @@ struct GolemHelperState {
|
||||||
bool showUI = false;
|
bool showUI = false;
|
||||||
bool useCustomDelays = false;
|
bool useCustomDelays = false;
|
||||||
bool showAdvanced = false;
|
bool showAdvanced = false;
|
||||||
|
bool showTimingSettings = false;
|
||||||
int debugCounter = 0;
|
int debugCounter = 0;
|
||||||
|
|
||||||
|
int initialDelay = 390;
|
||||||
int stepDelay = 290;
|
int stepDelay = 290;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,13 @@ void ConfigManager::SaveCustomDelaySettings() {
|
||||||
configFile << "[GolemHelper]" << std::endl;
|
configFile << "[GolemHelper]" << std::endl;
|
||||||
configFile << "useCustomDelays=" << (g_state.useCustomDelays ? "1" : "0") << std::endl;
|
configFile << "useCustomDelays=" << (g_state.useCustomDelays ? "1" : "0") << std::endl;
|
||||||
configFile << "stepDelay=" << g_state.stepDelay << std::endl;
|
configFile << "stepDelay=" << g_state.stepDelay << std::endl;
|
||||||
|
configFile << "initialDelay=" << g_state.initialDelay << std::endl;
|
||||||
|
|
||||||
configFile.close();
|
configFile.close();
|
||||||
|
|
||||||
char logBuffer[200];
|
char logBuffer[250];
|
||||||
sprintf_s(logBuffer, "Custom delay settings saved: enabled=%s, delay=%dms",
|
sprintf_s(logBuffer, "Custom delay settings saved: enabled=%s, stepDelay=%dms, initialDelay=%dms",
|
||||||
g_state.useCustomDelays ? "true" : "false", g_state.stepDelay);
|
g_state.useCustomDelays ? "true" : "false", g_state.stepDelay, g_state.initialDelay);
|
||||||
g_api->Log(ELogLevel_INFO, "GolemHelper", logBuffer);
|
g_api->Log(ELogLevel_INFO, "GolemHelper", logBuffer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -66,13 +67,19 @@ void ConfigManager::LoadCustomDelaySettings() {
|
||||||
g_state.stepDelay = delay;
|
g_state.stepDelay = delay;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (key == "initialDelay") {
|
||||||
|
int delay = std::stoi(value);
|
||||||
|
if (delay >= 100 && delay <= 1000) {
|
||||||
|
g_state.initialDelay = delay;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configFile.close();
|
configFile.close();
|
||||||
|
|
||||||
char logBuffer[200];
|
char logBuffer[250];
|
||||||
sprintf_s(logBuffer, "Custom delay settings loaded: enabled=%s, delay=%dms",
|
sprintf_s(logBuffer, "Custom delay settings loaded: enabled=%s, stepDelay=%dms, initialDelay=%dms",
|
||||||
g_state.useCustomDelays ? "true" : "false", g_state.stepDelay);
|
g_state.useCustomDelays ? "true" : "false", g_state.stepDelay, g_state.initialDelay);
|
||||||
g_api->Log(ELogLevel_INFO, "GolemHelper", logBuffer);
|
g_api->Log(ELogLevel_INFO, "GolemHelper", logBuffer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ void Load(AddonAPI* aApi) {
|
||||||
"Toggle GolemHelper UI"
|
"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", "<c=#00ff00>GolemHelper addon</c> loaded successfully!");
|
g_api->Log(ELogLevel_INFO, "GolemHelper", "<c=#00ff00>GolemHelper addon</c> loaded successfully!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -59,7 +59,7 @@ extern "C" __declspec(dllexport) AddonDefinition* GetAddonDef() {
|
||||||
def.Signature = -424248;
|
def.Signature = -424248;
|
||||||
def.APIVersion = NEXUS_API_VERSION;
|
def.APIVersion = NEXUS_API_VERSION;
|
||||||
def.Name = "GolemHelper";
|
def.Name = "GolemHelper";
|
||||||
def.Version = { 1, 2, 2, 0 };
|
def.Version = { 1, 2, 3, 0 };
|
||||||
def.Author = "Azrub";
|
def.Author = "Azrub";
|
||||||
def.Description = "Automates the process of setting optimal boon and golem configurations in the training area";
|
def.Description = "Automates the process of setting optimal boon and golem configurations in the training area";
|
||||||
def.Load = Load;
|
def.Load = Load;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ void UIManager::RenderUI() {
|
||||||
|
|
||||||
if (ImGui::Begin("GolemHelper", &g_state.showUI, ImGuiWindowFlags_AlwaysAutoResize)) {
|
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::Separator();
|
||||||
|
|
||||||
ImGui::Text("Status:");
|
ImGui::Text("Status:");
|
||||||
|
|
@ -143,36 +143,49 @@ void UIManager::RenderUI() {
|
||||||
|
|
||||||
ImGui::Spacing();
|
ImGui::Spacing();
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
ImGui::Text("Timing Settings");
|
|
||||||
|
if (ImGui::CollapsingHeader("Set Custom Delays")) {
|
||||||
|
|
||||||
bool oldUseCustomDelays = g_state.useCustomDelays;
|
bool oldUseCustomDelays = g_state.useCustomDelays;
|
||||||
int oldStepDelay = g_state.stepDelay;
|
int oldStepDelay = g_state.stepDelay;
|
||||||
|
int oldInitialDelay = g_state.initialDelay;
|
||||||
|
|
||||||
ImGui::Checkbox("Use Custom Step Delay", &g_state.useCustomDelays);
|
ImGui::Checkbox("Use Custom Delays", &g_state.useCustomDelays);
|
||||||
|
|
||||||
if (g_state.useCustomDelays) {
|
|
||||||
ImGui::SetNextItemWidth(205);
|
|
||||||
ImGui::SliderInt("", &g_state.stepDelay, 100, 1000, "%d ms");
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
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))) {
|
if (ImGui::Button("Reset to Default", ImVec2(120, 0))) {
|
||||||
g_state.stepDelay = 290;
|
g_state.stepDelay = 290;
|
||||||
|
g_state.initialDelay = 390;
|
||||||
ConfigManager::SaveCustomDelaySettings();
|
ConfigManager::SaveCustomDelaySettings();
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Slow Mode", ImVec2(80, 0))) {
|
if (ImGui::Button("Slow Mode", ImVec2(80, 0))) {
|
||||||
g_state.stepDelay = 1000;
|
g_state.stepDelay = 1000;
|
||||||
|
g_state.initialDelay = 600;
|
||||||
ConfigManager::SaveCustomDelaySettings();
|
ConfigManager::SaveCustomDelaySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::Spacing();
|
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) {
|
if (oldUseCustomDelays != g_state.useCustomDelays ||
|
||||||
|
oldStepDelay != g_state.stepDelay ||
|
||||||
|
oldInitialDelay != g_state.initialDelay) {
|
||||||
ConfigManager::SaveCustomDelaySettings();
|
ConfigManager::SaveCustomDelaySettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
|
@ -195,7 +208,9 @@ void UIManager::RenderOptions() {
|
||||||
g_state.hitboxType = HITBOX_SMALL;
|
g_state.hitboxType = HITBOX_SMALL;
|
||||||
g_state.useCustomDelays = false;
|
g_state.useCustomDelays = false;
|
||||||
g_state.showAdvanced = false;
|
g_state.showAdvanced = false;
|
||||||
|
g_state.showTimingSettings = false;
|
||||||
g_state.stepDelay = 290;
|
g_state.stepDelay = 290;
|
||||||
|
g_state.initialDelay = 390;
|
||||||
g_state.boonsEnabled = true;
|
g_state.boonsEnabled = true;
|
||||||
g_state.golemEnabled = true;
|
g_state.golemEnabled = true;
|
||||||
|
|
||||||
|
|
@ -241,6 +256,7 @@ void UIManager::RenderOptions() {
|
||||||
ImGui::Text("- Timing: %s", g_state.useCustomDelays ? "Custom" : "Default");
|
ImGui::Text("- Timing: %s", g_state.useCustomDelays ? "Custom" : "Default");
|
||||||
|
|
||||||
if (g_state.useCustomDelays) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue