Überlebender-Bot

03/22/2010 19:32 w0lfszeit#1
Morgen,
bin grad dabei einen Bot für die Fausthieb-Fete zu programmieren, bin jedoch auf der Bot-Programmier-Ebene n00b und hab deswegen ein paar Fragen, hoffe ihr könnt mir die beantworten, wird natürlich public gemacht, sobald der halbwegs steht ;)
Die Waypoints stehn, Quest wird angenommen, div. Zusatzfunktionen sollten erst später folgen.
1. Frage wäre, wie ich die Fertigkeit 1 im Hintergrund durchgehend caste, wenn ich das mit ner While erledige werden die nachfolgenden Befehle logischerweise nicht mehr angenommen.
Vielen Dank ;)
Btw: Benutze tt6, falls notwendig kann ich auch den derzeitigen Rohbau uppen.
03/22/2010 21:08 Neon™#2
Code:
Func Fertigkeit1()
	;Hier Gwca-Befehl, Keysend etc einfügen
EndFunc

AdlibEnable("Fertigkeit1", 1000)

;Hier deinen Bot einfügen


AdlibDisable()
03/22/2010 21:24 w0lfszeit#3
wird dafür irgend ne spezielle .au3 Datei benötigt?
bei mir funzt der besagte Adlib Befehl ned (undeclared function -> is nicht auf "Fertigkeit1"), als Vorschläge werden "Adlib(Un/)Register" angezeigt.

Nebenbei nochwas:
Also ich lese über die GUI die x- und y-Koordinate von 4 Buttons ein, wenn ich die jetzt aber direkt raus nehmen will (Bsp: Inputname: I_Ax -> MouseClick("left", I_Ax, I_Ay) klickt er irgendwohin ... gibts da nen Standard-Fehler, oder muss ich das irgendwie definieren?

So, hab mich jetzt doch entschieden auf GWCA-Basis zu arbeiten.
Hab jetzt folgenden Code drinnen, der den Skill Nr 8 so lange casten soll bis die Energie dem Maximum entspricht, das wird nur durchgeführt wenn die aktuelle HP 0 ist, sprich der Char ist tot:
Quote:
Func DeathCheck()
$CBType = "int"
$HP = CmdCB($CA_GetMyMaxHP)
$EP = CmdCB($CA_GetMyMaxEnergy)

If $HP[1] == 0 Then
For $Energy = 0 To $EP[0] Step 1
Cmd($CA_UseSkill,8,-2)
Next
EndIf
EndFunc
Der funktioniert leider nicht, hab die Graphics.dll injeziert und die Funktion wird auch gecallt, hab die bei While 1 drinnen.
Ich denk mir mal ich hab einen Fehler bei der for-Schleife.
Wäre nett wenn mir jemand helfen könnte ;)

Edit: Hat sich erledigt ;)

Ich nenn den erst mal um zu "Fausthieb-Fete-Bot", da das Überleben derzeit noch nicht garantiert wird, und es fraglich ist, ob es überhaupt garantiert werden kann.
Die Injection.au3 beinhaltet die Injection von u-Core, die aktuelle GWCAConstants.au3 und eine FF.au3, die das Öffnen der Fenster ermöglicht.

Das ist mein erster Bot und wie man sehen kann schmeiß ich auch ziemlich mit verschiedenen Funktionen herum, also das kann sicher einfacher gelöst werden.
Ich bitte um Feedback, da es sicher konvertionellere Methoden gibt, als die meinen.

Hier der Code:
Code:
#include-once

#include "Inject.au3"

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>


HotKeySet("{F1}", "Start")
;HotKeySet("{Pause}", "Pause") Derzeit noch nicht in Verwendung
HotKeySet("{End}", "Beenden")

Func Beenden()
	Exit
EndFunc

;Sleep(20000) Wartezeit für die Injection

