Register for your free account! | Forgot your password?


You last visited: Today at 01:58

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Updated GWA2

Discussion on Updated GWA2 within the GW Exploits, Hacks, Bots, Tools & Macros forum part of the Guild Wars category.

Reply
 
Old 06/10/2020, 22:09   #181
 
elite*gold: 0
Join Date: Jul 2019
Posts: 103
Received Thanks: 82
Quote:
Originally Posted by CoderAndy View Post
@

just wanted to be sure, all the packet headers that you posted are correct ???
From minimal testing/glancing they look good, although some bots may use different naming schemes for the header constant much like gwca.
list comprehension is offline  
Old 06/12/2020, 22:11   #182
 
elite*gold: 0
Join Date: Sep 2018
Posts: 84
Received Thanks: 65
Quote:
Originally Posted by CoderAndy View Post
@

just wanted to be sure, all the packet headers that you posted are correct ???
They are correct with all updates, though I have not tested some of the lesser used ones to see if they are broken. I have compared them with Phat's and we are all aligned.

I also aligned some of the variable names, there were some mild variations and I picked the variation that is actually used in the GWA2 API (skilbar vs. build, skill use vs use skill, etc.).

I documented the changes if that's useful . I went with the previous I had (for all except "call Target" as there was an issue in Phat's file, 0x26 was correct), as those were working for me.
Attached Images
File Type: png Headers.png (277.9 KB, 301 views)
logicdoor is offline  
Thanks
2 Users
Old 06/14/2020, 14:36   #183
 
elite*gold: 0
Join Date: Mar 2010
Posts: 1
Received Thanks: 0
Hi Guys i am new to Coding but wanted to write simple code where one account is the main account which calls the targets and the other account will target the called targets and will cast some spells on it. When the target is killed the second account needs to go idle again and wait for a new target to be called.

In the gwa2 i found a useful function in the targeting section: targetcalledtarget(). But somehow it doesnt work. Does anyone has an idea how to work around it ?

Thanks so much in advance
Love the activitiy in this forum.
Myolnir is offline  
Old 06/14/2020, 15:34   #184
 
elite*gold: 0
Join Date: Mar 2018
Posts: 24
Received Thanks: 16
Quote:
Originally Posted by Myolnir View Post
In the gwa2 i found a useful function in the targeting section: targetcalledtarget(). But somehow it doesnt work. Does anyone has an idea how to work around it ?
I just tested it and did work as intended. Did you test what happens if you use TargetCalledTarget() by hand? Make sure, the function is up to date:
Code:
;~ Description: Target the called target.
Func TargetCalledTarget()
	Return PerformAction(0x9F, 0x1E)
EndFunc   ;==>TargetCalledTarget
If it still does not work, you might check if PerformAction() is broken. You should have a look at 'CommandAction' then.
smiley232 is offline  
Old 06/15/2020, 16:06   #185
 
elite*gold: 0
Join Date: Mar 2018
Posts: 24
Received Thanks: 16
The gwa2 I am using contains exactly what you posted and it does work for me.
smiley232 is offline  
Old 06/16/2020, 04:48   #186
 
elite*gold: 0
Join Date: Sep 2014
Posts: 351
Received Thanks: 120
Teqatle forgot to translate the last Spanish letter... lmao!
phat34 is offline  
Old 06/19/2020, 00:42   #187
 
elite*gold: 0
Join Date: Jun 2019
Posts: 7
Received Thanks: 21
I've scanned through this thread pretty thoroughly over the past few days, and I've seen some mention of debugging and developing practices that were really helpful. I'm coming back to Guild Wars mainly to fix up some bots as a hobby. My main issue is debugging without crashing the Guild Wars client.

What do you guys do to debug issues? Some type of interface between the script and the client to prevent fatal errors? I'm a developer by trade but pretty new to AutoIt scripting outside of manually fixing and improving bugs and UI's.

Edit: Realized that I had made a similar post about this a year ago that was answered by Rifle. I'd still love to hear any suggestions if anyone has any.
spartanfbj is offline  
Old 06/19/2020, 04:13   #188
 
elite*gold: 0
Join Date: Jul 2019
Posts: 103
Received Thanks: 82
Quote:
Originally Posted by spartanfbj View Post
I've scanned through this thread pretty thoroughly over the past few days, and I've seen some mention of debugging and developing practices that were really helpful. I'm coming back to Guild Wars mainly to fix up some bots as a hobby. My main issue is debugging without crashing the Guild Wars client.

