|
You last visited: Today at 02:40
Advertisement
GW Working Bots 2019!
Discussion on GW Working Bots 2019! within the GW Exploits, Hacks, Bots, Tools & Macros forum part of the Guild Wars category.
04/19/2019, 05:21
|
#346
|
elite*gold: 0
Join Date: Feb 2018
Posts: 129
Received Thanks: 44
|
Quote:
Originally Posted by Coaxx123
I don't think that's a ban I think someone may have changed your password mate, maybe your account was compromised? Did you happen to initiate any .exe files from these bots? Cos bots should only be in .au3 format, and .exe aren't to be trusted.
|
Just an add to that, an unchecked .au3 file can be bad to people who don’t know what to look for. Was my issue once, before I used bots by people I trust. Strecky’s bots I used before only, and I lost accounts not to bans. Not starting another wave of accusations because he denies it but he has posted bots on her and once again people losing accounts, ill leave it at that. If it’s not you strecky I apologise.
|
|
|
04/19/2019, 07:39
|
#347
|
elite*gold: 0
Join Date: Nov 2018
Posts: 24
Received Thanks: 3
|
Quote:
Originally Posted by Duffy722
Just an add to that, an unchecked .au3 file can be bad to people who don’t know what to look for. Was my issue once, before I used bots by people I trust. Strecky’s bots I used before only, and I lost accounts not to bans. Not starting another wave of accusations because he denies it but he has posted bots on her and once again people losing accounts, ill leave it at that. If it’s not you strecky I apologise.
|
his is really weird because it happened just after having DL 2019 Vaettir Bot Basic of strecky
|
|
|
04/19/2019, 09:04
|
#348
|
elite*gold: 0
Join Date: Jan 2010
Posts: 5
Received Thanks: 2
|
Quote:
Originally Posted by Duffy722
Just an add to that, an unchecked .au3 file can be bad to people who don’t know what to look for. Was my issue once, before I used bots by people I trust. Strecky’s bots I used before only, and I lost accounts not to bans. Not starting another wave of accusations because he denies it but he has posted bots on her and once again people losing accounts, ill leave it at that. If it’s not you strecky I apologise.
|
Your post is wierd. You are accusing someone, but then say you are not accusing and then apologizing that you acuse the person (without proof as you are not even sure), but still [continue] to accuse the person.
I can understand your frustration at losing your account(s). Any person would be. That happens to idiots like us trying to bot. May I suggest in future that if you are not willing to lose an account that you actually just stick to playing a game manually instead of botting? or....even better.... learn to code your own bot.
I say the above as you continue to be on this forum and looking for bots despite having lost your accounts. It must feel so terrible to be so hung up on botting.
|
|
|
04/19/2019, 09:42
|
#349
|
elite*gold: 0
Join Date: Mar 2019
Posts: 136
Received Thanks: 42
|
This is all so tiresome, I'm not defending strecky and I'm also not going to point any fingers. All of us bot and we all know there are risks, but we do it anyway, don't go running .Exe files and don't run .Au3 files without having a look at the code, and lastly stop throwing around baseless accusations towards people without any hint of proof, it's ludicrous
|
|
|
04/19/2019, 12:50
|
#350
|
elite*gold: 100
Join Date: Aug 2007
Posts: 224
Received Thanks: 362
|
Source Code 2019 Vaettir Bot Basic
So I do not see anything suspicious
Code:
#NoTrayIcon
#RequireAdmin
#cs
#################################
# #
# Vaettir Bot #
# #
# by gigi #
# #
#################################
ChangeLog ChangeLog v1.1.0
The Following mods were added:
- Autodetect what Guild Hall you are in
- Buy rare materials finally fixed also added Amber and Jade
- Deleted quantity or price. It buys until gold on character is <20k
- Updated lists of items in game
- Deleted a bunch of Counting/Displaying specific drops ** still working on the bugs in that
- Skaldish helped fix my Array for Chest, Merchant, RareTrader. I messed up what Ralle sent me.
- Changed naming structure for Towns, Explorables, Guild Halls
- Added a check box for Store UNID golds.
#ce
;~ Summary: Farms Vaettirs (Leaves from Longeyes to farm Jaga Moarain)
;~ This script is currently set to pickup all event items and Glacial Stones
;~ Change line 174 to "TRUE" if you wish to pick up gold items
;~ Line# 174" If $lRarity == $RARITY_GOLD Then Return False; pickup gold items
;~ _____________________________________
;~
;~ This was tested using a A/Me with the folowing info:
;~ This Build: OwVUI2h5lPP8Id2BkAiAvpLBTAA
;~ Full Blessed Insignias
;~ Shadow Arts Headpiece +1 +3
;~ +50hp Rune
;~ +10 Rune Vitae x3 (can also use radiant +2 energy)
;~ Sword/Speer/Axe w/ +5 energy 20% enchant
;~ Shield Q8/16 w/ +10 vs. Earth and 30hp (or +45hp Enchant)
;~ ChangeLog v1.2.0 "$tReCky" (8.18.18)
; Updated gwa2
; Updated gwa2 Headers
; Reduced GUI
; Removed and commented out salvage/Storage/Merch
;~ ChangeLog v1.2.0 "RiflemanX & Zaishen" (3.27.19)
; Updated gwa2
; Updated gwa2 Headers
; GUI: Enlarged start button
; GUI: Centered status outpout
; GUI: Centered start button
; GUI: Removed time stamp from status output
; Tested and ensured functionality
; Added general information
#include "GWA2.au3"
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", True)
Opt("GUICloseOnESC", False)
Opt("MustDeclareVars", True)
; ==== Constants ====
Global Enum $DIFFICULTY_NORMAL, $DIFFICULTY_HARD
Global Enum $INSTANCETYPE_OUTPOST, $INSTANCETYPE_EXPLORABLE, $INSTANCETYPE_LOADING
Global Enum $RANGE_ADJACENT=156, $RANGE_NEARBY=240, $RANGE_AREA=312, $RANGE_EARSHOT=1000, $RANGE_SPELLCAST = 1085, $RANGE_SPIRIT = 2500, $RANGE_COMPASS = 5000
Global Enum $RANGE_ADJACENT_2=156^2, $RANGE_NEARBY_2=240^2, $RANGE_AREA_2=312^2, $RANGE_EARSHOT_2=1000^2, $RANGE_SPELLCAST_2=1085^2, $RANGE_SPIRIT_2=2500^2, $RANGE_COMPASS_2=5000^2
Global Enum $PROF_NONE, $PROF_WARRIOR, $PROF_RANGER, $PROF_MONK, $PROF_NECROMANCER, $PROF_MESMER, $PROF_ELEMENTALIST, $PROF_ASSASSIN, $PROF_RITUALIST, $PROF_PARAGON, $PROF_DERVISH
Global $BAG_SLOTS[18] = [0, 20, 5, 10, 10, 20, 41, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 9]
Global Const $MAP_ID_BJORA = 482
Global Const $MAP_ID_JAGA = 546
Global Const $MAP_ID_LONGEYE = 650
Global Const $SKILL_ID_SHROUD = 1031
Global Const $SKILL_ID_CHANNELING = 38
Global Const $SKILL_ID_ARCHANE_ECHO = 75
Global Const $SKILL_ID_WASTREL_DEMISE = 1335
Global Const $RARITY_GOLD = 2624
Global Const $RARITY_PURPLE = 2626
Global Const $RARITY_BLUE = 2623
Global Const $RARITY_WHITE = 2621
Global Const $ITEM_ID_LOCKPICKS = 22751
Global Const $ITEM_ID_SALVAGE_KIT = 2992
Global Const $ITEM_ID_ID_KIT = 2989
Global Const $ITEM_ID_DYES = 146
Global Const $ITEM_EXTRAID_BLACKDYE = 10
Global Const $ITEM_EXTRAID_WHITEDYE = 12
Global Const $ITEM_ID_GLACIAL_STONES = 27047
Global Const $ITEM_ID_TOTS = 28434
Global Const $ITEM_ID_GOLDEN_EGGS = 22752
Global Const $ITEM_ID_BUNNIES = 22644
Global Const $ITEM_ID_GROG = 30855
Global Const $ITEM_ID_CLOVER = 22191
Global Const $ITEM_ID_PIE = 28436
Global Const $ITEM_ID_CIDER = 28435
Global Const $ITEM_ID_POPPERS = 21810
Global Const $ITEM_ID_ROCKETS = 21809
Global Const $ITEM_ID_CUPCAKES = 22269
Global Const $ITEM_ID_SPARKLER = 21813
Global Const $ITEM_ID_HONEYCOMB = 26784
Global Const $ITEM_ID_VICTORY_TOKEN = 18345
Global Const $ITEM_ID_LUNAR_TOKEN = 21833
Global Const $ITEM_ID_HUNTERS_ALE = 910
Global Const $ITEM_ID_LUNAR_TOKENS = 28433
Global Const $ITEM_ID_KRYTAN_BRANDY = 35124
Global Const $ITEM_ID_BLUE_DRINK = 21812
Global Const $ITEM_ID_GHOST_IN_A_BOX = 6368
Global Const $ITEM_ID_SHAMROCK_ALE = 22190
; ================== CONFIGURATION ==================
; Edit the following two lines to count a particular item in the interface
Global Const $EventItemModelID = $ITEM_ID_GOLDEN_EGGS
Global Const $EventItemName = "EGGS" ; just for the interface.
; True or false to load the list of logged in characters or not
Global Const $doLoadLoggedChars = True
; ================ END CONFIGURATION ================
; ==== Bot global variables ====
Global $EventItemCount = 0
Global $RenderingEnabled = True
Global $RunCount = 0
Global $FailCount = 0
Global $BotRunning = False
Global $BotInitialized = False
Global $ChatStuckTimer = TimerInit()
; ==== Build ====
Global Const $SkillBarTemplate = "OwVUI2h5lPP8Id2BkAiAvpLBTAA"
; declare skill numbers to make the code WAY more readable (UseSkill($sf) is better than UseSkill(2))
Global Const $paradox = 1
Global Const $sf = 2
Global Const $shroud = 3
Global Const $wayofperf = 4
Global Const $hos = 5
Global Const $wastrel = 6
Global Const $echo = 7
Global Const $channeling = 8
; Store skills energy cost
Global $skillCost[9]
$skillCost[$paradox] = 15
$skillCost[$sf] = 5
$skillCost[$shroud] = 10
$skillCost[$wayofperf] = 5
$skillCost[$hos] = 5
$skillCost[$wastrel] = 5
$skillCost[$echo] = 15
$skillCost[$channeling] = 5
; ==== GUI ====
Global Const $mainGui = GUICreate("Vaettir Bot", 160, 190)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
Global $Input
If $doLoadLoggedChars Then
$Input = GUICtrlCreateCombo("", 8, 8, 129, 21)
GUICtrlSetData(-1, GetLoggedCharNames())
Else
$Input = GUICtrlCreateInput("character name", 8, 8, 129, 21)
EndIf
GUICtrlCreateLabel($EventItemName, 8, 35, 70, 17)
Global Const $EventItemLabel = GUICtrlCreateLabel($EventItemCount, 80, 35, 50, 17)
GUICtrlCreateLabel("Runs:", 8, 65, 70, 17)
Global Const $RunsLabel = GUICtrlCreateLabel($RunCount, 80, 65, 50, 17)
GUICtrlCreateLabel("Fails:", 8, 80, 70, 17)
Global Const $FailsLabel = GUICtrlCreateLabel($FailCount, 80, 80, 50, 17)
Global Const $Checkbox = GUICtrlCreateCheckbox("Disable Rendering", 8, 98, 129, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetOnEvent(-1, "ToggleRendering")
Global Const $Button = GUICtrlCreateButton("Start", 14, 125, 131, 30, $SS_Center)
GUICtrlSetOnEvent(-1, "GuiButtonHandler")
Global Const $StatusLabel = GUICtrlCreateLabel("", 14, 160, 125, 37, $SS_Center)
GUISetState [MENTION=330060]Sw_[/MENTION]SHOW)
;~ Description: Handles the button presses
Func GuiButtonHandler()
If $BotRunning Then
GUICtrlSetData($Button, "Will pause after this run")
GUICtrlSetState($Button, $GUI_DISABLE)
$BotRunning = False
ElseIf $BotInitialized Then
GUICtrlSetData($Button, "Pause")
$BotRunning = True
Else
Out("Initializing")
Local $CharName = GUICtrlRead($Input)
If $CharName=="" Then
If Initialize(ProcessExists("gw.exe")) = False Then
MsgBox(0, "Error", "Guild Wars is not running.")
Exit
EndIf
Else
If Initialize($CharName) = False Then
MsgBox(0, "Error", "Could not find a Guild Wars client with a character named '"&$CharName&"'")
Exit
EndIf
EndIf
GUICtrlSetState($Checkbox, $GUI_ENABLE)
GUICtrlSetState($Input, $GUI_DISABLE)
GUICtrlSetData($Button, "Pause")
WinSetTitle($mainGui, "", "VBot-" & GetCharname())
$BotRunning = True
$BotInitialized = True
EndIf
EndFunc
Out("Waiting for input")
While Not $BotRunning
Sleep(500)
WEnd
; load template if we're in town
If GetMapLoading() == $INSTANCETYPE_OUTPOST Then LoadSkillTemplate($SkillBarTemplate)
While True
If GetMapID() <> $MAP_ID_JAGA Then RunThere()
If GetIsDead(-2) Then ContinueLoop
While 1 ; can change this into something like While CountFreeSlots() > 1
If Not $BotRunning Then
Out("Bot Paused")
GUICtrlSetState($Button, $GUI_ENABLE)
GUICtrlSetData($Button, "Start")
While Not $BotRunning
Sleep(500)
WEnd
EndIf
CombatLoop()
If Mod($RunCount, 15) == 0 And GUICtrlRead($Checkbox) == $GUI_CHECKED Then
EnableRendering()
WinSetState(GetWindowHandle(), "", [MENTION=330060]Sw_[/MENTION]SHOW)
RndSleep(10000)
ClearMemory()
DisableRendering()
WinSetState(GetWindowHandle(), "", [MENTION=330060]Sw_[/MENTION]HIDE)
EndIf
WEnd
WEnd
;~ Description: zones to longeye if we're not there, and travel to Jaga Moraine
Func RunThere()
If GetMapID() <> $MAP_ID_LONGEYE Then
Out("Travelling to longeye")
TravelTo($MAP_ID_LONGEYE)
EndIf
SwitchMode(1)
Out("Exiting Outpost")
Move(-26472, 16217)
WaitMapLoading($MAP_ID_BJORA)
UseItemByModelId($ITEM_ID_CUPCAKES)
Out("Running to Jaga")
If Not MoveRunning(15003.8, -16598.1) Then Return
If Not MoveRunning(15003.8, -16598.1) Then Return
If Not MoveRunning(12699.5, -14589.8) Then Return
If Not MoveRunning(11628, -13867.9) Then Return
If Not MoveRunning(10891.5, -12989.5) Then Return
If Not MoveRunning(10517.5, -11229.5) Then Return
If Not MoveRunning(10209.1, -9973.1) Then Return
If Not MoveRunning(9296.5, -8811.5) Then Return
If Not MoveRunning(7815.6, -7967.1) Then Return
If Not MoveRunning(6266.7, -6328.5) Then Return
If Not MoveRunning(4940, -4655.4) Then Return
If Not MoveRunning(3867.8, -2397.6) Then Return
If Not MoveRunning(2279.6, -1331.9) Then Return
If Not MoveRunning(7.2, -1072.6) Then Return
If Not MoveRunning(7.2, -1072.6) Then Return
If Not MoveRunning(-1752.7, -1209) Then Return
If Not MoveRunning(-3596.9, -1671.8) Then Return
If Not MoveRunning(-5386.6, -1526.4) Then Return
If Not MoveRunning(-6904.2, -283.2) Then Return
If Not MoveRunning(-7711.6, 364.9) Then Return
If Not MoveRunning(-9537.8, 1265.4) Then Return
If Not MoveRunning(-11141.2,857.4) Then Return
If Not MoveRunning(-12730.7,371.5) Then Return
If Not MoveRunning(-13379, 40.5) Then Return
If Not MoveRunning(-14925.7,1099.6) Then Return
If Not MoveRunning(-16183.3,2753) Then Return
If Not MoveRunning(-17803.8,4439.4) Then Return
If Not MoveRunning(-18852.2,5290.9) Then Return
If Not MoveRunning(-19250, 5431) Then Return
If Not MoveRunning(-19968, 5564) Then Return
Move(-20076, 5580, 30)
WaitMapLoading($MAP_ID_JAGA)
EndFunc
; Description: This is pretty much all, take bounty, do left, do right, kill, rezone
Func CombatLoop()
;If Not $RenderingEnabled Then ClearMemory()
If GetNornTitle() < 160000 Then
Out("Taking Blessing")
GoNearestNPCToCoords(13318, -20826)
Dialog(132)
RndSleep(1000)
EndIf
Out("Moving to aggro left")
MoveTo(13501, -20925)
MoveTo(13172, -22137)
TargetNearestEnemy()
MoveAggroing(12496, -22600)
MoveAggroing(11375, -22761)
MoveAggroing(10925, -23466)
MoveAggroing(10917, -24311)
MoveAggroing(9910, -24599)
MoveAggroing(8995, -23177)
MoveAggroing(8307, -23187)
MoveAggroing(8213, -22829)
MoveAggroing(8307, -23187)
MoveAggroing(8213, -22829)
MoveAggroing(8740, -22475)
MoveAggroing(8880, -21384)
MoveAggroing(8684, -20833)
MoveAggroing(8982, -20576)
Out("Waiting for left ball")
WaitFor(12*1000)
If GetDistance()<1000 Then
UseSkillEx($hos, -1)
Else
UseSkillEx($hos, -2)
EndIf
WaitFor(6000)
TargetNearestEnemy()
Out("Moving to aggro right")
MoveAggroing(10196, -20124)
MoveAggroing(9976, -18338)
MoveAggroing(11316, -18056)
MoveAggroing(10392, -17512)
MoveAggroing(10114, -16948)
MoveAggroing(10729, -16273)
MoveAggroing(10810, -15058)
MoveAggroing(11120, -15105)
MoveAggroing(11670, -15457)
MoveAggroing(12604, -15320)
TargetNearestEnemy()
MoveAggroing(12476, -16157)
Out("Waiting for right ball")
WaitFor(15*1000)
If GetDistance()<1000 Then
UseSkillEx($hos, -1)
Else
UseSkillEx($hos, -2)
EndIf
WaitFor(5000)
Out("Blocking enemies in spot")
MoveAggroing(12920, -17032, 30)
MoveAggroing(12847, -17136, 30)
MoveAggroing(12720, -17222, 30)
WaitFor(300)
MoveAggroing(12617, -17273, 30)
WaitFor(300)
MoveAggroing(12518, -17305, 20)
WaitFor(300)
MoveAggroing(12445, -17327, 10)
Out("Killing")
Kill()
WaitFor(1200)
Out("Looting")
PickUpLoot()
If GetIsDead(-2) Then
$FailCount += 1
GUICtrlSetData($FailsLabel, $FailCount)
Else
$RunCount += 1
GUICtrlSetData($RunsLabel, $RunCount)
EndIf
Out("Zoning")
MoveAggroing(12289, -17700)
MoveAggroing(15318, -20351)
While GetIsDead(-2)
Out("Waiting for res")
Sleep(5500)
WEnd
Move(15865, -20531)
WaitMapLoading($MAP_ID_BJORA)
RndSleep(1000)
;MoveTo(-19968, 5564)
Move(-20076, 5580, 30)
RndSleep(3000)
WaitMapLoading($MAP_ID_JAGA)
RndSleep(1000)
EndFunc
;~ Description: use whatever skills you need to keep yourself alive.
; Take agent array as param to more effectively react to the environment (mobs)
Func StayAlive(Const ByRef $lAgentArray)
If IsRecharged($sf) Then
UseSkillEx($paradox)
UseSkillEx($sf)
EndIf
Local $lMe = GetAgentByID(-2)
Local $lEnergy = GetEnergy($lMe)
Local $lAdjCount, $lAreaCount, $lSpellCastCount, $lProximityCount
Local $lDistance
For $i=1 To $lAgentArray[0]
If DllStructGetData($lAgentArray[$i], "Allegiance") <> 0x3 Then ContinueLoop
If DllStructGetData($lAgentArray[$i], "HP") <= 0 Then ContinueLoop
$lDistance = GetPseudoDistance($lMe, $lAgentArray[$i])
If $lDistance < 1200*1200 Then
$lProximityCount += 1
If $lDistance < $RANGE_SPELLCAST_2 Then
$lSpellCastCount += 1
If $lDistance < $RANGE_AREA_2 Then
$lAreaCount += 1
If $lDistance < $RANGE_ADJACENT_2 Then
$lAdjCount += 1
EndIf
EndIf
EndIf
EndIf
Next
UseSF($lProximityCount)
If IsRecharged($shroud) Then
If $lSpellCastCount > 0 And DllStructGetData(GetEffect($SKILL_ID_SHROUD), "SkillID") == 0 Then
UseSkillEx($shroud)
ElseIf DllStructGetData($lMe, "HP") < 0.6 Then
UseSkillEx($shroud)
ElseIf $lAdjCount > 20 Then
UseSkillEx($shroud)
EndIf
EndIf
UseSF($lProximityCount)
If IsRecharged($wayofperf) Then
If DllStructGetData($lMe, "HP") < 0.5 Then
UseSkillEx($wayofperf)
ElseIf $lAdjCount > 20 Then
UseSkillEx($wayofperf)
EndIf
EndIf
UseSF($lProximityCount)
If IsRecharged($channeling) Then
If $lAreaCount > 5 And GetEffectTimeRemaining($SKILL_ID_CHANNELING) < 2000 Then
UseSkillEx($channeling)
EndIf
EndIf
UseSF($lProximityCount)
EndFunc
;~ Description: Uses sf if there's anything close and if its recharged
Func UseSF($lProximityCount)
If IsRecharged($sf) And $lProximityCount > 0 Then
UseSkillEx($paradox)
UseSkillEx($sf)
EndIf
EndFunc
;~ Description: Move to destX, destY, while staying alive vs vaettirs
Func MoveAggroing($lDestX, $lDestY, $lRandom = 150)
If GetIsDead(-2) Then Return
Local $lMe, $lAgentArray
Local $lBlocked
Local $lHosCount
Local $lAngle
Local $stuckTimer = TimerInit()
Move($lDestX, $lDestY, $lRandom)
Do
RndSleep(50)
$lMe = GetAgentByID(-2)
$lAgentArray = GetAgentArray(0xDB)
If GetIsDead($lMe) Then Return False
StayAlive($lAgentArray)
If DllStructGetData($lMe, 'MoveX') == 0 And DllStructGetData($lMe, 'MoveY') == 0 Then
If $lHosCount > 6 Then
Do ; suicide
Sleep(100)
Until GetIsDead(-2)
Return False
EndIf
$lBlocked += 1
If $lBlocked < 5 Then
Move($lDestX, $lDestY, $lRandom)
ElseIf $lBlocked < 10 Then
$lAngle += 40
Move(DllStructGetData($lMe, 'X')+300*sin($lAngle), DllStructGetData($lMe, 'Y')+300*cos($lAngle))
ElseIf IsRecharged($hos) Then
If $lHosCount==0 And GetDistance() < 1000 Then
UseSkillEx($hos, -1)
Else
UseSkillEx($hos, -2)
EndIf
$lBlocked = 0
$lHosCount += 1
EndIf
Else
If $lBlocked > 0 Then
If TimerDiff($ChatStuckTimer) > 3000 Then ; use a timer to avoid spamming /stuck
SendChat("stuck", "/")
$ChatStuckTimer = TimerInit()
EndIf
$lBlocked = 0
$lHosCount = 0
EndIf
If GetDistance() > 1100 Then ; target is far, we probably got stuck.
If TimerDiff($ChatStuckTimer) > 3000 Then ; dont spam
SendChat("stuck", "/")
$ChatStuckTimer = TimerInit()
RndSleep(GetPing())
If GetDistance() > 1100 Then ; we werent stuck, but target broke aggro. select a new one.
TargetNearestEnemy()
EndIf
EndIf
EndIf
EndIf
Until ComputeDistance(DllStructGetData($lMe, 'X'), DllStructGetData($lMe, 'Y'), $lDestX, $lDestY) < $lRandom*1.5
Return True
EndFunc
;~ Description: Move to destX, destY. This is to be used in the run from across Bjora
Func MoveRunning($lDestX, $lDestY)
If GetIsDead(-2) Then Return False
Local $lMe, $lTgt
Local $lBlocked
Move($lDestX, $lDestY)
Do
RndSleep(500)
TargetNearestEnemy()
$lMe = GetAgentByID(-2)
$lTgt = GetAgentByID(-1)
If GetIsDead($lMe) Then Return False
If GetDistance($lMe, $lTgt) < 1300 And GetEnergy($lMe)>20 And IsRecharged($paradox) And IsRecharged($sf) Then
UseSkillEx($paradox)
UseSkillEx($sf)
EndIf
If DllStructGetData($lMe, "HP") < 0.9 And GetEnergy($lMe) > 10 And IsRecharged($shroud) Then UseSkillEx($shroud)
If DllStructGetData($lMe, "HP") < 0.5 And GetDistance($lMe, $lTgt) < 500 And GetEnergy($lMe) > 5 And IsRecharged($hos) Then UseSkillEx($hos, -1)
If DllStructGetData($lMe, 'MoveX') == 0 And DllStructGetData($lMe, 'MoveY') == 0 Then
$lBlocked += 1
Move($lDestX, $lDestY)
EndIf
Until ComputeDistance(DllStructGetData($lMe, 'X'), DllStructGetData($lMe, 'Y'), $lDestX, $lDestY) < 250
Return True
EndFunc
;~ Description: Waits until all foes are in range (useless comment ftw)
Func WaitUntilAllFoesAreInRange($lRange)
Local $lAgentArray
Local $lAdjCount, $lSpellCastCount
Local $lMe
Local $lDistance
Local $lShouldExit = False
While Not $lShouldExit
Sleep(100)
$lMe = GetAgentByID(-2)
If GetIsDead($lMe) Then Return
$lAgentArray = GetAgentArray(0xDB)
StayAlive($lAgentArray)
$lShouldExit = False
For $i=1 To $lAgentArray[0]
$lDistance = GetPseudoDistance($lMe, $lAgentArray[$i])
If $lDistance < $RANGE_SPELLCAST_2 And $lDistance > $lRange^2 Then
$lShouldExit = True
ExitLoop
EndIf
Next
WEnd
EndFunc
;~ Description: Wait and stay alive at the same time (like Sleep(..), but without the letting yourself die part)
Func WaitFor($lMs)
If GetIsDead(-2) Then Return
Local $lAgentArray
Local $lTimer = TimerInit()
Do
Sleep(100)
If GetIsDead(-2) Then Return
$lAgentArray = GetAgentArray(0xDB)
StayAlive($lAgentArray)
Until TimerDiff($lTimer) > $lMs
EndFunc
;~ Description: BOOOOOOOOOOOOOOOOOM
Func Kill()
If GetIsDead(-2) Then Return
Local $lAgentArray
Local $lDeadlock = TimerInit()
TargetNearestEnemy()
Sleep(100)
Local $lTargetID = GetCurrentTargetID()
While GetAgentExists($lTargetID) And DllStructGetData(GetAgentByID($lTargetID), "HP") > 0
Sleep(50)
If GetIsDead(-2) Then Return
$lAgentArray = GetAgentArray(0xDB)
StayAlive($lAgentArray)
; Use echo if possible
If GetSkillbarSkillRecharge($sf) > 5000 And GetSkillbarSkillID($echo)==$SKILL_ID_ARCHANE_ECHO Then
If IsRecharged($wastrel) And IsRecharged($echo) Then
UseSkillEx($echo)
UseSkillEx($wastrel, GetGoodTarget($lAgentArray))
$lAgentArray = GetAgentArray(0xDB)
EndIf
EndIf
UseSF(True)
; Use wastrel if possible
If IsRecharged($wastrel) Then
UseSkillEx($wastrel, GetGoodTarget($lAgentArray))
$lAgentArray = GetAgentArray(0xDB)
EndIf
UseSF(True)
; Use echoed wastrel if possible
If IsRecharged($echo) And GetSkillbarSkillID($echo)==$SKILL_ID_WASTREL_DEMISE Then
UseSkillEx($echo, GetGoodTarget($lAgentArray))
EndIf
; Check if target has ran away
If GetDistance(-2, $lTargetID) > $RANGE_EARSHOT Then
TargetNearestEnemy()
Sleep(GetPing()+100)
If GetAgentExists(-1) And DllStructGetData(GetAgentByID(-1), "HP") > 0 And GetDistance(-2, -1) < $RANGE_AREA Then
$lTargetID = GetCurrentTargetID()
Else
ExitLoop
EndIf
EndIf
If TimerDiff($lDeadlock) > 60 * 1000 Then ExitLoop
WEnd
EndFunc
; Returns a good target for watrels
; Takes the agent array as returned by GetAgentArray(..)
Func GetGoodTarget(Const ByRef $lAgentArray)
Local $lMe = GetAgentByID(-2)
For $i=1 To $lAgentArray[0]
If DllStructGetData($lAgentArray[$i], "Allegiance") <> 0x3 Then ContinueLoop
If DllStructGetData($lAgentArray[$i], "HP") <= 0 Then ContinueLoop
If GetDistance($lMe, $lAgentArray[$i]) > $RANGE_NEARBY Then ContinueLoop
If GetHasHex($lAgentArray[$i]) Then ContinueLoop
If Not GetIsEnchanted($lAgentArray[$i]) Then ContinueLoop
Return DllStructGetData($lAgentArray[$i], "ID")
Next
EndFunc
; Uses a skill
; It will not use if I am dead, if the skill is not recharged, or if I don't have enough energy for it
; It will sleep until the skill is cast, then it will wait for aftercast.
Func UseSkillEx($lSkill, $lTgt=-2, $aTimeout = 3000)
If GetIsDead(-2) Then Return
If Not IsRecharged($lSkill) Then Return
If GetEnergy(-2) < $skillCost[$lSkill] Then Return
Local $lDeadlock = TimerInit()
UseSkill($lSkill, $lTgt)
Do
Sleep(50)
If GetIsDead(-2) = 1 Then Return
Until (Not IsRecharged($lSkill)) Or (TimerDiff($lDeadlock) > $aTimeout)
If $lSkill > 1 Then RndSleep(750)
EndFunc
; Checks if should pick up the given item. Returns True or False
Func CanPickUp($aItem)
Local $lModelID = DllStructGetData(($aItem), 'ModelID')
Local $lRarity = GetRarity($aItem)
If $lModelID == 2511 And GetGoldCharacter() < 99000 Then Return True ; gold coins (only pick if character has less than 99k in inventory)
;If $lModelID > 21785 And $lModelID < 21806 Then Return True ; Elite/Normal Tomes
If $lModelID == $ITEM_ID_DYES Then ; if dye
Switch DllStructGetData($aItem, "ExtraID")
Case $ITEM_EXTRAID_BLACKDYE, $ITEM_EXTRAID_WHITEDYE ; only pick white and black ones
Return False
Case Else
Return False
EndSwitch
EndIf
If $lRarity == $RARITY_GOLD Then Return False; gold items
If $lModelID == $ITEM_ID_LOCKPICKS Then Return False ; Lockpicks
If $lModelID == $ITEM_ID_GLACIAL_STONES Then Return False ; glacial stones
; ==== Pcons ====
If $lModelID == $ITEM_ID_TOTS Then Return False
If $lModelID == $ITEM_ID_GOLDEN_EGGS Then Return True
If $lModelID == $ITEM_ID_BUNNIES Then Return False
If $lModelID == $ITEM_ID_GROG Then Return True
If $lModelID == $ITEM_ID_CLOVER Then Return False
If $lModelID == $ITEM_ID_PIE Then Return True
If $lModelID == $ITEM_ID_CIDER Then Return False
If $lModelID == $ITEM_ID_POPPERS Then Return False
If $lModelID == $ITEM_ID_ROCKETS Then Return False
If $lModelID == $ITEM_ID_CUPCAKES Then Return True
If $lModelID == $ITEM_ID_SPARKLER Then Return False
If $lModelID == $ITEM_ID_HONEYCOMB Then Return False
If $lModelID == $ITEM_ID_VICTORY_TOKEN Then Return False
If $lModelID == $ITEM_ID_LUNAR_TOKEN Then Return True
If $lModelID == $ITEM_ID_HUNTERS_ALE Then Return False
If $lModelID == $ITEM_ID_LUNAR_TOKENS Then Return True
If $lModelID == $ITEM_ID_KRYTAN_BRANDY Then Return False
If $lModelID == $ITEM_ID_BLUE_DRINK Then Return False
If $lModelID == $ITEM_ID_GHOST_IN_A_BOX Then Return False
If $lModelID == $ITEM_ID_SHAMROCK_ALE Then Return False
; If you want to pick up more stuff add it here
Return False
EndFunc ;==>CanPickUp
; I don't actually use this. I'm pretty sure it's buggy, but feel free to play with it.
Func CountSlots($aNumBags = 4)
Local $lFreeSlots = 0
Local $lBagSlots = 0
For $i = 1 To $aNumBags
$lBagSlots = DllStructGetData(GetBag($i), 'slots')
$lFreeSlots += $lBagSlots
For $slot = 1 To $lBagSlots
If DllStructGetData(GetItemBySlot($i, $slot), 'ModelID') <> 0 Then
$lFreeSlots -= 1
EndIf
Next
Next
Return $lFreeSlots
EndFunc ;==>CountSlots
Func UseItemByModelId($iModelID)
local $aItem = GetItemByModelID($iModelID)
If DllStructGetData($aItem, 'Bag') <> 0 Then
UseItem($aItem)
Return True
EndIf
Return False
EndFunc
;~ Description: Print to console with timestamp
Func Out_Old($msg) ;Uses Time Stamp
GUICtrlSetData($StatusLabel, "["&@HOUR&":"&@MIN&"]"&$msg)
EndFunc
Func Out($msg) ;No Time Stamp
GUICtrlSetData($StatusLabel, $msg)
EndFunc
;~ Description: guess what?
Func _exit()
Exit
EndFunc
Func GoNearestNPCToCoords($aX, $aY)
Local $NPC
MoveTo($aX, $aY)
$NPC = GetNearestNPCToCoords($aX, $aY)
Do
RndSleep(250)
GoNPC($NPC)
Until GetDistance($NPC, -2) < 250
RndSleep(500)
EndFunc
|
|
|
04/19/2019, 13:10
|
#351
|
elite*gold: 0
Join Date: Nov 2015
Posts: 41
Received Thanks: 18
|
Quote:
Originally Posted by JnMWhite
Doing this seems to have rekt my success rate. I'm stitting at 10 hours with a 38% success rate. It was never that low before...would sit at 70-75%
|
doesnt make sense why that would effect the sucess rate... weird
|
|
|
04/19/2019, 14:07
|
#352
|
elite*gold: 0
Join Date: Jun 2017
Posts: 7
Received Thanks: 2
|
Anyone else have the luxon bot fail to sell? It goes to sell but doesn't sell a thing lol.
|
|
|
04/19/2019, 19:55
|
#353
|
elite*gold: 0
Join Date: Apr 2019
Posts: 5
Received Thanks: 0
|
Is there any tutorial to learn coding bot ?
Besides, what is there to check on .au3 to know if it's not corrupted ?
Thank you
|
|
|
04/19/2019, 20:02
|
#354
|
elite*gold: 0
Join Date: Mar 2019
Posts: 136
Received Thanks: 42
|
So the boreal bot I have did almost 300/400 runs before it cut out but I dont think I have the correct build, I dl'ed the one from the list but I'm sure Ive seen it updated in more recent posts but couldn't find it.
|
|
|
04/19/2019, 20:16
|
#355
|
elite*gold: 0
Join Date: Dec 2017
Posts: 385
Received Thanks: 294
|
Quote:
Originally Posted by Coaxx123
So the boreal bot I have did almost 300/400 runs before it cut out but I dont think I have the correct build, I dl'ed the one from the list but I'm sure Ive seen it updated in more recent posts but couldn't find it.
|
If you're talking about the boreal chest run :
by RiflemanX
Updates/Upgrades by RiflemanX 4.4.19
ChangeLog v1.0
~Resized GUI
~Added Pause
~Relocated Buttons
~Added PurgeHook
~Added Render Graphics
~Added Drop-Down Login Box
~Added Lockpicks Remaining Counter
~Added Treasure Hunter display counter
~Removed unnecessary sleep times (10 seconds faster now)
Updated v1.1 March 2019
~Corrected merch functions
~Reduced load times (even faster now)
~Created Radio Buttons for Store/Merch Golds
~Reduced working inventory bags to first 3 bags
(Will only pickup, store, merch from first 3 bags)
Updated v1.2 March 2019
~Corrected merch functions
~Small edits for ID/Sell function
~Updates by Malinkadink 3.3.19
~Removed unnecessary functions
~Edited and upgraded Sell function
~Removed "Buy Lockpicks" checkbox from GUI
~Additional Speed from improved casting of Dwarven Stability
~Added "Bunny Boost!" Function. If selected, will use chocolate bunnies for 50% speed boost in outpost!
~(Choc. Bunnies do not need to be in your inventory as the function will use them from your Xunlai Storage Chest)
Updated v1.3 April 2019
~GUI: Changed version# to v1.3
~$TimeCheck times have been adjusted
~Second cast of Dwarven Stability added to keep up Dash
~DllStructGetData($item, 'AgentID') = 1 <===Adjusted for testing
Lots of new upgrades to this script. It runs very smooth. Gold management is smoothed out now so it deposits and withdraws to maintain an even balance of gold. A function was updated to fix a small error in which purple items were misidentified as Wayfarer Marks so it should now sell purple items after storing gold items. The previous post has been updated with this same script so as not to create any confusion with any obsolete scripts posted by me.
PS : For all updated bots and links for 2019 : look at my sig
|
|
|
04/19/2019, 20:35
|
#356
|
elite*gold: 0
Join Date: Mar 2019
Posts: 136
Received Thanks: 42
|
Does it auto buy lockpicks?
|
|
|
04/19/2019, 21:14
|
#357
|
elite*gold: 100
Join Date: Aug 2007
Posts: 224
Received Thanks: 362
|
Quote:
Originally Posted by dimitree6
Is there any tutorial to learn coding bot ?
Besides, what is there to check on .au3 to know if it's not corrupted ?
Thank you
|
|
|
|
04/19/2019, 21:35
|
#358
|
elite*gold: 0
Join Date: Apr 2016
Posts: 313
Received Thanks: 166
|
Quote:
Originally Posted by Coaxx123
Does it auto buy lockpicks?
|
Yes it does but it would help if you just read the logs from above. It's mentioned in the "Gold management" f.e.
|
|
|
04/19/2019, 21:36
|
#359
|
elite*gold: 0
Join Date: Jul 2017
Posts: 43
Received Thanks: 17
|
Please limit comments to help requests with bots, or posting actual bots. If you have issues with another member or feel as though they have posted compromising material report them with proof or post with proof of your accusation.
|
|
|
04/19/2019, 22:00
|
#360
|
elite*gold: 0
Join Date: Mar 2019
Posts: 136
Received Thanks: 42
|
Quote:
Originally Posted by Restia Ashdoll
Yes it does but it would help if you just read the logs from above. It's mentioned in the "Gold management" f.e.
|
~Removed "Buy Lockpicks" checkbox from GUI
All I can see on the matter regarding 'Buying Lockpicks' but thank you for clearing that up and I will be sure to read the logs next time, obviously my mistake...
Also sat and watched it go down to 0 lockpicks, and it kept running out to open chests, without buying more. Furthermore I cant seem to find in the code, where it actually just buys more lockpicks.
@
|
|
|
All times are GMT +1. The time now is 02:40.
|
|