zer0 wrote:I always thought that speed might be an issue.
Well the thing is in Crysis most of the AI was gone into creating eyes and ears for the Enemies. And since your effectively trying to mimic a human, it would make sense to enable the visual recognition of objects. With effects you may be right, though for icons? I've taken a look at all the Shaiya icons and they don't seem to have change at all, mayb the brightness may be affecting the colour I'm not too sure. Pixel-based art usually doesn't have most of the effects you listed as it makes it end up looking terrible.
That's wrong. Crysis doesn't work by "Visual recognition". You should take a look at the DNA or whatever the name was for the C# Class to make games, they havea nice video presentation of how a structured AI works. Now if Crysis would use such thing it would be HARD to make the game run fluent at all with the amount of enemies. It's a misconception to believe that Crysis would have an AI like a real person, because the Strategylevel of an AI ALWAYS knows where you are. Based on that, multiple factors will trigger an alarm for the AI like gunshots etc. Those will be registered as Event, and execute a predefined pattern like _Search for the enemy_.
Like Elverion said, trying to find a reliable check on the memory is easier than that.
However, if you are hot to make a Sprite Regocnition like for Spells or anything that can't be easily done with Memory poking or GetPixel, I'd suggest you writing a directx hook. It's way easier, and you never have to update it except when the size of it changes. I can show you something similiar for Runes of Magic,
basically I'm logging what Materials are cached around my character and see what Texture it has loaded to sort them as Brass Vein, Balsa etc.;
http://www.bilderkiste.org/show/origina ... rommat.jpg
Like that, it is possible to see if a button, menu, animation, etc has been triggered or is visible.
You can also remove the blending on things, aslong it's not hardcoded.
zer0 wrote:
I could do it with just pixel colors I suppose however that can generate false positives, as I have been experiencing.
Problem with memory addresses is they are subject to change on every version release.
Mayb much later on I will code something like this for experimental purposes.
Loading & Matching a Bitmap isn't any different from GetPixel. Infact, every pixel gets loaded into the memory and matched on whatever you wish for.
I'd rather create a own CrC function for this, eg. Get 5 Pixels in a defined rectangle and hash them together. That is way faster, and you can have a little of tolerance.
Also, memory adresses aren't such a big deal either. Pattern Matching can solve this, after that you can use the old & new adress to recalculate all old adresses to work with the latest version.