Difference for server/attack.c from version 1.89 to 1.90


version 1.89 version 1.90
Line 1
 
Line 1
 /*  /*
  * static char *rcsid_attack_c =   * static char *rcsid_attack_c =
  *   "$Id: attack.c,v 1.89 2003/06/26 11:27:43 gros Exp $";   *   "$Id: attack.c,v 1.90 2003/08/27 00:00:46 temitchell Exp $";
  */   */
 /*  /*
     CrossFire, A Multiplayer game for X-windows      CrossFire, A Multiplayer game for X-windows
Line 1574
 
Line 1574
     return maxdam;      return maxdam;
 }  }
   
   /* Find out if this is friendly fire (PVP and attacker is peaceful) or not
    *  Returns 0 this is not friendly fire
    */
   
   int friendly_fire(object *op, object *hitter){
    object *owner;
    int friendlyfire;
   
    if (hitter->head) hitter=hitter->head;
   
    friendlyfire = 0;
   
    if(op->type == PLAYER){
   
    if(hitter->type == PLAYER && hitter->contr->peaceful == 1)
    return 1;
       
    if(owner = get_owner(hitter)){
    if(owner->type == PLAYER && owner->contr->peaceful == 1)
    friendlyfire = 2;
    }
   
    if(hitter->type == CONE || hitter->type == FBALL  || hitter->type == FIREWALL
    || hitter->type == SWARM_SPELL || hitter->type == POISONCLOUD
    || hitter->type == POISONING || hitter->type == DISEASE || hitter->type == RUNE)
   
    friendlyfire = 0;
       }
   
    return friendlyfire;
   }
   
   
 /* This isn't used just for players, but in fact most objects.  /* This isn't used just for players, but in fact most objects.
  * op is the object to be hit, dam is the amount of damage, hitter   * op is the object to be hit, dam is the amount of damage, hitter
  * is what is hitting the object, and type is the attacktype.   * is what is hitting the object, and type is the attacktype.
Line 1591
 
Line 1624
     int simple_attack;      int simple_attack;
     tag_t op_tag, hitter_tag;      tag_t op_tag, hitter_tag;
     int rtn_kill = 0;      int rtn_kill = 0;
    int friendlyfire;
   
     if (get_attack_mode (&op, &hitter, &simple_attack))      if (get_attack_mode (&op, &hitter, &simple_attack))
         return 0;          return 0;
Line 1702
 
Line 1736
        maxdam = ndam;         maxdam = ndam;
        maxattacktype = 1<<attacknum;         maxattacktype = 1<<attacknum;
      }       }
   
    /* if this is friendly fire then do a set % of damage only*/
    friendlyfire = friendly_fire(op, hitter);
    if (friendlyfire){
   
    maxdam = ((dam * settings.set_friendly_fire) / 100)+1;
   
    #ifdef ATTACK_DEBUG
    LOG(llevDebug,"Friendly fire (type:%d setting: %d%) did %d damage dropped to %d\n",
    friendlyfire, settings.set_friendly_fire, dam, maxdam);
    #endif
    }
  }   }
     }      }
   
Line 2121
 
Line 2167
     return 1;      return 1;
   return 0;    return 0;
 }   }
   


Legend:
line(s) removed in v.1.89 
line(s) changed
 line(s) added in v.1.90

File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:24