|  |  | 
 
  |  |  |  |  
  |  |  |  |  
  |  |  |  |  
  |  |  |  |  
  |  | 
	
		
   
   
      | Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself. |  
	
	
		
	
	
	| 
			
			 
			
				07-27-2015, 09:19 AM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Mar 2012 
						Posts: 1,103
					      |  |  
	| 
				 Bard Swap problem 
 It seems the instruments are being checked per tick, not on the initial cast.
 Changes to bard spells:
 
 effectid1 from 334-0 (Possible culprit due to it being counted as a DD now?)
 
 
 Rule in rule_values to allow bards to damage moving mobs.
 
 Any recommendations?
 
				__________________"No, thanks, man. I don't want you fucking up my life, too."
 
 Skype:
 Comerian1
 |  
	
		
	
	
	| 
			
			 
			
				07-27-2015, 10:35 AM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Nov 2008 Location: GA 
						Posts: 905
					      |  |  
	| 
 You'd think anything with a duration would be counted as a DOT and take focus effects on the initial cast only. |  
	
		
	
	
	| 
			
			 
			
				07-27-2015, 10:36 AM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Apr 2008 Location: MA 
						Posts: 1,164
					      |  |  
	| 
 Update.
 ....
 |  
	
		
	
	
	| 
			
			 
			
				07-27-2015, 01:06 PM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Mar 2012 
						Posts: 1,103
					      |  |  
	| 
 Chrs
 It happens on clumsys too.
 
				__________________"No, thanks, man. I don't want you fucking up my life, too."
 
 Skype:
 Comerian1
 |  
	
		
	
	
	| 
			
			 
			
				07-27-2015, 01:34 PM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Nov 2008 Location: GA 
						Posts: 905
					      |  |  
	| 
 
	Quote: 
	
		| 
					Originally Posted by Maze_EQ  Chrs
 It happens on clumsys too.
 |  Never said it didn't...
 
We just swapped bard DoTs over to 0 yesterday so not like it's been a huge issue for us lol. |  
	
		
	
	
	| 
			
			 
			
				07-27-2015, 02:46 PM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Mar 2012 
						Posts: 1,103
					      |  |  
	| 
 Just letting you know lol. 
				__________________"No, thanks, man. I don't want you fucking up my life, too."
 
 Skype:
 Comerian1
 |  
	
		
	
	
	| 
			
			 
			
				07-28-2015, 03:16 PM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Nov 2008 Location: GA 
						Posts: 905
					      |  |  
	| 
 Anyone know a workaround for this?  Want bards to be able to aoe moving mobs, but also need instruments to work on the entire duration not just the ticks where the instrument is equipped. |  
	
		
	
	
	| 
			
			 
			
				07-28-2015, 05:44 PM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Apr 2008 Location: MA 
						Posts: 1,164
					      |  |  
	| 
 
	Quote: 
	
		| 
					Originally Posted by chrsschb  Anyone know a workaround for this?  Want bards to be able to aoe moving mobs, but also need instruments to work on the entire duration not just the ticks where the instrument is equipped. |  The instrument part should work already. |  
	
		
	
	
	| 
			
			 
			
				07-28-2015, 08:33 PM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Nov 2008 Location: GA 
						Posts: 905
					      |  |  
	| 
 
	Quote: 
	
		| 
					Originally Posted by demonstar55  The instrument part should work already. |  So what do I need to update to get it working? 
 
If I leave effectid1 at 334 instruments work but the dots doesn't hit moving mobs
 
If I switch effectid1 to 0 it hits moving mobs but instruments stop working. |  
	
		
	
	
	| 
			
			 
			
				07-28-2015, 09:36 PM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Apr 2008 Location: MA 
						Posts: 1,164
					      |  |  
	| 
 
	Code: RULE_BOOL(Spells, PreNerfBardAEDoT, false) //Allow bard AOE dots to damage targets when moving. Turn Spells:PreNerfBardAEDoT to true in your rules table. |  
	
		
	
	
	| 
			
			 
			
				07-28-2015, 09:53 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Jul 2012 Location: Oklahoma 
						Posts: 222
					      |  |  
	| 
 Cool to know...thanks! |  
	
		
	
	
	| 
			
			 
			
				07-29-2015, 09:16 AM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Nov 2008 Location: GA 
						Posts: 905
					      |  |  
	| 
 Don't have this rule in my rules table lol.  When was it added?  My database is from May. |  
	
		
	
	
	| 
			
			 
			
				07-29-2015, 09:33 AM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Mar 2012 
						Posts: 1,103
					      |  |  
	| 
 You have to add it manually. 
				__________________"No, thanks, man. I don't want you fucking up my life, too."
 
 Skype:
 Comerian1
 |  
	
		
	
	
	| 
			
			 
			
				07-29-2015, 10:08 AM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Nov 2008 Location: GA 
						Posts: 905
					      |  |  
	| 
 
	Quote: 
	
		| 
					Originally Posted by Maze_EQ  You have to add it manually. |  Aight, will test later. |  
	
		
	
	
 
  |  |  |  |  
	| 
			
			 
			
				07-29-2015, 01:25 PM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Jan 2002 
						Posts: 1,292
					      |  |  
	| 
				  
 Edit: guess eqemu current might use 'instrument_mod' in the buff struct, demonstar can enlighten us to the changes as all I saw was 'update' :P
