Important, have a good look at this.. :) Chris Voutsis ---------- Forwarded message ---------- Date: Fri, 26 Jul 1996 22:46:58 +1000 From: System Adminisitrator <root@Linux.slip.cc.uq.oz.au> To: s337239@student.uq.edu.au /* ************************************************************************ * File: spells.h Part of CircleMUD * * Usage: header file: constants and fn prototypes for spell system * * * * All rights reserved. See license.doc for complete information. * * * * Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University * * CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991. * ************************************************************************ */ #define DEFAULT_STAFF_LVL 12 #define DEFAULT_WAND_LVL 12 #define CAST_UNDEFINED -1 #define CAST_SPELL 0 #define CAST_POTION 1 #define CAST_WAND 2 #define CAST_STAFF 3 #define CAST_SCROLL 4 #define MAG_DAMAGE (1 << 0) #define MAG_AFFECTS (1 << 1) #define MAG_UNAFFECTS (1 << 2) #define MAG_POINTS (1 << 3) #define MAG_ALTER_OBJS (1 << 4) #define MAG_GROUPS (1 << 5) #define MAG_MASSES (1 << 6) #define MAG_AREAS (1 << 7) #define MAG_SUMMONS (1 << 8) #define MAG_CREATIONS (1 << 9) #define MAG_MANUAL (1 << 10) #define TYPE_UNDEFINED -1 #define SPELL_RESERVED_DBC 0 /* SKILL NUMBER ZERO -- RESERVED */ /* PLAYER SPELLS -- Numbered from 1 to MAX_SPELLS */ #define SPELL_ARMOR 1 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_TELEPORT 2 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_BLESS 3 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_BLINDNESS 4 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_BURNING_HANDS 5 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CALL_LIGHTNING 6 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CHARM 7 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CHILL_TOUCH 8 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CLONE 9 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_COLOR_SPRAY 10 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CONTROL_WEATHER 11 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CREATE_FOOD 12 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CREATE_WATER 13 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CURE_BLIND 14 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CURE_CRITIC 15 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CURE_LIGHT 16 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_CURSE 17 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_DETECT_ALIGN 18 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_DETECT_INVIS 19 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_DETECT_MAGIC 20 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_DETECT_POISON 21 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_DISPEL_EVIL 22 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_EARTHQUAKE 23 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_ENCHANT_WEAPON 24 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_ENERGY_DRAIN 25 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_FIREBALL 26 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_HARM 27 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_HEAL 28 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_INVISIBLE 29 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_LIGHTNING_BOLT 30 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_LOCATE_OBJECT 31 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_MAGIC_MISSILE 32 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_POISON 33 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_PROT_FROM_EVIL 34 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_REMOVE_CURSE 35 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_SANCTUARY 36 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_SHOCKING_GRASP 37 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_SLEEP 38 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_STRENGTH 39 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_SUMMON 40 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_VENTRILOQUATE 41 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_WORD_OF_RECALL 42 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_REMOVE_POISON 43 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_SENSE_LIFE 44 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_ANIMATE_DEAD 45 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_DISPEL_GOOD 46 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_GROUP_ARMOR 47 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_GROUP_HEAL 48 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_GROUP_RECALL 49 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_INFRAVISION 50 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_WATERWALK 51 /* Reserved Skill[] DO NOT CHANGE */ #define SPELL_ICE_TO_FLESH 52 /* New spell.. anti FREEZE.. */ #define SPELL_STONE_TO_FLESH 53 /* New spell.. anti PETRIFY.. */ #define SPELL_ICE_STORM 54 /* New spell.. mass FREEZE */ #define SPELL_FIRE_STORM 55 /* New spell.. mass BURN */ /* Insert new spells here, up to MAX_SPELLS */ #define MAX_SPELLS 130 /* PLAYER SKILLS - Numbered from MAX_SPELLS+1 to MAX_SKILLS */ #define SKILL_BACKSTAB 131 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_BASH 132 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_HIDE 133 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_KICK 134 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_PICK_LOCK 135 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_PUNCH 136 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_RESCUE 137 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_SNEAK 138 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_STEAL 139 /* Reserved Skill[] DO NOT CHANGE */ #define SKILL_TRACK 140 /* Reserved Skill[] DO NOT CHANGE */ /* New skills may be added here up to MAX_SKILLS (200) */ #define SKILL_DUAL_WIELD 141 /* Dual wield */ #define SKILL_MULTI_ATTACK 142 /* Multi attacks */ #define TOP_SKILLS 180 #define SKILL_WP_DAGGER 181 #define SKILL_WP_SWORD_SHORT 182 #define SKILL_WP_SWORD_LONG 183 #define SKILL_WP_SWORD_TWOHANDED 184 #define SKILL_WP_BLUNT_ONEHANDED 185 #define SKILL_WP_BLUNT_TWOHANDED 186 #define SKILL_WP_CHAIN_ONEHANDED 187 #define SKILL_WP_CHAIN_TWOHANDED 188 /* Weapon Proficiencies */ #define SKILL_WP_AXE_ONEHANDED 189 #define SKILL_WP_AXE_TWOHANDED 190 #define SKILL_WP_WHIP 191 #define SKILL_WP_SPEAR 192 #define SKILL_WP_POLEARM 193 #define SKILL_WP_PROJECTILE 194 /* * NON-PLAYER AND OBJECT SPELLS AND SKILLS * The practice levels for the spells and skills below are _not_ recorded * in the playerfile; therefore, the intended use is for spells and skills * associated with objects (such as SPELL_IDENTIFY used with scrolls of * identify) or non-players (such as NPC-only spells). */ #define SPELL_IDENTIFY 201 #define SPELL_FIRE_BREATH 202 #define SPELL_GAS_BREATH 203 #define SPELL_FROST_BREATH 204 #define SPELL_ACID_BREATH 205 #define SPELL_LIGHTNING_BREATH 206 #define SPELL_PETRIFY 207 #define SPELL_PROTECTION_ICE 208 #define SPELL_PROTECTION_FIRE 209 #define SPELL_PROTECTION_PETRIFY 210 #define SPELL_PROTECTION_MAGIC 211 #define SPELL_SPELL_TURNING 212 #define TOP_SPELL_DEFINE 299 /* NEW NPC/OBJECT SPELLS can be inserted here up to 299 */ /* WEAPON CATEGORIES - NEW !! */ #define WEAPON_BAREHANDS 0 #define WEAPON_DAGGER 1 #define WEAPON_SWORD_SHORT 2 #define WEAPON_SWORD_LONG 3 #define WEAPON_SWORD_TWOHANDED 4 #define WEAPON_BLUNT_ONEHANDED 5 #define WEAPON_BLUNT_TWOHANDED 6 #define WEAPON_CHAIN_ONEHANDED 7 #define WEAPON_CHAIN_TWOHANDED 8 #define WEAPON_AXE_ONEHANDED 9 #define WEAPON_AXE_TWOHANDED 10 #define WEAPON_WHIP 11 #define WEAPON_SPEAR 12 #define WEAPON_POLEARM 13 #define WEAPON_PROJECTILE 14 /* WEAPON ATTACK TYPES */ #define TYPE_HIT 300 #define TYPE_STING 301 #define TYPE_WHIP 302 #define TYPE_SLASH 303 #define TYPE_BITE 304 #define TYPE_BLUDGEON 305 #define TYPE_CRUSH 306 #define TYPE_POUND 307 #define TYPE_CLAW 308 #define TYPE_MAUL 309 #define TYPE_THRASH 310 #define TYPE_PIERCE 311 #define TYPE_BLAST 312 #define TYPE_PUNCH 313 #define TYPE_STAB 314 /* new attack types can be added here - up to TYPE_SUFFERING */ #define TYPE_FIRE 397 #define TYPE_STARVING 398 #define TYPE_SUFFERING 399 #define SAVING_PARA 0 #define SAVING_ROD 1 #define SAVING_PETRI 2 #define SAVING_BREATH 3 #define SAVING_SPELL 4 #define TAR_IGNORE 1 #define TAR_CHAR_ROOM 2 #define TAR_CHAR_WORLD 4 #define TAR_FIGHT_SELF 8 #define TAR_FIGHT_VICT 16 #define TAR_SELF_ONLY 32 /* Only a check, use with i.e. TAR_CHAR_ROOM */ #define TAR_NOT_SELF 64 /* Only a check, use with i.e. TAR_CHAR_ROOM */ #define TAR_OBJ_INV 128 #define TAR_OBJ_ROOM 256 #define TAR_OBJ_WORLD 512 #define TAR_OBJ_EQUIP 1024 /* WARNING... change the redefinition of MAX_CLERIC_CIRCLES and MAX_MAGIC_CIRCLES in structs.h whenever you add more circles !!!!!!!! */ struct spell_info_type { byte min_position; /* Position for caster */ byte min_level[NUM_CLASSES]; byte cleric_circle; byte magic_circle; int routines; byte violent; sh_int targets; /* See below for use with TAR_XXX */ }; /* Possible Targets: bit 0 : IGNORE TARGET bit 1 : PC/NPC in room bit 2 : PC/NPC in world bit 3 : Object held bit 4 : Object in inventory bit 5 : Object in room bit 6 : Object in world bit 7 : If fighting, and no argument, select tar_char as self bit 8 : If fighting, and no argument, select tar_char as victim (fighting) bit 9 : If no argument, select self, if argument check that it IS self. */ #define SPELL_TYPE_SPELL 0 #define SPELL_TYPE_POTION 1 #define SPELL_TYPE_WAND 2 #define SPELL_TYPE_STAFF 3 #define SPELL_TYPE_SCROLL 4 /* Attacktypes with grammar */ struct attack_hit_type { char *singular; char *plural; }; #define ASPELL(spellname) \ void spellname(byte level, struct char_data *ch, \ struct char_data *victim, struct obj_data *obj) #define MANUAL_SPELL(spellname) spellname(level, caster, cvict, ovict); ASPELL(spell_create_water); ASPELL(spell_recall); ASPELL(spell_teleport); ASPELL(spell_summon); ASPELL(spell_locate_object); ASPELL(spell_charm); ASPELL(spell_information); ASPELL(spell_identify); ASPELL(spell_enchant_weapon); ASPELL(spell_detect_poison); ASPELL(spell_ice_to_flesh); ASPELL(spell_stone_to_flesh); ASPELL(spell_petrify); ASPELL(spell_fire_breath); ASPELL(spell_gas_breath); ASPELL(spell_frost_breath); ASPELL(spell_acid_breath); ASPELL(spell_lightning_breath); ASPELL(spell_ice_storm); ASPELL(spell_fire_storm); /* basic magic calling functions */ int find_skill_num(char *name); void mag_damage(int level, struct char_data *ch, struct char_data *victim, int spellnum, int savetype); void mag_affects(int level, struct char_data *ch, struct char_data *victim, int spellnum, int savetype); void mag_group_switch(int level, struct char_data *ch, struct char_data *tch, int spellnum, int savetype); void mag_groups(int level, struct char_data *ch, int spellnum, int savetype); void mag_masses(int level, struct char_data *ch, int spellnum, int savetype); void mag_areas(byte level, struct char_data *ch, int spellnum, int savetype); void mag_summons(int level, struct char_data *ch, struct obj_data *obj, int spellnum, int savetype); void mag_points(int level, struct char_data *ch, struct char_data *victim, int spellnum, int savetype); void mag_unaffects(int level, struct char_data *ch, struct char_data *victim, int spellnum, int type); void mag_alter_objs(int level, struct char_data *ch, struct obj_data *obj, int spellnum, int type); void mag_creations(int level, struct char_data *ch, int spellnum); int call_magic(struct char_data *caster, struct char_data *cvict, struct obj_data *ovict, int spellnum, int level, int casttype, int objcast); void mag_objectmagic(struct char_data *ch, struct obj_data *obj, char *argument); int cast_spell(struct char_data *ch, struct char_data *tch, struct obj_data *tobj, int spellnum); +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/07/00 PST