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

CF: spell level fixes IV



These fixes are already in the CVS tree.  All spell level bugs that I
know of have been fixed.  Please report if you still get any

  BUG: SK_level(arch xxx, name yyy) <= 0

messages in the server log file with these patches applied.

server/spell_effect.c: create_bomb():
Set level of created bomb because the splints are cast with that level.

Add spell_type parameter to create_bomb() - just a cosmetic fix for more
consistency.

arch/spell/*horn*.arc:
Add a level.  Most horns were casting spells without a level.

-- 
Jan
diff -rc orig/crossfire-0.95.5-patch11/include/sproto.h crossfire-0.95.5/include/sproto.h
*** orig/crossfire-0.95.5-patch11/include/sproto.h	Thu Apr 13 15:05:46 2000
--- crossfire-0.95.5/include/sproto.h	Wed Apr 19 12:53:20 2000
***************
*** 522,528 ****
  extern int cast_regenerate_spellpoints ( object *op );
  extern int cast_change_attr ( object *op, object *caster, int dir, int spell_type );
  extern int summon_pet ( object *op, int dir, SpellTypeFrom item );
! extern int create_bomb ( object *op, object *caster, int dir, char *name );
  extern void animate_bomb ( object *op );
  extern int fire_cancellation ( object *op, int dir, archetype *at, int magic );
  extern void move_cancellation ( object *op );
--- 522,528 ----
  extern int cast_regenerate_spellpoints ( object *op );
  extern int cast_change_attr ( object *op, object *caster, int dir, int spell_type );
  extern int summon_pet ( object *op, int dir, SpellTypeFrom item );
! extern int create_bomb ( object *op, object *caster, int dir, int spell_type, char *name );
  extern void animate_bomb ( object *op );
  extern int fire_cancellation ( object *op, int dir, archetype *at, int magic );
  extern void move_cancellation ( object *op );
diff -rc orig/crossfire-0.95.5-patch11/server/spell_effect.c crossfire-0.95.5/server/spell_effect.c
*** orig/crossfire-0.95.5-patch11/server/spell_effect.c	Thu Apr 13 03:23:54 2000
--- crossfire-0.95.5/server/spell_effect.c	Wed Apr 19 12:57:46 2000
***************
*** 1511,1517 ****
    return 1;
  }
  
! int create_bomb(object *op,object *caster,int dir,char *name) {
    object *tmp;
    int dx=op->x+freearr_x[dir],dy=op->y+freearr_y[dir];
    if(wall(op->map,dx,dy)) {
--- 1511,1517 ----
    return 1;
  }
  
! int create_bomb(object *op,object *caster,int dir,int spell_type,char *name) {
    object *tmp;
    int dx=op->x+freearr_x[dir],dy=op->y+freearr_y[dir];
    if(wall(op->map,dx,dy)) {
***************
*** 1521,1528 ****
    tmp=get_archetype(name);
  
    /*  level dependencies for bomb  */
!   tmp->stats.dam=SP_PARAMETERS[SP_BOMB].bdam + SP_level_dam_adjust(op,caster,SP_BOMB);
!   tmp->stats.hp=SP_PARAMETERS[SP_BOMB].bdur + SP_level_strength_adjust(op,caster,SP_BOMB);
  
    set_owner(tmp,op);
    tmp->x=dx,tmp->y=dy;
--- 1521,1529 ----
    tmp=get_archetype(name);
  
    /*  level dependencies for bomb  */
!   tmp->stats.dam=SP_PARAMETERS[spell_type].bdam + SP_level_dam_adjust(op,caster,spell_type);
!   tmp->stats.hp=SP_PARAMETERS[spell_type].bdur + SP_level_strength_adjust(op,caster,spell_type);
!   tmp->level = casting_level (caster, spell_type);
  
    set_owner(tmp,op);
    tmp->x=dx,tmp->y=dy;
diff -rc orig/crossfire-0.95.5-patch11/server/spell_util.c crossfire-0.95.5/server/spell_util.c
*** orig/crossfire-0.95.5-patch11/server/spell_util.c	Thu Apr 13 15:05:46 2000
--- crossfire-0.95.5/server/spell_util.c	Wed Apr 19 12:53:00 2000
***************
*** 415,421 ****
      success = fire_bolt(op,caster,dir,type,!ability);
      break;
    case SP_BOMB:
!     success = create_bomb(op,caster,dir,"bomb");
      break;
    case SP_GOLEM:
    case SP_FIRE_ELEM:
--- 415,421 ----
      success = fire_bolt(op,caster,dir,type,!ability);
      break;
    case SP_BOMB:
!     success = create_bomb(op,caster,dir,type,"bomb");
      break;
    case SP_GOLEM:
    case SP_FIRE_ELEM:
diff -rc ../../orig/crossfire-0.95.5-arch-patch2/spell/gu_horn.arc arch/spell/gu_horn.arc
*** ../../orig/crossfire-0.95.5-arch-patch2/spell/gu_horn.arc	Tue Sep 21 08:18:57 1999
--- arch/spell/gu_horn.arc	Wed Apr 19 12:41:39 2000
***************
*** 5,10 ****
--- 5,11 ----
  maxhp 130
  hp 100
  sp 126
+ level 1
  value 10000000
  anim
  gu_horn.111
diff -rc ../../orig/crossfire-0.95.5-arch-patch2/spell/horn.arc arch/spell/horn.arc
*** ../../orig/crossfire-0.95.5-arch-patch2/spell/horn.arc	Tue Sep 21 08:18:57 1999
--- arch/spell/horn.arc	Wed Apr 19 12:43:50 2000
***************
*** 5,10 ****
--- 5,11 ----
  color_bg khaki
  speed 0.1
  type 35
+ level 1
  value 5800
  weight 4500
  material 2
diff -rc ../../orig/crossfire-0.95.5-arch-patch2/spell/horn2.arc arch/spell/horn2.arc
*** ../../orig/crossfire-0.95.5-arch-patch2/spell/horn2.arc	Tue Sep 21 08:18:57 1999
--- arch/spell/horn2.arc	Wed Apr 19 12:44:14 2000
***************
*** 6,11 ****
--- 6,12 ----
  color_bg khaki
  speed 0.1
  type 35
+ level 1
  value 5900
  weight 4000
  material 2
diff -rc ../../orig/crossfire-0.95.5-arch-patch2/spell/horn3.arc arch/spell/horn3.arc
*** ../../orig/crossfire-0.95.5-arch-patch2/spell/horn3.arc	Tue Sep 21 08:18:57 1999
--- arch/spell/horn3.arc	Wed Apr 19 12:44:01 2000
***************
*** 6,11 ****
--- 6,12 ----
  color_bg khaki
  speed 0.1
  type 35
+ level 1
  value 5900
  weight 4000
  material 2