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