DST_MASTRY_FIRE problem.

12/11/2015 13:26 raventh1984#1
Hi Elitepvpers,

I have an question about an skill that I want to change.
Its SA_FIREBIRD_L01 I have added DST_MASTRY_FIRE 10 to it.
So that the skill will have an increase of 10% fire damage.

However even if I add 500% its not working.
So I have checked the source
Snippet
int CMover::GetMagicSkillPower( ATTACK_INFO* pInfo )

There it will be calculated how much damage it will do with the DST_MASTRY_FIRE.

So far no luck if I do /sro 17 500 then its working like it should be.

So it can be that its releated to GetParam() function
12/11/2015 18:00 Mognakor#2
DST_MASTRY_FIRE is used for selfbuffs. The effect of a targeted spell is applied to the target.

What you are looking for is one of those debuffs used by the lvl 30 mage spells.
12/11/2015 20:01 raventh1984#3
The problem with flyff is it only has 2 systems for the spells.

1. Self targeting
2. Other target.

So I need to write an entire code just so that when an caster is casting an fire spell that has an 10% increase in fire it will do the 10% increase in attack without adding and 10% awakening to the weapon or to use an other skill to increase the fire damage like DST_MASTRY_FIRE.

Edit:
I have added DST_RESIST_FIRE and tested it but the first time I hit the npc damage is the same as without it. But the 2nd 3rd etc the damage output will go higher and higher.

So that is something I also don't want.

I hope I make some sence about what I want.
12/12/2015 00:57 Mognakor#4
You want a spell to deal more damage? Simply increase the scaling. DST_MASTRY_FIRE has no interaction with the element the target has, it only interacts with the spell.
12/12/2015 08:46 raventh1984#5
Yeah I know I can increase the spell but I want something like Daiblo has.

So its scaling the damage with the weapon.

Let say Firebird does 193% Weapon damage as Fire.
Electric Shoc does 150% Weapon damage as Electric

Something in those lines.


EDIT:
Problem solved.
I put the DST_MASTRY_FIRE inside PropSkill at Row dwProbability I changed it to the correct row.
And added this snippet inside int CMover::GetMagicSkillPower( ATTACK_INFO* pInfo )
Code:
case ST_FIRE:
		if(pSkillProp->dwDestParam1 == DST_MASTRY_FIRE)
		{
			if( pSkillProp->nAdjParamVal1 != NULL_ID )
			{
				fRatio = pSkillProp->nAdjParamVal1 / 100.0f;
				nATK = (int)(nATK + (nATK * fRatio));
			}
		}
		else
		{
			fRatio	= GetParam( DST_MASTRY_FIRE, 0 ) / 100.0f;
			nATK	= (int)( nATK + (nATK * fRatio) );
		}
		break;
So now the DST_MASTRY_FIRE is working like I would it to be.