/* * phantdefs.h - important constants for Phantasia */ /* testig stuff - should be delete before production */ /* configurables */ #define PHANTASIA_PORT 9897 /* boolean identifiers */ typedef char bool; #define TRUE 1 #define FALSE 0 #define MALE 0 #define FEMALE 1 /* server run_level constants */ #define RUN_SERVER 0 /* continue through main loop */ #define HARD_SHUTDOWN 1 /* kill server NOW */ #define FAST_SHUTDOWN 2 /* just save the realm */ #define SHUTDOWN 3 /* wait on threads, then save */ #define LEISURE_SHUTDOWN 4 /* wait until no one is logged on */ /* thread run_level constants */ #define SIGNING_IN 0 /* connection has no account */ #define CHAR_SELECTION 1 /* player needs a character */ #define PLAY_GAME 2 /* in play */ #define SAVE_AND_CONTINUE 3 /* save char and ask to continue */ #define SAVE_AND_EXIT 4 /* save char and leave game */ #define GO_AGAIN 5 /* save char and leave game */ #define EXIT_THREAD 6 /* leave the main loop */ #define LEAVING_THREAD 7 /* Final thread exit */ /* socket return values */ #define S_NORM 0 /* socket returned data */ #define S_CANCEL 1 /* player canceled selection */ #define S_TIMEOUT 2 /* player ran out of time */ #define S_ERROR 3 /* socket is closed */ /* tag types */ #define T_REJECT 0 /* hang up on address ASAP */ #define T_BAN 1 /* kick when character loaded, ban */ #define T_SUICIDE 2 /* all loaded characters hari-kari */ #define T_MUTE 3 /* player may not chat */ #define T_PREFIX 4 /* add a prefix to the player */ #define T_SUFFIX 5 /* add a suffix to the player */ /* tagged types */ #define T_MACHINE 0 /* tag of a specific machine */ #define T_ACCOUNT 1 /* tag of an account */ #define T_ADDRESS 2 /* tag of an address */ #define T_NETWORK 3 /* tag of an network */ /* hearing constants */ #define HEAR_SELF 0 /* hear the channel you're in */ #define HEAR_ONE 1 /* hear channel 1 -- apprentice */ #define HEAR_ALL 11 /* hear all channels */ /* realm objects */ #define ENERGY_VOID 0 /* object is an energy void */ #define CORPSE 1 /* object is a corpse */ #define TREASURE_TROVE 2 /* opject is the treasure trove */ #define HOLY_GRAIL 3 /* object is the holy grail */ /* total number of things */ #define NUM_MONSTERS 100 /* monsters in the game */ #define NUM_CHARS 6 /* number of character types */ #define NUM_ITEMS 7 /* items in the shops */ /* event types */ #define NULL_EVENT 0 /* blank event */ /* immediate events */ #define KICK_EVENT 1 /* get off my game */ #define TAG_EVENT 2 /* tag yourself */ #define REQUEST_DETAIL_EVENT 3 /* get player info */ #define CONNECTION_DETAIL_EVENT 4 /* another player's info */ #define REQUEST_RECORD_EVENT 5 /* get player info */ #define PLAYER_RECORD_EVENT 6 /* another player's info */ #define ADD_PLAYER_EVENT 7 /* add player info */ #define REMOVE_PLAYER_EVENT 8 /* remove player info */ #define CHANGE_PLAYER_EVENT 9 /* change player info */ #define CHAT_EVENT 10 /* chat message */ #define REPRIMAND_EVENT 11 /* Apprentices reprimand */ #define UNTAG_EVENT 12 /* remove a prefix or suffix */ #define UNSUSPEND_EVENT 13 /* resume player's game */ #define GAME_MARKER 14 /* only game events follow */ /* ASAP events */ #define DEATH_EVENT 20 /* player died */ #define IT_COMBAT_EVENT 21 /* enter interterminal-combat */ #define EXPERIENCE_EVENT 23 /* award the player experience */ /* tampering events */ #define SUSPEND_EVENT 25 /* stop player's game */ #define CANTRIP_EVENT 26 /* apprentice options */ #define MODERATE_EVENT 27 /* wizard options */ #define ADMINISTRATE_EVENT 28 /* administrative options */ #define VALAR_EVENT 29 /* become/lose valar */ #define KING_EVENT 30 /* become king */ #define STEWARD_EVENT 31 /* become steward */ #define DETHRONE_EVENT 32 /* lose king or steward */ #define SEX_CHANGE_EVENT 34 /* toggle player's sex */ #define RELOCATE_EVENT 35 /* order player to location */ #define TRANSPORT_EVENT 36 /* transport player */ #define CURSE_EVENT 37 /* curse player */ #define SLAP_EVENT 38 /* slap player */ #define BLIND_EVENT 39 /* blind player */ #define BESTOW_EVENT 40 /* king bestowed gold */ #define SUMMON_EVENT 41 /* summon monster for player */ #define BLESS_EVENT 42 #define HEAL_EVENT 43 #define STRONG_NF_EVENT 44 /* set the player's strength_nf flag */ #define KNIGHT_EVENT 45 /* this player has been knighted */ #define DEGENERATE_EVENT 46 #define HELP_EVENT 47 /* player is asking for information */ /* command events */ #define COMMAND_EVENT 48 /* the valar uses a power */ #define SAVE_EVENT 49 /* save the game and quit */ #define MOVE_EVENT 50 /* move the character */ #define EXAMINE_EVENT 51 /* examine the stats on a character */ #define DECREE_EVENT 52 /* make a decree */ #define ENACT_EVENT 53 /* the steward enacts something */ #define LIST_PLAYER_EVENT 54 /* list the players in the game */ #define CLOAK_EVENT 55 /* cloak/uncloak */ #define TELEPORT_EVENT 56 /* teleport player */ #define INTERVENE_EVENT 57 /* a council uses a power */ #define REST_EVENT 58 /* rest player */ #define INFORMATION_EVENT 59 /* go to information screen */ #define FORCEAGE_EVENT 60 /* forcefully age a player */ /* normal events */ /* events after this are destroyed on orphan */ #define DESTROY_MARKER 69 #define ENERGY_VOID_EVENT 70 /* create/hit energy void */ #define TROVE_EVENT 71 /* find the treasure trove */ #define MONSTER_EVENT 72 /* encounter monster */ #define PLAGUE_EVENT 73 /* hit with plague */ #define MEDIC_EVENT 74 /* encounter medic */ #define GURU_EVENT 75 /* encounter guru */ #define TRADING_EVENT 76 /* find a trading post */ #define TREASURE_EVENT 77 /* find treasure */ #define VILLAGE_EVENT 78 /* found a village or a volcano */ #define TAX_EVENT 79 /* encounter tax collector */ /* realm objects */ /* events after this are made realm objects on orphan */ #define REALM_MARKER 90 #define CORPSE_EVENT 91 /* find a corpse */ #define GRAIL_EVENT 92 /* find the holy grail */ #define LAST_EVENT 93 /* used to find bad events */ /* combat messages */ #define IT_OPPONENT_BUSY 1 /* currently on another combat */ #define IT_REPORT 2 /* report in */ #define IT_JUST_DIED 3 /* player has just been killed */ #define IT_JUST_LEFT 42 /* player just left the game */ #define IT_ATTACK 4 /* player is attacker */ #define IT_DEFEND 5 /* player is defender */ #define IT_MELEE 6 /* attacker meleed */ #define IT_SKIRMISH 7 /* attacker skirmished */ #define IT_NICKED 8 /* attacker nicked */ #define IT_EVADED 9 /* attacker evaded */ #define IT_NO_EVADE 10 /* attacker failed to evade */ #define IT_LUCKOUT 11 /* attacker lucked-out (luckouted?) */ #define IT_NO_LUCKOUT 12 /* attacker failed to luckout */ #define IT_RING 13 /* attacker put on a ring */ #define IT_NO_RING 14 /* attacker failed to put on a ring */ #define IT_ALL_OR_NOT 15 /* attacker cast all or nothing */ #define IT_NO_ALL_OR_NOT 16 /* attacker blew all or nothing */ #define IT_BOLT 17 /* attacker cast magic bolt */ #define IT_NO_BOLT 18 /* attacker blew magic bolt */ #define IT_SHIELD 19 /* attacker cast force field */ #define IT_NO_SHIELD 20 /* attacker blew force field */ #define IT_TRANSFORM 21 /* attacker transformed defender */ #define IT_NO_TRANSFORM 22 /* attacker blew transform */ #define IT_TRANSFORM_BACK 23 /* attacker's transform backfired */ #define IT_MIGHT 24 /* attacker cast increase might */ #define IT_NO_MIGHT 25 /* attacker blew increase might */ #define IT_HASTE 26 /* attacker cast haste */ #define IT_NO_HASTE 27 /* attacker blew haste */ #define IT_TRANSPORT 28 /* attacker cast transport */ #define IT_NO_TRANSPORT 29 /* attacker blew transport */ #define IT_TRANSPORT_BACK 30 /* attacker's transport backfired */ #define IT_PARALYZE 31 /* attaker cast paralyze */ #define IT_NO_PARALYZE 32 /* attaker blew paralyze */ #define IT_PASS 33 /* attacker passed the turn */ #define IT_CONTINUE 34 /* defender continues the battle */ #define IT_CONCEDE 35 /* defender surrenders */ #define IT_DEFEAT 36 /* the sender stands defeated */ #define IT_VICTORY 37 /* the sender claims victory */ #define IT_DONE 38 /* This is Kang, cease hostilities */ #define IT_ECHO 39 /* tell me to attack */ #define IT_ABANDON 40 /* player quiting and saving self */ #define IT_BORED 41 /* player quit after timeout */ #define IT_WIZEVADE 43 /* player used wiz powers to evade */ /* client->player packet headers */ #define HANDSHAKE_PACKET 2 /* used when connecting */ #define CLOSE_CONNECTION_PACKET 3 /* last message before close */ #define PING_PACKET 4 /* used for timeouts */ #define ADD_PLAYER_PACKET 5 /* add a player to the list */ #define REMOVE_PLAYER_PACKET 6 /* remove a player from the list */ #define SHUTDOWN_PACKET 7 /* the server is going down */ #define ERROR_PACKET 8 /* server has encountered an error */ #define CLEAR_PACKET 10 /* clears the message screen */ #define WRITE_LINE_PACKET 11 /* write a line on message screen */ #define BUTTONS_PACKET 20 /* use the interfaces buttons */ #define FULL_BUTTONS_PACKET 21 /* use buttons and compass */ #define STRING_DIALOG_PACKET 22 /* request a message response */ #define COORDINATES_DIALOG_PACKET 23 /* request player coordinates */ #define PLAYER_DIALOG_PACKET 24 /* request a player name */ #define PASSWORD_DIALOG_PACKET 25 /* string dialog with hidden text */ #define SCOREBOARD_DIALOG_PACKET 26 /* pull up the scoreboard */ #define DIALOG_PACKET 27 /* okay dialog with next line */ #define CHAT_PACKET 30 /* chat message */ #define ACTIVATE_CHAT_PACKET 31 /* turn on the chat window */ #define DEACTIVATE_CHAT_PACKET 32 /* turn off the chat window */ #define PLAYER_INFO_PACKET 33 /* display a player's info */ #define CONNECTION_DETAIL_PACKET 34 /* display connection info */ #define NAME_PACKET 40 /* set the player's name */ #define LOCATION_PACKET 41 /* refresh the player's energy */ #define ENERGY_PACKET 42 /* refresh the player's energy */ #define STRENGTH_PACKET 43 /* refresh the player's strength */ #define SPEED_PACKET 44 /* refresh the player's speed */ #define SHIELD_PACKET 45 /* refresh the player's shield */ #define SWORD_PACKET 46 /* refresh the player's sword */ #define QUICKSILVER_PACKET 47 /* refresh the player's quicksilver */ #define MANA_PACKET 48 /* refresh the player's mana */ #define LEVEL_PACKET 49 /* refresh the player's level */ #define GOLD_PACKET 50 /* refresh the player's gold */ #define GEMS_PACKET 51 /* refresh the player's gems */ #define CLOAK_PACKET 52 /* refresh the player's cloak */ #define BLESSING_PACKET 53 /* refresh the player's blessing */ #define CROWN_PACKET 54 /* refresh the player's crowns */ #define PALANTIR_PACKET 55 /* refresh the player's palantir */ #define RING_PACKET 56 /* refresh the player's ring */ #define VIRGIN_PACKET 57 /* refresh the player's virgin */ /* player->client packet headers */ #define C_RESPONSE_PACKET 1 /* player feedback for game */ #define C_CANCEL_PACKET 2 /* player canceled question */ #define C_PING_PACKET 3 /* response to a ping */ #define C_CHAT_PACKET 4 /* chat message from player */ #define C_EXAMINE_PACKET 5 /* examine a player */ #define C_ERROR_PACKET 6 /* client is lost */ #define C_SCOREBOARD_PACKET 7 /* show the scoreboard */ /* locations within the realm */ #define PL_REALM 0 /* normal coordinates */ #define PL_THRONE 1 /* In the lord's chamber */ #define PL_EDGE 2 /* On the edge of the realm */ #define PL_VALHALLA 3 /* In Valhalla */ #define PL_PURGATORY 4 /* In purgatory fighting */ /* size of many structures */ #define SZ_PLAYER sizeof(struct player_t) /* size of player_t */ #define SZ_GAME sizeof(struct game_t) /* size of game_t */ #define SZ_IT_COMBAT sizeof(struct it_combat_t) /* size of it_combat_t */ #define SZ_PLAYER_DESC sizeof(struct player_desc_t) /* size of player_desc_t */ #define SZ_PLAYER_SPEC sizeof(struct player_spec_t) /* size of player_spec_t */ #define SZ_EVENT sizeof(struct event_t) /* size of event_t */ #define SZ_REALM_STATE sizeof(struct realm_state_t) /* size of realm_state_t */ #define SZ_REALM_OBJECT sizeof(struct realm_object_t) /* size of realm_object_t */ #define SZ_SCOREBOARD sizeof(struct scoreboard_t) /* size of scoreboard_t */ #define SZ_CLIENT sizeof(struct client_t) /* size of client_t */ #define SZ_OPPONENT sizeof(struct opponent_t) /* size of opponent_t */ #define SZ_BUTTON sizeof(struct button_t) /* size of button_t */ #define SZ_ACCOUNT sizeof(struct account_t) /* size of account_t */ #define SZ_LINKED_LIST sizeof(struct linked_list_t) /* size of linked_list_t */ #define SZ_EXAMINE sizeof(struct examine_t) #define SZ_TAG sizeof(struct tag_t) #define SZ_TAGGED sizeof(struct tagged_t) #define SZ_TAGGED_LIST sizeof(struct tagged_list_t) #define SZ_NETWORK sizeof(struct network_t) #define SZ_CONNECTION sizeof(struct connection_t) #define SZ_HISTORY sizeof(struct history_t) #define SZ_HISTORY_LIST sizeof(struct history_list_t) #define SZ_DETAIL sizeof(struct detail_t) #define SZ_TAGGED_SORT sizeof(struct tagged_sort_t) /* string sizes */ #define SZ_IN_BUFFER 1024 /* largest possible client message */ #define SZ_OUT_BUFFER 1024 /* largest possible server message */ #define SZ_NAME 33 /* player name field (incl. trailing null) */ #define MAX_NAME_LEN 16 /* actual player name */ #define SZ_PASSWORD 16 /* 128 bit MD5 hash of the password */ #define SZ_FROM 81 /* ip or dns login (incl. null) */ #define SZ_MONSTER_NAME 49 /* characters in monster names */ #define SZ_AREA 24 /* name of player location */ #define SZ_HOW_DIED 78 /* string describing character death */ #define SZ_CLASS_NAME 13 /* longest class name */ #define SZ_ITEMS 12 /* longest shop item description */ #define SZ_ERROR_MESSAGE 256 /* max length of error message */ #define SZ_LINE 256 /* length of one line on terminal */ #define SZ_LABEL 22 /* length of interface button text */ #define SZ_NUMBER 25 /* characters describing number */ #define SZ_CHAT 512 /* largest chat message */ #define SZ_PACKET_TYPE 2 /* maximum packet size */ #define SZ_SPEC 7 /* 5 chars, newline and null */ /* possible errors */ #define MALLOC_ERROR 1001 #define DATA_FILE_ERROR 1002 #define MONSTER_FILE_ERROR 1003 #define CHARACTER_FILE_ERROR 1004 #define CHARSTATS_FILE_ERROR 1004 #define SHOPITEMS_FILE_ERROR 1004 #define SCOREBOARD_FILE_ERROR 1005 #define CHAT_LOG_FILE_ERROR 1006 #define SOCKET_CREATE_ERROR 1007 #define SOCKET_BIND_ERROR 1008 #define SOCKET_LISTEN_ERROR 1009 #define SOCKET_SELECT_ERROR 1010 #define SOCKET_ACCEPT_ERROR 1011 #define MUTEX_INIT_ERROR 1012 #define MUTEX_DESTROY_ERROR 1013 #define MUTEX_LOCK_ERROR 1014 #define MUTEX_UNLOCK_ERROR 1015 #define PTHREAD_ATTR_ERROR 1016 #define PTHREAD_CREATE_ERROR 1017 #define GENERAL_EVENT_ERROR 1021 #define IMPOSSIBLE_EVENT_ERROR 1022 #define EVENT_ADDRESS_ERROR 1023 #define UNDEFINED_OBJECT_ERROR 1024 #define BATTLE_PHASE_ERROR 1025 #define DEFENDER_MESSAGE_ERROR 1026 #define BATTLE_MESSAGE_ERROR 1027 #define SEND_SOCKET_ERROR 1028 #define READ_SOCKET_ERROR 1029 /* ring constants */ #define R_NONE 0 /* no ring */ #define R_NAZREG 1 /* regular Nazgul ring (expires) */ #define R_DLREG 2 /* regular Dark Lord ring (does not expire) */ #define R_BAD 3 /* bad ring */ #define R_SPOILED 4 /* ring which has gone bad */ #define R_YES 5 /* masked ring type */ /* constants for character types */ #define C_MAGIC 0 /* magic user */ #define C_FIGHTER 1 /* fighter */ #define C_ELF 2 /* elf */ #define C_DWARF 3 /* dwarf */ #define C_HALFLING 4 /* halfling */ #define C_EXPER 5 /* experimento */ /* constants for special character types */ #define SC_NONE 0 /* not a special character */ #define SC_KNIGHT 1 /* knight */ #define SC_STEWARD 2 /* steward */ #define SC_KING 3 /* king */ #define SC_COUNCIL 4 /* council of the wise */ #define SC_EXVALAR 5 /* past valar - now council */ #define SC_VALAR 6 /* valar */ /* means of death */ #define K_OLD_AGE 0 /* old age */ #define K_MONSTER 1 /* combat with monster */ #define K_IT_COMBAT 2 /* combat with another player */ #define K_GHOSTBUSTERS 3 /* lost connection */ #define K_VAPORIZED 4 /* vaporized by another player */ #define K_RING 5 /* killed by a cursed ring */ #define K_NO_ENERGY 6 /* player ran out of energy */ #define K_FELL_OFF 7 /* fell off the edge of the world */ #define K_TRANSFORMED 8 /* turned into another monster */ #define K_SEGMENTATION 9 /* bad internal error */ #define K_SUICIDE 10 /* character did something bad */ #define K_SQUISH 11 /* new wizard kill option */ #define K_GREED 12 /* killed when carrying too much gold */ #define K_FATIGUE 13 /* killed when speed = 0 from fatigue */ #define K_SIN 14 /* goes to hell for too much evil */ /* special monster constants */ #define SM_RANDOM -1 /* pick a monster by normal means */ #define SM_NONE 0 /* nothing special */ #define SM_UNICORN 1 /* unicorn */ #define SM_MODNAR 2 /* Modnar */ #define SM_MIMIC 3 /* mimic */ #define SM_DARKLORD 4 /* Dark Lord */ #define SM_LEANAN 5 /* Leanan-Sidhe */ #define SM_SARUMAN 6 /* Saruman */ #define SM_THAUMATURG 7 /* thaumaturgist */ #define SM_BALROG 8 /* balrog */ #define SM_VORTEX 9 /* vortex */ #define SM_NAZGUL 10 /* nazgul */ #define SM_TIAMAT 11 /* Tiamat */ #define SM_KOBOLD 12 /* kobold */ #define SM_SHELOB 13 /* Shelob */ #define SM_FAERIES 14 /* assorted faeries */ #define SM_LAMPREY 15 /* lamprey */ #define SM_SHRIEKER 16 /* shrieker */ #define SM_BONNACON 17 /* bonnacon */ #define SM_SMEAGOL 18 /* Smeagol */ #define SM_SUCCUBUS 19 /* succubus */ #define SM_CERBERUS 20 /* Cerberus */ #define SM_UNGOLIANT 21 /* Ungoliant */ #define SM_JABBERWOCK 22 /* jabberwock */ #define SM_MORGOTH 23 /* Morgoth */ #define SM_TROLL 24 /* troll */ #define SM_WRAITH 25 /* wraith */ #define SM_TITAN 26 /* titan */ #define SM_IT_COMBAT 27 /* fighting another player */ #define SM_IDIOT 28 /* idiot */ #define SM_SMURF 29 /* smurf */ #define SM_MORON 30 /* moron */ /* encounter constants */ #define MONSTER_RANDOM 0 /* monster was wandering */ #define MONSTER_CALL 1 /* monster was hunted */ #define MONSTER_FLOCKED 2 /* another monster in herd */ #define MONSTER_SHRIEKER 3 /* called by shrieker */ #define MONSTER_JABBERWOCK 4 /* called by jabberwock */ #define MONSTER_TRANSFORM 5 /* monster was polymorphed */ #define MONSTER_SUMMONED 6 /* another player threw monster */ #define MONSTER_SPECIFY 7 /* player requested monster */ #define MONSTER_PURGATORY 8 /* encounter in purgatory */ /* scoreboard constants */ #define SB_KEEP_ABOVE 1000 /* below this level, delete chars */ #define SB_KEEP_FOR 2592000 /* seconds to keep low chars */ /* other constants */ #define CORPSE_LIFE 2592000 /* seconds corpses stay in game */ #define KEEP_TIME 2592000 /* base secs to keep saved characters */ #define NEWBIE_KEEP_TIME 259200 /* base secs to keep saved characters */ #define ACCOUNT_KEEP_TIME 7776000 /* secs to keep accounts */ /* constants for altering coordinates */ #define A_SPECIFIC 0 /* coordinates specified, non-TP */ #define A_FORCED 1 /* coordinates specified, ignore Beyond */ #define A_NEAR 2 /* coordinates not specified, move near */ #define A_FAR 3 /* coordinates not specified, move far */ #define A_TRANSPORT 4 /* distant teleport */ #define A_OUST 5 /* more distant teleport */ #define A_BANISH 6 /* move player to beyond */ #define A_TELEPORT 7 /* moved by teleport */ /* spell constants */ #define P_HEAL 0 /* steward heals a player */ #define P_CURE 1 /* council heals with poison cure */ #define P_RESTORE 2 /* valar restores a character */ #define P_CURSE 0 /* steward curse */ #define P_EXECRATE 1 /* king's stronger curse */ #define P_SMITE 2 /* valar decimates a character */ /* constants for spells */ #define ML_ALLORNOTHING 0.0 /* magic level for 'all or nothing' */ #define MM_ALLORNOTHING 1.0 /* mana used for 'all or nothing' */ #define ML_MAGICBOLT 5.0 /* magic level for 'magic bolt' */ #define ML_INCRMIGHT 15.0 /* magic level for 'increase might' */ #define MM_INCRMIGHT 30.0 /* mana used for 'increase might' */ #define ML_HASTE 25.0 /* magic level for 'haste' */ #define MM_HASTE 35.0 /* mana used for 'haste' */ #define ML_FORCEFIELD 35.0 /* magic level for 'force field' */ #define MM_FORCEFIELD 60.0 /* mana used for 'force field' */ #define ML_XPORT 45.0 /* magic level for 'transport' */ #define MM_XPORT 100.0 /* mana used for 'transport' */ #define ML_PARALYZE 60.0 /* magic level for 'paralyze' */ #define MM_PARALYZE 125.0 /* mana used for 'paralyze' */ #define ML_XFORM 75.0 /* magic level for 'transform' */ #define MM_XFORM 150.0 /* mana used for 'transform' */ #define MM_SPECIFY 1000.0 /* mana used for 'specify' */ #define ML_CLOAK 20.0 /* magic level for 'cloak' */ #define MEL_CLOAK 7.0 /* experience level for 'cloak' */ #define MM_CLOAK 35.0 /* mana used for 'cloak' */ #define ML_TELEPORT 40.0 /* magic level for 'teleport' */ #define MEL_TELEPORT 12.0 /* experience level for 'teleport' */ #define MM_INTERVENE 3000.0 /* mana used to 'intervene' */ #define MM_COMMAND 15000.0 /* mana used to 'command' */ /* some miscellaneous constants */ #define N_DAYSOLD 30 /* number of days old for purge */ #define N_AGE 750 /* age to degenerate ratio */ #define N_GEMVALUE (1000.0) /* number of gold pieces to gem ratio */ #define N_FATIGUE 50 /* rounds of combat before -1 speed */ #define N_SWORDPOWER .04 /* percentage of strength swords increase */ #define D_BEYOND (1.0e6) /* distance to beyond point of no return */ #define D_EXPER (2000.0) /* distance experimentos are allowed */ #define D_EDGE (100000000.0) /* edge of the world */ #define D_CIRCLE 125.0 /* distance for each circle */ #define STATELEN 256 /* random number state buffer */ #define MIN_STEWARD 10.0 /* minimum level for steward */ #define MAX_STEWARD 200.0 /* maximum level for steward */ #define MIN_KING 1000.0 /* minimum level for king */ #define MAX_KING 2000.0 /* maximum level for king */ /* hacking constants */ #define H_SYSTEM 0 /* hacking the system */ #define H_PASSWORDS 1 /* hacking passwords */ #define H_CONNECTIONS 2 /* excessive connections */ #define H_KILLING 3 /* killing rampage */ #define H_PROFANITY 4 /* using profanity */ #define H_DISRESPECTFUL 5 /* disrespectful to wizards */ #define H_FLOOD 6 /* flooding chat */ #define H_SPAM 7 /* spamming chat */ #define H_WHIM 8 /* wizard's whim */