adz89 Posted March 31, 2009 Share Posted March 31, 2009 Right then this is part of my Tribal Wars bot, but its to do with the menu, I've got this code: While 1=1 $msg = TrayGetMsg() If $msg = $defensiveitem Then IniWrite(@ProgramFilesDir & "\ARSoft\TribalwarsAI\setup.ini", "AI Settings", "stance", "Defensive") $stance = "Defensive" MsgBox(0, "Success", "Stance changed to "& $stance) ElseIf $msg = $balanceditem Then IniWrite(@ProgramFilesDir & "\ARSoft\TribalwarsAI\setup.ini", "AI Settings", "stance", "All Rounder") $stance = "All Rounder" MsgBox(0, "Success", "Stance changed to "& $stance) ElseIf $msg = $resourceitem Then IniWrite(@ProgramFilesDir & "\ARSoft\TribalwarsAI\setup.ini", "AI Settings", "stance", "Resources") $stance = "Resources" MsgBox(0, "Success", "Stance changed to "& $stance) ElseIf $msg = $showstanceitem Then ToolTip("Current Stance is "& $stance) ElseIf $msg = $runsetupitem Then $msg2 = MsgBox(4, "WARNING", "This will delete the set-up file on your computer, this will allow you to completely re-write all the settings, do you want to continue?") If $msg2 = 6 Then FileDelete(@ProgramFilesDir & "\ARSoft\TribalwarsAI\setup.ini") EndIf Else runbuildings() rununits() EndIf WEnd Which basically keeps my script running, and I thought I'd would stop when I click the icon, and then carry on... But it doesn't always respond to my menu clicks on the icon, and when I manage to get it to respond the program terminates, not what I wanted at all! Can anyone help me? Self confessed noob... Link to comment Share on other sites More sharing options...
Valuater Posted March 31, 2009 Share Posted March 31, 2009 (edited) Change it... I always use on-event for my Tray Icon Menu... always! 8) Edited March 31, 2009 by Valuater Link to comment Share on other sites More sharing options...
adz89 Posted March 31, 2009 Author Share Posted March 31, 2009 Change it... I always use on-event for my Tray Icon Menu... always!8)How do you mean?Would I take it out of my while loop altogether? Self confessed noob... Link to comment Share on other sites More sharing options...
Valuater Posted March 31, 2009 Share Posted March 31, 2009 (edited) How do you mean? Would I take it out of my while loop altogether? More like... Opt("TrayMenuMode", 1) Opt("TrayOnEventMode", 1) $defensiveitem = TrayCreateItem("Defensive") TrayItemSetOnEvent(-1, "_Defensive") $balanceditem = TrayCreateItem("All Rounders") TrayItemSetOnEvent(-1, "_Rounders") TrayCreateItem("") While 1 Sleep(100) runbuildings() ; place these two functions inside this loop if possible, that way your icon tray will act immediately rununits() WEnd ; ---- Functions ----- Func _Defensive() IniWrite(@ProgramFilesDir & "\ARSoft\TribalwarsAI\setup.ini", "AI Settings", "stance", "Defensive") $stance = "Defensive" MsgBox(0, "Success", "Stance changed to " & $stance) EndFunc ;==>_Defensive Func _Rounders() IniWrite(@ProgramFilesDir & "\ARSoft\TribalwarsAI\setup.ini", "AI Settings", "stance", "All Rounder") $stance = "All Rounder" MsgBox(0, "Success", "Stance changed to " & $stance) EndFunc ;==>_Rounders EDIT "place these two functions inside this loop if possible, that way your icon tray will act immediately" means.... place the code inside the loop and remove them from "functions" if possible 8) Edited March 31, 2009 by Valuater Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now