#define CODES(x, y, z) __add_codes(attacker, victim, area, x, y, z) #define FMSG(x, y) __fightmsg(attacker, victim, area, x, y) #define GMSG(x) __generalmsg(attacker, victim, area, x) /* default type ofr a slain message */ #define SLAIN DEST_ALL, MODE_NSFLAG | MS(SFL_NOSLAIN), pvis (victim), \ LVL_MAX, attacker, victim #define WIZSLAIN DEST_ALL, MODE_NSFLAG | MS(SFL_NOSLAIN), \ max(LVL_WIZARD, pvis(mynum)), LVL_MAX, attacker, victim #define ATTACKER 0 #define VICTIM 1 #define OTHER 2 /* Temporary solution: multiply all Armor values by this number */ #define ARMOR_MULT 4 /* Time it takes to crawl around; 10 = 1 sec */ #define CRAWL_SECS 10 /* this is for a standard fist-hit: */ #define BASE_DAM 8 /* the maximum damage of any weapon: */ #define MAX_DAM 50 #define POTION_VAL 2000 /* chance to hit various parts */ #define HEAD_CHANCE 10 #define RARM_CHANCE 10 #define LARM_CHANCE 10 #define RLEG_CHANCE 10 #define LLEG_CHANCE 10 #define RFOOT_CHANCE 5 #define LFOOT_CHANCE 5 #define RHAND_CHANCE 5 #define LHAND_CHANCE 5 #define CHEST_CHANCE 10 #define BACK_CHANCE 10 #define FACE_CHANCE 5 #define NECK_CHANCE 5 #define NUM_PARTS 13 /* a hit is absorbed by a piece of armor if: */ /* %Effective / %Rolled > Val */ #define ABSORB_VAL 2 /* a hit is also absorbed if the %Rolled is less than: */ /* PLAYERS AVG AC / AC_ABSORB_VAL */ #define AC_ABSORB_VAL 1 /* base chance to hit */ #define CTH_BASE 30 /* The starting number for vitality of players */ #define MAX_PLAYER_VITAL 100 /* Divide the mobile's max strength by this number to see what the */ /* vitality is for each part on the mobiles' body */ #define MOB_VITAL_DIVISOR 4 /* This is the minimum damage a weapon can do to still be able to cause */ /* a mortal hit.. ie, gives the death message */ #define MIN_FATAL_DAMAGE 20 #define MAX_FREE_LEVEL 5 #define COINS_PER_SEVERED_LIMB 20 #define SCORE_PER_SEVERED_LIMB 2000 #define IMM_DAMAGE 25 /* These are defaults for a human character, others may be set */ char *plr_head = "&+Rhead&N"; char *plr_right_arm = "&+mright arm&N"; char *plr_left_arm = "&+mleft arm&N"; char *plr_right_leg = "&+Gright leg&N"; char *plr_left_leg = "&+Gleft leg&N"; char *plr_right_foot = "&+yright foot&N"; char *plr_left_foot = "&+yleft foot&N"; char *plr_right_hand = "&+Bright hand&N"; char *plr_left_hand = "&+Bleft hand&N"; char *plr_chest = "&+Cchest&N"; char *plr_back = "&+gback&N"; char *plr_face = "&+rface&N"; char *plr_neck = "&+Yneck&N"; /* %b ... body part %w ... weapon %a ... attacker's name %e ... attacker's name : posessive %g ... gender of attacker : his/her %q ... gender of defender : he/she %d ... defender's name %p ... defender's name : posessive %r ... armor or body part %s ... add an 's' if attacker %S ... same but capital %t ... add an 's' if victim %T ... same but capital */ char *miss[] = { "%a swing%s %g %w at %p %b, missing entirely.", "%a lunge%s at %p %b but %q sidestep%t the blow.", "%d ward%t off a fierce attack!", "%d narrowly evade%t a vicous attack!", "%d parry%t %e bungled blow.", "%d dodge%t a mighty lunge!", "%a lunge%s at %d with %g %w, but %q parry%t the blow!", "%a run%s at %d with bright &+Rred&N eyes, but %q evade%t the attack.", "%a &+Yswing%s&N at %d with %g &+W%w&N, but %q sidestep%t %a!", "%a come%s charging at %d with the %w, but fail%s.", "%a come%s very close to hitting %d with %g %w.", "%a aim%s for %p %b but the attack fails.", "%a run%s at %p %b, but the attempt misses.", "%a swing%s %g %w at %p %b, but it it misses by an inch!", "%a ward%s off %p fierce attack to %r!", "%a lunge%s at %d with %g %w but does not contact!", "%a ferociously aim%s for %p %b but %g dodges the blow!", "%a &+Rgrowl%s&N, and run%s at %p %b, but the shot is deflected!" }; char *handmiss[] = { "%d evade%t %e weak punch.", "%a curl%s %g fist, charge%s at %p %b, and trip%s.", "%a attempt%s to headbutt %d but fall%s.", "%d easily parry%t a pathetic punch.", "%d narrowly dodge%t a blow to %p %b.", "%d luckily evade%t %e fierce hit to %r!" }; char *death[] = { "%a gutt%s %d with the %w!", "%a impale%s %d with %g %w!", "%a slice%s %d to bits with the %w! Oh, the humanity!!", "%a flay%s, tar%s and feather%s %d!", "%a hit%s %d with a fatal blow!" }; char *hit3[] = { "%a &+CTOTALLY MASSACRE%S&N %d with the %w!!!", "%a &+CUTTERLY DESTROY%S&N %d with the %w!!!", "%a &+CANNIALATE%S&N %d with %g %w!!!", "%a &+CBEAT%S&N %d with %g %w!!!", "%a &+CCUT%S&N %d up with %g %w!!!", "%a &+CTEAR%S&N %d up with a forceful hit!!!" }; char *hit2[] = { "%a deliver%s a good hit to %p %b.", "%a hit%s %p %b firmly with the &+Y%w.", "%a pierce%s %p %b with an average hit from the &+Y%w.", "%a hit%s %p %b hard with %e &+Y%w." }; char *hit1[] = { "%a hit%s %r weakly with the %w.", "%a barely hit%s %r with the %w.", "%a braise%s %p %b with the %w.", "%a hit%s %r very weakly with the %w.", "%a run%s at %r with the %w, but barely make%s contact." }; char *hit0[] = { "%a hit%s %d with %g %w, but it is absorbed by %r.", "%r absorbs %e blow from the %w.", "%a hit%s %d, but it is absorbed by %r." }; char *handhit3[] = { "%a hit%s %d with a powerful uppercut!", "%a drive%s forward, hitting %d forcefully with %g hand!", "%a deliver%s a mighty blow to %p %b!", "%d reel%t as %a jab%s %p %b!", "%d stagger%t as %a give%s a brutal punch!" }; char *handhit2[] = { "%a hit%s %d with %g hand.", "%a attack%s %p %b with %g hand.", "%a give%s %d a mediocre punch to the %b.", "%a throw%s an average punch to %p %b.", "%a connect%s with a decent cut to %p %b." }; char *handhit1[] = { "%a deliver%s a weak punch to %p %b.", "%a barely hit%s %p %b with %g bare hands.", "A bungled uppercut by %a barely braises %p %b.", "A weak jab by %a barely touches %p %b." }; char *handhit0[] = { "%a hit%s %d, but it's absorbed by %r.", "%a punch%s %p %b, but %r absorbs the blow.", "%a weakly hit%s %p %b, but there is no effect." }; extern char *exittxt[]; extern int exitnum[];