View unanswered posts | View active topics It is currently Thu Oct 23, 2014 9:51 am



 Post a reply 
Username:
Subject:
Message body:
Enter your message here, it may contain no more than 60000 characters. 

Smilies
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: ----) \ :) / .````:) ?? :( 0) B) O_)
View more smilies
Font size:
Tip: Styles can be applied quickly to selected text.  Font colour
Options:
BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON
Disable BBCode
Disable smilies
Do not automatically parse URLs
Green, red, sock, blue, can, knock, purple. - How many colors are listed?
Green, red, sock, blue, can, knock, purple. - How many colors are listed?:
   

 Topic review - Aimbots and Several Contemporaneous Ideas 
Author Message

Reply with quote Post Posted: Sun Jul 08, 2012 6:35 pm
Re: Aimbots
Sparky wrote:
Thanks for that, and yes I agree. But why don't you see the advantage of an OS X server over a linux one? I haven't been able to install "screen" support and I don't anticipate being able to do that on a dedicated server either. That's pretty much the only thing keeping halo demo from having a dedicated host through HDM.


I need some clarification on 'screen.' If you think the command line tool needs a GUI running via WINE, it doesn't. You can pass a flag that will make it run in the terminal window you started it from.

If you're saying you don't have screen installed, then you are insane, and you should install it for it is useful. (Honestly, one would think Red Hat would come with screen installed anyway). But if you aren't using screen, then I'm curious how are you keeping that lobby script running, and if you can keep that script running, then what is preventing you from keeping this tool running?

Reply with quote Post Posted: Sun Jul 08, 2012 5:09 pm
Re: Aimbots
Thanks for that, and yes I agree. But why don't you see the advantage of an OS X server over a linux one? I haven't been able to install "screen" support and I don't anticipate being able to do that on a dedicated server either. That's pretty much the only thing keeping halo demo from having a dedicated host through HDM.

Reply with quote Post Posted: Sun Jul 08, 2012 12:10 pm
Re: Aimbots
I don't see any advantage to have an OS X server over a linux one. Linux is widely used for servers, and you'll likely find it a pain to install packages that aren't heavily tested on OS X (eg: WINE). I'd still go with Linux.

Reply with quote Post Posted: Sun Jul 08, 2012 11:23 am
Re: Aimbots
Right.

Well, I have been looking to discuss the most useful server scenario; that is to what I alluded here.

HDM server is filling up, and yet there is relatively little activity on it now, I think because of our focus elsewhere. So I'm not saying we should focus on filling up the server hard drive, or that we should not be doing what we are doing elsewhere. When I renew the hosting plan for halodemomods.com, would another server setup, such as a windows server (ugh) or Mac OS X server (with linux "screen" support) be more useful to our goals than a red hat linux server?

I applaud other life goals and to move on from this to do other decidedly better things (not games, but other more important things in life), yet while we continue here, we are moving towards a direction with these efforts also, to make this little part of the world ideal to match other life values we gain elsewhere. So while we fiddle with this present computer technology, what is the most useful to what we seek to achieve here? Thinking as creative modders, not as those who hold the source code to the game.

Reply with quote Post Posted: Sat Jul 07, 2012 7:53 pm
Re: Aimbots
You are so overcomplicating things. There is a dedi command-line tool that runs natively on Windows, or can easily run on Linux via WINE (this is what the clanhalo dedi uses). Halo provides a remote console built in, no need to think about it. You can just run a number of those instances you want. Although I doubt you have a server that can support many dedi's at once. Not like it matters for now because the number of users on MD is not that high.

Reply with quote Post Posted: Sat Jul 07, 2012 2:17 pm
Re: Aimbots
I'm really just way too tired to understand any of this right now.

Back to PHP stuff for Zeus.

I have an idea though where HDM can host scripts that the HDM server would use to rcon remote connect with the hosted halo demo or halo games... basically what I'm trying to say here is that HaloDemoMods.com can have web pages where you can remote-control a hosted halo game. This would be the next best thing to running the game on the server itself to host players in that game from the HDM server. All this stuff would of course be with another server setup.


I'm wondering if anyone could recommend a Mac OS X server host, so perhaps we'd be able to have some real Halo Demo dedicated servers, and so all this stuff would be so much more flexible overall.

Reply with quote Post Posted: Sat Jul 07, 2012 8:28 am
Re: Aimbots
Sparky wrote:
Once you respawn, though, these memory addresses are no longer used. Doesn't it have something to do with the map magic ... or something like that?


Magic is basically the offset in which the map is loaded. You could change map values without reloading the map using

Code:
magic + offset


When you respawn, the object ID and address of the player is discarded and you obtain a new ID. The address can be derived from the ID pretty easy.

playerIndex is the player number. 0 = Host, 1 = first player that joined, etc. It can be derived sv_players (usually correct) or from memory mods like the Colors mod, which lists players in order, or the Assassin mod I made, which lists in numerical order.

Variables in all caps are constants.

Code:
objectIDAddress = FIRST_STATIC_PLAYER_ADDRESS (0x4BD7AFD0) + PLAYER_OBJECT_ID_OFFSET (0x32) + STATIC_PLAYER_SIZE (0x200) * playerIndex


Then, you take the value from this address. It's a 16-bit unsigned integer. We'll call this value objectID If it's 0 or 0xFFFF (-1), the player is not alive or existing.

Note: If it is 0 and the player is alive or spawned, you're playing a modded map on slayer without scenery, machines, vehicles, weapons, equipment, etc. which is boring. On most occasions, 0 is invalid.

A little trivia. The object ID 0 in CTF is the red team flag. In slayer, if unchanged, is a warthog.

Now we can find the dynamic player address. The one that contains shield, health, location, and stuff.

