📄 const.c
字号:
/***************************************************************************
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. *
* *
* Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* *
* In order to use any part of this Merc Diku Mud, you must comply with *
* both the original Diku license in 'license.doc' as well the Merc *
* license in 'license.txt'. In particular, you may not remove either of *
* these copyright notices. *
* *
* Much time and thought has gone into this software and you are *
* benefitting. We hope that you share your changes too. What goes *
* around, comes around. *
***************************************************************************/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <time.h>
#include "merc.h"
/*
* Class table.
*/
const struct class_type class_table [MAX_CLASS] =
{
{
"Mag", APPLY_INT, OBJ_VNUM_SCHOOL_DAGGER,
3018, 95, 18, 10, 6, 8, TRUE
},
{
"Cle", APPLY_WIS, OBJ_VNUM_SCHOOL_MACE,
3003, 95, 18, 12, 7, 10, TRUE
},
{
"Thi", APPLY_DEX, OBJ_VNUM_SCHOOL_DAGGER,
3028, 85, 18, 8, 8, 13, FALSE
},
{
"War", APPLY_STR, OBJ_VNUM_SCHOOL_SWORD,
3022, 85, 18, 6, 11, 15, FALSE
},
{
"Psi", APPLY_WIS, OBJ_VNUM_SCHOOL_DAGGER,
3151, 95, 18, 9, 6, 9, TRUE
}
};
#define CLASS_MAGE 0
#define CLASS_CLERIC 1
#define CLASS_THIEF 2
#define CLASS_WARRIOR 3
#define CLASS_PSIONICIST 4
/*
* Titles.
*/
char * const title_table [MAX_CLASS][MAX_LEVEL+1][2] =
{
{
{ "Man", "Woman" },
{ "Apprentice of Magic", "Apprentice of Magic" },
{ "Spell Student", "Spell Student" },
{ "Scholar of Magic", "Scholar of Magic" },
{ "Delver in Spells", "Delveress in Spells" },
{ "Medium of Magic", "Medium of Magic" },
{ "Scribe of Magic", "Scribess of Magic" },
{ "Seer", "Seeress" },
{ "Sage", "Sage" },
{ "Illusionist", "Illusionist" },
{ "Abjurer", "Abjuress" },
{ "Invoker", "Invoker" },
{ "Enchanter", "Enchantress" },
{ "Conjurer", "Conjuress" },
{ "Magician", "Witch" },
{ "Creator", "Creator" },
{ "Savant", "Savant" },
{ "Magus", "Craftess" },
{ "Wizard", "Wizard" },
{ "Warlock", "War Witch" },
{ "Sorcerer", "Sorceress" },
{ "Elder Sorcerer", "Elder Sorceress" },
{ "Grand Sorcerer", "Grand Sorceress" },
{ "Great Sorcerer", "Great Sorceress" },
{ "Golem Maker", "Golem Maker" },
{ "Greater Golem Maker", "Greater Golem Maker" },
{ "Maker of Stones", "Maker of Stones", },
{ "Maker of Potions", "Maker of Potions", },
{ "Maker of Scrolls", "Maker of Scrolls", },
{ "Maker of Wands", "Maker of Wands", },
{ "Maker of Staves", "Maker of Staves", },
{ "Demon Summoner", "Demon Summoner" },
{ "Greater Demon Summoner", "Greater Demon Summoner" },
{ "Dragon Charmer", "Dragon Charmer" },
{ "Greater Dragon Charmer", "Greater Dragon Charmer" },
{ "Master of all Magic", "Master of all Magic" },
{ "Mage Hero", "Mage Heroine" },
{ "Angel of Magic", "Angel of Magic" },
{ "Deity of Magic", "Deity of Magic" },
{ "Supremity of Magic", "Supremity of Magic" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Believer", "Believer" },
{ "Attendant", "Attendant" },
{ "Acolyte", "Acolyte" },
{ "Novice", "Novice" },
{ "Missionary", "Missionary" },
{ "Adept", "Adept" },
{ "Deacon", "Deaconess" },
{ "Vicar", "Vicaress" },
{ "Priest", "Priestess" },
{ "Minister", "Lady Minister" },
{ "Canon", "Canon" },
{ "Levite", "Levitess" },
{ "Curate", "Curess" },
{ "Monk", "Nun" },
{ "Healer", "Healess" },
{ "Chaplain", "Chaplain" },
{ "Expositor", "Expositress" },
{ "Bishop", "Bishop" },
{ "Arch Bishop", "Arch Lady of the Church" },
{ "Patriarch", "Matriarch" },
{ "Elder Patriarch", "Elder Matriarch" },
{ "Grand Patriarch", "Grand Matriarch" },
{ "Great Patriarch", "Great Matriarch" },
{ "Demon Killer", "Demon Killer" },
{ "Greater Demon Killer", "Greater Demon Killer" },
{ "Cardinal of the Sea", "Cardinal of the Sea" },
{ "Cardinal of the Earth", "Cardinal of the Earth" },
{ "Cardinal of the Air", "Cardinal of the Air" },
{ "Cardinal of the Ether", "Cardinal of the Ether" },
{ "Cardinal of the Heavens", "Cardinal of the Heavens" },
{ "Avatar of an Immortal", "Avatar of an Immortal" },
{ "Avatar of a Deity", "Avatar of a Deity" },
{ "Avatar of a Supremity", "Avatar of a Supremity" },
{ "Avatar of an Implementor", "Avatar of an Implementor" },
{ "Master of all Divinity", "Mistress of all Divinity" },
{ "Holy Hero", "Holy Heroine" },
{ "Angel", "Angel" },
{ "Deity", "Deity" },
{ "Supreme Master", "Supreme Mistress" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Pilferer", "Pilferess" },
{ "Footpad", "Footpad" },
{ "Filcher", "Filcheress" },
{ "Pick-Pocket", "Pick-Pocket" },
{ "Sneak", "Sneak" },
{ "Pincher", "Pincheress" },
{ "Cut-Purse", "Cut-Purse" },
{ "Snatcher", "Snatcheress" },
{ "Sharper", "Sharpress" },
{ "Rogue", "Rogue" },
{ "Robber", "Robber" },
{ "Magsman", "Magswoman" },
{ "Highwayman", "Highwaywoman" },
{ "Burglar", "Burglaress" },
{ "Thief", "Thief" },
{ "Knifer", "Knifer" },
{ "Quick-Blade", "Quick-Blade" },
{ "Killer", "Murderess" },
{ "Brigand", "Brigand" },
{ "Cut-Throat", "Cut-Throat" },
{ "Spy", "Spy" },
{ "Grand Spy", "Grand Spy" },
{ "Master Spy", "Master Spy" },
{ "Assassin", "Assassin" },
{ "Greater Assassin", "Greater Assassin" },
{ "Master of Vision", "Mistress of Vision" },
{ "Master of Hearing", "Mistress of Hearing" },
{ "Master of Smell", "Mistress of Smell" },
{ "Master of Taste", "Mistress of Taste" },
{ "Master of Touch", "Mistress of Touch" },
{ "Crime Lord", "Crime Mistress" },
{ "Infamous Crime Lord", "Infamous Crime Mistress" },
{ "Greater Crime Lord", "Greater Crime Mistress" },
{ "Master Crime Lord", "Master Crime Mistress" },
{ "Godfather", "Godmother" },
{ "Assassin Hero", "Assassin Heroine" },
{ "Angel of Death", "Angel of Death" },
{ "Deity of Assassins", "Deity of Assassins" },
{ "Supreme Master", "Supreme Mistress" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Swordpupil", "Swordpupil" },
{ "Recruit", "Recruit" },
{ "Sentry", "Sentress" },
{ "Fighter", "Fighter" },
{ "Soldier", "Soldier" },
{ "Warrior", "Warrior" },
{ "Veteran", "Veteran" },
{ "Swordsman", "Swordswoman" },
{ "Fencer", "Fenceress" },
{ "Combatant", "Combatess" },
{ "Hero", "Heroine" },
{ "Myrmidon", "Myrmidon" },
{ "Swashbuckler", "Swashbuckleress" },
{ "Mercenary", "Mercenaress" },
{ "Swordmaster", "Swordmistress" },
{ "Lieutenant", "Lieutenant" },
{ "Champion", "Lady Champion" },
{ "Dragoon", "Lady Dragoon" },
{ "Cavalier", "Lady Cavalier" },
{ "Knight", "Lady Knight" },
{ "Grand Knight", "Grand Knight" },
{ "Master Knight", "Master Knight" },
{ "Paladin", "Paladin" },
{ "Grand Paladin", "Grand Paladin" },
{ "Demon Slayer", "Demon Slayer" },
{ "Greater Demon Slayer", "Greater Demon Slayer" },
{ "Dragon Slayer", "Dragon Slayer" },
{ "Greater Dragon Slayer", "Greater Dragon Slayer" },
{ "Underlord", "Underlord" },
{ "Overlord", "Overlord" },
{ "Baron of Thunder", "Baroness of Thunder" },
{ "Baron of Storms", "Baroness of Storms" },
{ "Baron of Tornadoes", "Baroness of Tornadoes" },
{ "Baron of Hurricanes", "Baroness of Hurricanes" },
{ "Baron of Meteors", "Baroness of Meteors" },
{ "Knight Hero", "Knight Heroine" },
{ "Angel of War", "Angel of War" },
{ "Deity of War", "Deity of War" },
{ "Supreme Master of War", "Supreme Mistress of War" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Psychic", "Psychic", },
{ "Medium", "Medium", },
{ "Gypsy", "Gypsy", },
{ "Meditator", "Meditator", },
{ "Mind Prober", "Mind Prober", },
{ "Soul Searcher", "Soul Searcher", },
{ "Astral Voyager", "Astral Voyager", },
{ "Seeker", "Seeker", },
{ "Empath", "Empath", },
{ "Mind Reader", "Mind Reader" },
{ "Telepath", "Telepath", },
{ "Mental Adept", "Mental Adept", },
{ "Spoonbender", "Spoonbender", },
{ "Perceptive", "Perceptive", },
{ "Clever", "Clever", },
{ "Wise", "Wise", },
{ "Genius", "Genius", },
{ "Oracle", "Oracle", },
{ "Soothsayer", "Soothsayer", },
{ "Truthteller", "Truthteller", },
{ "Sage", "Sage", },
{ "Master Psychic", "Mistress Psychic", },
{ "Master Meditator", "Mistress Meditator", },
{ "Master Empath", "Mistress Empath", },
{ "Master Clairvoyant", "Mistress Clairvoyant", },
{ "Master Mind Reader", "Mistress Mind Reader", },
{ "Master Telepath", "Mistress Telepath", },
{ "Master Spoonbender", "Mistress Spoonbender", },
{ "Grand Master Psychic", "Grand Mistress Psychic", },
{ "Grand Master Meditator", "Grand Mistress Meditator", },
{ "Grand Master Empath", "Grand Mistress Empath", },
{ "Grand Master Clairvoyant", "Grand Mistress Clairvoyant", },
{ "Grand Master Mind Reader", "Grand Mistress Mind Reader", },
{ "Grand Master Telepath", "Grand Mistress Telepath", },
{ "Grand Master Spoonbender", "Grand Mistress Spoonbender", },
{ "Psionicist Hero", "Psionicist Herione", },
{ "Psionicist Angel", "Psionicist Angel" },
{ "Deity of Psionics", "Deity of Psionics" },
{ "Supreme Psionicst", "Supreme Psionicist" },
{ "Implementor", "Implementress" }
}
};
/*
* Race table.
*/
const struct race_type race_table [MAX_RACE] =
{
{
"Hum", "Human", 0, 0, 0, 0, 0, 3044, 3001,
(1<<CLASS_MAGE)|(1<<CLASS_CLERIC)|(1<<CLASS_THIEF)|(1<<CLASS_WARRIOR),
0
},
{
"Dwa", "Dwarf", 0, 0, 0, 0, 1, 4765, 4749,
(1<<CLASS_THIEF)|(1<<CLASS_WARRIOR)|(1<<CLASS_PSIONICIST),
AFF_INFRARED
},
{
"Ogr", "Ogre", 1, -2, -1, 0, 1, 3044, 3001, //7701, 7712,
(1<<CLASS_THIEF)|(1<<CLASS_WARRIOR),
AFF_INFRARED
},
{
"Aar", "Aarakocran", 0, 0, 0, 1, 0, 5618, 5604,
(1<<CLASS_THIEF)|(1<<CLASS_WARRIOR),
AFF_FLYING
},
{
"Gno", "Gnome", -1, 0, 1, 0, 0, 3044, 3001, //4257, 4248,
(1<<CLASS_THIEF)|(1<<CLASS_WARRIOR)|(1<<CLASS_CLERIC)|(1<<CLASS_PSIONICIST),
AFF_INFRARED
}
};
/*
* Attribute bonus tables.
*/
const struct str_app_type str_app [26] =
{
{ -5, -4, 0, 0 }, /* 0 */
{ -5, -4, 3, 1 }, /* 1 */
{ -3, -2, 3, 2 },
{ -3, -1, 10, 3 }, /* 3 */
{ -2, -1, 25, 4 },
{ -2, -1, 55, 5 }, /* 5 */
{ -1, 0, 80, 6 },
{ -1, 0, 90, 7 },
{ 0, 0, 100, 8 },
{ 0, 0, 100, 9 },
{ 0, 0, 115, 10 }, /* 10 */
{ 0, 0, 115, 11 },
{ 0, 0, 140, 12 },
{ 0, 0, 140, 13 }, /* 13 */
{ 0, 1, 170, 14 },
{ 1, 1, 170, 15 }, /* 15 */
{ 1, 2, 195, 16 },
{ 2, 3, 220, 22 },
{ 2, 4, 250, 25 }, /* 18 */
{ 3, 5, 400, 30 },
{ 3, 6, 500, 35 }, /* 20 */
{ 4, 7, 600, 40 },
{ 5, 7, 700, 45 },
{ 6, 8, 800, 50 },
{ 8, 10, 900, 55 },
{ 10, 12, 999, 60 } /* 25 */
};
const struct int_app_type int_app [26] =
{
{ 3 }, /* 0 */
{ 5 }, /* 1 */
{ 7 },
{ 8 }, /* 3 */
{ 9 },
{ 10 }, /* 5 */
{ 11 },
{ 12 },
{ 13 },
{ 15 },
{ 17 }, /* 10 */
{ 19 },
{ 22 },
{ 25 },
{ 28 },
{ 31 }, /* 15 */
{ 34 },
{ 37 },
{ 40 }, /* 18 */
{ 44 },
{ 49 }, /* 20 */
{ 55 },
{ 60 },
{ 70 },
{ 85 },
{ 99 } /* 25 */
};
const struct wis_app_type wis_app [26] =
{
{ 0 }, /* 0 */
{ 0 }, /* 1 */
{ 0 },
{ 0 }, /* 3 */
{ 0 },
{ 1 }, /* 5 */
{ 1 },
{ 1 },
{ 1 },
{ 2 },
{ 2 }, /* 10 */
{ 2 },
{ 2 },
{ 2 },
{ 2 },
{ 3 }, /* 15 */
{ 3 },
{ 4 },
{ 4 }, /* 18 */
{ 5 },
{ 5 }, /* 20 */
{ 6 },
{ 7 },
{ 7 },
{ 7 },
{ 8 } /* 25 */
};
const struct dex_app_type dex_app [26] =
{
{ 60 }, /* 0 */
{ 50 }, /* 1 */
{ 50 },
{ 40 },
{ 30 },
{ 20 }, /* 5 */
{ 10 },
{ 0 },
{ 0 },
{ 0 },
{ 0 }, /* 10 */
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ - 10 }, /* 15 */
{ - 15 },
{ - 20 },
{ - 30 },
{ - 40 },
{ - 50 }, /* 20 */
{ - 65 },
{ - 75 },
{ - 90 },
{ -105 },
{ -120 } /* 25 */
};
const struct con_app_type con_app [26] =
{
{ -4, 20 }, /* 0 */
{ -3, 25 }, /* 1 */
{ -2, 30 },
{ -2, 35 }, /* 3 */
{ -1, 40 },
{ -1, 45 }, /* 5 */
{ -1, 50 },
{ 0, 55 },
{ 0, 60 },
{ 0, 65 },
{ 0, 70 }, /* 10 */
{ 0, 75 },
{ 0, 80 },
{ 0, 85 },
{ 0, 88 },
{ 1, 90 }, /* 15 */
{ 2, 95 },
{ 2, 97 },
{ 3, 99 }, /* 18 */
{ 3, 99 },
{ 4, 99 }, /* 20 */
{ 4, 99 },
{ 5, 99 },
{ 6, 99 },
{ 7, 99 },
{ 8, 99 } /* 25 */
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -