GW Working Bots 2020

09/03/2020 02:24 GW Devil#856
was hoping someone could just add picking up red iris to the charr farmer for us? the red iris farmer is broke he runs to rock & that's it lol
09/03/2020 02:25 phat34#857
Many gwa2.au3 files have this situation where there is no default values in the function...
New scriptors miss this alot... So when you see a function like this in your gwa2 version, it is best to update all functions with default values.... For example:

Code:
;~ Description: Tests if an agent is dead.
Func GetIsDead($aAgent)
	If IsDllStruct($aAgent) = 0 Then $aAgent = GetAgentByID($aAgent)
	Return BitAND(DllStructGetData($aAgent, 'Effects'), 0x0010) > 0
EndFunc   ;==>GetIsDead
becomes ...

Code:
;~ Description: Tests if an agent is dead.
Func GetIsDead($aAgent = -2)
	If IsDllStruct($aAgent) = 0 Then $aAgent = GetAgentByID($aAgent)
	Return BitAND(DllStructGetData($aAgent, 'Effects'), 0x0010) > 0
EndFunc   ;==>GetIsDead
if you do this to all your functions in gwa2, it would solve 50-70% of your errors when trying to get new bots to work...

keep in mind this fix only comes into play when the function is called like this:

GetIsDead()

with no values...

u can still call GetIsDead(-1) (to see if your target is dead) or GetIsDead( and a actual agentID ) with no problem...

also keep in mind that an agentID is not a PlayerNumber/ModelID... A agentID is given to all agents on the map from 1 to however many agents there is within a certain range or distance from your character... and as you move the list is extended as non numbered agents come into a certain range...

A PlayerNumber/ModelID stays the same for all maps and matches the image used for that particular monster or NPC Group. Once you know a PlayerNumber / model ID you can get their current closest Agent Array with the GetAgentByPlayerNumber($aPlayerNumber) function.

Once you have the Agent Array you can get all the information about the agent by pulling data from the array returned with DLLStructGetData().
09/03/2020 15:18 daltonray12#858
Is there an updated LDoA/Farmer Hamnet bot by chance? I've scrolled through but don't see anything
09/03/2020 15:38 GW Devil#859
Quote:
Originally Posted by daltonray12 View Post
Is there an updated LDoA/Farmer Hamnet bot by chance? I've scrolled through but don't see anything
did you? seems you missed a post 2 up from yours & all the rest....
09/03/2020 15:42 daltonray12#860
Edit- got the bot Omnifarmer presearing bot to open up for me on my gaming computrer but cannot get it to let me select a character (tried multiple chars no luck, tried running gw as admin etc) or hit start all options are just greyed out. any ideas?
09/03/2020 19:42 XSDSf34#861
Quote:
Originally Posted by daltonray12 View Post
Edit- got the bot Omnifarmer presearing bot to open up for me on my gaming computrer but cannot get it to let me select a character (tried multiple chars no luck, tried running gw as admin etc) or hit start all options are just greyed out. any ideas?
Same, I have downloaded updated bots, idk how it can be fixed, researching google isnt working out :/
09/04/2020 12:52 ~Back~#862
Was anyone able to get BDS farmer to work.
[Only registered and activated users can see links. Click Here To Register...]

? Crashes on startup for me.
09/04/2020 19:27 Restia Ashdoll#863
Quote:
Originally Posted by ~Back~ View Post
Was anyone able to get BDS farmer to work.
[Only registered and activated users can see links. Click Here To Register...]

? Crashes on startup for me.
What exactly does happen it worked for me easily with newest GWA2
09/05/2020 06:54 MMOLuisChi#864
Any SS LB bot working now??
09/05/2020 12:43 elitehacker13#865

I used this follower bot, but when i leave town, or travel to the next area, i have to close and open the bot again, this is very annoying, any solution ?
09/05/2020 22:13 ~Back~#866
Quote:
Originally Posted by Restia Ashdoll View Post
What exactly does happen it worked for me easily with newest GWA2
Yeah fixed. Was an error on my end.

Another topic tho.
Using some NM Chestruns right now. ANy way to let the bot store Req8 purple items aswell? Right now he only stores golds, but there are some R8 slots where even a purple can be worth a lot of money.
09/05/2020 22:43 Muu2#867
Quote:
Originally Posted by ~Back~ View Post
Was anyone able to get BDS farmer to work.
[Only registered and activated users can see links. Click Here To Register...]

? Crashes on startup for me.
Getting a duplicate function name error when I replace the gwa2 file with an updated one from this thread on page 52, deleted the headers file as this update one includes them. How did you get it to work?
09/06/2020 05:57 list comprehension#868
Quote:
Originally Posted by ~Back~ View Post
Yeah fixed. Was an error on my end.

Another topic tho.
Using some NM Chestruns right now. ANy way to let the bot store Req8 purple items aswell? Right now he only stores golds, but there are some R8 slots where even a purple can be worth a lot of money.
It depends on how hard of a filter you want. If you just want by req and rarity you could pull the following data:

Code:
Func GetRarity($aItem)
	If Not IsDllStruct($aItem) Then $aItem = GetItemByItemID($aItem)
	Local $lPtr = DllStructGetData($aItem, 'NameString')
	If $lPtr == 0 Then Return
	Return MemoryRead($lPtr, 'ushort')
EndFunc   ;==>GetRarity

Return values:
Global Const $RARITY_GOLD = 2624
Global Const $RARITY_PURPLE = 2626
Global Const $RARITY_BLUE = 2623
Global Const $RARITY_WHITE = 2621

;~ Description: Returns a weapon or shield's minimum required attribute.
Func GetItemReq($aItem)
	Local $lMod = GetModByIdentifier($aItem, "9827")
	Return $lMod[0]
EndFunc   ;==>GetItemReq

Return is 0-13
Implement those into your pickup/sell/store routines and golden. If you want more fine tooth version you need to use something like:

Code:
Use Previous plus:
Func GetItemMaxDmg($aItem)
	If Not IsDllStruct($aItem) Then $aItem = GetItemByItemID($aItem)
	Local $lModString = GetModStruct($aItem)
	Local $lPos = StringInStr($lModString, "A8A7") ; Weapon Damage
	If $lPos = 0 Then $lPos = StringInStr($lModString, "C867") ; Energy (focus)
	If $lPos = 0 Then $lPos = StringInStr($lModString, "B8A7") ; Armor (shield)
	If $lPos = 0 Then Return 0
	Return Int("0x" & StringMid($lModString, $lPos - 2, 2))
EndFunc

To make sure of max damage and can do the same for the lower limit of the item. You will need to find the current byte pattern as I am not sure off the top of my head.
If you combine all of these into a nested if statement you can accomplish what you would like to store q8 purple weapons. You can check the pong mei chest running bot I updated to see a simplistic version.
09/06/2020 08:50 ~Back~#869
Thanks gonna try that! I actually used your pongmei fixed version for 1 day and ripped some of the code out, i was just kinda missing the part where i can filter the max/min values. A 15def R8 shield can still be worth hundreds of ectos if dual mod, so i wanted to include them.

Thanks!
09/06/2020 09:51 Restia Ashdoll#870
Quote:
Originally Posted by Muu2 View Post
Getting a duplicate function name error when I replace the gwa2 file with an updated one from this thread on page 52, deleted the headers file as this update one includes them. How did you get it to work?
delete the doublicated functions at least one of them and you are good to goo