What do you guys do to debug issues? Some type of interface between the script and the client to prevent fatal errors? I'm a developer by trade but pretty new to AutoIt scripting outside of manually fixing and improving bugs and UI's.

Edit: Realized that I had made a similar post about this a year ago that was answered by Rifle. I'd still love to hear any suggestions if anyone has any.
Types of errors:

1. If its purely a script issue use console messages or output to the gui at every stage of a function printing important values.

2. If its a 007 error and you can reconnect potentially that is caused by performing packet based actions too quickly or malformed packets.

3. Actual gw client crashes are generally from reading/writing invalid memory regions or calling a function improperly or with wrong address.

Debug Technique by error type:

1. verbose script output to look for invalid values or incorrect logic branches while observing the bot. A lot of bots have a function "Out("message") that displays on the gui you can use.

2. Invalid packet header so check it against a known working bot or toolbox's header constants. If your using a packet not listed in those or invalid you can attach ollydbg, immunity, or x32dbg among other dynamic debuggers. Then set a break point on the send packet function that you can find using a byte array pattern from toolbox or find it on your own from tracing back the winsock send function used by the game. Once you have found the packet function right before encryption as it is fully formed minus encryption set a silent logging break point to log the registers and stack parameters to check for header, size, and content. You can also just do a normal breakpoint and manually inspect the stack. To trigger these breakpoints you take the action in game minimizing other actions if possible. Takes some trial and error.

3. Hard crashes stem generally from invalid function calls or memory access so use verbose logging of your script to find the general function or area that crashes the client. Then what you can do is look at what internal engine functions are used by that gwa2 function for example.

3.a. Now that you have some idea of the internal causing the crash you can start debugging it with a few different tools. If it is an invalid memory access being read/write you can check this using cheat engine, reclass, and many other tools to find the data structure in live memory that you are currently accessing to make sure your base address and offsets are correct along with data type. It is also worth doing an array of byte search to confirm your byte pattern is correct for finding the base pointers to the structs your having issues with in this type of crash.

3.b. If it is a function based issue it could be a few things, invalid byte pattern/address to the function, incorrect parameters or call type, in the case of hooking you may not be restoring registers properly, or finally another common one would incorrect thread context. With out digging heavily into thread context switching and process layout you basically want to hook a function that is called a lot and in the same thread as the function you are trying to call.

This is seen easily in toolbox where they hook a gameloop and all functions calls are queued up to be executed in that threads context. Sometimes it is merely enough to inject a .dll or shell code with createremotethread and call but most of the time you need to hook into a game thread for your calls to function because of things like thread local storage.

3.c. So how on earth do you test this stuff? Easiest way imo is to make a simple C/C++ .dll inject that with one goal of hooking the game thread and calling your intended function from it once with console output for feedback. This is more a testing stage but you can also save a lot of time mapping out call type, parameters, call tree, and signatures using static analysis like IDA pro or ghidra.

This is kind of a simplistic overview but in a tl;dr:

Script issues: print debug messages

memory issues: dynamic analysis like cheat engine or reclass to make sure it maps out

Function issues: confirm patterns in static analysis, call type, parameters, and build a test .dll.

I hope this helps at least a little bit.
list comprehension is offline  
Thanks
4 Users
Old 06/21/2020, 21:45   #189
 
elite*gold: 0
Join Date: Jan 2010
Posts: 28
Received Thanks: 45
While talking to logicdoor, we noticed GetEffectTimeRemaining() wasnt working. It seems that currently it just returns the Duration of an effect. I have a fix. It's kinda messy because it uses a hook now, while it didnt need one before. So maybe there's a simpler solution, but here's mine if u need it.

Code:
Func CreateSkillTimerHook()
    _('SkillTimerHookProc:')
    _(' -> 2B C8 8B 57 0C')
    _('push eax')
    _('mov eax,[edi+0x14] -> 8B 47 14')
    _('mov dword[SkillTimerValue],eax')
    _('pop eax')
    _('ljmp SkillTimerReturn')
 EndFunc
Comment out old mSkillTimer
Code:
;$mSkillTimer = MemoryRead(GetScannedAddress('ScanSkillTimer', -3))
Code:
    $mTraderCostValue = GetValue('TraderCostValue')
    $mSkillTimer = GetValue('SkillTimerValue')   <----- NEW
    $mDisableRendering = GetValue('DisableRendering')
