Using GWA2, is there a better bot library?

05/21/2020 19:05 ss1100#1
I recently started botting and I was wondering if there's a better library out than GWA2 that was pushed to Github 5 years ago and includes many functions that flat out don't work anymore?

At the least, is there a list of functions that don't work in GWA2? I would prefer crashing the game less when I'm trying to develop a new bot. Does anyone have any additional functions I could add to my GWA2 library?

I kinda hacked around things like not being able to flag heroes (was playing with DoA heroway bot) by moving my toon to the spot I wanted to flag and then using AutoIt's keyboard press to hotkey placing a flag and then AutoIt's click functionality on the center of the rendered screen. It works, but it's really hacky and wouldn't support multiboxing because you have to keep focusing the GW window for it to work.
05/21/2020 20:37 list comprehension#2
GWA2 is a technical accomplishment at least the original forms that were fully functioning. The reason I say this is besides the standard reversing work it is quite difficult to do low level memory operation in a p-byte language like autoit. It takes a pseudo scanner and parser among other work around code to inject shell code. These types of things are relatively trivial in C or C++.

Simpler things like flagging heroes are merely packet based and it just means your GWA2 version is even more broken than most public. I don't believe there is a list of broken function in GWA2 except a few mentions here and there in various threads.

The alternative is using GWCA that powers tool box in the guild wars client. This isn't a turn key solution as you will have to write many functions needed for botting. It also is a situation of whether you want to merely control from in game using chat commands vs setting up a wndproc hook,named pipes, or sockets to communicate to an external nicer GUI.

The last option really is to build your own framework. I honestly think this is actually one of the better routes as you learn things and GWCA is on the complicated end of the spectrum while GWA2 is a complex broken mess.

TL;DR GWA2 is a broken end of life API, don't use it unless you have no other option. The time is now to adapt and grow your skills.
05/22/2020 03:14 ss1100#3
I'll take a look at GWCA. I'm more of a BOT hobbyist and a tinkerer than one trying to necessarily "grow my skills", however, I'm a software engineer (just not for games lol) and I love what I do, so developing a framework appeals to me... Do you have any resources to get started? I'm not necessarily looking for something easy/simple/fast, but examples can save me some of the frustration/fun.
05/22/2020 05:27 list comprehension#4
I would start by taking a look at the current gwca standalone code.
[Only registered and activated users can see links. Click Here To Register...]

Then I would view a larger project using it being toolbox.
[Only registered and activated users can see links. Click Here To Register...]

Also it can be helpful to look at old outdated gwca versions as it was more crude but easier to understand imo.
[Only registered and activated users can see links. Click Here To Register...]

The up to date gwca git has a few simple examples that would be worth looking into and testing. The most straight forward route to a simple api would be to get a .dll injector, make a .dll project, and add pattern matching for known patterns to start mapping out simple in game statistics. The two major functions to hook would be a high call count function that would be the game loop and the packet send function.
05/22/2020 11:20 lataverne#5
GWCA already exposes functions you will find in GWA2 and gwApi.
It just lacks of higher level functionalities, yet it isn't that hard to come up with a library having such features based on gwca++.
05/22/2020 17:22 list comprehension#6
Quote:
Originally Posted by lataverne View Post
GWCA already exposes functions you will find in GWA2 and gwApi.
It just lacks of higher level functionalities, yet it isn't that hard to come up with a library having such features based on gwca++.
Exactly, it isn't a far stretch to morph it into a superior api in everyway to gwa2 even prior to broken stuff.