Code:
playerAddressAddress = FIRST_TABLE_OBJECT_ADDRESS (0x4BB206EC) + OBJECT_TABLE_SIZE (0xC) * objectID + OFFSET_TO_HALO_OBJECT_POINTER (0x8)


Now we take the value of this. It's a 32-bit unsigned integer. This is the actual address of the dynamic player.

To change stuff with it, you could do things like:

Code:
changeFloat(playerAddress + OFFSET_TO_PLAYER_Z_COORDINATE (0x64),50)
This would set the player's Z coordinate to 50. In an unchanged Blood Gulch, this would surely kill them.


Halo Full and Demo have different FIRST_STATIC_PLAYER_ADDRESS and FIRST_STATIC_PLAYER_OBJECT_ID, and FIRST_OBJECT_TABLE_ADDRESS. They also have different magics. Using subtraction of the two magics, you could compensate for this and convert a demo memory mod. I did it with the Zombies mod that I made in late 2010.

Everything else like PLAYER_OBJECT_ID_OFFSET is the same and should not be changed. Usually these offsets have 4 or less digits.

Reply with quote Post Posted: Tue Jul 03, 2012 3:32 am
Re: Aimbots
Maybe try using garb tags instead of scen tags.

Reply with quote Post Posted: Mon Jul 02, 2012 8:23 pm
Re: Aimbots
Sparky wrote:
Then I go read more on programming methods and he goes afk for like half a year until one of us comes back with something new and cool.
Heh, so true :D

Sparky wrote:
Alternatively, you could synthesize this by moving the spawn points outside of the map bsp. You could develop a map where all the spawn points are at a single location outside the bsp, then using memory hacking you could place whatever you wanted to show up on the map inside the bsp area so it spawned there.

It would be as easy as moving players around the map, which Starlight already lets you do.
Just look at 5-Team-Slayer for custom spawning.
The biggest problem with this is the actual 'spawning' of objects. I tried to dynamically spawn different objects several years ago and it didn't work.
Converting objects is also... weird (I did manage to turn a hog into a tank... but it was so glitchy that it crashed after ~ 5 seconds)

Reply with quote Post Posted: Thu Jun 28, 2012 1:17 pm
Re: Aimbots
Talking with Samuco is fun, because he moves forward with ideas, then I move forward again with them, and it becomes a masterpiece goal when the dust settles. Then I go read more on programming methods and he goes afk for like half a year until one of us comes back with something new and cool.

To move forward:
What about a program that lets you spawn and control AI dynamically during a game? It could work if we could also figure out how to dynamically control the spawning of itmc and vehicles and other map assets (such as players also). Alternatively, you could synthesize this by moving the spawn points outside of the map bsp. You could develop a map where all the spawn points are at a single location outside the bsp, then using memory hacking you could place whatever you wanted to show up on the map inside the bsp area so it spawned there.

It would be as easy as moving players around the map, which Starlight already lets you do.

Reply with quote Post Posted: Thu Jun 28, 2012 4:01 am
Re: Aimbots
Take a look at this script if you want more information about memory shiz.
http://www.samuco.net/swordedit/Halo.py

Specifically...
Code:

        def isCrouched(self):
        try: return (readUInt8(self.address()+523)==1)
        except: return 0

   def x(self): return readFloat(self.address()+92)
   def y(self): return readFloat(self.address()+96)   
   def z(self): return readFloat(self.address()+100)

        for player in getPlayers():
      if player.vehicle().isBanshee():

        for player in getPlayers():
      if player.vehicle().isWarthog():


I made another version of swordedit a while ago that acted next to the radar. It provided an overall map of the game with player locations.
You could possibly create some sort of awesome spartan helmet that overlaid over Halo giving feedback about things (like grenaids/enemies flashing red). Augmented reality?

If you wanted to make a decent aimbot, you would also need to cope for ping/vehicles etc. Good luck with that :p
You should focus on trying to find the walk/shoot/turn memory values instead of using the terrible simulated mouse/keyboard idea :)

Reply with quote Post Posted: Thu Jun 28, 2012 3:57 am
Re: Aimbots
Crouching isn't a problem. You can tell whether a player is crouching or not in the memory...
I tried to make an AI a while ago (that actually controlled your keyboard, mouse etc). It sortof worked...

It would be fun if players could program their own 'AI,' get put in one match and we see who wins :)

Reply with quote Post Posted: Tue Jun 26, 2012 6:24 am
Re: Aimbots
There are aimbots for Mac full, but there aren't any that are widespread.

The public one on Demo supports Intel, and if it works for PPC, it's a "coincidence" as far as I remember.

Player positions change because the player structure is discarded and a new one is created when a player dies or new game starts or whatever.

See here and here for a rough idea of the details for Demo, or any of the several memory mods that look at player position, or HServerChanger's code, or one of Samuco's swordedit modifications, or etc.

Also, stop bringing up religion.

Reply with quote Post Posted: Tue Jun 26, 2012 2:44 am
Re: Aimbots
Lag is better than nothing.

I never really messed around with player coordinates in memory, but I discovered that the host player has three similar float values for its X coordinate just now.

Code:
4BB48A48 = 98.8
4BB48A7C = 98.9
4BB48BE8 = 98.7


Once you respawn, though, these memory addresses are no longer used. Doesn't it have something to do with the map magic ... or something like that?

Reply with quote Post Posted: Tue Jun 26, 2012 2:01 am
Re: Aimbots
Yes, the demo one is shit, not sure about PPC.

Head coordinates are not stored, only player positions. The bot uses a modified position value to compensate for where the head is. Normally this allows people to crouch and the bot will still aim above them at where the head was, unless it is a smart bot. Also, players in vehicles cannot be tracked correctly using most bot methods.

External AI control would cause lag and bad times.


Jump to:  
cron
PPowered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.