AHK Probs

04/25/2008 17:47 Haroon#1
Hi Leute ich hab mal ein Problem, ich weiß nicht wieso der nicht den befehl wiederholt ich hoffe ihr könnt mir helfen.
Hier ist der Code:
WinWait, Guild Wars,
IfWinNotActive, Guild Wars, , WinActivate, Guild Wars,
WinWaitActive, Guild Wars,
random, way, 1, 1
If way = 1
{
loop, 2
{
.......................
}
random, way, 2, 2
}
else if way= 2
{
.................
}
return
04/25/2008 23:15 Ganf#2
Quote:
Originally Posted by Haroon View Post
Hi Leute ich hab mal ein Problem, ich weiß nicht wieso der nicht den befehl wiederholt ich hoffe ihr könnt mir helfen.
Hier ist der Code:
WinWait, Guild Wars,
IfWinNotActive, Guild Wars, , WinActivate, Guild Wars,
WinWaitActive, Guild Wars,
random, way, 1, 1
If way = 1
{
loop, 2
{
.......................
}
random, way, 2, 2
}
else if way= 2
{
.................
}
return
Ähm, den code check ich net. Also ich seh da volgendes

In die variable "way" wird eine random zahl zwischen 1 und 1 gespeichert (häää?)
Dann wird abgefragt ob way 1 ist (naja, muss sie ja wol xD).
Dann wieder hollt er zwei mal was in der loop ist und verändert dann way auf eine zahl die zwischen zwei und zwei ist (wieder hää xD). Dann istz mal die iff aus.
und dann fragt er ab ob way auch 2 ist!

Also irgendwie weiß ich nicht was du damit bezweklcne willst xD!


MFG
Ganf
04/25/2008 23:59 Haroon#3
Quote:
Originally Posted by Ganf View Post
Ähm, den code check ich net. Also ich seh da volgendes

In die variable "way" wird eine random zahl zwischen 1 und 1 gespeichert (häää?)
Dann wird abgefragt ob way 1 ist (naja, muss sie ja wol xD).
Dann wieder hollt er zwei mal was in der loop ist und verändert dann way auf eine zahl die zwischen zwei und zwei ist (wieder hää xD). Dann istz mal die iff aus.
und dann fragt er ab ob way auch 2 ist!

Also irgendwie weiß ich nicht was du damit bezweklcne willst xD!


MFG
Ganf
Also er soll erstmal das obere 2 mal machen dann, wenn er loop 2 mal ausgeführt hat soll er else ausführen und wenn das geschehen ist soll er wieder vorne anfangen. Daher hab ich es so gemacht das zu erst way auf 1 gestellt wird damit er die erste abfrage erfüllt, dann soll er die zweite abfrage erfüllen deswegen hab ich way auf 2 gestellt wenn die aufgabe erledigt ist dann soll er wieder von vorne anfangen. aber er führt nur die erste abfrage aus er geht nicht mal bis zur zweiten über ich versteh nicht warum?
ich bin noch recht neu im makro scripten, daher hab ich noch nicht viel erfahrun also seid mir bitte nicht alzu böser;)

Grüße
Haroon
04/26/2008 08:43 -Anthrax-#4
da haste das mit dem if aber etwas verkehert.... der fragt nur einmal ab was way ist ...entweder eins oder 2, kann aber da noch nich 2 sein ^^
einfach unten aus dem elseif ne eigene if abfrage machen und es sollte gehen
04/26/2008 09:29 Ganf#5
warum überhaupt ne if? Da dass eh alles nacheinander kommen soll, brauchst du doch gar keine if/else-Abfragen!

Also nur
Code:
WinWait, Guild Wars,
IfWinNotActive, Guild Wars, , WinActivate, Guild Wars,
WinWaitActive, Guild Wars,
loop, 2
{
.......................
}
; Dann kommt der andere code!
.................
return
Du musst verstehen, dass wenn du das Programm ausführst, dass es von oben startet, und dann jede codelinie hinunter geht!


MFG
Ganf
04/26/2008 12:31 Haroon#6
Ok Danke Ganf ich hab es so gemacht wie du gesagt hast und es führt auch alles aus bis nach unten hin aber beginnt nicht wieder von vorne ???
Mein Code:
WinWait, Guild Wars,
IfWinNotActive, Guild Wars, , WinActivate, Guild Wars,
WinWaitActive, Guild Wars,
random, way, 1, 1
loop, 2
{
Sleep, 10000
................................
Sleep, 8000
}
sleep, 5000
................................
Send, {ESC}{ESC}{ESC}{ESC}{ESC}{ESC}{ESC}
return


Hoffe ihr könnt mit noch weiter helfen.
Danke schonmal

Grüße
Haroon
04/26/2008 14:02 -Anthrax-#7
warum nicht einfach auto it? ;P
ist mit vielmehr funktionen bestückt und mit dem bisschen was ahk an syntax hat fast identisch ^^

darin würde das was du willst so ausschaun:

WinActivate ("Guild Wars")
WinWaitActive("Guild Wars")
Do
---code----
Until $var=iwas
Exit
feddich ^^

warum nun dein script nich will wie es soll...k.a. aber das autoit script hier wiederholt auf jeden fall wieder von vorne ;P
04/26/2008 16:45 Haroon#8
Ich wollte mich erstmal im AHK üben und dann auf autoit umsteigen, ich hab das andere problem gelöst zwar nicht elegant aber gelöst hab einfach alles so gemacht wie ich wollte und das dann in eine loop schreife gesetzt also:
loop, 99999999{loop, 2{...}.........}

hab aber jetzt ein anderes Problem hab mir zwar bei ahk mit F1 die sachen da durch gelesen klapp aber wie beschrieben nicht, ich wollte einen rechten mausklich simulieren der bedrückt wurd dann die mosition ändert und dann wieder losgelassen wird ich hab so in etwa geschrieben:
mousemove, x, y
mouseClick down right
mousemove, x, y
mouseClick up right


funzt aber irgendwie nicht.
Danke schon mal für die Hilfe.

Grüße
Haroon
04/26/2008 18:14 Ganf#9
warum, ist doch egal wist dus machst, du kannst natürlich das label so nennen und dann glaube ich mit gosub dorthin, also z.B.:

Code:
WinWait, Guild Wars,
IfWinNotActive, Guild Wars, , WinActivate, Guild Wars,
WinWaitActive, Guild Wars, 

Loop, 9000
{
     gosub, way
}

way:
   ......
return
dann schaut das ein bissl gepflegter aus xD!


Du keine Ahnung mehr wie das in AHK war, musst in der Helpfile nachlesen!


MFG
Ganf