The problem is the instrument calculation should be done and saved for the duration of the spell, not requiring the instrument each tic.  The instrument does not 'save' on the buff in eqemu code.
 
I have this on my server, but I am on a slightly older code base.  Pretty much you have to create an array in the buff structure for the bardMod value.
 
eg in Buffs_Struct 
	int		bardMod[EFFECT_COUNT];
 
the setting of the bardMod was handled in spell_effects.cpp Mob::CalcSpellEffectValue
 
	Code: int Mob::CalcSpellEffectValue(int16 spell_id, int buffID, int effect_id, int caster_level, Mob *caster, int ticsremaining)
{
	int formula, base, max, effect_value;
	if
		(
		!IsValidSpell(spell_id) ||
		effect_id < 0 ||
		effect_id >= EFFECT_COUNT
		)
		return 0;
	formula = spells[spell_id].formula[effect_id];
	base = spells[spell_id].base[effect_id];
	max = spells[spell_id].max[effect_id];
	if(IsBlankSpellEffect(spell_id, effect_id))
		return 0;
	effect_value = CalcSpellEffectValue_formula(formula, base, max, caster_level, spell_id, ticsremaining);
	if(caster && IsBardSong(spell_id) &&
		(spells[spell_id].effectid[effect_id] != SE_AttackSpeed) &&
		(spells[spell_id].effectid[effect_id] != SE_AttackSpeed2) &&
		(spells[spell_id].effectid[effect_id] != SE_AttackSpeed3) &&
		(spells[spell_id].effectid[effect_id] != SE_Lull) &&
		(spells[spell_id].effectid[effect_id] != SE_ChangeFrenzyRad) &&
		(spells[spell_id].effectid[effect_id] != SE_Harmony) //&& 
		// Kings & Bandits - EQEmu revision 1883 - The mana regen portion of bard songs is no longer affected by instrument mods.
		/*(spells[spell_id].effectid[effect_id] != SE_CurrentMana)*/) {
			int oval = effect_value;
			if ( buffID > -1 && buffID < BUFF_COUNT )
			{
				if ( buffs[buffID].bardMod[effect_id] == 0 )
				{
					int mod = caster->GetInstrumentMod(spell_id);
					effect_value = effect_value * mod / 10;
					mlog(SPELLS__BARDS, "Effect value %d altered with bard modifier of %d to yield %d with buffid %i", oval, mod, effect_value, buffID);
					buffs[buffID].bardMod[effect_id] = mod;
				}
				else
				{
					int mod = caster->GetInstrumentMod(spell_id);
					if ( mod > buffs[buffID].bardMod[effect_id] )
						buffs[buffID].bardMod[effect_id] = mod;
					effect_value = effect_value * buffs[buffID].bardMod[effect_id] / 10;
					mlog(SPELLS__BARDS, "Effect value altered %d with existing bard modifier of %d to yield %d with buffid %i", oval, buffs[buffID].bardMod[effect_id], effect_value, buffID);
				}
			}
			else
			{
					int mod = caster->GetInstrumentMod(spell_id);
					effect_value = effect_value * mod / 10;
					mlog(SPELLS__BARDS, "Effect value %d altered with bard modifier of %d to yield %d", oval, mod, effect_value);
			}
	}
	return(effect_value);
} in the initialize of the buffs you have to zero the array out of course..eg Client::InitializeBuffSlots in the for loop add
 
		for(int i=0;i<EFFECT_COUNT;i++) 
			buffs[x].bardMod[i] = 0;
 
there are probably multiple other places where we 'nullify' out buffs as well that varies on the code base (current/past). 
				__________________www.eq2emu.com 
EQ2Emu Co-Founder / EQ2Emu Developer 
EQEMu Co-Founder / Former EQEMu Developer / GuildWars / Zek Seasons Servers
			 |  
 
  |  |  |  |  
	
		
	
	
	
	
	| 
	|  Posting Rules |  
	| 
		
		You may not post new threads You may not post replies You may not post attachments You may not edit your posts 
 HTML code is Off 
 |  |  |  All times are GMT -4. The time now is 04:41 AM.
 
 |  |  
    |  |  |  |  
    |  |  |  |  
     |  |  |  |  
 |  |