Project 1999

Go Back   Project 1999 > Server Issues > Resolved Issues

Closed Thread
 
Thread Tools Display Modes
  #1  
Old 04-28-2013, 01:02 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
Default

Quote:
how can I identify the line that needs changing for other spell effects?
The methodology I followed was to identify which effect in the SpellEffects file looked like the spell I was going to change. Then I searched through the hex editor for that file name. To determine how I could change the casting direction I actually just selected everything after the spell effect file name up to the start of the next overall effect block for a different spell, copied it, and pasted it over the same area for the Aego spell.

I picked Lightning Shock because I know the particles fell downwards when casting. When I went in game and cast shielding it looked like I was casting Lightning Shock but with the shielding particles. Then I went back into the hex editor and started changing everything back to the way it was before for that spell one line at a time.

Then I'd go check in game, come back and set the next line back to what it was, rinse and repeat until my particles started going up again instead of down. Then I narrowed down the exact spot on the line that was causing the particles to go up instead of down.

Then I set that spot to every possible value 0-F and 4 was the best option.

I'll look into this again a bit later.
  #2  
Old 04-28-2013, 01:53 PM
a_gnoll_pup a_gnoll_pup is offline
Sarnak


Join Date: Apr 2013
Posts: 230
Default

I guess I will write a program to change this data in the file, similar to the s3d patcher but for this.

Very amazing work, azxten!
  #3  
Old 04-28-2013, 02:49 PM
Furinex Furinex is offline
Sarnak

Furinex's Avatar

Join Date: Apr 2013
Posts: 339
Send a message via AIM to Furinex
Default

Quote:
Originally Posted by a_gnoll_pup [You must be logged in to view images. Log in or Register.]
I guess I will write a program to change this data in the file, similar to the s3d patcher but for this.

Very amazing work, azxten!
Please do! This looks like its a good resolution but the implementation will be difficult for a normal everyday user. A program to automate this process after we can nail down the science exactly.

EDIT: So far the only thing I was able to edit was the aeglism entry you outlined, couple of times I royally jacked the file lol
Last edited by Furinex; 04-28-2013 at 03:17 PM..
  #4  
Old 04-28-2013, 03:20 PM
a_gnoll_pup a_gnoll_pup is offline
Sarnak


Join Date: Apr 2013
Posts: 230
Default

Quote:
Originally Posted by Furinex [You must be logged in to view images. Log in or Register.]
Please do! This looks like its a good resolution but the implementation will be difficult for a normal everyday user. A program to automate this process after we can nail down the science exactly.

EDIT: So far the only thing I was able to edit was the aeglism entry you outlined, couple of times I royally jacked the file lol
It is a fixed byte header that reads until the file ends. Each entry, if you notice, has a version in the header, followed by a non-variable byte entry until EOF is read by the EQ client. The beginning of the entry should be the filename.

So, if you write a program to find the beginning of the file entries and scan based on length to edit the byte (the location of the byte you are changing to 0xC4 is base + a certain value) you can iterate through all the entries until EOF is hit, much like the eq client is doing now, writing the bytes to the file as you change them by keeping the entries in a struct in memory as opposed to keeping them in memory and doing nothing with them.

Alternatively, the EQ client could be patched via memory injection to read that byte as 0xC4 always when it reads that entry. To find out the length of the old spell file, cross-reference EQ for Mac's disassembly (it loads as readable code for the most part) versus EQ titanium's strings, find the byte, and force it to 0xC4.
Last edited by a_gnoll_pup; 04-28-2013 at 03:22 PM..
  #5  
Old 04-28-2013, 03:32 PM
Furinex Furinex is offline
Sarnak

Furinex's Avatar

Join Date: Apr 2013
Posts: 339
Send a message via AIM to Furinex
Default

Quote:
Originally Posted by a_gnoll_pup [You must be logged in to view images. Log in or Register.]
It is a fixed byte header that reads until the file ends. Each entry, if you notice, has a version in the header, followed by a non-variable byte entry until EOF is read by the EQ client. The beginning of the entry should be the filename.

So, if you write a program to find the beginning of the file entries and scan based on length to edit the byte (the location of the byte you are changing to 0xC4 is base + a certain value) you can iterate through all the entries until EOF is hit, much like the eq client is doing now, writing the bytes to the file as you change them by keeping the entries in a struct in memory as opposed to keeping them in memory and doing nothing with them.

Alternatively, the EQ client could be patched via memory injection to read that byte as 0xC4 always when it reads that entry. To find out the length of the old spell file, cross-reference EQ for Mac's disassembly (it loads as readable code for the most part) versus EQ titanium's strings, find the byte, and force it to 0xC4.
Well... its clear you know what you're doing. Far more than I do. I am looking forward to the results of this. Even if it isnt "Perfect" its pretty damn close and would make the play experience 100x better.
  #6  
Old 04-28-2013, 08:00 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
Default

Quote:
you can iterate through all the entries until EOF is hit
Unfortunately it won't be that easy. The file contains all spell effects and only some of them are supposed to act in this manner. Also, the names don't match up in any meaningful way to the spells so its hard to find which should be modified.

Its likely the file will need to be hand edited to get each "type" of spell like healing, shielding, frost nukes, etc to work correctly and then the file will be included in a future patch.
  #7  
Old 04-28-2013, 10:14 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
Default

Sure, I fixed it. Identified particle file as spela2.tga. Replaced half of the instances of this string in the file with a different particle name. Checked if it changed spell to different particle, repeated until I identified which effect was used by healing spells.

Identified as VengeanceV2 S1-1 at least for level 1 Minor Healing.

[You must be logged in to view images. Log in or Register.]

Strangely this spell had 00 00 in the offsets where the previous spell had FA C2. Changing this to FA C4 which fixed the shielding spells causes the effect to go backwards from the hands. Changing it to FA C5 looks the same as the shielding spell with FA C4.

[You must be logged in to view images. Log in or Register.]

If someone will compile a list of spells that are supposed to have effects like this I will fix them. Currently we have:

Shielding spells
Healing spells
Frost nukes
Bard "Chant of Battle" type effect

What else is missing?
Last edited by azxten; 04-28-2013 at 10:17 PM..
  #8  
Old 04-29-2013, 02:07 PM
a_gnoll_pup a_gnoll_pup is offline
Sarnak


Join Date: Apr 2013
Posts: 230
Default

Quote:
Originally Posted by azxten [You must be logged in to view images. Log in or Register.]
Unfortunately it won't be that easy. The file contains all spell effects and only some of them are supposed to act in this manner. Also, the names don't match up in any meaningful way to the spells so its hard to find which should be modified.

Its likely the file will need to be hand edited to get each "type" of spell like healing, shielding, frost nukes, etc to work correctly and then the file will be included in a future patch.
I would map out the file in a program such as 010 editor. The spells are mapped out by ID, im pretty sure, which the spell file references. It's in the file somewhere although I can't remember where exactly. Each spells in spells_us.txt references this ID.

If you can identify this ID byte, it would be easy to figure out the rest of the puzzle, as you could update spells by ID and make a program to either string compare, ID fix, or even add a new entry to the file via structures. The byte is actually a DWORD, byte just sounds cooler.
Closed Thread


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 03:27 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.