Flum Posted June 19, 2014 Share Posted June 19, 2014 (edited) Dear Autoit scripters, So here is my code, does anyone know why $bet in the consolewrite returns the value 350000. In the function i am doing some calculations. But it seems it does not put them in $bet? Global $bet = 350000 Global $maxbet = 255000000 Global $onetime = True Global $flag = True Global $remember bet($bet) ConsoleWrite($bet & @CRLF) bet($bet) ConsoleWrite($bet & @CRLF) bet($bet) ConsoleWrite($bet & @CRLF) Func bet($bet) If $onetime = True Then $remember = $bet $onetime = False $bet = $bet + $bet Else If $flag = True Then $bet = $remember + $bet $flag = False Else $bet = $bet + $bet EndIf EndIf Return $bet EndFunc ;==>bet Edited June 19, 2014 by Flum Link to comment Share on other sites More sharing options...
guinness Posted June 19, 2014 Share Posted June 19, 2014 What's your function for? UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Flum Posted June 19, 2014 Author Share Posted June 19, 2014 Hi guinnes, The function is ment to take a start integer, then multiply that by two, then add the start integer to that and from there i would like to multiply each time by two. I'm testing the output with the function consolewrite, but it seems to returns 3 times 350000. I don't understand, why it is doing that. Link to comment Share on other sites More sharing options...
JohnOne Posted June 19, 2014 Share Posted June 19, 2014 (edited) Because regardless of what your function does you are not using the returned value, only the global which is not modified. You pass $bet to the function which becomes a local copy. Edited June 19, 2014 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Solution trancexx Posted June 19, 2014 Solution Share Posted June 19, 2014 I bet doing this will fix it:Func bet(Byref $bet) ;... EndFunc Flum and javiwhite 2 ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
Flum Posted June 19, 2014 Author Share Posted June 19, 2014 Hi Trancexx & JohnOne Byref is indeed working, is there any explanation why this will not work with globals? Johnone said i was not using the returned value. I thought i was doing that with Return $bet Also i thought once u define a variable as Global, it would work inside and outside functions? I know how to do it now, but i dont quite understand it. From the helpfile Global = Forces creation of the variable in the Global scope Link to comment Share on other sites More sharing options...
JohnOne Posted June 19, 2014 Share Posted June 19, 2014 (edited) Global $bet = 350000 Global $maxbet = 255000000 Global $onetime = True Global $flag = True Global $remember $bet = bet($bet) ConsoleWrite($bet & @CRLF) $bet = bet($bet) ConsoleWrite($bet & @CRLF) $bet = bet($bet) ConsoleWrite($bet & @CRLF) Func bet($bet) If $onetime = True Then $remember = $bet $onetime = False $bet = $bet + $bet Else If $flag = True Then $bet = $remember + $bet $flag = False Else $bet = $bet + $bet EndIf EndIf Return $bet EndFunc ;==>bet Edited June 19, 2014 by JohnOne Flum 1 AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Flum Posted June 19, 2014 Author Share Posted June 19, 2014 Thanks a bunch JohnOne and trancexx u both teached me something new. Maybe i should have known, but i really did not. Take this mighty sword as a token of my appreciation, Link to comment Share on other sites More sharing options...
JohnOne Posted June 19, 2014 Share Posted June 19, 2014 Ace. Also consider... Global $bet = 350000 Global $maxbet = 255000000 Global $onetime = True Global $flag = True Global $remember bet() ConsoleWrite($bet & @CRLF) bet() ConsoleWrite($bet & @CRLF) bet() ConsoleWrite($bet & @CRLF) Func bet() If $onetime = True Then $remember = $bet $onetime = False $bet = $bet + $bet Else If $flag = True Then $bet = $remember + $bet $flag = False Else $bet = $bet + $bet EndIf EndIf Return $bet EndFunc ;==>bet AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. 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