TwistedXion Posted July 18, 2017 Posted July 18, 2017 Ok so I'm making a game in auto it and I need some help with optimizing the code(making it shorter/faster or better ways of doing things) and if you could when you make suggestions please explain why you suggest those changes as I'm very new to autoit and am doing this project just to learn more about the language (first computer language I have ever tried to learn) thanks for any help in advance, also you may need to uncomment the #requireAdmin as it does need to make a dir to save a .ini file where all the info about your character. ps I know it's not much of a game but I have only been working on the code for a few hours and I will be adding a lot more stuff, so this is by no mean finished. expandcollapse popup#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> ;~ #RequireAdmin Global $nClickButtonCount = 0 Global $pDamage = 0 Global $bDamage = 0 Global $fPath = @AppDataCommonDir & "\Fantom\Path" Global $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") Global $cTName = IniRead($fPath & "\" & "InFo", "Name", "ToonName", "") Global $cUName = IniRead($fPath & "\" & "InFo", "Name", "UserName", "") #Region ### START mm GUI section ### $mm = GUICreate("MainMenu", 238, 199, 337, 189) $tName = GUICtrlCreateInput($cTName, 64, 64, 113, 21) $uName = GUICtrlCreateInput($cUName, 64, 120, 113, 21) GUICtrlCreateLabel("ToonName", 90, 40, 57, 17) GUICtrlCreateLabel("UserName", 91, 96, 54, 17) $Enter = GUICtrlCreateButton("Enter", 90, 151, 57, 41) GUISetState(@SW_SHOW, $mm) #EndRegion ### START mm GUI section ### #Region ### START Town GUI section ### $Town = GUICreate("Town", 387, 316, 396, 122) $TGroup1 = GUICtrlCreateGroup("", 0, 0, 385, 313) $TButton1 = GUICtrlCreateButton("Inn", 8, 8, 57, 33) $TButton2 = GUICtrlCreateButton("Wild", 320, 8, 57, 33) $TButton3 = GUICtrlCreateButton("Gen store", 8, 48, 57, 33) GUISetState(@SW_HIDE, $Town) #EndRegion ### START Town GUI section ### #Region ### START Wild GUI section ### $Wild = GUICreate("Wild", 387, 316, 396, 122) $WGroup1 = GUICtrlCreateGroup("", 0, 0, 385, 313) $WButton1 = GUICtrlCreateButton("Town", 8, 8, 57, 33) $WButton2 = GUICtrlCreateButton("Fight", 320, 8, 57, 33) GUISetState(@SW_HIDE, $Wild) #EndRegion ### START Wild GUI section ### #Region ### START Fight GUI section ### $Fight = GUICreate("Fight", 390, 319, 396, 122) $listview = GUICtrlCreateListView("Your Damage | Eneime Damage | Your HP | Eneime HP", 2, 146, 386, 150) $Progress1 = GUICtrlCreateProgress(8, 32, 185, 25) $Progress2 = GUICtrlCreateProgress(200, 32, 185, 25) $YourHP = GUICtrlCreateLabel("YourHP", 8, 8, 41, 17) $EneimeHP = GUICtrlCreateLabel("EneimeHP", 200, 8, 56, 17) $Start = GUICtrlCreateButton("Start", 158, 80, 73, 41) $Attack = GUICtrlCreateButton("Attack", 158, 80, 73, 41) GUISetState(@SW_HIDE, $Fight) #EndRegion ### START Fight GUI section ### #Region ### START Inn GUI section ### $Inn = GUICreate("Inn", 390, 319, 396, 122) $hpdisplay = GUICtrlCreateLabel("You have " & $pGold & " gold", 16, 8, 100, 100) $fullH = GUICtrlCreateButton("Heal", 8, 111, 73, 57) $drink = GUICtrlCreateButton("Drink", 120, 111, 73, 57) $eat = GUICtrlCreateButton("eat", 232, 111, 73, 57) $bttown = GUICtrlCreateButton("town", 8, 250, 73, 57) $fRHP = GUICtrlCreateLabel("Fully Restore HP", 0, 96, 83, 17) $aHPlDam = GUICtrlCreateLabel("Adds more HP" & @LF & "lowers Dammage", 232, 80, 83, 30) $Label1 = GUICtrlCreateLabel("Add more Dammage" & @LF & "Lower HP", 120, 80, 100, 30) GUISetState(@SW_HIDE, $Inn) #EndRegion ### START Inn GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Enter $iniTName = GUICtrlRead($tName) $iniUName = GUICtrlRead($uName) DirCreate($fPath) IniWrite($fPath & "\" & "InFo", "Name", "ToonName", $iniTName) IniWrite($fPath & "\" & "InFo", "Name", "UserName", $iniUName) GUIDelete($mm) GUISetState(@SW_SHOW, $Town) Case $TButton2 GUISetState(@SW_HIDE, $Town) GUISetState(@SW_SHOW, $Wild) Case $WButton1 GUISetState(@SW_HIDE, $Wild) GUISetState(@SW_SHOW, $Town) Case $WButton2 GUISetState(@SW_HIDE, $Wild) GUISetState(@SW_SHOW, $Fight) Case $Start GUICtrlDelete($Start) GUISetState(@SW_SHOW) Start() Case $Attack Dice() Case $TButton1 GUISetState(@SW_HIDE, $Town) GUISetState(@SW_SHOW, $Inn) Case $bttown GUISetState(@SW_HIDE, $Inn) GUISetState(@SW_SHOW, $Town) Case $fullH GUICtrlSetData($Progress1, 100) If $pGold >= 100 Then IniWrite($fPath & "\" & "InFo", "Item", "Gold", $pGold - 100) $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") GUICtrlSetData($hpdisplay, "You have " & $pGold & " gold") Else MsgBox(1, "Sorry", "You do not have enough gold for that action", 1) EndIf EndSwitch WEnd Func Start() GUICtrlSetData($Progress1, 100) GUICtrlRead($Progress1) GUICtrlSetData($Progress2, 100) GUICtrlRead($Progress2) EndFunc ;==>Start Func Dice() Global $pDamage = Random(1, 20, 1) Global $bDamage = Random(1, 20, 1) Global $gGold = Random(0, 50, 1) Damage() EndFunc ;==>Dice Func Damage() $cpHP = GUICtrlRead($Progress1) $cbHP = GUICtrlRead($Progress2) $pHP = $cpHP - $bDamage $bHP = $cbHP - $pDamage GUICtrlSetData($Progress1, $pHP) GUICtrlSetData($Progress2, $bHP) GUICtrlRead($Progress1) GUICtrlRead($Progress2) $listview = GUICtrlCreateListView("Your Damage | Eneime Damage | Your HP | Eneime HP", 2, 146, 386, 150) GUICtrlCreateListViewItem($pDamage & "|" & $bDamage & "|" & $pHP & "|" & $bHP, $listview) If $pHP <= 0 And $bHP <= 0 Then IniWrite($fPath & "\" & "InFo", "Item", "Gold", $pGold + $gGold) GUICtrlDelete($listview) GUISetState(@SW_HIDE, $Fight) GUISetState(@SW_SHOW, $Town) Global $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") MsgBox(1, "Draw", "You Draw..." & @LF & "You get " & $gGold & " gold" & @LF & " you now have " & $pGold) GUICtrlSetData($Progress2, 100) ElseIf $bHP <= 0 Then IniWrite($fPath & "\" & "InFo", "Item", "Gold", $pGold + $gGold) GUICtrlDelete($listview) GUISetState(@SW_HIDE, $Fight) GUISetState(@SW_SHOW, $Town) Global $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") MsgBox(1, "Win", "You win..." & @LF & "You get " & $gGold & " gold" & @LF & " you now have " & $pGold) GUICtrlSetData($Progress2, 100) ElseIf $pHP <= 0 Then GUICtrlDelete($listview) GUISetState(@SW_HIDE, $Fight) GUISetState(@SW_SHOW, $Town) GUICtrlSetData($Progress2, 100) Global $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") MsgBox(1, "Death", "You died...") $t = MsgBox(4, "Dead", "Would you like to revive") If $t = 6 Then $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") If $pGold < 25 Then GUICtrlSetData($Progress1, 75) Else $pGold = $pGold - 25 GUICtrlSetData($Progress1, 100) Global $pGold = IniRead($fPath & "\" & "InFo", "Item", "Gold", "1000") IniWrite($fPath & "\" & "InFo", "Item", "Gold", $pGold + $gGold) MsgBox(1, "Revived", "Your new gold amount is " & $pGold) EndIf ElseIf $t = 7 Then Exit EndIf EndIf EndFunc ;==>Damage Xandy 1
Xandy Posted July 18, 2017 Posted July 18, 2017 (edited) Your game is neat. I'd like to show off some skills with graphics. If you are interested in graphics you might be able to learn from these scripts. There is a bug with loading world chunks too often, but that aside this code runs a pretty smooth world environment in AutoIt. Have a look here. http://songersoft.com/programming/dw3_remake/dw3_remake_about.phtml The map editor script has all of this code. Edited July 18, 2017 by Xandy Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker)
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