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.

Reply
 
Thread Tools Display Modes
  #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
  #2  
Old 01-18-2004, 03:48 AM
Ephezian
Fire Beetle
 
Join Date: Dec 2003
Posts: 18
Default

Where does this fix go?

Ephezian
Reply With Quote
  #3  
Old 01-18-2004, 05:37 AM
var1ety
Sarnak
 
Join Date: Jan 2003
Posts: 59
Default

Variety of files - zone/spells.cpp, i think there is some in client_process.cpp, maybe a handful of others. You can apply the patch with unix's patch(1) utility, I'm unsure of what method windows people use. You can go through the patch manually, take out in the original file that has a - next to it, and add anything that has a plus, but I'd try to find a Windows patch program.
Reply With Quote
  #4  
Old 01-26-2004, 01:24 PM
kathgar
Discordant
 
Join Date: May 2002
Posts: 434
Default

You can only have instruments in your primary and secondary to begin with? (And use them ofcourse) this code /might/ have gotten in without proper testing.. i'll need to look but i'm noticing instruments disappear when you use a song that would use them? even if in invenotyr, bumping until I look at it
__________________
++[>++++++<-]>[<++++++>-]<.>++++[>+++++<-]>[<
+++++>-]<+.+++++++..+++.>>+++++[<++++++>-]<+
+.<<+++++++++++++++.>.+++.------.--------.>+.
Reply With Quote
  #5  
Old 01-26-2004, 01:39 PM
var1ety
Sarnak
 
Join Date: Jan 2003
Posts: 59
Default

There are various pieces of equipment that have bard song modifiers, so it isn't sufficient to only check primary and secondary slots for instruments. Additionally, instruments (or items with instrument effects), must be equipped, it isn't sufficient to have them in your inventory.

I never had any problems with components disappearing, since the Bard check doesn't actually decrement anything.
Reply With Quote
  #6  
Old 01-28-2004, 01:55 AM
diolas
Fire Beetle
 
Join Date: Jan 2004
Posts: 27
Default Bard Update

Will this code be included in the next version?
Reply With Quote
Reply

Thread Tools
Display Modes

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:43 AM.


 

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