Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CF: magic xp patch, part II




	I released this fix too late to make it into the present
	version. Again, I am not 100% sure that this is the 
	whole problem. But as I stated before, the current code
	is not right. Here's that patch again for common/object.c.

						-b.t.

*** object.c	Sun Apr 21 01:07:23 1996
--- object.c.orig	Tue Apr 30 02:24:22 1996
***************
*** 278,297 ****
  
    op->ownercount=owner->count;
    owner->refcount++;
  
  #ifdef ALLOW_SKILLS /* set the pointers in op to inherit owners skill, exp_obj */ 
!   if(owner->type==PLAYER&&owner->chosen_skill)
          op->chosen_skill = owner->chosen_skill;
!         if(op->chosen_skill&&owner->chosen_skill->exp_obj) 
!                 op->exp_obj = owner->chosen_skill->exp_obj;
  
  	/* unfortunately, we can't allow summoned monsters skill use
           * because we will need the chosen_skill field to pick the
           * right skill/stat modifiers for calc_skill_exp(). See
           * hit_player() in server/attack.c -b.t. */
!   else if(QUERY_FLAG(op,FLAG_READY_SKILL))
                 CLEAR_FLAG(op,FLAG_READY_SKILL);
  #endif
  }
  
  /*
--- 278,296 ----
  
    op->ownercount=owner->count;
    owner->refcount++;
  
  #ifdef ALLOW_SKILLS /* set the pointers in op to inherit owners skill, exp_obj */ 
!   if(owner->type==PLAYER&&owner->chosen_skill) { 
          op->chosen_skill = owner->chosen_skill;
!         op->exp_obj = owner->chosen_skill->exp_obj;
  
  	/* unfortunately, we can't allow summoned monsters skill use
           * because we will need the chosen_skill field to pick the
           * right skill/stat modifiers for calc_skill_exp(). See
           * hit_player() in server/attack.c -b.t. */
!   } else if(op->type!=PLAYER&&QUERY_FLAG(op,FLAG_READY_SKILL))
                 CLEAR_FLAG(op,FLAG_READY_SKILL);
  #endif
  }
  
  /*