View Full Version : Spells: Spell Effects going straight up?
Furinex
04-14-2013, 06:03 PM
I did a search for this and couldnt come up with too much, only one thread with no resolution in it. So I was wonder, does anyone else have this problem? Spell effects going STRAIGHT up from the hands. They are coming out the right spot, but they look totally weird. Pic below. Any idea how to fix it?
https://sphotos-b.xx.fbcdn.net/hphotos-prn1/529509_10151848107483626_1320005876_n.jpg
Captivate
04-14-2013, 07:20 PM
Wonder what nirgon thinks. As far as i know ive been staring at that for so long im not sure if its right or not.
maximum
04-14-2013, 07:36 PM
Check Technical Discussion forum.
Furinex
04-14-2013, 08:19 PM
Yeah, I checked technical forums, but Im not seeing anything too useful. Deleting those two spell files would make progression look better but honestly, I just want them coming out the right direction at this point heh.
Being looked into
http://www.project1999.org/forums/showthread.php?t=87426&highlight=particle+effects
Furinex
04-14-2013, 08:32 PM
Meh, I read that one, i was hoping it was out of date and there was some movement on this but, oh well. Looks really strange.
Furinex
04-25-2013, 06:55 PM
I have to ask, Is this working properly for ANYONE or is everyone seeing what I am with the spell effects? Is there anything anyone can do to help with solving this issue? I know it seems like a small thing but really, when thats all you look at all day is yourself casting and you KNOW its wrong, I guess it just gets under your skin. I would love to help in any way I could. I do have a server that I could provide testing on.
azxten
04-27-2013, 09:41 PM
Everyone is seeing the incorrect particle path. I'm going to look at this a bit today. Don't expect any answers though. :)
My initial thought is that a particle has both an origin and a velocity (of some type). However, I think maybe we are missing the velocity entirely and the client defaults to the velocity we are seeing.
spellsnew.edd
This file is currently suspected as holding the answer because Kanras was able to change the direction of particles. However, I think maybe he just changed what the default velocity is rather than touching on the real solution which is to feed the particle function the appropriately vector information for velocity when the particle is created.
Of course, this is all nothing but a guess.. now I'll go mess around with the file/game.
[root@black ~]# strings spellsnew.edd | grep -i emitter | wc -l
806
Looking at the same file Kanras had some success with it appears that this may store velocity information after all. In 3D engines an emitter is used to generate particles. Typically sprites which are a 2D image file mapped to a specific 3D coordinate.
This spellsnew.edd file has 806 instances of the string "emitter" within it. Sounds like a rough number for the amount of spells/effects that would have been in the game at the time of this client release.
I'm guessing every spell in the game has emitter data stored in this file.
Here is a random 3D engine emitter information page explaining their emitter functions parameters:
All emitters have a number of common parameters.
Variable Definition Values
emissionType Emission mode ET_EXPLICIT, ET_RADIATE, ET_CUSTOM
explicitLaunchVector Initial velocity in explicit mode (x, y, z)
radiateOrigin Point particles launch away from in radiate mode (x, y, z)
amplitude Launch velocity multiplier (-infinity, infinity)
amplitudeSpeed Spread for launch velocity multiplier [0, infinity)
Just including this so people know what I'm talking about. The parameters the EQ emitter function takes are likely hard coded for every spell in the spellsnew.edd file.
The problem though is that I don't know if these hard coded parameters includes a "explicitLaunchVector" which will determine which way the particles should originate from the hands. If they do, why aren't they being used? If they don't, why isn't the normal function of determining launch vector being used?
I think this may ultimately be an unsolvable problem without actually edited the eqgame.exe. I'm guessing they may have changed the way the emitter function worked which is why the old spell data no longer works correctly. It has stored data that is no longer being accessed by the game or the function that calculates particle velocity is incompatible with the old spell files and thus having issues/defaulting to something.
Furinex
04-27-2013, 11:01 PM
Azxten, I appreciate your hard efforts. I understand this might be unsolvable. Im sure im not the only one that things about this everytime they cast. However, I wonder if there is a way to inject this function into the eqgame.exe, or somehow recreate it? Maybe Im just spewing a bunch of shit, who knows. Anyways, Im working on a couple of ideas, I will report back with my testing.
azxten
04-27-2013, 11:10 PM
Looking through the effect tga/dds files it looks like spelb2.tga is what is used for level 1 abjuration spells like Minor Shielding. This is also confirmed in the thread linked above by Telin who was investigating the additional particle effects while leveling up. We can also see the same NPCAegolism name.
http://i.imgur.com/AAjYM52.png
This is from spellsnew.edd. Now its time to start playing with everything within this block of hex.
http://i.imgur.com/8XqJDdq.png
Example of the tga which is being emitted by the emitter function.
UPDATE:
I've been changing the values in the block of hex for this spell emitter. So far I have been able to do just about everything except change the direction the particles are going. I've been able to change opacity, number of particles, spread, etc. Continuing onward.
azxten
04-28-2013, 04:32 AM
I identified the same thing Kanras did I think. The value in red in the screenshot below can be edited to change the direction of the particles:
http://i.imgur.com/LFpqdOg.png
Here is a collection of screens I took while testing. Not that 2 is the default "straight up" direction.
http://i.imgur.com/KosNKVk.png
Changing from 2 to 4 seems to roughly recreate the classic particle effects "shooting from the hands." It appears to be slightly wrong and is too far down when hands are up and too far up when hands are down. However, overall I think its a nice change and I'll definitely be keeping it this way on my client.
I then changed the NPCAegolismv2 S1-2 effect as well and had the same results.
http://i.imgur.com/BZecgGn.png
Devs, is it worth attempting to correct all the "shoot spells from hands" spells to use this new direction information? If its helpful I can go through and correct as many as I can and hand the file over. Let me know.
P.S. While I was testing I found out that there is some kind of "effect type" you can change as well. I was able to make Minor Shielding look like the particle structure of Lightning Strike, Calefacation, and E-Bolt but using the shielding particles. I have a suspicion that there may be a different part of these effects that can be edited to change the effect "type" into something else. Essentially, I think the type might be wrong and the direction is just a side effect and I just treated the symptom rather than the cause of this issue.
Furinex
04-28-2013, 07:25 AM
Omg, i cant say more than this right now because my wife is glaring at me to get off the computer but... I FREAKING LOVE YOU. What do I have to do to get this on my client.
Furinex
04-28-2013, 09:38 AM
Well... I gave this a shot just for that one entry and what do you know, you really are the MAN!!!!!!!!!!! This worked GREAT!!!! Now, is everything in this file an entry for a specific type of spells or is there other crap in here? I feel like changing all these values right now but Im sure I'm gonna mess something up. trying more stuff now :)
Furinex
04-28-2013, 11:25 AM
After some more testing.... I couldn't replicate this for healing spells. Ill grab the spot I was looking at and screenshot it here in a few. I'm mobile right now.
Furinex
04-28-2013, 12:44 PM
ok im home and honestly i cant even find where I was in the file again, but the only effect i was able to do this with was the aegolism one. how can I identify the line that needs changing for other spell effects?
azxten
04-28-2013, 01:02 PM
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.
a_gnoll_pup
04-28-2013, 01:53 PM
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!
Furinex
04-28-2013, 02:49 PM
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
a_gnoll_pup
04-28-2013, 03:20 PM
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.
Furinex
04-28-2013, 03:32 PM
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.
azxten
04-28-2013, 08:00 PM
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.
Furinex
04-28-2013, 08:06 PM
If you find the offset for healing, let me know, thats the one that pisses me off the most hahaha
azxten
04-28-2013, 10:14 PM
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.
http://i.imgur.com/TvKI5U4.png
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.
http://i.imgur.com/zrVwkHT.png
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?
Furinex
04-28-2013, 10:38 PM
Well, I can tell you that the Fire based mage DS doesnt go up, but it doesnt come out either, its static, to the hands.
SOW and STR buffs, feel like a cat line of spells
EDIT: Something I noticed. I know you were talking about velocity earlier. Im not a total newb.... but... I fixed the aegolism buff for all 3 versions (Green, orange, blue) and watched a few people cast a spell. This worked great, however, I noticed that the blue particles are not showing. And I thought about this for a moment, and i remembered, its because the blue particles, in classic, were "Heavier", and fell to the ground faster, or had less velocity. Just a thought.
azxten
04-28-2013, 10:47 PM
Well, I can tell you that the Fire based mage DS doesnt go up, but it doesnt come out either, its static, to the hands.
EDIT: Something I noticed. I know you were talking about velocity earlier. Im not a total newb.... but... I fixed the aegolism buff for all 3 versions (Green, orange, blue) and watched a few people cast a spell. This worked great, however, I noticed that the blue particles are not showing. And I thought about this for a moment, and i remembered, its because the blue particles, in classic, were "Heavier", and fell to the ground faster, or had less velocity. Just a thought.
Ok, I was able to recreate a "glowing hands" effect when I was testing before. I was also able to make particles "fall" as if due to gravity by changing another value.
I was also able to make the shielding spell release a group of about 1,000 particles that floated up into the air together and then "exploded" like a firework. I doubt thats as useful though. :)
I'm going to make a Server Chat thread for more feedback.
Furinex
04-28-2013, 10:57 PM
This is all really great work, I do agree that we need to compile a list of spell effects that are unique.
Furinex
04-29-2013, 11:18 AM
So... Something interesting. I took your healing spell offset and fucked it up. Ended up changing the line above it but what happened was.. It casted and it looked like it was casting 100x in one cast. I lagged. With a gtx 690. Funny... We could prolly do some cool stuff with this.
a_gnoll_pup
04-29-2013, 02:07 PM
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.
Bamzal Sherbet
04-29-2013, 06:13 PM
big things in here
azxten
04-29-2013, 07:06 PM
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.
Thanks for the info, I'll look into it.
Telin
04-30-2013, 12:09 AM
I was wondering if you guys could figure out the classic particles (without spellsnew files). Since this would be more classic, but maybe more difficult since the coding must be more embedded.
Telin
04-30-2013, 12:20 AM
I wanted to add an interesting observation I made with spell effects on Eqmac. Having the non-classic particle effects active (post-luclin) with spellsnew files, one of the Druid magic-based DoT spells (drifting death I believe) actually used the old spell particles, while all the other ones used the new ones as they're supposed to be.
This leads me to believe it is possible to keep the spellsnew files in place and somehow have spells use the older classic particles. This also happened during a MGB with the HP/AC or NPC_aegolism spell line. One of the spells used the older particles. I wasn't able to narrow down which one it was though.
Bamzal Sherbet
04-30-2013, 01:06 AM
ya wtf keep shit classic
Nirgon
04-30-2013, 11:52 AM
The Lord of Light holds all answers
Furinex
04-30-2013, 12:59 PM
The Lord of Light holds all answers
Care to elaborate? Been sitting here trying to figure out what you're talking about... its driving me nuts.
nilbog
04-30-2013, 01:08 PM
For the night is dark and full of terrors.
http://oyster.ignimgs.com/mediawiki/apis.ign.com/game-of-thrones/6/60/Melisandre.jpg
Furinex
04-30-2013, 01:21 PM
Game of Thrones, Gotcha.
Furinex
05-04-2013, 12:46 PM
New Spells File (http://www.project1999.org/forums/showpost.php?p=944799&postcount=46) has been placed in the thread in the server chat forum. This is a alpha build of the new spell file. Please post feedback in that thread.
maximum
07-21-2013, 06:43 PM
Bump for feedback on the Alpha test.
Furinex
07-22-2013, 07:13 AM
http://www.project1999.org/forums/showthread.php?t=107787&page=7
Official sticky for this.
maximum
04-26-2015, 10:11 AM
http://www.project1999.org/forums/showthread.php?t=107787&page=7
Official sticky for this.
Link was broken by the .ORG/.COM switchover, so I fixed it:
http://www.project1999.com/forums/showthread.php?t=107787
Telin
04-26-2015, 12:05 PM
This is linked in tech forum as well. This thread can be resolved.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.