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

Development: Custom Code This is for code thatdoes not emulate live and wont be added to the official code.

Reply
 
Thread Tools Display Modes
  #1  
Old 12-27-2010, 03:48 AM
erik_llewellyn
Sarnak
 
Join Date: Dec 2006
Posts: 98
Default UF Client not displaying buffs correctly in Character Info window

I am posting this here because it this is more of a world/db interaction with UF client I think trying to use my custom spells. Feel free to move it to any other area if you feel it belongs somewhere else.

So I have been working on allowing any class (provided they have mana and use my spell_us.txt file) to cast any spell starting at lvl 1 as long as they can get the scroll to mem. I have modified the spell_us.txt file and spells_new table in the db to reflect all spells for all caster classes being available at lvl 1. I have also removed all the spell merchants except for those in the tutorial and started writing quests that the same spell merchs will now hand out. Before I got too carried away with writing the spell merch quests I tested a few, memed the scroll, then cast the spell (conviction). I noticed that in my char info window the spell only boosted my hps for 1 tick and then the char info window dropped my stats back to pre-buffed. The icon displays in my buff bar still and even has the correct timer counting down, just doesn't show as in effect in the char info window. However when I do a #showstats that my hps/ac are indeed still effected by the buff. I also noticed that if I zone, my char info window will update to the buffed values for hps/ac until I recast the spell and then it will repeat the above issue.

I only have 2 clients I can test with at the moment: Titanium and UF from steam. The TI client shows the buff perfectly fine the entire time like one would expect, it's just the UF client that doesn't.

I conducted some more testing and found that if I set the classes2=70 as the base spell normally is, then the buff shows and lasts correctly inside the char info window. This leads me to think it has something to either do with the current UF buff reporting process to the client or the client has some kind of client-side only calculation it does in the char info window to determine HPs/AC and possibly other stats.

I guess my questions are:
1) does anyone know if the UF client do client-side calcs on buffs?
1a) if so, what is it?

2) what are the buff duration formulas ("buffdurationformula" field in the "spells_new" table)? I ask because it seems to be ignoring the "buffduration" field which is still set at 1500 (2.5hours).

eqemu_debug_zone.log after login stream identified with signature Underfoot_zone:

Unable to convert EQ opcode 0x4481
Unable to convert EQ opcode 0x184e
Unable to convert EQ opcode 0x5f80
Unable to convert EQ opcode 0x0fd3
Unable to convert EQ opcode 0x5e78
Unable to convert EQ opcode 0x2ef8
Unable to convert EQ opcode 0x495d
Unable to convert EQ opcode 0x4b3a
Unable to convert EQ opcode 0x64c0
Unable to convert EQ opcode 0x6124
[CLIENT__NET_ERR] Grakus: Unhandled incoming opcode: [OpCode OP_WeaponEquip2 (0x399b) Size=8]
[CLIENT__NET_ERR] Grakus: Unhandled incoming opcode: [OpCode OP_WeaponEquip1 (0x4572) Size=12]
Unable to convert EQ opcode 0x4315
[CLIENT__NET_ERR] Grakus: Unhandled incoming opcode: [OpCode OP_Unknown (0x4315) Size=0]
Unable to convert EQ opcode 0x7545
[CLIENT__NET_ERR] Grakus: Unhandled incoming opcode: [OpCode OP_Unknown (0x7545) Size=12]
Unable to convert EQ opcode 0x50c1
[CLIENT__NET_ERR] Grakus: Unhandled incoming opcode: [OpCode OP_Unknown (0x50c1) Size=8]
OP CastSpell: slot=5, spell=5257, target=55, inv=ffffffff
Unable to convert EQ opcode 0x4481
[CLIENT__NET_ERR] Grakus: Unhandled incoming opcode: [OpCode OP_Unknown (0x4481) Size=4]

SQL scripts ran:
update spell_new set classes2=1;
update spell_new set classes3=1;
update spell_new set classes4=1;
update spell_new set classes5=1;
update spell_new set classes6=1;
update spell_new set classes10=1;
update spell_new set classes11=1;
update spell_new set classes12=1;
update spell_new set classes13=1;
update spell_new set classes14=1;
update spell_new set classes15=1;
SELECT * FROM spells_new s;

I then export the "spells_new" table using the export_spells.pl script and copy it over to my client's folder.
Reply With Quote
  #2  
Old 12-27-2010, 04:54 AM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,743
Default

To see how base buff durations are calculated see the CalcBuffDuration_formula function in spells.cpp.
Reply With Quote
  #3  
Old 12-31-2010, 12:49 AM
erik_llewellyn
Sarnak
 
Join Date: Dec 2006
Posts: 98
Default

I have completed testing to discover the exact cause of this issue. If you turn on the "Character:SoDClientUseSoDHPManaEnd" in the "rule_values" table, then the UF client will NOT adjust for buffs until you zone in the inventory window. if you leave this value set to "false" then the UF client will show the buffs correctly BUT the HP/Mana/End calcs are all off and leaves you at 68% hps when "#heal" ed. The #showstats window also only reports the old titanium calc values for these as well.

As stated in my last post, this seems to be totally functional on PEQ so they must have some code that adjusted this or there is something that those of us basing our serveres on the PEQ and EQEmu SVNs are missing.
Reply With Quote
  #4  
Old 12-31-2010, 12:52 AM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default

when i use UF on peq and buff, it shoots my hp up correctly, but then immediately goes back down to reg hp until i zone. then it goes back up to buffed value.
Reply With Quote
  #5  
Old 12-31-2010, 01:27 AM
erik_llewellyn
Sarnak
 
Join Date: Dec 2006
Posts: 98
Default

humm...conducted even more testing and you seem to be partially correct, but gave me the chance to do more in depth testing on peq.

On PEQ spells cast for the first time on me when I did NOT have the buff already on prior to zoning or logging on would drop after 1 tick.

If I cast the buff again or had it on me prior to zone/logon, then the buff woudl stick and continue to be displayed in the inventory screen as it should.

This was also repeatable on my own personnal server with the exact same resaults, and does NOT seem to be just an issue with my server or those based on the PEQ db but even includes the PEQ server.
Reply With Quote
  #6  
Old 12-31-2010, 03:58 AM
erik_llewellyn
Sarnak
 
Join Date: Dec 2006
Posts: 98
Default

Update to the issue!

I have conducted yet more testing and found that ANY item that extends buff duration is what is causing the effects to drop form the inventory window after one tick no matter how many times you cast it.

This also seems to apply to AA's that extend buff duration as well.
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 02:49 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3