AutoIT Checkbox setzen bei fremder GUI

05/21/2018 12:46 Mad0ck#1
Guten Montag Mittag liebe epvp comj :)

Da ich aktuell wieder mit einem Browsergame angefangen habe, wollte ich mir ein kleines Skript schreiben, welches gewisse Dinge automatisiert, sodass ich nicht 24/7 drauf achten muss :)

Es geht um das Spiel Travian.
Ich versuche meine Farmlisten alle x Sekunden neu zu starten.

Hört sich eigentlich nicht wirklich schwer an, da ich jedoch neuöling in AutoIT bin komm ich mit den checkboxen nicht auf einen grünen Zweig ...


[Only registered and activated users can see links. Click Here To Register...]
Ich möchte wie oben ersichtlich, eine Gewisse Farmlsite auswählen, danach die checkbox setzen und auf den Button "Raubzug abschicken" drücken.

Hier wäre die checkbox:

Mit einer eigens geschriebenen GUI bekomm ich das ganze ganz gut hin.
Mit der GUI von Travian haut das ganze nicht mehr hin, da es diverse tags der checkbox wie value oder name nicht mehr gibt.

Ich arbeite via Firefox und arbeite somit mit FF.au3
laut der Beschreibung kann man checkboxen mittels _FFFormCheckBox an oder abwählen.

Hier der code von der Form:
Also müsste das ganze so aussehen
PHP Code:
_FFFormCheckBox("raidListMarkAll736"True0"id""list736""id"
Doku: [Only registered and activated users can see links. Click Here To Register...]
Eigentlich sollte die checkbox jetzt angeklickt sein ._. ist sie aber nicht.
Gibt es da andere Möglichkeiten, bzw kann mir jemand einmalig erklären wie das Funktioniert ?
Einmal erklärt und verstanden, dann brauch ich zukünftig nicht mer wirklich nachfragen.

Im www finde ich leider nur checkbox abfragen etc bei eigener GUI. Nichts mit fremden wie zB von browsergames etc.

mfg
Mad0ck
05/21/2018 16:50 FlyffServices#2
_FFFormCheckBox("raidListMarkAll736", True, 0)
05/21/2018 17:40 Mad0ck#3
arbeitet man bei autoit generell noch mit FF.au3 ? ODer gibts da was neuers / besseres ?

lg
05/24/2018 14:07 mhaendler#4
Mhh ich bin mir nicht sicher, aber ich glaub die Funktion "_FFFormCheckBox" macht keinen "Click" auf das Element. Allerdings ist im HTML - Code ein "onclick" hinterlegt, welches nur ausgeführt wird, wenn die Checkbox aktiv geklickt wird.

Wie verhält sich das ganze, wenn du _FFClick verwendest?

_FFClick('raidListMarkAll736', 'id')

Alternativ hast du es schonmal mit _FFXPath versucht?
05/24/2018 19:44 elmarcia#5
U have all the code for your events in the game js, just call the function with your custom params Travian.Game.RaidList.markAllSlotsOfAListForRaid(i d,param)

id - is the raid id in your example : 736
param : true or false if the checkbox is checked- so always true for you

__FFCmd("Travian.Game.RaidList.markAllSlotsOfAList ForRaid(736,true)")

Edit: checkbox won't be checked but your game state will change
05/26/2018 13:08 Mad0ck#6
Quote:
Originally Posted by mhaendler View Post
Mhh ich bin mir nicht sicher, aber ich glaub die Funktion "_FFFormCheckBox" macht keinen "Click" auf das Element. Allerdings ist im HTML - Code ein "onclick" hinterlegt, welches nur ausgeführt wird, wenn die Checkbox aktiv geklickt wird.

Wie verhält sich das ganze, wenn du _FFClick verwendest?

_FFClick('raidListMarkAll736', 'id')

Alternativ hast du es schonmal mit _FFXPath versucht?
HuHu :)
Also clíck funktioniert nicht. $sElement findet die ID nicht, obwohl es genau die ID ist. ...

xPath hab ich vorher schonmal probiert, jedoch kommt da bei
'inspect with xFirePath' nix rum.
-> ReKlick -> Inspect with Firepath ->
html/body/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[1]/form/div[2]/div[1]/div[1]/input

Das ist die Ausgabe. normalerweise sollte da iwas mit [@id=xay] stehen. So hab ichs bei der Funktion immer gesehen.

ErrorCode click, wenn ich nach class suche.
PHP Code:
8__FFSend: try{FFau3.simulateEvent(FFau3.WCD.getElementsByClassName('markAll')[1],'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv
_FFClick ==> No match$sElementFFau3.WCD.getElementsByClassName('markAll')[1
Error wenn ich nach der ID suche:
PHP Code:
8__FFSend: try{FFau3.simulateEvent(FFau3.WCD.getElementById('raidListMarkAll630'),'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv
_FFClick ==> No match$sElementFFau3.WCD.getElementById('raidListMarkAll630'
Hast du evt Skype oä. ? Würde für sowas sogar bezahlen, wenn du das hinbekommst und mir erklärst wie sowas geht ._.

Quote:
Originally Posted by elmarcia View Post
U have all the code for your events in the game js, just call the function with your custom params Travian.Game.RaidList.markAllSlotsOfAListForRaid(i d,param)

id - is the raid id in your example : 736
param : true or false if the checkbox is checked- so always true for you

__FFCmd("Travian.Game.RaidList.markAllSlotsOfAList ForRaid(736,true)")

Edit: checkbox won't be checked but your game state will change
Hello :) Thanks for your responce.
But the Function doesnt work.
PHP Code:
Function Error code:
__FFCmd("Travian.Game.RaidList.markAllSlotsOfAList ForRaid(736,true)")
ERROR 
I really dont know whags wrong with the GUI of Travian ôo
No shit works -.- ...

The only way for now is to work with mouseMove commands. But thats kidna shitty. When 1 pixel changes all is messed up and stops working ...
05/31/2018 12:52 Mad0ck#7
Suche immernoch nach einer Lösung

still searching for a solution
._.