Frage zum proggen eines Botes

09/03/2009 13:37 Rolle85#1
Hi, bin noch ein ziemlicher Anfänger im proggen mit Autoit3. Jetzt wollte ich mal fragen ob es geht, durch klicken eines Buttons, 2 Funktionen gleichzeitig zu starten? Wenn ja wie?
Dann wollte ich noch Fragen, wie ich Balthasar Punkte in mein Script einlese, damit ich die z.b. anzeigen lassen kann und auch damit rechnen kann. Die Update.ini ist vorhanden und auf dem neusten Stand(glaub ich^^).

;current balthazar = 0x724
;max balthazar = 0x748
;all balthazar = 0x728

Würde mit den aktuellen Baltis rechnen wollen.

Würde mich über eine Lösung freuen und danke schonmal im Vorraus. :)


MfG Rolle85
09/03/2009 14:04 blauwiggle#2
AdLibEnable()
_MemoryPointerRead()
09/03/2009 15:00 Frutex#3
Oder über Threads..
Quote:
Original Post stammt von u-coRe
Code:
$Handle = DllCallbackRegister("ThreadTest", "int", "ptr")

Func CreateThread($handle, $struct)
	$return = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "dword", 0, "long", DllCallbackGetPtr($handle), "ptr", DllStructGetPtr($struct), "long", 0, "int*", 0)
	Return $return[0]
EndFunc

$Struct = DllStructCreate("Char[200];int")
DllStructSetData($Struct, 1, "Hello e*pvp")

CreateThread($Handle, $Struct)
MsgBox(0x40, "Default Thread", "e*pvp is better than ****")

Func ThreadTest($x)
	$y = DllStructCreate("char[200];int", $x)
	MsgBox(0, "Added Thread", DllStructGetData($Struct, 1))
EndFunc   ;==>_ThreadStart
09/03/2009 15:40 Rolle85#4
Danke für die schnellen Antworten. Hab es jetzt erstmal mit AdlibEnable() probiert und hat er auch alles so gemacht wie ich wollte. Jetzt hab ich allerdings ein anderes Problem. Da ich bei der einen Funktion einer Timer starten will und mit der anderen halt das Hauptscript, was er jetzt auch macht, zählt der Timer nicht hoch. Wenn ich ihn allein starte zählt er ganz normal die Zeit hoch, aber sobald ich mein Hauptscript dazu starte, bleibt die Zeit auf Null stehen. Hab die _TicksToTime von der Hilfe genommen.

Dann noch zu meiner anderen Frage, kann mir vllt jemand nen kleinen Code geben der mir z.b. in ein label die Aktuellen Balthis anzeigt? Kapier das noch nich so ganz.^^ Wäre auf jedenfall sehr nett und danke wieder im Vorraus. :handsdown:
09/03/2009 20:32 | Moep |#5
Quote:
Originally Posted by Rolle85 View Post
Danke für die schnellen Antworten. Hab es jetzt erstmal mit AdlibEnable() probiert und hat er auch alles so gemacht wie ich wollte. Jetzt hab ich allerdings ein anderes Problem. Da ich bei der einen Funktion einer Timer starten will und mit der anderen halt das Hauptscript, was er jetzt auch macht, zählt der Timer nicht hoch. Wenn ich ihn allein starte zählt er ganz normal die Zeit hoch, aber sobald ich mein Hauptscript dazu starte, bleibt die Zeit auf Null stehen. Hab die _TicksToTime von der Hilfe genommen.
Code von dir wär nicht schlecht...


Quote:
Originally Posted by Rolle85 View Post
Dann noch zu meiner anderen Frage, kann mir vllt jemand nen kleinen Code geben der mir z.b. in ein label die Aktuellen Balthis anzeigt? Kapier das noch nich so ganz.^^ Wäre auf jedenfall sehr nett und danke wieder im Vorraus. :handsdown:
Guck dir mal "GUICtrlSetData()" dazu in der Hilfe an.
09/03/2009 21:00 Rolle85#6
Code:
Func Zeit()
    ;Create GUI
	GUICtrlCreateGroup("Time", 220, 180, 105, 35)
	GUICtrlCreateLabel("00:00:00", 225, 195, 95, 15,$SS_CENTER)
	GUICtrlSetBkColor(-1, 0xEEEEEE)
    GUISetState()
    ;Start timer
    $timer = TimerInit()
	AdlibEnable("Timer", 50)
    ;
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
		EndSwitch
    WEnd
EndFunc   ;==> Zeit
;
Func Timer()
	AdlibEnable("Start", 50)
    _TicksToTime(Int(TimerDiff($timer)), $Hour, $Mins, $Secs)
    Local $sTime = $Time  ; save current time to be able to test and avoid flicker..
    $Time = StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs)
    If $sTime <> $Time Then ControlSetText("Zaishen Elite",  "", "Static6",$Time)
EndFunc   ;==>Timer
Is halt komplett aus der Hilfe. Das prob bei dem is bloß das er halt nich weiterzählt wenn noch was anderes dazu läuft.

GUICtrlSetData() hilft mir mal nich weiter. Ich brauch sowas wie in der Art vom Titel anzeigen, als wenn ich halt den Luxon, Kurzick oder Sonnenspeer anzeigen lassen will, halt nur den Aktuellen Balthasar Punkte Stand. Will halt den aus der Update.ini in mein Script lesen und dann halt anzeigen lassen, z.b. in ein Label oder auch anderes.

MfG Rolle85



Edit: Wenn ich jetzt in meinem Script die 0x724 vom current balthazar eingelesen habe, wie kann ich die dann umrechnen, also wenn ich z.b. 1000Balthis habe, das der mir dann nicht die 0x724 verwendet sonder die 1000Balthis? Geht das denn einfach oder ist das zu umständlich? Habe das mit dem Timer auch noch nicht hinbekommen, der bleibt einfach stehen, hat da vllt einer ne Idee?^^
09/05/2009 20:21 Rolle85#7
Keiner eine Idee mit der Zeit oder ne Hilfe wie ich den Code aus der Update.ini umrechne?:) Wäre halt für mich noch so ein Special meines Programms. ^^

MfG Rolle85
09/05/2009 21:43 buFFy!#8
Code:
_MemoryRead()
_MemoryPointerRead()