GW Working Bots 2020

03/26/2020 18:08 Zhaiso#151
short question... im too stupid or too lazy to find out. dont flame me

is there a working bot, if yes please tell me where i can find, if not flame me.
03/26/2020 19:58 GwGuru#152
Quote:
Originally Posted by Zhaiso View Post
short question... im too stupid or too lazy to find out. dont flame me

is there a working bot, if yes please tell me where i can find, if not flame me.
[Only registered and activated users can see links. Click Here To Register...]
03/26/2020 23:58 FriendlyFarmer#153
Quote:
Originally Posted by Jasy19 View Post
...

With the new GWA2 file, the bot will load with the game open but will crash upon starting.

I went through with toolbox and checked the ID/map code for Doomlore and other interactions, which seem to be correct.

So - I moved on to trying to 'check' the code, but I'm a little confused still at what some of these conditions are and how they interact. This function in the main script for example, there is no global or () specified value for "$aMapID"? I'm sure I'm missing some understanding here.
Code:
"Func RndTravel($aMapID)
   If GetMapLoading() == 2 Then Disconnected()
#cs   Local $UseDistricts = 7 ; 7=eu-only, 8=eu+int, 11=all(excluding America)
   ; Region/Language order: eu-en, eu-fr, eu-ge, eu-it, eu-sp, eu-po, eu-ru, us-en, int, asia-ko, asia-ch, asia-ja
;~    Local $Region[11] = [2, 2, 2, 2, 2, 2, 2, -2, 1, 3, 4]
;~    Local $Language[11] = [0, 2, 3, 4, 5, 9, 10, 0, 0, 0, 0]
   Local $Region[11] = [0, -2, 1, 3, 4]
   Local $Language[11] = [0, 0, 0, 0, 0]
#ce   Local $Random = Random(0, $UseDistricts - 1, 1)
;   MoveMap($aMapID, $Region[$Random], 0, $Language[$Random])
   TravelTo($aMapID)