Code:
    _('TraderCostValue/4')
    _('SkillTimerValue/4')  <--------- NEW
    _('DisableRendering/4')
Code:
    CreateTraderHook()
    CreateSkillTimerHook() <----- NEW
Code:
    $lTemp = GetScannedAddress('ScanTraderHook', -0x2F)
    SetValue('TraderHookStart', '0x' & Hex($lTemp, 8))
    SetValue('TraderHookReturn', '0x' & Hex($lTemp + 5, 8))

    $lTemp = GetScannedAddress('ScanSkillTimer', 0x11)      <--- NEW
    SetValue('SkillTimerHookStart', '0x' & Hex($lTemp, 8))      <--- NEW
    SetValue('SkillTimerReturn', '0x' & Hex($lTemp + 5, 8))      <--- NEW

    $lTemp = GetScannedAddress('ScanDialogLog', -4)
U will also need a new case in the ASM function (same as for trader quote fix). Sorry, but it's just easier for me ^_^

Code:
Func _($aASM)
	;quick and dirty x86assembler unit:
	;relative values stringregexp
	;static values hardcoded
	Local $lBuffer
	Local $lOpCode
	Select
		Case StringInStr($aASM, " -> ")
			Local $split = StringSplit($aASM, " -> ", 1)
			$lOpCode = StringReplace($split[2], " ", "")
			$mASMSize += 0.5 * StringLen($lOpCode)
			$mASMString &= $lOpCode
		Case StringRight($aASM, 1) = ':'
And finally in GetEffectTimeRemaining() , use:

Code:
Return DllStructGetData($aEffect, 'Duration') * 1000 - (GetSkillTimer() - DllStructGetData($aEffect, 'TimeStamp'))
cortexio is offline  
Thanks
5 Users
Old 06/22/2020, 12:48   #190
 
elite*gold: 0
Join Date: Jan 2010
Posts: 28
Received Thanks: 45
@ , interesting ^_^ seems alot easier than mine
cortexio is offline  
Old 06/22/2020, 13:39   #191
 
elite*gold: 0
Join Date: Feb 2016
Posts: 45
Received Thanks: 38
Question Stygian Vale

Is anyone aware of a past or present Stygian Vale bot?

I'm about half way into building one from scratch but I'd rather not invest more time if there's already one that works.

I'm open to sharing the source if anyone wants to help finish it but I'd rather not publish something half baked.

Progress so far;

- Functional GUI and initialise (copied from the Vaettir bot, needs tweaking)
- Starts at GoA, exits outpost.
- Safely paths to quest giver, perhaps too safe, I'm not sure if it's possible to run directly to the quest giver, it sleeps for ~16s to let the group on the right move out of the way.
- Accepts quest + takes buff then moves to the safe spot
- Starts pull from the glitch location. *this needs tweaking
- Starts kill sequence once the enemies are balled, needs some refinement for sure.
- Only loots gemstones at the moment
- Attempts 4 waves, or until death

It uses the Me/A build on PvX
deroni93 is offline  
Old 06/25/2020, 20:00   #192
 
elite*gold: 0
Join Date: Mar 2020
Posts: 35
Received Thanks: 12
anyone else having issues with memory and the salvage function? errors 007 disconnects. tried playing with sleeping large amounts + ping, only solution seems to be very large amounts, which can end up taking about 3 minutes to salvage an entire inventory.

thanks.
ooklaba is offline  
Old 06/25/2020, 20:31   #193
 
elite*gold: 0
Join Date: Jul 2019
Posts: 103
Received Thanks: 82
Quote:
Originally Posted by deroni93 View Post
Is anyone aware of a past or present Stygian Vale bot?

I'm about half way into building one from scratch but I'd rather not invest more time if there's already one that works.

I'm open to sharing the source if anyone wants to help finish it but I'd rather not publish something half baked.

Progress so far;

- Functional GUI and initialise (copied from the Vaettir bot, needs tweaking)
- Starts at GoA, exits outpost.
- Safely paths to quest giver, perhaps too safe, I'm not sure if it's possible to run directly to the quest giver, it sleeps for ~16s to let the group on the right move out of the way.
- Accepts quest + takes buff then moves to the safe spot
- Starts pull from the glitch location. *this needs tweaking
- Starts kill sequence once the enemies are balled, needs some refinement for sure.
- Only loots gemstones at the moment
- Attempts 4 waves, or until death

