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

Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 01-16-2004, 07:10 PM
var1ety
Sarnak
 
Join Date: Jan 2003
Posts: 59
Default Bard fixes (against Shawn319's cvs)

Patches are against Shawn319's CVS from January 12th, 2004.

Line numbers might not match exactly, since I had applied the FreeBSD
patch first, but patch(1) should be able to sort things out..

Patch is at http://cobblering.kicks-ass.net/~tim...s/bard.diff.gz


Summary of Bard fixes:

-Fixed/worked around Bard song refreshing problems.

Details:

Bard songs used to drop before refreshing. This rendered songs such as
invisibility that relied on a continuous duration useless for any amount of
time greater than 18 seconds, as when they refreshed they would drop before
coming back up, leaving you open to aggro.

The cause of this problem (bug?) is that when a buff is cast the pre-existing
buff (at least) is faded, causing you to temporarily lose the effect before
it is reapplied.

I added a workaround to Mob::SpellEffect for Bards only that says if we are
refreshing a buff only extend the timer and refresh the spell level, do not
fade it first. Note, this change is only applied to Bard songs, so other
casters shouldn't notice.

================================================== ===========================

-Fixed Bard songs not stopping when required instrument was not being
used, or when there was insufficient mana to continue singing.

Details:

Bards could begin singing a song that required an instrument, and as soon as it
was going remove their instrument, and the song would never turn off, so long
as they didn't stop it on their own.

Similarly, a Bard could start a song that required mana (such as level 43 AE DD
Denon's Desperate Dirge), and it would continue to refresh whether or not
the Bard had enough mana.

To fix this I changed it so that songs that are refreshing go through
Mob::CastedSpellFinished() instead of Mob::SpellFinished().

Mob::CastedSpellFinished() contains a sequence of statements during the
reagent check phase that will ensure a Bard has enough mana to continue singing,
and is still using the appropriate instrument, if either of these are
relevant.

Additionally, I moved stuff around so that the only Bardic reagent check is made
during Mob::CastedSpellFinished(). Other caster reagent checks were not changed.

================================================== ===========================

-Bard songs will now detect when an instrument is required and actually
check to see if you are using it.

Details:

Added a new function, Client::UsingInstrument(), which accepts as a parameter
an item number. This number is designed to come from the reagent or focusitem
fields of a spell. It returns true or false, based on whether you have an
item equipped that satisfies the spell being queried. This is utilized in
Mob::CastedSpellFinished() - see previous note.

I added a commented for loop to Client::UsingInstrument() that would cut
down drastically on search time when a bard has an instrument equipped in
his primary or secondary hand, by checking those slots first. However, I left
it commented for the devs to evaluate.

================================================== ===========================

Outstanding Bard bugs:

- When a song is interrupted using InterruptSpell the casting bar stays gray.
This seems to happen with regular casters as well, so it's not Bard specific.

- Group songs may or may not be working, I have not had time to check one
way or the other.

- Bardic instruments do not lend their modifiers to spells yet - maybe in a few
more days.

- I've encountered sporadic problems regarding PB AE detrimental songs, I
have not had time to see if these are still malfunctioning.
Reply With Quote
 


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 01:56 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