
The aimbot is done. It's pretty good; it constantly adjusts the lead based on ping and velocity. It does get messed up when they crouch or get in a vehicle, but I'm not too concerned about making it perfect.
The aimbot is just another FID a FunctionNode can have. It takes parameter player index, so it can always aim at one player or some function of data sources giving a player index. I've also added several more data sources and FID's for your bots to use:
FID List
Code:
PRINT = 0,
AIM_AT = 1,
GOTO = 2,
GOTO_CLOSEST = 3,
GOTO_ALT = 4,
GOTO_CLOSEST_ALT = 5,
MOUSE1 = 6,
MOUSE2 = 7,
SLEEP = 8
Data Source List
Code:
PLAYER_X = 0,
PLAYER_Y = 1,
PLAYER_Z = 2,
CAN_WALK = 3,
VIEW_ANGLE_H = 4,
VIEW_ANGLE_V = 5,
CAMERA_X = 6,
CAMERA_Y = 7,
CAMERA_Z = 8,
CLOSEST_PLAYER = 9,
LOCAL_TEAM = 10,
PLAYER_COUNT = 11,
LOCAL_PING = 12,
CLEAR_SHOT = 13,
SHIFT_KEY = 14
I added in that "SHIFT_KEY" data source to show how easily this thing can be exploited for use as an aimbot for the program's user. I wanted to have hot-keys accessible as data sources anyway, but the power of the AI system lets you make an aimbot with the following simple AI text file:
Code:
# When the shift key input ($14) is 0, doing nothing has higher priority. However, when shift is held, aim (!1) at the closest enemy ($9)
[0.5] NOTHING !99(1);
[$14] AIM !1($9);
I obviously don't want to add to Halo's aimbot problem. I need ideas from you guys on how to solve this. Should I disallow hot-keys and aiming in the same file?
The other new data sources and FID's make the bot function at a very basic level now. Here's the aptly-named new001.txt:
Code:
*[1.0] GOTO_CLOSEST_ENEMY !3($9);
[0.5] AIM !1($9);
*[$13] SHOOT_AT_THEM {
*[1.0] CLICK_DOWN !6(1);
*[0.7] SLEEP !8(30);
[0.5] CLICK_UP !6(0);
}
It always goes to the highest priority task first: GOTO_CLOSEST_ENEMY. That's self explanatory, but note that it's concurrent (*). This means that once it's done executing, it'll move on to the next highest priority TaskNode. In this case, it's either aiming at the closest enemy or clicking to fire. Clicking to fire depends upon the target being visible or not ($13) but it's also concurrent, so it always ends up aiming at the target anyway. Because AIM is not concurrent, if SHOOT_AT_THEM has a lower priority (it's either 0 or 1) then it'll never shoot.
So about all that does is runs to enemies and shoots at them if they're visible. Not a team player!
Edit:
There's a couple other things I should mention. The first is a new addition to the UI called "Use Camera". The little "you" circle in the graph view follows your player coordinates and that's what it uses to place new nodes and such. If so feel like it, you can opt to use camera coordinates instead. This can make placing nodes in difficult places easier, like just inside walls for ladders to work properly. Since it no longer relies on camera coordinates for everything, you can watch it from 3rd person in devcam now.
Bookmarks