View Single Post
Old 09-20-2008, 07:12 PM   #9
Stoplaughin
A Tundra Mammoth
 
Join Date: Mar 2004
Posts: 60
Interface Author - Click to view interfaces
Default

I think my posts are deviating from the topic quite a bit. But I think its better than making 50 new threads for each topic. Hopefully someone will find this information useful or someone will find alternatives to my approaches. Todays project , was to find the best way to override a hard coded animation.

You can alter the EQUI_Animations.xml file. But whenever that file is changed, your UI will break.

You can alter the texture file from the default UI and change the piece to whatever you want. This actually isn't a bad method. The only downsides is if the image it came from is altered in the default UI, it may cause visual issues in game. The animation will also be stretched if you want a size different than the default.

Its possible there may be a bug in EQ. When EQ searches for duplicate objects it may compare the strings in a different way than when it searches for the animation to display. I tried adding all kinds of things to the beginning and end of an item name including: slashes, null character, new line, carriage return, tab, space, and unicode. Some of them caused parsing errors. Some caused the second animation to be recognized as having a different item name. None of them worked.

There is another possibility for the above type of method. EQ most likely uses a standard function to compare the strings. If this function is dynamically linked, you could replace the C runtime library dll in your EQ dir with a custom dll that replaces the string compare function. Replacing a file would cause problems with the patcher overwriting your dll. You could also hook the function at runtime so that you wouldn't have to worry about the patcher. If not written very carefully, it could have other side affects. It is also on the edge, if not over the edge of "hacking the game".

There seems to be an undocumented attribute named scope, that can have the value internal or default. I placed this attribute everywhere I could think, but it didn't seem to have any affect. It may be undocumented because its not implemented .
Stoplaughin is offline   Reply With Quote