Yea, aimbot.
Printable View
If this was done in something like open-sauce, I don't imagine it would be too hard to hook the input_update function of the game. Before the update function is ran you could preprocess with a routine which gathers whatever data from the bot input, applies it to the input state that the game tracks, then diverts the game back to its input_update function. After that it could also then postprocess with another routine when then removes the input state changes it applied so that it doesn't affect other systems. However, I think the postprocess part may not even be needed as the input states aren't used by by the keystone system (the ingame ui which halo uses) and the game console uses the actual win32 api console functions.
yeah unfortunately. I'm gonna have to add some sort of pause feature.
I've encountered a bug where occasionally the bot will hold down just one key instead of correctly walking to the next waypoint. Jiggling the mouse seems to fix it, but I'm gonna look for a better solution. I also need to make it so the player jumps and crouches on special links. Moreover, ladders aren't supported right now.
For that it sounds like you'll need to make a 3d viewer. You could have it so that a person can use an .obj export of a map, then use that in the 3d view. Or even load the bsp tag (I could help in that area in the future). With the latter (bsp tag), you already have collision information pre-built so you could do some automatic linking I think. It also stores information when it comes to things like surfaces which act as a ladder, which could assist in making weighted paths.
It might be better to use a navigation mesh instead of nodes in that case, right? It would be pretty easy to set the walkable surfaces as polygons in the nav mesh I think.
Of course, it would be better to use your own information that is built (baked) from Halo's preexisting database of information. However, if you just wanted a purely dynamic form of interfacing (that required no data baking) then you'd just use the bsp data as input.
I suggested to him the use of Cutscene flags as points, and importing them from the scenario tag.
So when this is done we will have servers with multiple instances of the game running with lots of bots. Sounds lul.
I just found a magic address that's true when you can move and false when you're typing in chat, in console, or in any menu. I just made it only press buttons when this value is true and the active window title is "Halo".
GIT 'ER DONE
edit: Added some view features. It's pretty obvious what they do, but whats not quickly apparent is how much they help when you're building the graph and things are cluttered. I found it hard to link nodes in places like the base where you have lower and upper level nodes and nodes right next to each other. I increased the zoom limit to 20 to really look closely, and I made the link arrows half as wide which greatly improves the appearance. Also, the highlighted path circles now fade to purple towards the goal as an indication of order.
I found the program has trouble walking around in tight spaces. This can be improved by decreasing the radius in which it considers you at a node, which I may give the user the option to do since vehicles require a slightly larger radius, and by better placement of nodes. Keep the nodes towards the outside corners of hallway bends so the player doesn't get hung up on the inside edge.
The suggestions in this thread have got me thinking, and I have some ideas for improving this, but I think I'm going to continue with the current systems until completion and then possibly make a version 2 once I've gained some more experience. The limitations I have right now, such as ladders, are easily fixed. The only problem with ladders is that the goal reached radius is used on a 2D basis only. If the user just places a node a foot away from bottom of the ladder and one at the top, then the program will just continue to walk forwards to reach the upper goal (just need to lock view in an upwards and forward direction, which I have to implement for jumping and warthogs anyway). Heading back down the ladder would require something else, but I'm sure it can be done.
Except you'd also need multiple copies of the game, since one CD key can't run multiple players in the same server that's checking with the authentication servers for legitimate keys. However you could use a server that doesn't check CD keys to have bots probably...
Con, your next project is to work on a Halo client that runs with minimal system resources in order to act as a "bot" that can be used online. Should be pretty easy right? :v: