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.
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:
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)
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
Ja ich warte ja immer auf ne Antwort, aber irgendwie ist keiner an nem kleinen Bot-Neuling intressiert
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.
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 **** ist der sinnlos zusammenkopiert worden ist, daher thx dafür
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] <>*** Then
Travelto ***
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)
Kann mal wer meinen Bot ansehen auch Kann den jetzt nicht testen, vllt funktioniert er schon ^^ naja einfach mal sagen was überflüssig ist, was ich besser erledigen kann etc.
Überlebender - Bot 03/21/2010 - GW Bots - 26 Replies Heyho, ich habe jetzt ziemlich lnage gesucht und in dem Forum nur einen alten "Überlebender" Bot gefunden der out of date ist
gibts es zur zeit i-wie einen Bot für den Überlendentitel
Mfg Luke