;   WaitMapLoading($aMapID)
EndFunc"
Completely stuck -- No idea why the bot does not at least zone to Doomlore when the map code is correct and map travel headers changed (though it seemed to make no difference to it's attempts at zoning)? Instead it is trying to zone elsewhere and I can't see why.
So I took a quick look at this [Only registered and activated users can see links. Click Here To Register...] version.
  1. Like I said, changing maps is working with the current gwa2. Loading skillbars is not (at least not how most bots do it). The first thing the bot does after it has mapped to doomlore, is loading a skillbar, which doesn't work, and then it does "LeaveGroup()", which also doesn't work. Somewhere in this thread there is a list of stuff that isn't working, I'm sure you'll find it because we have to repeat it a lot.
  2. Map travelling works. If it doesn't, then there is something wrong with your gwa2 (headers?), or you haven't unlocked the outpost. I think you can find a gwa2 somewhere in this thread (I'm not sure tho).
  3. I don't really get what your question is about the "RndTravel" function. Are you confused why it has "$aMapID" between the brackets? If so, then I will point you to [Only registered and activated users can see links. Click Here To Register...]. The $aMapID is a parameter you pass to the function. For this case, you'll find something like "RndTravel($MAP_ID_DOOMLORE)" in the code, which will then get used by the function.
  4. To keep it simple, just use this instead:
    Code:
    Func RndTravel($aMapID)
       If GetMapLoading() = 2 Then Disconnected()
       TravelTo($aMapID)
       WaitMapLoading($aMapID)
    EndFunc
03/27/2020 03:47 Jasy19#154
Quote:
Originally Posted by FriendlyFarmer View Post
So I took a quick look at this [Only registered and activated users can see links. Click Here To Register...] version.
  1. Like I said, changing maps is working with the current gwa2. Loading skillbars is not (at least not how most bots do it). The first thing the bot does after it has mapped to doomlore, is loading a skillbar, which doesn't work, and then it does "LeaveGroup()", which also doesn't work. Somewhere in this thread there is a list of stuff that isn't working, I'm sure you'll find it because we have to repeat it a lot.
  2. Map travelling works. If it doesn't, then there is something wrong with your gwa2 (headers?), or you haven't unlocked the outpost. I think you can find a gwa2 somewhere in this thread (I'm not sure tho).
  3. I don't really get what your question is about the "RndTravel" function. Are you confused why it has "$aMapID" between the brackets? If so, then I will point you to [Only registered and activated users can see links. Click Here To Register...]. The $aMapID is a parameter you pass to the function. For this case, you'll find something like "RndTravel($MAP_ID_DOOMLORE)" in the code, which will then get used by the function.
  4. To keep it simple, just use this instead:
    Code:
    Func RndTravel($aMapID)
       If GetMapLoading() = 2 Then Disconnected()
       TravelTo($aMapID)
       WaitMapLoading($aMapID)
    EndFunc
OH MY GOD!!! After so many hours of frustration... I've got it working... at least; I've just seen it complete one run, resign, and return in for another...

I still don't fully understand, as I went through multiple drafts and attempts - I removed the Func Setup, which was my first step - which progressed to me moving and then crashing, and so on and so on until I had finished with headers. I also removed the skill template and leave group function.

To add insult to my injury -- when I placed my updated GWA2 file with a 'fresh' copy of the script, it teleports me to Doomlore, but then crashes. I removed the functions in this script and so I don't know why it doesn't function like my current one... maybe I forgot a step I id in all of it :/

Thank you so much for your help. I'm going to continue looking into this
03/27/2020 05:12 phat34#155
winmerge and sublime text 2 are your friends.... with these text editors you can put your scripts side by side and oh my ; they even highlight the differences so you can see what you might miss otherwise... This is the best way to improve your scripting knowledge as well as putting consolewrite("Passing line 110") lines in your code to see if your code made it this far and track those codelines causing your crashing issues...
03/27/2020 19:55 Snicker23#156
Anyone have a working JQ Bot skript?
03/28/2020 00:41 pseudopseudogw#157
hey there, Is there any news about the updating of the salvaging function? What could be done to make it work again ?
03/28/2020 16:47 s4fjoker#158
Quote:
Originally Posted by pseudopseudogw View Post
hey there, Is there any news about the updating of the salvaging function? What could be done to make it work again ?
There is a sorta fix but doubt it will be public seems most things wont be too public or will be a long while before things go public
03/29/2020 10:56 pseudopseudogw#159
erf, well thanks for the info!
03/30/2020 05:20 logicdoor#160
Quote:
Originally Posted by PinkMusen View Post
I can't explain, but I've been modifying the vaettir v4.1 by gigi with fixes here and there.

Enjoy
The AbandonQuest() function from GWA2 doesn't seem to work, it logs me out (not in your bot but in general).

The GWA2 API is still shaky sometimes when window is minimized but otherwise it works.

I may borrow the Guild Hall NPC waypoints for some of the bots.

Quote:
Originally Posted by GW Devil View Post
I'll give someone 250e for a working salvage bot lol this manual shit is gettin to me lol
You can look into my old Froggy bot, it does ID, salvage and sell except what you want to retain and what you want to retain is stored in an array. I was in the process of creating a GUI for the mod selection when the update came but it is usable if you presets your preferred mods to keep in the array.

There are only a couple of functions that changed like FindSuperiorIDkit instead of FindSuperiorIndentificationKit in the new API.

Edit: Tested and it will still ID and sell but salvage headers seem off.
03/30/2020 10:34 wearebor#161
Hey,
Sorry if it's not the place to ask, but I was wondering if there is a working version of the boreal chestrun bot
03/30/2020 17:54 I love rats#162
hi guys im having trouble with a 55hp script I think I no where the problem lies but cannot figure it out.
it balls the kappa up perfectly and uses starburst but then it uses radiation field straight after which doesn't give it enough time to keep shield of absorbtion up, I think the problem lies in this part of the script plz correct me if im wrong and ty. also added the stayalive function incase this could be the problem.

Code:
Func Kill()
 Out1("Fwoosh")
       Local $TargetID = GetCurrentTargetID()
	If TimerDiff($absorptiontimer) < 7000 Then
	  	If GetEffectTimeRemaining($SKILL_ID_GLYPH) < 2000 Then ; triggers on 0 if you disable rendering lol
			If IsRecharged($glyph) Then UseSkillEx($glyph, $TargetID)
		EndIf
	EndIf
	If IsRecharged($absorption) Then	UseSkillEx($absorption)
		TargetNearestEnemy()
		Local $TargetID = GetCurrentTargetID()
		If TimerDiff($absorptiontimer) < 7000 Then
			If IsRecharged($starburst) Then UseSkillEx($starburst, $TargetID)
		EndIf
		StayAlive()
		If TimerDiff($absorptiontimer) < 6000 Then
			If IsRecharged($radfield) Then UseSkillEx($radfield)
		EndIf
		StayAlive()
		If TimerDiff($absorptiontimer) < 7000 Then
			If IsRecharged($flameburst) Then UseSkillEx($flameburst, $TargetID)
		EndIf
		StayAlive()
EndFunc
Code:
Func StayAlive()
	If GetMapID() <> $Maishang_Hills Then Return
	If GetIsDead(-2) Then Return
	$protspirittimer = TimerInit()
	$absorptiontimer = TimerInit()
	If TimerDiff($protspirittimer) > 15000 Then
		UseSkillEx($protspirit)
		$protspirittimer = 0
		$protspirittimer = TimerInit() ;start timer after using it
	EndIf
	If TimerDiff($absorptiontimer) > 9000 Then
		UseSkillEx($absorption)
		$absorptiontimer = 0
		$absorptiontimer = TimerInit() ;start timer after using it
	EndIf

	UseAbsorption()
03/31/2020 10:29 FriendlyFarmer#163
Quote:
Originally Posted by I love rats View Post
...
...

Code:
Func StayAlive()
	If GetMapID() <> $Maishang_Hills Then Return
	If GetIsDead(-2) Then Return
	$protspirittimer = TimerInit() <-------------
	$absorptiontimer = TimerInit() <-------------
	If TimerDiff($protspirittimer) > 15000 Then
		UseSkillEx($protspirit)
		$protspirittimer = 0
		$protspirittimer = TimerInit() ;start timer after using it
	EndIf
	If TimerDiff($absorptiontimer) > 9000 Then
		UseSkillEx($absorption)
		$absorptiontimer = 0
		$absorptiontimer = TimerInit() ;start timer after using it
	EndIf

	UseAbsorption()
Do you see why the If statements that follow can never be true?
Also, make sure your timers are globals.

When rendering is disabled, you can only use geteffecttimeremaining to check IF you have a certain effect, but not for how long.

Also, why did you write the kill function like that? Is it in a loop? If not, are those 3 spells really enough to kill them? If it is in a loop, you could write it much cleaner than this.
03/31/2020 10:50 I love rats#164
Quote:
Originally Posted by FriendlyFarmer View Post
Do you see why the If statements that follow can never be true?
Also, make sure your timers are globals.

When rendering is disabled, you can only use geteffecttimeremaining to check IF you have a certain effect, but not for how long.

Also, why did you write the kill function like that? Is it in a loop? If not, are those 3 spells really enough to kill them? If it is in a loop, you could write it much cleaner than this.
hi friendly I didn't write this script its a old one I acquired a long time ago and just thought I'd see if I could get it working.
my scripting skills are very minimal so I don't see why the if statements cannot be true, if you could explain plz, I just cannot figure out why its not casting absorption inbetween the attack spells. thx for the reply.
03/31/2020 12:21 FriendlyFarmer#165
Quote:
Originally Posted by I love rats View Post
hi friendly I didn't write this script its a old one I acquired a long time ago and just thought I'd see if I could get it working.
my scripting skills are very minimal so I don't see why the if statements cannot be true, if you could explain plz, I just cannot figure out why its not casting absorption inbetween the attack spells. thx for the reply.

Take a look at the code I quoted. Take a look at [Only registered and activated users can see links. Click Here To Register...]

Code:
...
	$protspirittimer = TimerInit() <-------------
	$absorptiontimer = TimerInit() <-------------
	If TimerDiff($protspirittimer) > 15000 Then
...
You want something to happen when the timer reaches 15 seconds. My point is, that will never happen, because you wrote "$absorptiontimer = TimerInit()" the line above it.
I ask if the timers are globals, because otherwise they will just be 0 in your Kill() function