GW Working Bots 2020

04/28/2021 22:45 Yoshikawa91#1861
Quote:
Originally Posted by list comprehension View Post
The patterns for everything have been fixed for a while in private apis. Unless it is a major overhaul like jumping 10 compiler versions it is usually a few minutes to fix them.

Example: Patch yesterday broke my material trader pattern and it took 5 minutes to fix.

The reason I mention this is because this would be a great opportunity to learn more about these botting systems to fix on your own. A lot of the time it is possible to fix the issue faster than posting asking for it, much less getting the solution. Just some food for thought.
I manage to fix the mAgentBase pattern last time it changed using CheatEngine to scan memory. But I did not manage to get the fix for salvage, even try using Immunity Debugger. :(

I am not asking you for the new pattern but I rather want to learn how to find it myself. Is it too much to ask you what tools did you use ? And what was the main steps you follow to find the graal ?

Thanks a lot.
04/28/2021 22:53 Thagreat#1862
Quote:
Originally Posted by Yoshikawa91 View Post
I manage to fix the mAgentBase pattern last time it changed using CheatEngine to scan memory. But I did not manage to get the fix for salvage.

I am not asking you for the new pattern but I rather want to learn how to find it myself. Is it too much to ask you what tools did you use ? And what was the main steps you follow to find the graal ?

Thanks a lot.
I would love to learn it aswell, i am decent at writing bots but i do not know my way around in ollydbg or x32dbg.

manage to get headers by just brute forcing them but would love to learn the propper way

i found this guide by cortexio but i still get stuck [Only registered and activated users can see links. Click Here To Register...]
04/28/2021 23:11 OneStrangeGuy#1863
+1 with above posts.
I can repair and write (simple) bots but don't have any clue how to search for patterns, if you can point us in the rigth direction i would like to learn.
04/29/2021 05:32 list comprehension#1864
@[Only registered and activated users can see links. Click Here To Register...] both patterns for the scantraderfunction are wrong as of the update a few days ago. That is why you aren't able to buy or sell ectos.
@[Only registered and activated users can see links. Click Here To Register...] else with questions, I will do a write up this weekend to post in its own thread. This isn't really a thread that should still be alive nor for this topic as this is for bot releases. We can kill 2 birds with 1 stone by updating the very pattern Darksim23 needs in the thread I will make.
04/29/2021 14:27 Restia Ashdoll#1865
Just a usefull tipp for everyone - if you got the patterns working once - always save your old guild wars builds to be able to look at which position the func was previously and compare with the new build. Makes it much easier to just increase the pattern to find another unique and update - small changes can be fixed in 2min - huge changes might take you longer but it's no blind search and much easier.
04/29/2021 18:17 Pmolik1809#1866
Quote:
Originally Posted by Restia Ashdoll View Post
Just a usefull tipp for everyone - if you got the patterns working once - always save your old guild wars builds to be able to look at which position the func was previously and compare with the new build. Makes it much easier to just increase the pattern to find another unique and update - small changes can be fixed in 2min - huge changes might take you longer but it's no blind search and much easier.
What do you mean with guild wars build? You mean like you'd copy the old version before update with the DAT and then create a fresh install?
04/29/2021 19:46 Restia Ashdoll#1867
Quote:
Originally Posted by Pmolik1809 View Post
What do you mean with guild wars build? You mean like you'd copy the old version before update with the DAT and then create a fresh install?
exactly don't update the old build to have access to the old locations the functions where
04/29/2021 20:16 Yoshikawa91#1868
Quote:
Originally Posted by list comprehension View Post
@[Only registered and activated users can see links. Click Here To Register...] both patterns for the scantraderfunction are wrong as of the update a few days ago. That is why you aren't able to buy or sell ectos.
@[Only registered and activated users can see links. Click Here To Register...] else with questions, I will do a write up this weekend to post in its own thread. This isn't really a thread that should still be alive nor for this topic as this is for bot releases. We can kill 2 birds with 1 stone by updating the very pattern Darksim23 needs in the thread I will make.
Thanks a lot. Looking forward to read you. :handsdown:
05/01/2021 13:40 Dupljakus#1869
Guys someone got Pongmei valey bot that that sells items and dont crash at merch ? Cant figure out how to repair that one to not crash....
05/01/2021 16:55 OneStrangeGuy#1870
Quote:
Originally Posted by Dupljakus View Post
Guys someone got function that identify items, and when identify armor with sup vigor runes keeps them, no need to salvage just ident and keep only sup vigor ? Thx !
What you need is to add something like this in your CanSell func.
Code:
   ElseIf IsRareRune($aItem) = True Then ; Runes i want
	  Return False
This is a script i grab/improve couple years ago (Credits to Underavelvetmoon and savsuds), not sure if the values are all still correct.

Code:
 Func IsRareRune($aItem)
    Local $ModStruct = GetModStruct($aItem)
 	Local $SupVigor = StringInStr($ModStruct, "C202EA27", 0, 1) ; Mod struct for Sup vigor rune
	Local $MajVigor = StringInStr($ModStruct, "C202E927", 0, 1) ; Mod struct for maj vigor rune
	Local $WindWalker = StringInStr($ModStruct, "040430A5060518A7", 0, 1) ; Windwalker insig
	Local $MinorMyst = StringInStr($ModStruct, "05033025012CE821", 0, 1) ; Minor Mysticism
	; Not Worth Anything - Local $SupEarthPrayers = StringInStr($ModStruct, "32BE82109033025", 0, 1) ; Sup earth prayers
	Local $Prodigy = StringInStr($ModStruct, "C60330A5000528A7", 0, 1) ; Prodigy insig
	Local $SupDom = StringInStr($ModStruct, "30250302E821770", 0, 1) ; Superior Domination
	Local $Shamans = StringInStr($ModStruct, "080430A50005F8A", 0, 1) ; Shamans insig
	Local $MinorSpawning = StringInStr($ModStruct, "0124E821", 0, 1) ; Minor Spawning
	Local $MinorEnergyStorage = StringInStr($ModStruct, "010CE821", 0, 1) ; Minor Energy Storage
	Local $MinorFastCasting = StringInStr($ModStruct, "0100E821", 0, 1) ; Minor Fast Casting
	Local $MinorIllusion = StringInStr($ModStruct, "0101E821", 0, 1) ; Minor Illusion
	Local $MinorSoulReap = StringInStr($ModStruct, "0106E821", 0, 1) ; Minor SoulReaping

	If $SupVigor > 0 Or $WindWalker > 0 Or $MinorMyst > 0 Or $Shamans > 0 Or $MinorSpawning > 0 Or $MinorEnergyStorage > 0 Or $MinorFastCasting > 0 Or $MinorIllusion > 0 Or $MinorSoulReap > 0 Or $MajVigor > 0 Or $Prodigy > 0 Or $SupDom > 0 Then
	   Return True
	Else
	   Return False
	EndIf
 EndFunc
05/02/2021 14:58 zer0.de#1871
Hello,
does someone already have the changed GWA2 or can I tell which changes I have to adapt after the latest update?
Thank you very much
05/02/2021 16:04 OneStrangeGuy#1872
Quote:
Originally Posted by zer0.de View Post
Hello,
does someone already have the changed GWA2 or can I tell which changes I have to adapt after the latest update?
Thank you very much
Lastest update broke material trade pattern and salvage one is broken as well but GWA2 is fine and running.
If you need to fix your GWA2 since last update that broke it and the new headers go here and to the subsequent page (credits to Maltram):
[Only registered and activated users can see links. Click Here To Register...]

If not, nothing pubblic has been posted yet. :bandit:
05/02/2021 22:17 list comprehension#1873
I added a write up on pattern scanning updates as previously stated:
[Only registered and activated users can see links. Click Here To Register...]
05/03/2021 04:51 ottam#1874
Is there something wrong with this function?

It is crashing the game.

Func GetNearestEnemyToAgent($aAgent = -2)
Local $lNearestAgent, $lNearestDistance = 100000000
Local $lDistance
Local $lAgentArray = GetAgentArray(0xDB)

If Not IsDllStruct($aAgent) Then $aAgent = GetAgentByID($aAgent)

Local $lID = DllStructGetData($aAgent, 'ID')

For $i = 1 To $lAgentArray[0]
$lDistance = (DllStructGetData($aAgent, 'X') - DllStructGetData($lAgentArray[$i], 'X')) ^ 2 + (DllStructGetData($aAgent, 'Y') - DllStructGetData($lAgentArray[$i], 'Y')) ^ 2
If DllStructGetData($lAgentArray[$i], 'Allegiance') <> 3 Then ContinueLoop
If DllStructGetData($lAgentArray[$i], 'HP') <= 0 Then ContinueLoop
If BitAND(DllStructGetData($lAgentArray[$i], 'Effects'), 0x0010) > 0 Then ContinueLoop

$lDistance = (DllStructGetData($aAgent, 'X') - DllStructGetData($lAgentArray[$i], 'X')) ^ 2 + (DllStructGetData($aAgent, 'Y') - DllStructGetData($lAgentArray[$i], 'Y')) ^ 2
If $lDistance < $lNearestDistance Then
If DllStructGetData($lAgentArray[$i], 'ID') == $lID Then ContinueLoop
$lNearestAgent = $lAgentArray[$i]
$lNearestDistance = $lDistance
EndIf
Next

SetExtended(Sqrt($lNearestDistance))
Return $lNearestAgent
EndFunc ;==>GetNearestEnemyToAgent
05/03/2021 17:55 hellokok#1875
Func GetNearestEnemyToAgent($aAgent = -2)
Local $lNearestAgent, $lNearestDistance = 100000000
Local $lDistance
Local $lAgentArray = GetAgentArray(0xDB)

If Not IsDllStruct($aAgent) Then $aAgent = GetAgentByID($aAgent)

Local $lID = DllStructGetData($aAgent, 'ID')

For $i = 1 To $lAgentArray[0]
$lDistance = (DllStructGetData($aAgent, 'X') - DllStructGetData($lAgentArray[$i], 'X')) ^ 2 + (DllStructGetData($aAgent, 'Y') - DllStructGetData($lAgentArray[$i], 'Y')) ^ 2
If DllStructGetData($lAgentArray[$i], 'Allegiance') <> 3 Then ContinueLoop
If DllStructGetData($lAgentArray[$i], 'HP') <= 0 Then ContinueLoop
If BitAND(DllStructGetData($lAgentArray[$i], 'Effects'), 0x0010) > 0 Then ContinueLoop

$lDistance = (DllStructGetData($aAgent, 'X') - DllStructGetData($lAgentArray[$i], 'X')) ^ 2 + (DllStructGetData($aAgent, 'Y') - DllStructGetData($lAgentArray[$i], 'Y')) ^ 2
If $lDistance < $lNearestDistance Then
If DllStructGetData($lAgentArray[$i], 'ID') == $lID Then ContinueLoop
$lNearestAgent = $lAgentArray[$i]
$lNearestDistance = $lDistance
EndIf
Next

SetExtended(Sqrt($lNearestDistance))
Return $lNearestAgent
EndFunc ;==>GetNearestEnemyToAgent
@[Only registered and activated users can see links. Click Here To Register...]m mine is the same as yours I think so its probs not this function causing your crash