Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 10-17-2008, 12:23 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default Damage Shield Messages - Discussion

I've been looking at getting the client to display the correct messages when a mob/player with a DS on is hit.

I know how to get the messages displayed. Just send an OP_Damage with a type of:

Code:
0xF7         (You are tormented - produced by banshee aura)
0xF8         (Burnt)
0xF9         (Pierced by thorns)
etc.
I've been looking at the spdat.h entries, and I can't see any fields in there which determine the type of damage shield (thorns, fire, etc.), so I thought I'd post here in case any of the experts in looking at spdat could see anything that I can't which could be used to determine what type of damage shield message should be produced.

I could always add a new table, damageshieldtype, with a spellid and type column. If there is no entry for a spell, things would behave as they do now, else an OP_Damage would be sent with the type from this new table.
Reply With Quote
  #2  
Old 10-17-2008, 01:03 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Resist type sir. Cold = 0xF7, Fire = 0xF8, Magic = 0xF9.
Reply With Quote
  #3  
Old 10-17-2008, 02:13 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

I think one problem we might run into is that DS are cumulative overall, and only the last spell is used for the effect. I think what might need to happen is to create a counter for each resist (if that would work for all cases), then we shouldn't really even need to look at the spells again to get the resist. I'm not sure if it would be better to just change DamageShield in the Mob class to a DamageShield_Struct, or just add each of them.

Pseudo code:
iterating through spells & whatnot
if resist == magic, + magicDS
if resist == poison, + poisonDS
etc...
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #4  
Old 10-17-2008, 02:19 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Thanks!

I downloaded the data from Lucy and extracted all the spells with a type 59 (DS) component and sorted by 'Resist'. There are 134 spells which are Unresistable which from their descriptions seem to be mixture of fire shields, bramble shields, etc, so the resist type doesn't seem to be a definitive way to determine which message to put out :(
Reply With Quote
  #5  
Old 10-17-2008, 04:31 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

You'll just have to pick a shield to send out, either first one in or last one out.

Could you throw some of the non-dispel ones at me, ids of one of each type would be great, the classes seem to all use traditional resists for the most part.
Reply With Quote
  #6  
Old 10-17-2008, 04:50 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Here is a random selection of the DS spells Lucy lists as 'Unresistable'. I have only included those that returned a result from #findspell to avoid spells from later expansions:

Spirit of the wood http://lucy.allakhazam.com/spellraw....77&source=Live
Malleable Ice http://lucy.allakhazam.com/spellraw.html?id=6558
Barbed Bones http://lucy.allakhazam.com/spellraw.html?id=932
Flickering Fire http://lucy.allakhazam.com/spellraw.html?id=5705
Kindle http://lucy.allakhazam.com/spell.html?id=4011
Aura of Vinitras http://lucy.allakhazam.com/spellraw.html?id=2926
Reply With Quote
  #7  
Old 10-17-2008, 06:00 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I'm guessing that if spell resist isn't unresistible then we know how that works. There's probably a special message or way they do it for unresistible trying to see if there's any other pattern.
Reply With Quote
  #8  
Old 10-17-2008, 06:33 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

To be honest I don't see much of a pattern past the resist type.

Perhaps your idea a simple table:

int32 spellid
int8 type

Could have defaults based on element type and if the table entry exists it overwrites. Default type for an unresistible with no table entry thorns I guess.
Reply With Quote
Reply


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 05:46 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3