Showing posts with label bot development. Show all posts
Showing posts with label bot development. Show all posts

Tuesday, January 6, 2009

new year surprises

No it is not the stock market. It is my bot. A bunch of people reported they are having problem with melee classes, and finally I got time to try it out.

That was annoying. They are right, there is a problem. I set the waypoint threshold too small and the bot, sometime after chasing the mobs, run to far and quit.

Just imaging how annoying it is when the bot run out of the short range, stopped and then some mob kills it while my computer is contributing to global warming. Then I came and found the bot won't automatically run back even a ghost waypoint is there. Because it think the corpse is too far??!!

OK so I finally got it all fixed yesterday, hopefully I can enjoy the automatic gold now :-)

Friday, December 5, 2008

Better Mine/Herb methods

The next version of zoloFighter will have better Mine/Herb methods. I changed the way waypoint notes are implemented (so your old waypoint notes will dispear).

Before, waypoint notes are used for people to fish (so they know where to stop once a pool disappears). Now, a new property is added to allow you to access all waypoint notes. I will add a new button to one click add notes, and when you found a herb/mine you can add a note. Later on instead of let fighter randomly running, you can control fighter to go through all noted locations.

Tuesday, September 16, 2008

Others are copying my security steps now

Yep, just saw the first bot (I will not name it) copying my run under less privileged user security :-) Too bad the other bot is attacking mobs by TYPING actual /script commands into WOW, which could be a dead give away. The upside for that is you don't need to depend on your key bindings, but since no player will do that, it will take Blizzard little time to crack that up :-)

The good news is Blizzard is busying with WOTLK right now, and after the release they will have to put all their resources on bug fixing, that will give most public bots with little security some time to survive.

Friday, September 5, 2008

zoloFighter 0.8.3.15 released

Hastily released yesterday night with some testing. Small changes, the one that pushed me for the release is the z Compatibility mode was broken. The bot was matching z positions even when it is set to false in settings.txt.

The big reason for z position matching is the bot can pick the correct roads when falls a 1000 yard down on that bridge in AV. All the normal waypoint don't need that, especially the glider profiles which don't have z position.

Another fix is the bot will try to optimize key pressings, which matches closer to human behavior.

Friday, August 22, 2008

Got overrun by Buffer overflow!

That was a newbie mistake. I was implementing dynamic mesh grouping and vendor/waypoing calculation logic for javascript (the complicated calculation needs to be done in native code, javascript would be too slow). After exporting a large calculated vendor waypoints to javascript, program hungs on access violation error. In debug mode the error happens upon program return from a function call.

Initially I thought it is javascript error, I was trying out with JS_SetProperty, and I thought to myself maybe I should use JS_DefineProperty instead? No luck. After some tries I found if I reduce the number of elements set in JS_SetElement call, the problem goes away. That was a big hint and I started to suspect the UI has some buffer problems. Sure enough, my rastly written UI code was using a buffer of size 1024, and doing _tscpy WITHOUT proper protection! I know that was bad for a veteran engineer to do that, but it was only an amature project with very limited development time (Still big slap on me). I spend 1 hour on this with majority of time debugging and suspecting the ability of memory management of javascript, all because I saved 10 minutes of my time initially to avoid buffer checking.

Make this a lesson to all fresh engineers/coder, don't cut corners.

Wednesday, August 20, 2008

Testing scares

A family friend come yesterday night, and we all went out to a Italian restaurant for dinner. The dinner was good and everyone was happy. After that we go back to our home, and I have to entertain the guests. Needless to say I was died tired when everything is done.

This morning after I wake up, I wanted to start the bot and test it more. I was surprised to find WOW still open and my toon is dead. Turned out I forget to stop the bot before I leave for dinner yesterday and the bot has run hours yesterday.
Natually I click the run button and want the bot to continue. To my surprise the toon turned, jumped and bot stoped. The first thing come to my mind is my ghost waypoint is broken. After 10 minutes of debugging (everything went wrong during that time, the setup, my windows etc), I finally found out it is my sales repair. My bag is full and my toon is trying to go to the sales repair waypoint while he is dead!!

So now one more thing to fix, don't let the toon go on to the sales repair waypoint if it is dead!

(And there is no logs, the toon tries to mount, which failed, then try to fly by jumping, which failed to, without any log to indicate what it is doing).

Tuesday, August 19, 2008

Yet another release and more testing

Yes, I released 0.8.3.9. turned out I forget to put the fix over to 0.8.3.7 and during a test the bot is running around again. I was shocked and found out I didn't sync the changes over (that is what happens when you don't have time and have to broken development down to pieces and multitasking).

So another release and more testing. I also got guests this week and can't do much again.

Saturday, August 16, 2008

Huge memory problem

Yes even I was surprised. I was testing zolo+orbiter this morning before wife wake up, and zoloFighter died due to memory problem.

The first time I saw the memory foot print of fighter, I thought it was my database...

Anyway, the fix was simple too, GC the javascript from time to time.

Friday, August 8, 2008

Next steps

There are several thing I need to next:
1. Figure out a way if a target is attack able. It is very convenient to use "Attack All" feature, but the bot will try to kill guards that are on my side when it goes to sale and repair.

2. Improve the bindings files. Some user raised valid points, that priests should not sit down and drink. It should heal itself. The change should be easy, but I (or someone else with good script knowledge) has to implement it.

3. Figure out a way to check if some menus are up.

Monday, July 28, 2008

finally, 0.8.3.0 (Orbiter pather)

Yes I finally decided to release it yesterday, after some extended testing.

The goodies include:
1. Orbit pather and Bastos movement engine. Now zolo will move randomly, and if waypoints are close or crossed, it will go across them instead of follow the same order again and again (if your waypoint goes across entire area in as a mesh, the movement will be totally random). In a way it is similar to IS, except you define the mesh.

2. bot will run to mobs near by actively (if orbit pather is enabled)

3. Ghost res will be smarter now, instead of run the entire normal waypoint to get corpse, now it will select the shortest path to corpse.

4. Turn with mouse now.

With Orbiter pather, you can export the WOW mesh data as waypoint and the bot will move in the 3D world freely. However I think that might put me in risk of violate copy right law (I think that is the reason Judge ruled against glider, as I read the copy section, the violation is not in memory reading, but the use of WOW internal data), so the users should map their waypoints themselfs, not use WOW mesh data.

Friday, July 18, 2008

The Orbit engine is born!

Yes, I have finally made a good model of a smarter path finder for zoloFighter, and I named it Orbit :-)

The implementation has been changed several times, the main goal is to make a smart path finder and scheduler. Initially I thought of a propulsion based system to "push" the bot forward, but that is a bit complex in turn of memory usage. And after some tweak and fixes, I finally decided for our current model.

I am still in the stage of tweaking. The first try, duel to some internal bug, I was using the old system instead, and because some of the randomization in the javascript, it looks like Orbit was working, but was not. I was so happy (at the time).

Anyway, right now Orbit is doing well at times and doing bad at other times, but the main part is working now. So I will give myself a pat on the back and catch the raid on my guild :-)

I will have a very busy week next week, so the release of ZoloFighter+Orbit will be sometime next next week.