6 posts in this topic
Hello i Have HP Bar in my game and it has 170px of width and then im gonna find start of this by mouse pos then i got $hpStart = 661 $hpStart = 230 , $hpEnd = 839
And there is from $hpStart = 661 the same color - 0xCB423B but depends of my points of hp for example on pixel $hpStart = 745 would be another color not 0xCB423B and then i will know my my character got 50% of health points.
I encountered problem here - for loop still looping to 839 and not founding this change in color for example on pixel $hpStart = 745
I would know actual $i counter and $hpEnd then only i can calculate current health percent value
Please help me how to achieve that! Thanks for any help
Func MouseCord() $MousePos = MouseGetPos() global $hpStart = $MousePos global $hpEnd = $hpStart $hpEnd = $hpEnd + 170 For $i = $hpStart To $hpEnd ; Looping from 661 to 839 $pixel = PixelGetColor($i,$hpStart) If $pixel <> 0xCB423B Then $hpNowPer = ( $hpEnd - $i ) / 170 $hpPoOdjeciu = 1 - $hpNowPer $hpNowPercent = Round($hpPoOdjeciu,2) ExitLoop ; - that not working EndIf Next EndFunc
is it possible to make a For Loop infinite,
ho do i make a for loop infinite??? using the script below
For $i = 0 To 10 Msgbox(64, "Succes", $i) Next
An IE link collection $oLinks is being looped by a $oLink with a for-in loop. An if statement is used such that when the $oLink.href matches a string reg. exp., it will do a set of statements. The set of statements is this:
$a = 1 do $matchpic = StringRegExp($oLink + $a.href, '(http://t2.imgchili.com/)(\d+)(\/)(\d+)(_)') $a += 1 until $matchpic = 1 But the error is that $a is not an object variable.
After a match has been found, this $oLink is _paused_ at the current position inside this collection (I believe). How do I loop at the current $oLink?
Here's a piece of code:
Global $Array = ["AA", "BB", "CC", "DD", "EE"] For $I = 2 To $Array ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $I = ' & $I & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console Next The results for this piece of code are very strange:
Is this a bug with the For code, in that it's acting somewhat like a For/Next loop, and somewhat like a For/In/Next loop? By the way, it doesn't matter what the first number in the loop is, I used 2 as an example, it will always output the same. It takes the number you started the loop at, and then the variable will hold the contents of the second through the last array elements.
On a 2D array, it still doesn't work as expected, but it works differently than how I'd expect it to.
Global $Array = [["AA", "1"], ["BB", 2], ["CC", 3], ["DD", 4],["EE", 5]] For $I = 10 To $Array ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $I = ' & $I & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console Next This outputs:
Which is 5 instances of $ being 10, which seems to be a quick way of looping through an array if you don't need to access the contents of the array.
I've been using AutoIt for about the past two weeks. The code I've created is supposed to open an excel file, combine the first two columns of information into a third column. Then take that new information from the third column and input it into a url. Finally, it saves the file as a .csv and closes it. This code is going to be run everyday at the end of the day and that's where my problem starts.
Currently, I've got a code that works but I've got a For loop right now that has defined parameters and I think what I really want is a While loop. The number of rows that will exist in the excel file will change on a daily basis, and that's why I think I need a While loop so I can tell it to continue combining the information from the first two columns until the rows stop.
I've tried searching this forum and the rest of the internet for an answer to my problem and all I've found are examples closer to mine from 2007 or 2008. Unfortunately, they mention a function called "_ExcelSheetUsedRangeGet" which when inputted into AutoIt gives me an error about the function not existing. I also can't find the function in a help file, so I don't know where to go from here. And I tried reading up on the post titled "Yet Another -- ExcelCOM UDF" but that didn't help me either.
Any and all help would be greatly appreciated.
Here's my code that's working with the For loop:
; This should open an excel file with "NameCurrentDate."
; The excel file starts with two columns, "HobsonsID" and "TourDate"
; This creates a third column called "URL Code" that is a combination of Column 1 and 2
; Then it creates a fourth column called "URL"
; This column contains the URL to the QR Code with the personalized information
; Then it saves the file as a .csv.
$today = @MON & "." & @MDAY & "." & @YEAR;
$sFilePath1 = @ScriptDir & "\TourRecon" & $today & ".xlsx" ;This file should already exist
$oExcel = _ExcelBookOpen($sFilePath1)
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you! The path you gave me is" & $sFilePath1)
_ExcelWriteCell($oExcel, "URL Code", 1, 3) ;Puts the Column header "URL Code" in the first row, Column 3
For $i = 2 To 8 ;Loop
_ExcelWriteCell($oExcel, "=A" & $i & "&-B" & $i, $i, 3) ;Combines Column 1 and Column 2, puts output in Column 3
_ExcelWriteCell($oExcel, "URL", 1, 4) ;Puts the Column header "URL" in the first row, Column 4
For $j = 2 To 8 ;Loop
_ExcelWriteCell($oExcel, "=CONCATENATE(CONCATENATE(""http://admissions.calpoly.edu/"", C" & $j & "), "".html"")", $j, 4) ;Write to the Cell
Next ;This puts a URL into Column 4, starting at Row 2
$sFilePath = @ScriptDir & "\TourRecon" & $today & ".csv";
$sType = "csv";
_ExcelBookSaveAs($oExcel, $sFilePath, $sType)
If Not @error Then MsgBox(0, "Success", "File was Saved!", 3)