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 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
  #2  
Old 11-24-2002, 03:49 AM
neotokyo
Hill Giant
 
Join Date: Oct 2002
Posts: 118
Default

OMG this code has so many problems i cant even start to think about it

did you actually test this??
Reply With Quote
  #3  
Old 11-24-2002, 07:18 PM
Wiz
Dragon
 
Join Date: Feb 2002
Posts: 583
Default

Yes, it works fine. What problems do you refer to?
Reply With Quote
  #4  
Old 11-25-2002, 01:38 AM
neotokyo
Hill Giant
 
Join Date: Oct 2002
Posts: 118
Default

well ok, actually its just one thing

in case you dont have any special code for damage calculation that you didnt post, the rune buff icon will almost never fade when expired by hitting. except in the few cases where damage equals exactly the amount of rune hp left

the line should read
Code:
if (ramt <= 0)
    this->BuffFadeByEffect(SE_Rune);
i thought it was more, but obviously i was just confused
Reply With Quote
  #5  
Old 11-25-2002, 02:48 AM
DeletedUser
Fire Beetle
 
Join Date: Sep 2002
Posts: 0
Default

Does it properly say that the person absorbs the damage tho?
Reply With Quote
  #6  
Old 11-25-2002, 04:33 AM
Wiz
Dragon
 
Join Date: Feb 2002
Posts: 583
Default

Yeah, that's what damage = -6 is for. It says "Your magical skin absorbs the blow!"

And you're right neo. Fixing that. I actually just forgot a ramt = 0; when adapting the code.
Reply With Quote
Reply


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 11:09 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