Vaettir Bot V0.2

06/20/2020 12:18 deroni93#1
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
Hi Folks,

Thought I'd share my updates to the Vaettir bot, credit to the creator gigi and PinkMusen for working on this.

There's a few things I had initially noticed when using this bot, the one that struck me the most however was the fact the bot was trying to cast skills like Shroud, Way of Perf, Channeling and Arcane Echo while Shadow Form was nearing expiration. This would ultimately end up in the bot dying, either en route or during the kill sequence.

Version 0.2 Information

Version 0.3 [Current]

- Updated GUI to include additional options plus statistics
- Storage option implemented, functions retrofitted from the ChestBot
- Disable looting option for survivor only/ or point farming
- Fixed the initialize function, it no longer freezes when a client isn't detected.
- Tweaked the safety net before the kill sequence a little more lenient, it will skip the pause timer if SF has been cast within the last 10 seconds.
- General tidy up the code and function names


Skills & Equipment For Mesmers
Skills: OQdUAQROqPP8Id2BkAiAvpLBTAA
Domination 9+1+1
Fast Casting 8+1
Full Blessed, 3 Attunement Runes

Anniversary Shield with "Like A Rolling Stone"

Assassins
Skills: OwVSI4PP8Id2BkAiAvpLBTA
06/20/2020 13:31 deroni93#2
Couple things I had forgot to mention;

The script now checks to see if you are already in Jaga Moraine when it starts, you wouldn't want to port back to Longeyes if you're already there..

Line 393 - Inventory() function call, I had commented out for testing, you will also need to uncomment this if you want to farm items.
06/20/2020 22:36 phat34#3
no need to credit gigi - as he had nothing to do with the original vaettir bot and just edited it for use with his now unsupported and not working api that made even more of a mess of the communities multiple api - 1000 versions needing sorting issues... at least he pushed the idea to increase speed, and save memory by using pointers, but; with the way things have changed with processor speeds and over the abundance of memory resources available, this matters even less now - - - just saying
:cool:
-thanxs for the file deroni93*
06/21/2020 12:36 deroni93#4
Quote:
Originally Posted by phat34 View Post
no need to credit gigi - as he had nothing to do with the original vaettir bot and just edited it for use with his now unsupported and not working api that made even more of a mess of the communities multiple api - 1000 versions needing sorting issues... at least he pushed the idea to increase speed, and save memory by using pointers, but; with the way things have changed with processor speeds and over the abundance of memory resources available, this matters even less now - - - just saying
:cool:
-thanxs for the file deroni93*
Fair enough, I'm never sure who made the originals.

The code was not too bad to begin with, it just seems like the small and plentiful chances of failure could break the bot after hours and hours of playing.

Out of interest, what other API's are available? I'm only aware of GWCA++ which I have yet to explore.
06/23/2020 02:04 ooklaba#5
thank you!

is there any other modification to the eficiency of the farm you've implemented other than the sf security? i have my own version so i am implementing the sf fix manually

thanks
06/23/2020 08:29 deroni93#6
Quote:
Originally Posted by ooklaba View Post
thank you!

is there any other modification to the eficiency of the farm you've implemented other than the sf security? i have my own version so i am implementing the sf fix manually

thanks
Nope, nothing else note worthy for sure.
06/23/2020 15:20 I Am Polywag#7
Quote:
Originally Posted by deroni93 View Post
If you are planning to use this for farming items, remove the semicolon on line 578 -> ;PickUpLoot()

Hi Folks,

Thought I'd share my updates to the Vaettir bot, credit to the creator gigi and PinkMusen for working on this.

There's a few things I had initially noticed when using this bot, the one that struck me the most however was the fact the bot was trying to cast skills like Shroud, Way of Perf, Channeling and Arcane Echo while Shadow Form was nearing expiration. This would ultimately end up in the bot dying, either en route or during the kill sequence.

This is an excerpt from the StayAlive function;

Code:
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
Evidently the code doesn't care if Shadow Form is expiring, it will just cycle through all the maintained skills and try and cast Shadow Form in-between.

The simplest solution to this is to add a condition based on the remaining skill duration of Shadow Form, such as if Shadow Form is near expiration, don't bother casting the other maintenance skills.

