Thread: Rune spells
View Single Post
  #1  
Old 11-24-2002, 02:35 AM
Wiz
Dragon
 
Join Date: Feb 2002
Posts: 583
Default Rune spells

This is a really simple code structure.

First, put:
Code:
	
                int16	rune;
	void	SetRune(int16 amount) {rune = amount;}
	int16	GetRune() {return rune;}
into mob.h

Then:
Code:
	rune = 0;
into Mob::Mob in mob.cpp

Then, put this into ChangeHP() in attack.cpp:
Code:
	int16 ramt = GetRune();
	if (ramt > 0 && amount < 0)
	{
		if (amount + ramt <= 0)
		{
			amount += ramt;
                       ramt = 0;
		}
		else
		{
			ramt += amount;
			amount = 0;
		}
		if (ramt == 0)
			this->BuffFadeByEffect(SE_Rune);
		SetRune(ramt);
	}
And this under both Damage functions in attack.cpp:
Code:
	int16 ramt = GetRune();
	if (ramt > 0 && damage > 0)
	{
		if (damage > ramt)
		{
			damage -= ramt;
                        ramt = 0;
		}
		else
		{
			ramt -= damage;
			damage = -6;
		}
		if (ramt == 0)
			this->BuffFadeByEffect(SE_Rune);
		SetRune(ramt);
	}
Finally, this under SE_Rune in spells.cpp:
Code:
SetRune(CalcSpellValue(spells[spell_id].formula[i], spells[spell_id].base[i], spells[spell_id].max[i], caster_level));
And you're done!
Reply With Quote