$cGui = GUICreate("Fausthieb-Fete by w0lfszeit", 496, 503, 192, 124)
GUISetBkColor(0xFFFBF0)
$Funktionen = GUICtrlCreateGroup("Funktionen", 16, 200, 457, 116)
$C_Aufheben = GUICtrlCreateCheckbox("Aufheben", 32, 224, 97, 17)
$C_Identifizieren = GUICtrlCreateCheckbox("Identifizieren", 32, 248, 97, 17)
$C_Verkaufen = GUICtrlCreateCheckbox("Verkaufen", 32, 272, 97, 17)
$C_Rollen = GUICtrlCreateCheckbox("Schriftrollen benutzen", 32, 296, 153, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Einstellungen = GUICtrlCreateGroup("Einstellungen", 16, 328, 457, 100)
$R_Normal = GUICtrlCreateRadio("Normal Mode", 32, 352, 113, 17)
$R_Hard = GUICtrlCreateRadio("Hard Mode", 32, 376, 113, 17)
$L_maxT = GUICtrlCreateLabel("Maximale Tode:", 32, 400, 79, 17)
$I_maxT = GUICtrlCreateInput("20", 112, 400, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Kontroll = GUICtrlCreateGroup("Kontroll-Buttons", 16, 440, 257, 49)
$B_Start = GUICtrlCreateButton("Start <F1>", 24, 456, 75, 25, $WS_GROUP)
$B_Pause = GUICtrlCreateButton("<Pause>", 104, 456, 75, 25, $WS_GROUP)
$B_Beenden = GUICtrlCreateButton("<Ende>", 184, 456, 75, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$epvp = GUICtrlCreateGroup("epvp", 288, 440, 185, 49)
$B_Profil = GUICtrlCreateButton("Profil", 296, 456, 75, 25, $WS_GROUP)
$B_Thread = GUICtrlCreateButton("Thread", 384, 456, 75, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Infobox = GUICtrlCreateGroup("InfoBox", 16, 8, 457, 177)
$L_HP = GUICtrlCreateLabel("HP:", 32, 40, 400, 17)
$L_E = GUICtrlCreateLabel("E:", 32, 64, 400, 17)
$L_Runs = GUICtrlCreateLabel("Runs:", 32, 88, 400, 17)
$L_EP = GUICtrlCreateLabel("EP:", 32, 112, 400, 17)
$L_Gold = GUICtrlCreateLabel("Gold:", 32, 136, 400, 17)
$L_Info = GUICtrlCreateLabel("Start drücken!", 32, 158, 400, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

Global $Tode = 0, $Runs = 0, $Deaths = 0, $EXP = CmdCB($CA_GetExperience), $G = CmdCB($CA_GetGold),  $Energy
Global $GetIDKit = CmdCB($CA_GetIdKit),  $ID = CmdCB($CA_GetCurrentTarget)

While 1
	$CBType = "int"						; Hier werden div. Funktionen deklariert
	$HP = CmdCB($CA_GetMyMaxHP) 		; Lebenspunkte
	$E  = CmdCB($CA_GetMyMaxEnergy) 	; Energie
	$EP = CmdCB($CA_GetExperience)		; Erfahrungspunkte
	$Gold = CmdCB($CA_GetGold)			; Gold
	$MyID = CmdCB($CA_GetMyID)			; ID des Charakters
	$MapLoad = CmdCB($CA_GetMapLoading)	; Findet heraus ob der Char in ner Stadt/Außenposten is
	$GetMapID = CmdCB($CA_GetMapID)		; FIndet die ID der Map heraus
; Zeigt an wieviel Adrenalin auf den div. Skills ist
	$Adrenaline4 = CmdCB($CA_SkillAdrenaline,4)
	$Adrenaline5 = CmdCB($CA_SkillAdrenaline,5)
	$Adrenaline6 = CmdCB($CA_SkillAdrenaline,6)
; Zeigt an ob die Gruppe tot ist (verbesserungswürdig)
	$Tod1 = CmdCB($CA_GetIsDead,20)
	$Tod2 = CmdCB($CA_GetIsDead,23)
	$Tod3 = CmdCB($CA_GetIsDead,28)
	$Tod4 = CmdCB($CA_GetIsDead,24)
	$Tod5 = CmdCB($CA_GetIsDead,33)
	$Tod6 = CmdCB($CA_GetIsDead,57)
; Zeigt an ob der NPC tot ist.
	$TodW = CmdCB($CA_GetIsDead,32)
	$TodE = CmdCB($CA_GetIsDead,30)
	$TodM = CmdCB($CA_GetIsDead,58)
	$TodF = CmdCB($CA_GetIsDead,29)
; Gibt die Distanz zu Kilroy an
	$CBType = "float"
	$Distance2Kil = CmdCB($CA_GetMyDistanceToAgent,18)
	$CBType = "int"

	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $B_Start
			Start()

		Case $B_Beenden
			Beenden()

		Case $B_Profil
			_FFOpenURL("http://www.elitepvpers.com/forum/members/2257641-w0lfszeit.html")
			_FFStart("http://www.elitepvpers.com/forum/members/2257641-w0lfszeit.html")

		Case $B_Thread
			_FFOpenURL("http://www.elitepvpers.com/forum/gw-bot-discussions-questions/499990-berlebender-bot.html")
			_FFStart("http://www.elitepvpers.com/forum/gw-bot-discussions-questions/499990-berlebender-bot.html")

		Case $R_Hard
			Cmd($CA_SwitchMode, 1)

		Case $R_Normal
			Cmd($CA_SwitchMode, 0)
	EndSwitch

	GUICtrlSetData($L_HP,"HP: " & $HP[1] & "/" & $HP[0])
	GUICtrlSetData($L_E,"E: " & $E[1] & "/" & $E[0])
	GUICtrlSetData($L_Runs,"Runs/KDs/Deaths: " & $Runs & "/" & $Tode & "/" & $Deaths)
	GUICtrlSetData($L_EP, "EP: " & $EP[0] & " - " & $EP[0] - $EXP[0])
	GUICtrlSetData($L_Gold, "Gold: " & $Gold[0] & " - " & $Gold[0]-$G[0])
WEnd

Func Start()
	If $GetMapID[0] == NOT 644 Then
		GUICtrlSetData($L_Info,"Bitte nach Gunnars Feste reisen.")
		While $GetMapID == NOT 644
			$MapLoad = CmdCB($CA_GetMapLoading)
			GUICtrlSetData($L_Info,"Bitte nach Gunnars Feste reisen.")
			Sleep(1000)
		WEnd
	EndIf
		GUICtrlSetData($L_Info,"Laufe zu Kilroy.")
		Cmd($CA_QuestAbandon, 856)
		Cmd($CA_GoNPC,18)

		While $Distance2Kil[0] > 150.0
				$CBType = "float"
				$Distance2Kil = CmdCB($CA_GetMyDistanceToAgent,18)
			Sleep(1000)
		WEnd
		GUICtrlSetData($L_Info,"Akzeptiere Quest.")
			Cmd($CA_Dialog,8607747)
			Cmd($CA_Dialog,8607745)
			Cmd($CA_GoNPC,18)
			Cmd($CA_Dialog,132)
			GUICtrlSetData($L_Info,"Reise ins Verlies.")
			Verlies()
EndFunc

Func Verlies()
	While $MapLoad == 2
		Sleep(1000)
	WEnd
		GUICtrlSetData($L_Info,"Im Verlies angekommen.")

		Gruppe1()
		Aufheben()
		Gruppe2()
		Aufheben()
		Ettin()
		Aufheben()
		Gruppe3()
		Aufheben()
		Wolf()
		Aufheben()
		Gruppe4()
		Aufheben()
		Gruppe5()
		Aufheben()
		Gruppe6()
		Aufheben()
		Maghma()
		Aufheben()
		Fronis()
		Aufheben()
EndFunc

Func Belohnung()
	If $GetMapID[0] == 644 Then
		GUICtrlSetData($L_Info,"Hole Belohnung ab.")
		Cmd($CA_GoNPC,18)
		Cmd($CA_Dialog,8607751)
		GUICtrlSetData($L_Info,"Run erledigt.")
		Cmd($CA_TravelGH)
		Cmd($CA_LeaveGH)
		$Runs = $Runs + 1
		Start()
	Else
		GUICtrlSetData($L_Info,"Reise nach Gunnars Feste.")
		TravelTo(644)
	EndIf
EndFunc



Func Verkaufen()
	Sortieren()
	If $C_Verkaufen == 1 Then
	GUICtrlSetData($L_Info,"Verkaufe.")
		Cmd($CA_GoNPC,26)
		Sleep(8000)
			For $Platz = 1 To CmdCB($CA_GetBagSize,$Bag_BackPack) Step 1
				Cmd($CA_SellItem,$Bag_BackPack,$Platz)
			Next

			For $Platz = 1 To CmdCB($CA_GetBagSize,$Bag_BeltPouch) Step 1
				Cmd($CA_SellItem,$Bag_BeltPouch,$Platz)
			Next
	EndIf
EndFunc

Func Identifizieren()
	Sortieren()
	If $C_Identifizieren == 1 Then
	GUICtrlSetData($L_Info,"Identifiziere.")
		If CmdCB($GetIdKit[0]) == 0 Then
			Cmd($CA_GoNPC,26)
			Cmd($CA_BuyIdKit)
		Else
			MoveItemByID($GetIdKit[0],$Bag_Bag2,10)
		EndIf
	EndIf
EndFunc

Func Aufheben()
	If $C_Aufheben == 1
		Cmd($CA_AcceptAllItems)
	EndIf
EndFunc

Func Sortieren()
	GUICtrlSetData($L_Info,"Sortiere.")
	MoveItemByID($Dye_Black,$Bag_Bag2,1)
	MoveItemByID($Dye_White,$Bag_Bag2,2)
EndFunc

Func Gruppe1()
	GUICtrlSetData($L_Info,"Attackiere 1. Gruppe.")
	MoveEx(-15500,-15500)
	Cmd($CA_Attack,20)
	While $Tod1 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe2()
	GUICtrlSetData($L_Info,"Attackiere 2. Gruppe.")
	Cmd($CA_Attack,23)
	While $Tod2 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe3()
	GUICtrlSetData($L_Info,"Attackiere 3. Gruppe.")
	Cmd($CA_Attack,28)
	While $Tod3 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe4()
	GUICtrlSetData($L_Info,"Attackiere 4. Gruppe.")
	Cmd($CA_Attack,24)
	While $Tod4 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe5()
	GUICtrlSetData($L_Info,"Attackiere 5. Gruppe.")
	Cmd($CA_Attack,33)
	While $Tod5 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe6()
	GUICtrlSetData($L_Info,"Attackiere 6. Gruppe.")
	Cmd($CA_Attack,36)
	While $Tod6 == 0
		Kampf()
	WEnd
EndFunc

Func Ettin()
	GUICtrlSetData($L_Info,"Attackiere Ettin.")
	Cmd($CA_Attack,30)
	While $TodE == 0
		Kampf()
	WEnd
EndFunc

Func Wolf()
	GUICtrlSetData($L_Info,"Attackiere Wolf.")
	Cmd($CA_Attack,32)
	While $TodW == 0
		Kampf()
	WEnd
EndFunc

Func Maghma()
	GUICtrlSetData($L_Info,"Attackiere Maghma.")
	Cmd($CA_Attack,58)
	While $TodM == 0
		Kampf()
	WEnd
EndFunc

Func Fronis()
	GUICtrlSetData($L_Info,"Attackiere Fronis.")
	Cmd($CA_Attack,29)
	While $TodF == 0
		Kampf()
	WEnd
EndFunc

Func Kampf()
		DeathCheck()
			Cmd($CA_UseSkill,1,-1)
			Cmd($CA_UseSkill,3,-1)
			If $R_Hard Then
				Cmd($CA_UseSkill,7,-1)
			EndIf
			If $Adrenaline4 == 4 Then
				Cmd($CA_UseSkill,4,-1)
			EndIf
			If $Adrenaline5 == 10 Then
				Cmd($CA_UseSkill,5,-1)
			EndIf
			If $Adrenaline6 == 7 Then
				Cmd($CA_UseSkill,6,-1)
			EndIf
	EndIf
EndFunc

Func DeathCheck()
	If $E[1] == 0 Then
		GUICtrlSetData($L_Info,"Knockdown, wiederbeleben.")
		For $Energy = 0 To $E[0] Step 1
			Cmd($CA_UseSkill,8)
		Next
	$Tode = $Tode + 1
	EndIf

	If $HP[0] == 0 Then
		GUICtrlSetData($L_Info,"Tot -.-")
		$Deaths = $Deaths + 1
		Start()
	EndIf
EndFunc
Edit: Außerdem ist derzeit James Bond unterwegs (wirft 007-Error aus)
03/29/2010 16:08 Neon™#4
Quote:
Originally Posted by w0lfszeit View Post
Ich nenn den erst mal um zu "Fausthieb-Fete-Bot", da das Überleben derzeit noch nicht garantiert wird, und es fraglich ist, ob es überhaupt garantiert werden kann.
Die Injection.au3 beinhaltet die Injection von u-Core, die aktuelle GWCAConstants.au3 und eine FF.au3, die das Öffnen der Fenster ermöglicht.

Das ist mein erster Bot und wie man sehen kann schmeiß ich auch ziemlich mit verschiedenen Funktionen herum, also das kann sicher einfacher gelöst werden.
Ich bitte um Feedback, da es sicher konvertionellere Methoden gibt, als die meinen.

Hier der Code:
Code:
#include-once

#include "Inject.au3"

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>


HotKeySet("{F1}", "Start")
;HotKeySet("{Pause}", "Pause") Derzeit noch nicht in Verwendung
HotKeySet("{End}", "Beenden")

Func Beenden()
	Exit
EndFunc

;Sleep(20000) Wartezeit für die Injection

$cGui = GUICreate("Fausthieb-Fete by w0lfszeit", 496, 503, 192, 124)
GUISetBkColor(0xFFFBF0)
$Funktionen = GUICtrlCreateGroup("Funktionen", 16, 200, 457, 116)
$C_Aufheben = GUICtrlCreateCheckbox("Aufheben", 32, 224, 97, 17)
$C_Identifizieren = GUICtrlCreateCheckbox("Identifizieren", 32, 248, 97, 17)
$C_Verkaufen = GUICtrlCreateCheckbox("Verkaufen", 32, 272, 97, 17)
$C_Rollen = GUICtrlCreateCheckbox("Schriftrollen benutzen", 32, 296, 153, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Einstellungen = GUICtrlCreateGroup("Einstellungen", 16, 328, 457, 100)
$R_Normal = GUICtrlCreateRadio("Normal Mode", 32, 352, 113, 17)
$R_Hard = GUICtrlCreateRadio("Hard Mode", 32, 376, 113, 17)
$L_maxT = GUICtrlCreateLabel("Maximale Tode:", 32, 400, 79, 17)
$I_maxT = GUICtrlCreateInput("20", 112, 400, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Kontroll = GUICtrlCreateGroup("Kontroll-Buttons", 16, 440, 257, 49)
$B_Start = GUICtrlCreateButton("Start <F1>", 24, 456, 75, 25, $WS_GROUP)
$B_Pause = GUICtrlCreateButton("<Pause>", 104, 456, 75, 25, $WS_GROUP)
$B_Beenden = GUICtrlCreateButton("<Ende>", 184, 456, 75, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$epvp = GUICtrlCreateGroup("epvp", 288, 440, 185, 49)
$B_Profil = GUICtrlCreateButton("Profil", 296, 456, 75, 25, $WS_GROUP)
$B_Thread = GUICtrlCreateButton("Thread", 384, 456, 75, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Infobox = GUICtrlCreateGroup("InfoBox", 16, 8, 457, 177)
$L_HP = GUICtrlCreateLabel("HP:", 32, 40, 400, 17)
$L_E = GUICtrlCreateLabel("E:", 32, 64, 400, 17)
$L_Runs = GUICtrlCreateLabel("Runs:", 32, 88, 400, 17)
$L_EP = GUICtrlCreateLabel("EP:", 32, 112, 400, 17)
$L_Gold = GUICtrlCreateLabel("Gold:", 32, 136, 400, 17)
$L_Info = GUICtrlCreateLabel("Start drücken!", 32, 158, 400, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

Global $Tode = 0, $Runs = 0, $Deaths = 0, $EXP = CmdCB($CA_GetExperience), $G = CmdCB($CA_GetGold),  $Energy
Global $GetIDKit = CmdCB($CA_GetIdKit),  $ID = CmdCB($CA_GetCurrentTarget)

While 1
	$CBType = "int"						; Hier werden div. Funktionen deklariert
	$HP = CmdCB($CA_GetMyMaxHP) 		; Lebenspunkte
	$E  = CmdCB($CA_GetMyMaxEnergy) 	; Energie
	$EP = CmdCB($CA_GetExperience)		; Erfahrungspunkte
	$Gold = CmdCB($CA_GetGold)			; Gold
	$MyID = CmdCB($CA_GetMyID)			; ID des Charakters
	$MapLoad = CmdCB($CA_GetMapLoading)	; Findet heraus ob der Char in ner Stadt/Außenposten is
	$GetMapID = CmdCB($CA_GetMapID)		; FIndet die ID der Map heraus
; Zeigt an wieviel Adrenalin auf den div. Skills ist
	$Adrenaline4 = CmdCB($CA_SkillAdrenaline,4)
	$Adrenaline5 = CmdCB($CA_SkillAdrenaline,5)
	$Adrenaline6 = CmdCB($CA_SkillAdrenaline,6)
; Zeigt an ob die Gruppe tot ist (verbesserungswürdig)
	$Tod1 = CmdCB($CA_GetIsDead,20)
	$Tod2 = CmdCB($CA_GetIsDead,23)
	$Tod3 = CmdCB($CA_GetIsDead,28)
	$Tod4 = CmdCB($CA_GetIsDead,24)
	$Tod5 = CmdCB($CA_GetIsDead,33)
	$Tod6 = CmdCB($CA_GetIsDead,57)
; Zeigt an ob der NPC tot ist.
	$TodW = CmdCB($CA_GetIsDead,32)
	$TodE = CmdCB($CA_GetIsDead,30)
	$TodM = CmdCB($CA_GetIsDead,58)
	$TodF = CmdCB($CA_GetIsDead,29)
; Gibt die Distanz zu Kilroy an
	$CBType = "float"
	$Distance2Kil = CmdCB($CA_GetMyDistanceToAgent,18)
	$CBType = "int"

	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $B_Start
			Start()

		Case $B_Beenden
			Beenden()

		Case $B_Profil
			_FFOpenURL("http://www.elitepvpers.com/forum/members/2257641-w0lfszeit.html")
			_FFStart("http://www.elitepvpers.com/forum/members/2257641-w0lfszeit.html")

		Case $B_Thread
			_FFOpenURL("http://www.elitepvpers.com/forum/gw-bot-discussions-questions/499990-berlebender-bot.html")
			_FFStart("http://www.elitepvpers.com/forum/gw-bot-discussions-questions/499990-berlebender-bot.html")

		Case $R_Hard
			Cmd($CA_SwitchMode, 1)

		Case $R_Normal
			Cmd($CA_SwitchMode, 0)
	EndSwitch

	GUICtrlSetData($L_HP,"HP: " & $HP[1] & "/" & $HP[0])
	GUICtrlSetData($L_E,"E: " & $E[1] & "/" & $E[0])
	GUICtrlSetData($L_Runs,"Runs/KDs/Deaths: " & $Runs & "/" & $Tode & "/" & $Deaths)
	GUICtrlSetData($L_EP, "EP: " & $EP[0] & " - " & $EP[0] - $EXP[0])
	GUICtrlSetData($L_Gold, "Gold: " & $Gold[0] & " - " & $Gold[0]-$G[0])
WEnd

Func Start()
	If $GetMapID[0] == NOT 644 Then
		GUICtrlSetData($L_Info,"Bitte nach Gunnars Feste reisen.")
		While $GetMapID == NOT 644
			$MapLoad = CmdCB($CA_GetMapLoading)
			GUICtrlSetData($L_Info,"Bitte nach Gunnars Feste reisen.")
			Sleep(1000)
		WEnd
	EndIf
		GUICtrlSetData($L_Info,"Laufe zu Kilroy.")
		Cmd($CA_QuestAbandon, 856)
		Cmd($CA_GoNPC,18)

		While $Distance2Kil[0] > 150.0
				$CBType = "float"
				$Distance2Kil = CmdCB($CA_GetMyDistanceToAgent,18)
			Sleep(1000)
		WEnd
		GUICtrlSetData($L_Info,"Akzeptiere Quest.")
			Cmd($CA_Dialog,8607747)
			Cmd($CA_Dialog,8607745)
			Cmd($CA_GoNPC,18)
			Cmd($CA_Dialog,132)
			GUICtrlSetData($L_Info,"Reise ins Verlies.")
			Verlies()
EndFunc

Func Verlies()
	While $MapLoad == 2
		Sleep(1000)
	WEnd
		GUICtrlSetData($L_Info,"Im Verlies angekommen.")

		Gruppe1()
		Aufheben()
		Gruppe2()
		Aufheben()
		Ettin()
		Aufheben()
		Gruppe3()
		Aufheben()
		Wolf()
		Aufheben()
		Gruppe4()
		Aufheben()
		Gruppe5()
		Aufheben()
		Gruppe6()
		Aufheben()
		Maghma()
		Aufheben()
		Fronis()
		Aufheben()
EndFunc

Func Belohnung()
	If $GetMapID[0] == 644 Then
		GUICtrlSetData($L_Info,"Hole Belohnung ab.")
		Cmd($CA_GoNPC,18)
		Cmd($CA_Dialog,8607751)
		GUICtrlSetData($L_Info,"Run erledigt.")
		Cmd($CA_TravelGH)
		Cmd($CA_LeaveGH)
		$Runs = $Runs + 1
		Start()
	Else
		GUICtrlSetData($L_Info,"Reise nach Gunnars Feste.")
		TravelTo(644)
	EndIf
EndFunc



Func Verkaufen()
	Sortieren()
	If $C_Verkaufen == 1 Then
	GUICtrlSetData($L_Info,"Verkaufe.")
		Cmd($CA_GoNPC,26)
		Sleep(8000)
			For $Platz = 1 To CmdCB($CA_GetBagSize,$Bag_BackPack) Step 1
				Cmd($CA_SellItem,$Bag_BackPack,$Platz)
			Next

			For $Platz = 1 To CmdCB($CA_GetBagSize,$Bag_BeltPouch) Step 1
				Cmd($CA_SellItem,$Bag_BeltPouch,$Platz)
			Next
	EndIf
EndFunc

Func Identifizieren()
	Sortieren()
	If $C_Identifizieren == 1 Then
	GUICtrlSetData($L_Info,"Identifiziere.")
		If CmdCB($GetIdKit[0]) == 0 Then
			Cmd($CA_GoNPC,26)
			Cmd($CA_BuyIdKit)
		Else
			MoveItemByID($GetIdKit[0],$Bag_Bag2,10)
		EndIf
	EndIf
EndFunc

Func Aufheben()
	If $C_Aufheben == 1
		Cmd($CA_AcceptAllItems)
	EndIf
EndFunc

Func Sortieren()
	GUICtrlSetData($L_Info,"Sortiere.")
	MoveItemByID($Dye_Black,$Bag_Bag2,1)
	MoveItemByID($Dye_White,$Bag_Bag2,2)
EndFunc

Func Gruppe1()
	GUICtrlSetData($L_Info,"Attackiere 1. Gruppe.")
	MoveEx(-15500,-15500)
	Cmd($CA_Attack,20)
	While $Tod1 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe2()
	GUICtrlSetData($L_Info,"Attackiere 2. Gruppe.")
	Cmd($CA_Attack,23)
	While $Tod2 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe3()
	GUICtrlSetData($L_Info,"Attackiere 3. Gruppe.")
	Cmd($CA_Attack,28)
	While $Tod3 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe4()
	GUICtrlSetData($L_Info,"Attackiere 4. Gruppe.")
	Cmd($CA_Attack,24)
	While $Tod4 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe5()
	GUICtrlSetData($L_Info,"Attackiere 5. Gruppe.")
	Cmd($CA_Attack,33)
	While $Tod5 == 0
		Kampf()
	WEnd
EndFunc

Func Gruppe6()
	GUICtrlSetData($L_Info,"Attackiere 6. Gruppe.")
	Cmd($CA_Attack,36)
	While $Tod6 == 0
		Kampf()
	WEnd
EndFunc

Func Ettin()
	GUICtrlSetData($L_Info,"Attackiere Ettin.")
	Cmd($CA_Attack,30)
	While $TodE == 0
		Kampf()
	WEnd
EndFunc

Func Wolf()
	GUICtrlSetData($L_Info,"Attackiere Wolf.")
	Cmd($CA_Attack,32)
	While $TodW == 0
		Kampf()
	WEnd
EndFunc

Func Maghma()
	GUICtrlSetData($L_Info,"Attackiere Maghma.")
	Cmd($CA_Attack,58)
	While $TodM == 0
		Kampf()
	WEnd
EndFunc

Func Fronis()
	GUICtrlSetData($L_Info,"Attackiere Fronis.")
	Cmd($CA_Attack,29)
	While $TodF == 0
		Kampf()
	WEnd
EndFunc

Func Kampf()
		DeathCheck()
			Cmd($CA_UseSkill,1,-1)
			Cmd($CA_UseSkill,3,-1)
			If $R_Hard Then
				Cmd($CA_UseSkill,7,-1)
			EndIf
			If $Adrenaline4 == 4 Then
				Cmd($CA_UseSkill,4,-1)
			EndIf
			If $Adrenaline5 == 10 Then
				Cmd($CA_UseSkill,5,-1)
			EndIf
			If $Adrenaline6 == 7 Then
				Cmd($CA_UseSkill,6,-1)
			EndIf
	EndIf
EndFunc

Func DeathCheck()
	If $E[1] == 0 Then
		GUICtrlSetData($L_Info,"Knockdown, wiederbeleben.")
		For $Energy = 0 To $E[0] Step 1
			Cmd($CA_UseSkill,8)
		Next
	$Tode = $Tode + 1
	EndIf

	If $HP[0] == 0 Then
		GUICtrlSetData($L_Info,"Tot -.-")
		$Deaths = $Deaths + 1
		Start()
	EndIf
EndFunc
Edit: Außerdem ist derzeit James Bond unterwegs (wirft 007-Error aus)
Vierfachpost O.o

Für den Anfang gar nicht schlecht :)
Du könntest den Code allerdings auf die Hälfte reduzieren ;)
03/29/2010 16:25 w0lfszeit#5
Ja ich warte ja immer auf ne Antwort, aber irgendwie ist keiner an nem kleinen Bot-Neuling intressiert :D
Ja kann ich mir vorstellen, kannst mir bitte paar Tipps geben, was ich verändern könnte, besonders beim Test ob er in dem Gebiet ist und das er da warten soll. das mit Kilroy hab ich nur notdürftig mit ner While gelöst, weiß ned ob das so ne gute Idee is, aber scheint zu klappen.
03/29/2010 16:50 kknb#6
würde mir das gerne genauer reinziehen, nur fehlt mir
a) eben die zeit weil ich selber am hardcore scripten bin
b)da ich selber kein gw spiele weiß ich nichtmal wo das gebiet ist :)

aber beim überfliegen von deinem script ist mir schonmal aufgefallen das das nicht son c&p crap ist der sinnlos zusammenkopiert worden ist, daher thx dafür :)
03/29/2010 17:00 w0lfszeit#7
Vielen Dank, macht nichts, hoffe das sich jemand findet.
Ich programmier da sicher schon 10h dran, geht eben als Anfänger ned so leicht.

Hab jetzt schon mal nen Fehler beim Verkaufen entdeckt.
03/30/2010 13:04 Thompsen#8
Ich versuch mal den Anfang zu machen.

1.AdlibEnable/Disable gibt es (wie du ja schon gemerkt hast) seit version 3.X nicht mehr.

Benutz einfach AdlibRegister.

2. Benutz für den Deathchek lieber $CA_Getdead
Und für die HP in deinem Script sind die MAX HP eigentlich auch ünnötig, also lieber CmdCb($CA_GetHP,-2), aber wenn du sie unbedingt in der GUI haben willst ist es auch egal.

3. Die AgentIds, mit denen du feststellst ob die Gruppe tot ist, sind äußerst suboptimal.
Benutz stattdessen lieber $CA_GetNumberOfAliveEnemyAgents.

Für die ID zu Killroy kannst du GetnearestNPCbyCoords benutzen, dann hast du immer die aktuelle ID und kannst mit $CA_GONPC hinlaufen(Compute Distance hilft auch)

4. Bau doch am Start des Scripts selbst einen Mapcheck ein
Code:
CmdCb($CA_Getmapid)
If $cbVar[0] <>XXX Then
Travelto XXX
sleep(1000)
Endif
Dann muss der Nutzer nicht selber reisen.


Für den Rest hab ich grad keine Zeit, aber 1 noch.
$CA_AcceptallItems funktioniert nur für dieses Fenster das nach Missionen erscheint, fürs Dropps aufsammeln benutze am besten die GWCAConstants func: Pickupitems($number, $maxdistance)

Ps:Ein Thx macht sich immer gut

Greets
03/30/2010 17:00 w0lfszeit#9
Code:
; Version: 0.5

#include-once

#include "Inject.au3"

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

HotKeySet("{F1}", "Start")
;HotKeySet("{Pause}", "Pause") Derzeit noch nicht in Verwendung
HotKeySet("{End}", "Beenden")

Func Beenden()
	Exit
EndFunc

;Sleep(20000)

#Region GUI

$cGUI = GUICreate("Fausthieb-Fete by w0lfszeit", 201, 184, 192, 124)
$Tab = GUICtrlCreateTab(0, 0, 201, 177)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$InfoBox = GUICtrlCreateTabItem("InfoBox")
$B_Start = GUICtrlCreateButton("Start <F1>", 8, 144, 59, 25, $WS_GROUP)
$B_Pause = GUICtrlCreateButton("<Pause>", 72, 144, 59, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$B_Ende = GUICtrlCreateButton("<Ende>", 136, 144, 59, 25, $WS_GROUP)
$L_HP = GUICtrlCreateLabel("HP:", 8, 32, 182, 17)
$L_E = GUICtrlCreateLabel("E:", 8, 48, 182, 17)
$L_Runs = GUICtrlCreateLabel("Runs:", 8, 64, 192, 17)
$L_EP = GUICtrlCreateLabel("EP:", 8, 80, 189, 17)
$L_Gold = GUICtrlCreateLabel("Gold:", 8, 96, 189, 17)
$L_Tat = GUICtrlCreateLabel("Tätigkeit:", 8, 112, 48, 17)
$L_Info = GUICtrlCreateLabel("Start drücken!", 56, 112, 143, 17)
$Funktionen = GUICtrlCreateTabItem("Funktionen")
GUICtrlSetState(-1,$GUI_SHOW)
$C_Aufheben = GUICtrlCreateCheckbox("Aufheben", 8, 32, 97, 17)
$C_Identifizieren = GUICtrlCreateCheckbox("Identifizieren", 8, 48, 97, 17)
$C_Verkaufen = GUICtrlCreateCheckbox("Verkaufen", 8, 64, 97, 17)
$C_Rollen = GUICtrlCreateCheckbox("Schriftrollen benutzen", 8, 88, 137, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
$B_SaveF = GUICtrlCreateButton("Save", 8, 144, 43, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$C_Truhe = GUICtrlCreateCheckbox("Truhe öffnen", 8, 104, 97, 17)
$Einstellungen = GUICtrlCreateTabItem("Einstellungen")
$R_Normal = GUICtrlCreateRadio("Normal Mode", 8, 40, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$R_Hard = GUICtrlCreateRadio("Hard Mode", 8, 56, 113, 17)
$L_maxT = GUICtrlCreateLabel("Maximale Tode:", 8, 88, 79, 17)
$I_maxT = GUICtrlCreateInput("20", 88, 88, 33, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$B_SaveE = GUICtrlCreateButton("Save", 8, 144, 43, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$B_Thread = GUICtrlCreateButton("Thread", 56, 144, 43, 25, $WS_GROUP)
$B_Profil = GUICtrlCreateButton("Profil", 104, 144, 43, 25, $WS_GROUP)
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion GUI
#Region Deklarationen
																; Hier werden div. statische Variablen definiert
Global $Tode = 0, $Runs = 0, $Deaths = 0						; Variablen-Deklarationen
Global $EXP = CmdCB($CA_GetExperience), $G = CmdCB($CA_GetGold)	; Funktionen-Deklarationen
Global $Kil[2]													; Array-Deklarationen

While 1
	$CBType = "int"							; Hier werden div. dynamische Variablen definiert
	$HP = CmdCB($CA_GetMyMaxHP) 			; Lebenspunkte
	$E  = CmdCB($CA_GetMyMaxEnergy) 		; Energie
	$EP = CmdCB($CA_GetExperience)			; Erfahrungspunkte
	$Gold = CmdCB($CA_GetGold)				; Gold
	$ID = CmdCB($CA_GetCurrentTarget)		; ID des anvisierten Spielers
	$MyID = CmdCB($CA_GetMyID)				; ID des Charakters
	$MapLoad = CmdCB($CA_GetMapLoading)		; Stadt = 0, Verlies = 1, Ladebildschirm = 2
	$GetMapID = CmdCB($CA_GetMapID)			; ID der Map
	$GetIDKit = CmdCB($CA_GetIdKit)			; ID des 1. Identifierungswerkzeuges (falls vorhanden)
	$LastDialog = CmdCB($CA_GetLastDialogID); ID des letzten Dialoges

; Zeigt an wieviel Adrenalin auf den div. Skills ist
	$Adrenaline4 = CmdCB($CA_SkillAdrenaline,4)
	$Adrenaline5 = CmdCB($CA_SkillAdrenaline,5)
	$Adrenaline6 = CmdCB($CA_SkillAdrenaline,6)

; Zeigt an ob die Gruppen tot sind
	$Tod = CmdCB($CA_GetNumberOfAliveEnemyAgents)

; Gibt die Größe des Inventars an
	$Rucksack = CmdCB($CA_GetBagSize,$Bag_BackPack)
	$GTasche = CmdCB($CA_GetBagSize,$Bag_BeltPouch)
	$Tasche1 = CmdCB($CA_GetBagSize,$Bag_Bag1)

; Gibt die Item-/Modell-ID an
	$Item = CmdCB($CA_GetItemId,20)

; Gibt die ID des jeweiligen NPCs an
	$KID = GetNearestNpcToCoords(17000.0,-5000.0)
	$SID = GetNearestNpcToCoords(17700.0,-7500.0)
	$1ID = GetNearestNpcToCoords(-15000.0,-15500.0)
	$2ID = GetNearestNpcToCoords(-12000.0,-16000.0)
	$EID = GetNearestNpcToCoords(-7500.0,-15000.0)
	$3ID = GetNearestNpcToCoords(-3500.0,-16000.0)
	$WID = GetNearestNpcToCoords(-2500.0,-14000.0)
	$4ID = GetNearestNpcToCoords(500.0,-14000.0)
	$5ID = GetNearestNpcToCoords(2000.0,-15000.0)
	$6ID = GetNearestNpcToCoords(6000.0,-15000.0)
	$MID = GetNearestNpcToCoords(7200.0,-15800.0)
	$FID = GetNearestNpcToCoords(7200.0,-15700.0)

; Gibt den nähesten Gegner an
	$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)

; Gibt die Distanzen zu div. NPCs an
	$CBType = "float"
	$Distance2KID = CmdCB($CA_GetMyDistanceToAgent,$KID)
	$Distance2SID = CmdCB($CA_GetMyDistanceToAgent,$SID)
	$Distance21ID = CmdCB($CA_GetMyDistanceToAgent,$1ID)
	$Distance22ID = CmdCB($CA_GetMyDistanceToAgent,$2ID)
	$Distance2EID = CmdCB($CA_GetMyDistanceToAgent,$EID)
	$Distance23ID = CmdCB($CA_GetMyDistanceToAgent,$3ID)
	$Distance2WID = CmdCB($CA_GetMyDistanceToAgent,$WID)
	$Distance24ID = CmdCB($CA_GetMyDistanceToAgent,$4ID)
	$Distance25ID = CmdCB($CA_GetMyDistanceToAgent,$5ID)
	$Distance26ID = CmdCB($CA_GetMyDistanceToAgent,$6ID)
	$Distance2MID = CmdCB($CA_GetMyDistanceToAgent,$MID)
	$Distance2FID = CmdCB($CA_GetMyDistanceToAgent,$FID)

	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $B_Start
			Start()
		Case $B_Ende
			Beenden()
		Case $B_Profil
			_FFOpenURL("http://www.elitepvpers.com/forum/members/2257641-w0lfszeit.html")
			_FFStart("http://www.elitepvpers.com/forum/members/2257641-w0lfszeit.html")
		Case $B_Thread
			_FFOpenURL("http://www.elitepvpers.com/forum/gw-bot-discussions-questions/499990-berlebender-bot.html")
			_FFStart("http://www.elitepvpers.com/forum/gw-bot-discussions-questions/499990-berlebender-bot.html")
		Case $R_Hard
			Cmd($CA_SwitchMode, 1)
		Case $R_Normal
			Cmd($CA_SwitchMode, 0)
	EndSwitch

; Füllt die Infos auf
	GUICtrlSetData($L_HP,"HP: " & $HP[1] & "/" & $HP[0])
	GUICtrlSetData($L_E,"E: " & $E[1] & "/" & $E[0])
	GUICtrlSetData($L_Runs,"Runs/KDs/Deaths: " & $Runs & "/" & $Tode & "/" & $Deaths)
	GUICtrlSetData($L_EP, "EP: " & $EP[0] & " - " & $EP[0] - $EXP[0])
	GUICtrlSetData($L_Gold, "Gold: " & $Gold[0] & " - " & $Gold[0]-$G[0])
	GUICtrlSetData($L_Info, "Start drücken!" & $NearestE[0])
WEnd
#EndRegion Deklarationen

#Region Quest
; Soll nach Gunnars Feste reisen, Quest annehmen
Func Start()
	If $GetMapID[0] <> 644 Then
		GUICtrlSetData($L_Info,"Reise nach Gunnars Feste.")
		$CBType = "int"
		TravelTo(644)
		Sleep(1000)
		$KID = GetNearestNpcToCoords(17000.0,-5000.0)
		$SID = GetNearestNpcToCoords(17700.0,-7500.0)
	EndIf
	GUICtrlSetData($L_Info,"Laufe zu Kilroy.")
	Cmd($CA_QuestAbandon, 856)
	Cmd($CA_GoNPC,$KID)
	While $Distance2KID[0] > 150.0
		$CBType = "float"
		$Distance2KID = CmdCB($CA_GetMyDistanceToAgent,$KID)
		Sleep(1000)
	WEnd
	GUICtrlSetData($L_Info,"Akzeptiere Quest.")
	Cmd($CA_Dialog,8607747)
	Cmd($CA_Dialog,8607745)
	Sleep(500)
	Cmd($CA_GoNPC,$KID)
	Cmd($CA_Dialog,132)
	GUICtrlSetData($L_Info,"Reise ins Verlies.")
	Sleep(500)
	Verlies()
EndFunc

; Soll den Ablauf im Verlies bestimmen
Func Verlies()
	$CBType = "int"
	While $GetMapID[0] <> 704
		$GetMapID = CmdCB($CA_GetMapID)
	WEnd
	$MyID = CmdCB($CA_GetMyID)
	$1ID = GetNearestNpcToCoords(-15000.0,-15500.0)
	$2ID = GetNearestNpcToCoords(-12000.0,-16000.0)
	$EID = GetNearestNpcToCoords(-7500.0,-15000.0)
	$3ID = GetNearestNpcToCoords(-3500.0,-16000.0)
	$WID = GetNearestNpcToCoords(-2500.0,-14000.0)
	$4ID = GetNearestNpcToCoords(500.0,-14000.0)
	$5ID = GetNearestNpcToCoords(2000.0,-15000.0)
	$6ID = GetNearestNpcToCoords(6000.0,-15000.0)
	$MID = GetNearestNpcToCoords(7200.0,-15800.0)
	$FID = GetNearestNpcToCoords(7200.0,-15700.0)

		Gruppe1()
		Aufheben()
		Gruppe2()
		Aufheben()
		Ettin()
		Truhe()
		Aufheben()
		Gruppe3()
		Aufheben()
		Wolf()
		Aufheben()
		Gruppe4()
		Aufheben()
		Gruppe5()
		Aufheben()
		Gruppe6()
		Aufheben()
		Maghma()
		Aufheben()
		Fronis()
		Aufheben()
EndFunc

; Soll die Belohnung abholen
Func Belohnung()
	If $GetMapID[0] <> 644 Then
		GUICtrlSetData($L_Info,"Reise nach Gunnars Feste.")
		$CBType = "int"
		TravelTo(644)
		Sleep(1000)
		$KID = GetNearestNpcToCoords(17000.0,-5000.0)
		$SID = GetNearestNpcToCoords(17700.0,-7500.0)
	EndIf

	Cmd($CA_GoNPC,$KID)
	Sleep(500)
	Cmd($CA_Dialog,8607751)
	GUICtrlSetData($L_Info,"Run erledigt.")
	Cmd($CA_TravelGH)
	Cmd($CA_LeaveGH)
	$Runs = $Runs + 1
	If $Item[0] <> 0 Then
		Identifizieren()
		Verkaufen()
	EndIf
	Start()
EndFunc
#EndRegion Quest
#Region Funktionen
; Soll Verkaufen
Func Verkaufen()
	Sortieren()
	If GUICtrlRead($C_Verkaufen) = $GUI_CHECKED Then
		GUICtrlSetData($L_Info,"Laufe zu Myrun.")
		Cmd($CA_GoNPC,$SID)
		While $Distance2SID[0] > 150.0
			$CBType = "float"
			$Distance2SID = CmdCB($CA_GetMyDistanceToAgent,$SID)
			Sleep(1000)
		WEnd
			For $Platz = 1 To $Rucksack[0] Step 1
				GUICtrlSetData($L_Info,"Verkaufe: RS, Platz: " & $Platz)
				Cmd($CA_SellItem,$Bag_BackPack,$Platz)
				Sleep(500)
			Next
			For $Platz = 1 To $GTasche[0] Step 1
				GUICtrlSetData($L_Info,"Verkaufe: GT, Platz: " & $Platz)
				Cmd($CA_SellItem,$Bag_BeltPouch,$Platz)
				Sleep(500)
			Next
			For $Platz = 1 To 5 Step 1
				GUICtrlSetData($L_Info,"Verkaufe: Tasche1, Platz: " & $Platz)
				Cmd($CA_SellItem,$Bag_Bag1,$Platz)
				Sleep(500)
			Next
	EndIf
EndFunc

; Soll Identifizieren
Func Identifizieren()
	Sortieren()
	If GUICtrlRead($C_Identifizieren) = $GUI_CHECKED Then
		If CmdCB($GetIdKit[0]) == 0 Then
			GUICtrlSetData($L_Info,"Kaufe Identifizier-Kid.")
			Cmd($CA_GoNPC,26)
			Cmd($CA_BuyIdKit)
		Else
			MoveItemByID($GetIdKit[0],$Bag_Bag2,10)
		EndIf
			For $Platz = 1 To $Rucksack[0] Step +1
				GUICtrlSetData($L_Info,"Identifiziere: RS, Platz: " & $Platz)
				Cmd($CA_IdentifyItem,$Bag_BackPack,$Platz)
				Sleep(500)
			Next
			For $Platz = 1 To $GTasche[0] Step +1
				GUICtrlSetData($L_Info,"Identifiziere: GT, Platz: " & $Platz)
				Cmd($CA_IdentifyItem,$Bag_BeltPouch,$Platz)
				Sleep(500)
			Next
			For $Platz = 1 To 5 Step +1
				GUICtrlSetData($L_Info,"Identifiziere: Tasche1, Platz: " & $Platz)
				Cmd($CA_IdentifyItem,$Bag_Bag1,$Platz)
				Sleep(500)
			Next
	EndIf
EndFunc

; Soll Aufheben
Func Aufheben()
	If GUICtrlRead($C_Aufheben) = $GUI_CHECKED Then
		PickUpItems()
	EndIf
EndFunc

; Soll div. Items in den hinteren Bereich verschieben (unvollständig)
Func Sortieren()
	GUICtrlSetData($L_Info,"Sortiere.")
	MoveItemByID($Dye_Black,$Bag_Bag2,1)
	MoveItemByID($Dye_White,$Bag_Bag2,2)
EndFunc

; Soll die Truhe öffnen
Func Truhe()
	If GUICtrlRead($C_Truhe) = $GUI_CHECKED Then
		Cmd($CA_OpenChest)
	EndIf
EndFunc
#EndRegion Funktionen

#Region Gruppen
Func Gruppe1()
	GUICtrlSetData($L_Info,"Attackiere 1. Gruppe.")
	$1ID = GetNearestNpcToCoords(-15000.0,-15500.0)
	Cmd($CA_Attack,22)
	While $NearestE[0] <> 26
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Gruppe2()
	GUICtrlSetData($L_Info,"Attackiere 2. Gruppe.")
	Cmd($CA_Attack,$2ID)
	While $NearestE <> 28
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Gruppe3()
	GUICtrlSetData($L_Info,"Attackiere 3. Gruppe.")
	Cmd($CA_Attack,$3ID)
	While $NearestE[0] <> 36
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Gruppe4()
	GUICtrlSetData($L_Info,"Attackiere 4. Gruppe.")
	Cmd($CA_Attack,$4ID)
	While $NearestE[0] <> 56
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Gruppe5()
	GUICtrlSetData($L_Info,"Attackiere 5. Gruppe.")
	Cmd($CA_Attack,$5ID)
	While $NearestE[0] <> 66
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Gruppe6()
	GUICtrlSetData($L_Info,"Attackiere 6. Gruppe.")
	Cmd($CA_Attack,$6ID)
	While $NearestE[0] <> 38
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Ettin()
	GUICtrlSetData($L_Info,"Attackiere Ettin.")
	Cmd($CA_Attack,$EID)
	While $NearestE[0] <> 31
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Wolf()
	GUICtrlSetData($L_Info,"Attackiere Wolf.")
	Cmd($CA_Attack,$WID)
	While $NearestE[0] <> 40
		$NearestE = CmdCB($CA_GetNearestAliveEnemyToAgent,$MyID)
		Kampf()
	WEnd
EndFunc

Func Maghma()
	GUICtrlSetData($L_Info,"Attackiere Mahgma.")
	Cmd($CA_Attack,$MID)
	While $NearestE[0] <> 40
		Kampf()
	WEnd
EndFunc

Func Fronis()
	GUICtrlSetData($L_Info,"Attackiere Fronis.")
	Cmd($CA_Attack,$FID)
	While $Tod[0] <> 0
		$Tod = CmdCB($CA_GetNumberOfAliveEnemyAgents)
		Kampf()
	WEnd
EndFunc
#EndRegion Gruppen

#Region Kampf
Func DeathCheck()
	If $E[1] == 0 Then
		GUICtrlSetData($L_Info,"Knockdown, wiederbeleben.")
		While $E[1] < $E[0]
			Cmd($CA_UseSkill,8)
		WEnd
	$Tode = $Tode + 1
	EndIf

	If $HP[0] == 0 Then
		GUICtrlSetData($L_Info,"Tot -.-")
		$Deaths = $Deaths + 1
		Start()
	EndIf
EndFunc

Func Kampf()
	DeathCheck()
	Cmd($CA_UseSkill,1,-1)
	Cmd($CA_UseSkill,3,-1)
	If $R_Hard Then
		Cmd($CA_UseSkill,7,-1)
	EndIf
	If $Adrenaline4 == 4 Then
		Cmd($CA_UseSkill,4,-1)
	EndIf
	If $Adrenaline5 == 10 Then
		Cmd($CA_UseSkill,5,-1)
	EndIf
	If $Adrenaline6 == 7 Then
		Cmd($CA_UseSkill,6,-1)
	EndIf
EndFunc
#EndRegion Kampf
Stand: 22:29 Uhr, 01.04.10
04/01/2010 12:31 Gabber Nation#10
Wo bleibt denn der Bot? Ich würd den auch gerne mal ausprobieren.:)
04/01/2010 12:35 w0lfszeit#11
Jaja ich gib mein bestes, heute kann ich sowieso nicht weitertun, nur ein paar Kleinigkeiten so am Script vornehmen, da ja GWCA nicht funktioniert.
04/01/2010 12:37 kknb#12
harboe hat das doch mit dem neusten update gefixt
04/01/2010 13:21 Frutex#13
Quote:
Originally Posted by kknb View Post
harboe hat das doch mit dem neusten update gefixt
Ich hab nur leider keine Lust named Pipes zu benutzen.
Das spackt bei mir immer noch rum.
04/01/2010 22:28 w0lfszeit#14
Kann mal wer meinen Bot ansehen auch :D Kann den jetzt nicht testen, vllt funktioniert er schon ^^ naja einfach mal sagen was überflüssig ist, was ich besser erledigen kann etc.
04/01/2010 23:26 kknb#15
Quote:
Originally Posted by indisturbalcha View Post
Ich hab nur leider keine Lust named Pipes zu benutzen.
Das spackt bei mir immer noch rum.
da wirst du früher oder später aber nicht drum rum kommen.