Unfortunately functions like GetEffectTimeRemaining appear to be broken (I'm guessing we just need to update those headers.) so I went down a simpler route and made use of a timer.

I've declared a global timer $timer in the head section and whenever Shadow Form is cast the timer is reinitialised

Code:
Func UseSF($lProximityCount)
	If IsRecharged($sf) And $lProximityCount > 0 Then
		UseSkillEx($paradox)
		UseSkillEx($sf)
		$timer = TimerInit()
	EndIf
EndFunc
We can then estimate a point where we wouldn't want to cast maintenance skills, I've gone with a very conservative 15 seconds.

Example
Code:
If IsRecharged($shroud) And TimerDiff($timer) < 15000 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
Akin to the above, I was also bothered by the pre-kill sequence, it would just walk to the final position and start casting Arcane Echo followed by Wastrels.

Instead I've dialled in a do until loop which waits for SF to be cast

Code:
	;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)


   ;Avoids a rare-ish occurence where the bot starts the kill sequence just before SF runs out. Most noticeable on non assassin primary professions.
   Out("Waiting for Shadow Form")
   Local $lDeadlock_2 = TimerInit()
   $sfTime = TimerDiff($timer)
   Out($sfTime)
   Do
	  WaitFor(100)
	  If GetIsDead(-2) = 1 Then Return
   Until (TimerDiff($timer)) < $sfTime Or (TimerDiff($lDeadlock_2) > 20000)

   UseSF(True)
   Out("Shadow Form casted")

   Kill()
I left this running over night on my Mesmer, woke up to 155 runs and 1 fail. Pretty happy with it considering it got me Legendary Survivor without breaking a sweat.

I'm going to take a stab and say the one death was related to the Wastrels spam in the Kill() function, it also does not care if SF is near expiration.



Skills & Equipment For Mesmers
Skills: OQdUAQROqPP8Id2BkAiAvpLBTAA
Domination 9+1+1
Fast Casting 8+1
Full Blessed, 3 Attunement Runes

Anniversary Shield with "Like A Rolling Stone"

Peace :mofo:


Second test results 195:0

[Only registered and activated users can see links. Click Here To Register...]
Any chance it can be edited so the bot stores gold unids etc. in storage?
06/24/2020 12:09 deroni93#8
Quote:
Originally Posted by I Am Polywag View Post
Any chance it can be edited so the bot stores gold unids etc. in storage?
I can make that work, in fact I've just stapled on the gold storing function from the ChestBot, it looks cleaner.

I'll have a play and update the bot if it all looks good

Edit:

I'm considering adding a loot option for whites/blues + salvaging

Version 0.3 is now up, if someone wouldn't mind could they give it a go and post some results. I won't be able to test this properly until the weekend.
06/25/2020 09:46 3ampoke#9
Quote:
Originally Posted by deroni93 View Post
Version 0.3 is now up, if someone wouldn't mind could they give it a go and post some results. I won't be able to test this properly until the weekend.
I'll give it a go and edit my post here after a day.

edit:

50 x 5
100% no fails. the ui looks clean. even stores glacials after a stack. beautiful work thank you for the update! i am going to look into adding the festival drops (6/27) to the UI and maybe getting the gross platinum to reflect all gold received from selling to merch too.
06/29/2020 13:14 Gint0nic#10
Is it possible to play it with assa too?
06/29/2020 14:50 deroni93#11
Quote:
Originally Posted by Gint0nic View Post
Is it possible to play it with assa too?
Yes it should work even better with an Assassin as long as you use the same skill-bar (and in the same order). The only thing I didn't do was scale the timings based on attribute points, so it may be overly conservative with casting Shadow Form.

I must admit I haven't used this bot for anything other than rep farming + survivor on my Mesmer, once I get around to using this for profit I may add some more advanced features i.e. salvaging whites and stones.
06/29/2020 22:53 I Am Polywag#12
Quote:
Originally Posted by deroni93 View Post
I can make that work, in fact I've just stapled on the gold storing function from the ChestBot, it looks cleaner.

I'll have a play and update the bot if it all looks good

Edit:

I'm considering adding a loot option for whites/blues + salvaging

Version 0.3 is now up, if someone wouldn't mind could they give it a go and post some results. I won't be able to test this properly until the weekend.
I'll give v0.3 a go now

Do you have the recommended build?
06/30/2020 07:38 deroni93#13
Quote:
Originally Posted by I Am Polywag View Post
I'll give v0.3 a go now

Do you have the recommended build?
Mesmer: OQdUAQROqPP8Id2BkAiAvpLBTAA / Sin: OwVUI2h5lPP8Id2BkAiAvpLBTAA
07/01/2020 04:56 jaredk9231#14
I went OwVUI4h5vPO8Id2BkAiAvpLBTAA for sin. Used +1+3 in shadow arts so it hits 12. Only done around 20 runs on 0.3 but no fails. got the 20 enchant spear w +5 energy, and +10AR to earth shield.
07/01/2020 09:33 I Am Polywag#15
Quote:
Originally Posted by deroni93 View Post
Mesmer: OQdUAQROqPP8Id2BkAiAvpLBTAA / Sin: OwVUI2h5lPP8Id2BkAiAvpLBTAA
Any chance you can make it pick up gold items only?