It uses the Me/A build on PvX
Check the 2019 bot thread. There was a public one that used the safe spot to farm the first few waves. I am sure it is outdated and broke now but would be fairly straight forward to update with a newer gwa2.
list comprehension is offline  
Old 06/26/2020, 00:53   #194
 
elite*gold: 0
Join Date: Mar 2020
Posts: 35
Received Thanks: 12
has anyone else experienced IdentifyItem() not working in certain areas?

doesn't crash or freeze or fail, the script simply cannot execute/stays stuck on the action.

it works fine in some areas, not fine in others.
ooklaba is offline  
Old 06/26/2020, 15:22   #195
 
elite*gold: 0
Join Date: Apr 2017
Posts: 40
Received Thanks: 3
Quote:
Originally Posted by ooklaba View Post
has anyone else experienced IdentifyItem() not working in certain areas?

doesn't crash or freeze or fail, the script simply cannot execute/stays stuck on the action.

it works fine in some areas, not fine in others.

I haven't seen it not work, but if it doesn't work in an outpost you are accessing your farm area from, you could try to travel to your guild hall/an outpost where it works and do your item processing there.

personally i like to use the gh island of the dead, it also decreases the exposure time of your bot to other players in an outpost. this requires of course that you have a separate bot guild, but it's quite cheap for the safety (i think) it provides.

Quote:
Originally Posted by deroni93 View Post
Is anyone aware of a past or present Stygian Vale bot?

I'm about half way into building one from scratch but I'd rather not invest more time if there's already one that works.

I'm open to sharing the source if anyone wants to help finish it but I'd rather not publish something half baked.

Progress so far;

- Functional GUI and initialise (copied from the Vaettir bot, needs tweaking)
- Starts at GoA, exits outpost.
- Safely paths to quest giver, perhaps too safe, I'm not sure if it's possible to run directly to the quest giver, it sleeps for ~16s to let the group on the right move out of the way.
- Accepts quest + takes buff then moves to the safe spot
- Starts pull from the glitch location. *this needs tweaking
- Starts kill sequence once the enemies are balled, needs some refinement for sure.
- Only loots gemstones at the moment
- Attempts 4 waves, or until death

It uses the Me/A build on PvX
like list comprehension said there is one in the 2019 thread, it does however use the me/r version which requires some eotn pve skills and only farms the first 2 waves.
wolf_of_the_north is offline  
Reply


Similar Threads Similar Threads
Leader/followbot - Updated with new GWA2/headers (functional)
07/21/2019 - GW Exploits, Hacks, Bots, Tools & Macros - 29 Replies
EDIT: Updated 6/16/18 Hey all, I updated the follow/leader bot with the new headers (I think there were a few that I didn't bother updating, since the script doesn't seem to use them anywhere). I haven't done extensive testing, but it's working for me so far. Please let me know if you get any errors/crashes, and I'll attempt to fix them. Enjoy!
[GWA2] How to chase after updated header values?
05/20/2018 - GW Bots - 10 Replies
Hi all, First post, but have been following the tips all over this forum for about 6 months since I started writing my own bots. Recently the server headers changed, and although it looks like the community have pulled through and released a new version of GWA2 to reflect it, there are other headers that I'm using, that aren't in the vanilla GWA2 code. SendPacket(0x14, 0x6F, $lItemID, $lQuantity, $lBagID, $aSlot - 1) The above command would have previously told GW to move $lQuantity...
GWA2 A/mo Vaettir Bot; Need Help!!
02/19/2012 - GW Bots - 1 Replies
http://www.elitepvpers.com/forum/gw-exploits-hacks -bots-tools-macros/1568881-gwa-vaettir-mo-farm-bot .html ENGLISH: I can't seem to get this to work. I've spent 3-4 hours, read the entire thread here, tried to search for a detailed guide on how to get this to work but it's not. What I've done was: Downloaded the 2 files shown in the Original Post... "GWA2 A_Mo Vaettirs Farm by bl4ck3lit3.zip" Extracted it to desktop Ran GW.EXE as admin. Set-up assassin with appropriate gear and...



All times are GMT +2. The time now is 01:58.


Powered by vBulletin®
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2021 elitepvpers All Rights Reserved.