Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Server Code Submissions

Reply
 
Thread Tools Display Modes
  #1  
Old 07-14-2014, 01:18 PM
noudess
Discordant
 
Join Date: Sep 2012
Location: Upstate NY
Posts: 274
Default Blind effect

I noticed that spells like flash of light and eye of confusion's Blindness effect was basically doing nothing.

From my memories of EQ, I recall that using these spells would get the mob to wander aimlessly as long as noone was in combat range. I played with the code for awhile and used some of the fear code, but tweaked target and when it was used. This seems to work ok. I was worried about making these blind spells too powerful, but since the mob attacks again if you get in range, its far less useful than fear. The mobs will also switch to anyone in range after you blind it and move out of range.

Let me know what you think. My code is deverged from the base for over a year, but I think these spots are very close still.

Code:
=== modified file 'zone/MobAI.cpp'
--- zone/MobAI.cpp	2014-07-09 13:07:28 +0000
+++ zone/MobAI.cpp	2014-07-14 16:38:13 +0000
@@ -1013,7 +1013,7 @@
 	// Begin: Additions for Wiz Fear Code
 	//
 	if(RuleB(Combat, EnableFearPathing)){
-		if(curfp) {
+		if(curfp || (is_blind && !CombatRange(hate_list.GetClosest(this)))) {
 			if(IsRooted()) {
 				//make sure everybody knows were not moving, for appearance sake
 				if(IsMoving())
@@ -1062,7 +1062,7 @@
 	if (engaged) 
 	{
 		_ZP(Mob_AI_Process_engaged);
-		if (IsRooted())
+		if (IsRooted() || is_blind)
 			SetTarget(hate_list.GetClosest(this));
 		else
 		{
@@ -1111,7 +1111,7 @@
 		{
 			StartEnrage();
 		}
-		
+			
 		bool is_combat_range = CombatRange(target);
 		
         if (is_combat_range) 

=== modified file 'zone/fearpath.cpp'
--- zone/fearpath.cpp	2013-08-27 14:08:21 +0000
+++ zone/fearpath.cpp	2014-07-14 16:49:08 +0000
@@ -130,7 +130,7 @@
 {
 float speed = GetRunspeed();
 
-if(flee_mode)
+if(flee_mode || is_blind)
 	{
 	//we know ratio < FLEE_HP_RATIO
 	float ratio = GetHPRatio();
@@ -148,6 +148,13 @@
 
 		ratio = (ratio/100);
 		speed = 2.5*(speed * ratio);
+
+		// A blinded mob should be pretty slow when running amuck.
+		if (is_blind)
+			{
+			speed = speed/4.0;
+			mlog(PATHING__DEBUG, "Reducing Speed on Blinded mob to %f.\n", speed);
+			}
 		}
 	}
 

=== modified file 'zone/mob.cpp'
--- zone/mob.cpp	2013-07-09 15:28:09 +0000
+++ zone/mob.cpp	2014-07-14 14:42:38 +0000
@@ -136,6 +136,7 @@
 	fear_walkto_y = -999999;
 	fear_walkto_z = -999999;
 	curfp = false;
+	is_blind = false;
 
 	AI_Init();
 	SetMoving(false);

=== modified file 'zone/mob.h'
--- zone/mob.h	2013-07-09 15:28:09 +0000
+++ zone/mob.h	2014-07-14 14:42:11 +0000
@@ -1529,6 +1529,7 @@
 	float fear_walkto_y;
 	float fear_walkto_z;
 	bool curfp;
+	bool is_blind;
 
 	// Pathing
 	//

=== modified file 'zone/spell_effects.cpp'
--- zone/spell_effects.cpp	2013-07-09 15:28:09 +0000
+++ zone/spell_effects.cpp	2014-07-14 14:49:10 +0000
@@ -1207,8 +1207,8 @@
 #endif
 				if (spells[spell_id].base[i] == 1)
 					BuffFadeByEffect(SE_Blind);
-				// solar: handled by client
-				// TODO: blind flag?
+				// solar: handled by client for PC victim
+				is_blind = true;	
 				break;
 			}
 
@@ -3586,6 +3586,9 @@
 				break;
 			}
 
+			case SE_Blind:
+				is_blind = false;
+				break;
 			case SE_Fear:
 			{
 				if(RuleB(Combat, EnableFearPathing)){
Reply With Quote
  #2  
Old 07-29-2014, 09:57 AM
noudess
Discordant
 
Join Date: Sep 2012
Location: Upstate NY
Posts: 274
Default

This is working well on my server.
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 02:31 PM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3