/*************************************************************************** * 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. * ***************************************************************************/ /*************************************************************************** * God Wars Mud copyright (C) 1994, 1995, 1996 by Richard Woolcock * * * * Legend of Chrystancia copyright (C) 1999, 2000, 2001 by Matthew Little * * This mud is NOT to be copied in whole or in part, or to be run without * * the permission of Matthew Little. Nobody else has permission to * * authorise the use of this code. * ***************************************************************************/ #if defined(macintosh) #include <types.h> #else #include <sys/types.h> #endif #include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <unistd.h> /* unlink() */ #include "merc.h" #define TFUNC "Currently Saves/Loads ArtiTable" int can_interpret args( (CHAR_DATA *ch, int cmd) ); int can_interpret (CHAR_DATA *ch, int cmd) { int x=3; if (check_disabled (&cmd_table[cmd])) x = 1; else x = 2; if (cmd_table[cmd].level > get_trust(ch)) x = 0; if ( ch->position < cmd_table[cmd].position ) x = 0; return x; } void dump_objs() { { FILE *fp; OBJ_DATA *obj; fp=fopen("blergh","w"); for(obj=object_list;obj;obj=obj->next) { if(obj->pIndexData->cost!=666555) { obj->pIndexData->cost=666555; fprintf(fp,"%d|%s|%s|%d\n",obj->pIndexData->vnum,obj->name,obj->short_descr,obj->cost); } } fclose(fp); }} void do_testcommand(CHAR_DATA *ch,char *argument) { dump_objs();return; if(!str_cmp(argument,"load"))load_lostfound(); else write_lostfound(); } bool check_social args( ( CHAR_DATA *ch, char *command, char *argument ) ); bool check_xsocial args( ( CHAR_DATA *ch, char *command, char *argument ) ); extern int nAllocString; extern int nAllocPerm; /* * Command logging types. */ #define LOG_NORMAL 0 #define LOG_ALWAYS 1 #define LOG_NEVER 2 #define LOG_SILENCE 4 #define LOG_NOSHOW 8 /* * Log-all switch. */ int top_playerid = 0; char * last_command = NULL; bool cmd_done = TRUE; //int pulse_modifier = 240; int pulse_arena = 60; bool global_exp = FALSE; bool BITCH = FALSE; int player_vote = 0; bool check_disabled (const struct cmd_type *command); char *disabled_reason(const struct cmd_type *command); BAN_DATA *ban_first; DISABLED_DATA *disabled_first; #define END_MARKER "END" /* for load_disabled() and save_disabled()*/ /* * Command table. */ const struct cmd_type cmd_table [] = { { "for", do_for, POS_DEAD, 10, LOG_NORMAL }, /* * Common movement commands. */ { "north", do_north, POS_STANDING, 0, LOG_NOSHOW }, { "east", do_east, POS_STANDING, 0, LOG_NOSHOW }, { "south", do_south, POS_STANDING, 0, LOG_NOSHOW }, { "west", do_west, POS_STANDING, 0, LOG_NOSHOW }, { "up", do_up, POS_STANDING, 0, LOG_NOSHOW }, { "down", do_down, POS_STANDING, 0, LOG_NOSHOW }, /* * Common other commands. * Placed here so one and two letter abbreviations work. */ { "beep", do_beep, POS_STANDING, 2, LOG_NORMAL }, { "buy", do_buy, POS_SITTING, 0, LOG_NORMAL }, { "cast", do_cast, POS_FIGHTING, 0, LOG_NORMAL }, { "call", do_call, POS_FIGHTING, 0, LOG_NORMAL }, { "tell", do_tell, POS_MEDITATING, 0, LOG_NORMAL }, { "chant", do_chant, POS_FIGHTING, 4, LOG_NORMAL }, { "cchant", do_cloakchant, POS_FIGHTING, 4, LOG_NORMAL }, { "cloakchant", do_cloakchant, POS_FIGHTING, 4, LOG_NORMAL }, { "command", do_command, POS_SITTING, 3, LOG_NORMAL }, { "crack", do_crack, POS_STANDING, 0, LOG_NORMAL }, { "diagnose", do_diagnose, POS_FIGHTING, 0, LOG_NORMAL }, { "dismount", do_dismount, POS_STANDING, 0, LOG_NORMAL }, { "enter", do_enter, POS_STANDING, 0, LOG_NORMAL }, { "exits", do_exits, POS_SITTING, 0, LOG_NORMAL }, { "get", do_get, POS_SITTING, 0, LOG_NORMAL }, { "kill", do_kill, POS_FIGHTING, 0, LOG_NORMAL }, { "look", do_look, POS_MEDITATING, 0, LOG_NORMAL }, { "order", do_order, POS_SITTING, 0, LOG_NORMAL }, { "medit", do_medit, POS_DEAD, 8, LOG_NORMAL }, { "meditate", do_meditate, POS_MEDITATING, 0, LOG_NORMAL }, { "mount", do_mount, POS_STANDING, 0, LOG_NORMAL }, { "rest", do_rest, POS_MEDITATING, 0, LOG_NORMAL }, { "sit", do_sit, POS_SITTING, 0, LOG_NORMAL }, { "stand", do_stand, POS_SLEEPING, 0, LOG_NORMAL }, { "whisper", do_whisper, POS_SITTING, 0, LOG_NORMAL }, { "wield", do_wear, POS_SITTING, 0, LOG_NORMAL }, { "wizhelp", do_wizhelp, POS_DEAD, 7, LOG_NORMAL }, { "heal", do_heal, POS_FIGHTING, 3, LOG_NORMAL }, { "cheal", do_cheal, POS_FIGHTING, 0, LOG_NORMAL }, { "learn", do_learn, POS_FIGHTING, 3, LOG_NORMAL }, { "godsheal", do_godsheal, POS_FIGHTING, 3, LOG_NORMAL }, { "guide", do_guide, POS_STANDING, 3, LOG_NORMAL }, { "phase", do_phase, POS_STANDING, 0, LOG_NORMAL }, { "pray", do_pray, POS_MEDITATING, 1, LOG_NORMAL }, { "adamantium", do_adamantium, POS_STANDING, 3, LOG_NORMAL }, { "celestial", do_celestial, POS_STANDING, 3, LOG_NORMAL }, { "obtain", do_obtain, POS_FIGHTING, 3, LOG_NORMAL }, { "redeem", do_redeem, POS_FIGHTING, 3, LOG_NORMAL }, { "warps", do_warps, POS_FIGHTING, 3, LOG_NORMAL }, { "steed", do_steed, POS_FIGHTING, 3, LOG_NORMAL }, { "spinkick", do_spinkick, POS_FIGHTING, 3, LOG_NORMAL }, { "backfist", do_backfist, POS_FIGHTING, 3, LOG_NORMAL }, { "elbow", do_elbow, POS_FIGHTING, 3, LOG_NORMAL }, { "sweep", do_sweep, POS_FIGHTING, 3, LOG_NORMAL }, { "reverse", do_reverse, POS_FIGHTING, 3, LOG_NORMAL }, { "knee", do_knee, POS_FIGHTING, 3, LOG_NORMAL }, { "shinkick", do_shinkick, POS_FIGHTING, 3, LOG_NORMAL }, { "palmstrike", do_palmstrike, POS_STANDING, 3, LOG_NORMAL }, { "chi", do_chi, POS_FIGHTING, 3, LOG_NORMAL }, { "chistorm", do_chistorm, POS_FIGHTING, 3, LOG_NORMAL }, { "spiritpower", do_spiritpower, POS_FIGHTING, 3, LOG_NORMAL }, { "deathtouch", do_deathtouch, POS_STANDING, 3, LOG_NORMAL }, { "healingtouch", do_healingtouch,POS_STANDING, 3, LOG_NORMAL }, { "relax", do_relax, POS_FIGHTING, 3, LOG_NORMAL }, { "hum", do_monktalk, POS_DEAD, 3, LOG_NORMAL }, { "monktalk", do_monktalk, POS_DEAD, 3, LOG_NORMAL }, { "blinding", do_blinding, POS_STANDING, 3, LOG_NORMAL }, { "inventory", do_inventory, POS_DEAD, 0, LOG_NORMAL }, { "immtalk", do_immtalk, POS_DEAD, 7, LOG_NORMAL }, { "hightalk", do_hightalk, POS_DEAD, 3, LOG_NORMAL }, { "miktalk", do_miktalk, POS_SLEEPING, 3, LOG_NORMAL }, { "principles", do_principles, POS_MEDITATING, 3, LOG_NORMAL }, { "michi", do_michi, POS_FIGHTING, 3, LOG_NORMAL }, { "doka", do_doka, POS_STANDING, 3, LOG_NORMAL }, { "kunoichi", do_stun, POS_FIGHTING, 3, LOG_NORMAL }, { "ngazumo", do_ngazumo, POS_STANDING, 3, LOG_NORMAL }, { "nekade", do_nekade, POS_FIGHTING, 3, LOG_NORMAL }, { "ninjapowers", do_ninjapowers, POS_FIGHTING, 3, LOG_NORMAL }, { "ipponsugi", do_ippon, POS_STANDING, 3, LOG_NORMAL }, { "harakiri", do_hara_kiri, POS_MEDITATING, 3, LOG_NORMAL }, { "circle", do_circle, POS_FIGHTING, 3, LOG_NORMAL }, { "discipline", do_discipline, POS_STANDING, 3, LOG_NORMAL }, { "kakusu", do_kakusu, POS_MEDITATING, 3, LOG_NORMAL }, { "kanzuite", do_kanzuite, POS_MEDITATING, 3, LOG_NORMAL }, { "tetsubishi", do_tetsubishi, POS_STANDING, 3, LOG_NORMAL }, { "caltrops", do_caltrops, POS_STANDING, 3, LOG_NORMAL }, { "mienaku", do_mienaku, POS_FIGHTING, 3, LOG_NORMAL }, { "bomuzite", do_bomuzite, POS_MEDITATING, 3, LOG_NORMAL }, { "tsume", do_tsume, POS_FIGHTING, 3, LOG_NORMAL }, { "mitsukeru", do_mitsukeru, POS_MEDITATING, 3, LOG_NORMAL }, { "koryou", do_koryou, POS_MEDITATING, 3, LOG_NORMAL }, { "breath", do_breath, POS_FIGHTING, 0, LOG_NORMAL }, { "bounty", do_bounty, POS_SITTING, 3, LOG_NORMAL }, { "bountylist", do_bountylist, POS_SITTING, 3, LOG_NORMAL }, { "statcaps", do_statcaps, POS_STANDING, 2, LOG_NORMAL }, { "srestore", do_srestore, POS_STANDING, 2, LOG_NEVER }, { "thrustkick", do_thrustkick, POS_FIGHTING, 3, LOG_NORMAL }, { "flame", do_flame, POS_DEAD, 2, LOG_NORMAL }, { "fhands", do_flaminghands,POS_DEAD, 3, LOG_NORMAL }, { "donate", do_donate, POS_SITTING, 0, LOG_NORMAL }, /* * Informational commands. */ { "areas", do_areas, POS_DEAD, 0, LOG_NORMAL }, { "bug", do_bug, POS_DEAD, 99, LOG_NORMAL }, { "commands", do_commands, POS_DEAD, 0, LOG_NORMAL }, { "compare", do_compare, POS_SITTING, 0, LOG_NORMAL }, { "consider", do_consider, POS_SITTING, 0, LOG_NORMAL }, { "control", do_control, POS_STANDING, 3, LOG_NORMAL }, { "credits", do_credits, POS_DEAD, 0, LOG_NORMAL }, { "equipment", do_equipment, POS_DEAD, 0, LOG_NORMAL }, { "examine", do_examine, POS_SITTING, 0, LOG_NORMAL }, { "help", do_help, POS_DEAD, 0, LOG_NORMAL }, { "search", do_search, POS_DEAD, 0, LOG_NORMAL }, { "?", do_help, POS_DEAD, 0, LOG_NORMAL }, { "idea", do_idea, POS_DEAD, 99, LOG_NORMAL }, { "report", do_report, POS_DEAD, 0, LOG_NORMAL }, { "score", do_score, POS_DEAD, 0, LOG_NORMAL }, { "uniscore", do_uniscore, POS_DEAD, 10, LOG_NORMAL }, { "skill", do_skill, POS_MEDITATING, 0, LOG_NORMAL }, { "spells", do_spell, POS_MEDITATING, 0, LOG_NORMAL }, { "socials", do_socials, POS_DEAD, 0, LOG_NORMAL }, { "time", do_time, POS_DEAD, 0, LOG_NORMAL }, { "settime", do_timezone, POS_DEAD, 0, LOG_NORMAL }, { "gflags", do_gtime, POS_DEAD, 10, LOG_NORMAL }, { "timers", do_timer, POS_DEAD, 0, LOG_NORMAL }, { "typo", do_typo, POS_DEAD, 99, LOG_NORMAL }, { "weather", do_weather, POS_SITTING, 0, LOG_NORMAL }, { "who", do_who, POS_DEAD, 0, LOG_NORMAL }, { "wizlist", do_wizlist, POS_DEAD, 0, LOG_NORMAL }, { "testlist", do_tijlist, POS_DEAD, 0, LOG_NORMAL }, { "wiznet", do_wiznet, POS_DEAD, 7, LOG_NORMAL }, { "introduce", do_introduce, POS_STANDING, 1, LOG_NORMAL }, { "xemot", do_huh, POS_DEAD, 1, LOG_NORMAL }, { "xemote", do_xemote, POS_SITTING, 1, LOG_NORMAL }, { "xsocial", do_huh, POS_DEAD, 1, LOG_NORMAL }, { "xsocials", do_xsocials, POS_DEAD, 1, LOG_NORMAL }, { "chastity", do_chastity, POS_DEAD, 1, LOG_NORMAL }, { "vibrator", do_vibrator, POS_DEAD, 1, LOG_NORMAL }, { "showcompres", do_showcompress,POS_DEAD, 12, LOG_NORMAL }, { "showmxp", do_showmxp, POS_DEAD, 12, LOG_NORMAL }, /* * Configuration commands. */ { "alignment", do_alignment, POS_DEAD, 0, LOG_NORMAL }, { "channels", do_channels, POS_DEAD, 0, LOG_NORMAL }, { "config", do_config, POS_DEAD, 0, LOG_NORMAL }, { "description", do_description, POS_DEAD, 0, LOG_NORMAL }, { "profile", do_profile, POS_DEAD, 0, LOG_NORMAL }, { "password", do_password, POS_DEAD, 0, LOG_NEVER }, { "title", do_title, POS_DEAD, 0, LOG_NORMAL }, { "wimpy", do_wimpy, POS_DEAD, 0, LOG_NORMAL }, { "combatconfig", do_combatconfig, POS_DEAD, 0, LOG_NORMAL }, { "ansi", do_ansi, POS_DEAD, 0, LOG_NORMAL }, { "autoexit", do_autoexit, POS_DEAD, 0, LOG_NORMAL }, { "autocombexp", do_auto_combined_exp, POS_DEAD,0, LOG_NORMAL }, { "autoseeregen", do_auto_see_regen, POS_DEAD,0, LOG_NORMAL }, { "autoloot", do_autoloot, POS_DEAD, 0, LOG_NORMAL }, { "autogold", do_autogold, POS_DEAD, 0, LOG_NORMAL }, { "autosac", do_autosac, POS_DEAD, 0, LOG_NORMAL }, { "autotick", do_autotick, POS_DEAD, 0, LOG_NORMAL }, { "automessage", do_automessage, POS_DEAD, 0, LOG_NORMAL }, //{ "autobackup", do_autobackup, POS_DEAD, 0, LOG_NORMAL }, { "blank", do_blank, POS_DEAD, 0, LOG_NORMAL }, { "brief", do_brief, POS_DEAD, 0, LOG_NORMAL }, { "cprompt", do_cprompt, POS_DEAD, 0, LOG_NORMAL }, { "prompt", do_prompt, POS_DEAD, 0, LOG_NORMAL }, { "request", do_request, POS_DEAD, 0, LOG_NORMAL }, { "service", do_service, POS_DEAD, 9, LOG_NORMAL }, { "clearlist", do_clearlist, POS_DEAD, 13, LOG_NORMAL }, { "helplist", do_viewalist, POS_DEAD, 9, LOG_NORMAL }, /* * Communication commands. */ { "history", do_history, POS_DEAD, 0, LOG_NORMAL }, { "answer", do_answer, POS_SLEEPING, 0, LOG_NORMAL }, { "newbie", do_newbie, POS_SLEEPING, 0, LOG_NORMAL }, { "chat", do_chat, POS_DEAD, 0, LOG_NORMAL }, { "pagelen", do_pagelen, POS_DEAD, 0, LOG_NORMAL }, { ".", do_chat, POS_DEAD, 0, LOG_NORMAL }, { "emote", do_xemote, POS_SITTING, 0, LOG_NORMAL }, { ",", do_xemote, POS_SITTING, 0, LOG_NORMAL }, { "contact", do_contact, POS_DEAD, 0, LOG_NORMAL }, { "gtell", do_gtell, POS_DEAD, 0, LOG_NORMAL }, { ";", do_gtell, POS_DEAD, 0, LOG_NORMAL }, { "howl", do_howl, POS_DEAD, 3, LOG_NORMAL }, { "music", do_music, POS_SLEEPING, 0, LOG_NORMAL }, { "sing", do_music, POS_SLEEPING, 0, LOG_NORMAL }, { "board", do_board, POS_STANDING, 0, LOG_NORMAL }, { "note", do_note, POS_STANDING, 0, LOG_NORMAL }, { "pose", do_emote, POS_SITTING, 0, LOG_NORMAL }, { "quest", do_quest, POS_SITTING, 2, LOG_ALWAYS }, { "aquest", do_aquest, POS_RESTING, 2, LOG_NORMAL }, { "question", do_question, POS_SLEEPING, 0, LOG_NORMAL }, { "qtalk", do_qtalk, POS_SLEEPING, 0, LOG_NORMAL }, { "reply", do_reply, POS_MEDITATING, 0, LOG_NORMAL }, { "say", do_say, POS_MEDITATING, 0, LOG_NORMAL }, { "speak", do_speak, POS_MEDITATING, 0, LOG_NORMAL }, { "'", do_say, POS_MEDITATING, 0, LOG_NORMAL }, { "shout", do_shout, POS_SITTING, 0, LOG_NORMAL }, { "yell", do_yell, POS_SITTING, 0, LOG_NORMAL }, /* * Object manipulation commands. */ { "activate", do_activate, POS_STANDING, 0, LOG_NORMAL }, { "brandish", do_brandish, POS_SITTING, 0, LOG_NORMAL }, { "close", do_close, POS_SITTING, 0, LOG_NORMAL }, { "draw", do_draw, POS_FIGHTING, 0, LOG_NORMAL }, { "drink", do_drink, POS_SITTING, 0, LOG_NORMAL }, { "drop", do_drop, POS_SITTING, 0, LOG_SILENCE }, { "eat", do_eat, POS_SITTING, 0, LOG_NORMAL }, { "empty", do_empty, POS_SITTING, 0, LOG_NORMAL }, { "fill", do_fill, POS_SITTING, 0, LOG_NORMAL }, { "give", do_give, POS_SITTING, 0, LOG_ALWAYS }, { "hold", do_wear, POS_SITTING, 0, LOG_NORMAL }, { "list", do_list, POS_SITTING, 0, LOG_NORMAL }, { "lock", do_lock, POS_SITTING, 0, LOG_NORMAL }, { "morph", do_morph, POS_STANDING, 0, LOG_NORMAL }, { "open", do_open, POS_SITTING, 0, LOG_NORMAL }, { "pick", do_pick, POS_SITTING, 0, LOG_NORMAL }, { "press", do_press, POS_STANDING, 0, LOG_NORMAL }, { "pull", do_pull, POS_STANDING, 0, LOG_NORMAL }, { "put", do_put, POS_SITTING, 0, LOG_NORMAL }, { "quaff", do_quaff, POS_SITTING, 0, LOG_NORMAL }, { "recite", do_recite, POS_SITTING, 0, LOG_NORMAL }, { "remove", do_remove, POS_SITTING, 0, LOG_NORMAL }, { "sell", do_sell, POS_SITTING, 0, LOG_NORMAL }, { "sheath", do_sheath, POS_STANDING, 0, LOG_NORMAL }, { "take", do_get, POS_SITTING, 0, LOG_NORMAL }, { "reload", do_reload, POS_STANDING, 0, LOG_NORMAL }, { "unload", do_unload, POS_STANDING, 0, LOG_NORMAL }, { "read", do_read, POS_MEDITATING, 0, LOG_NORMAL }, { "shoot", do_shoot, POS_STANDING, 0, LOG_NORMAL }, { "throw", do_throw, POS_STANDING, 0, LOG_NORMAL }, { "turn", do_turn, POS_MEDITATING, 0, LOG_NORMAL }, { "twist", do_twist, POS_STANDING, 0, LOG_NORMAL }, { "sacrifice", do_sacrifice, POS_SITTING, 0, LOG_NORMAL }, { "psacrifice", do_psac, POS_STANDING, 0, LOG_NORMAL }, { "sacredinvis", do_sacredinvisibility,POS_DEAD, 3, LOG_NORMAL}, { "unlock", do_unlock, POS_SITTING, 0, LOG_NORMAL }, { "value", do_value, POS_SITTING, 0, LOG_NORMAL }, { "wear", do_wear, POS_SITTING, 0, LOG_NORMAL }, { "write", do_write, POS_MEDITATING, 0, LOG_NORMAL }, { "voodoo", do_voodoo, POS_SITTING, 0, LOG_NORMAL }, { "zap", do_zap, POS_SITTING, 0, LOG_NORMAL }, {"bet", do_bet, POS_STANDING, 0, LOG_NORMAL}, {"abet", do_abet, POS_STANDING, 0, LOG_NORMAL}, {"gamble", do_slot, POS_STANDING, 0, LOG_NORMAL}, /* * Combat commands. */ { "backstab", do_backstab, POS_STANDING, 0, LOG_NORMAL }, { "berserk", do_berserk, POS_FIGHTING, 0, LOG_NORMAL }, { "bs", do_backstab, POS_STANDING, 0, LOG_NORMAL }, { "disarm", do_disarm, POS_FIGHTING, 0, LOG_NORMAL }, { "flee", do_flee, POS_FIGHTING, 0, LOG_NORMAL }, { "fightstyle", do_fightstyle, POS_FIGHTING, 3, LOG_NORMAL }, { "hurl", do_hurl, POS_STANDING, 0, LOG_NORMAL }, { "kick", do_kick, POS_FIGHTING, 0, LOG_NORMAL }, { "punch", do_punch, POS_STANDING, 0, LOG_NORMAL }, { "rescue", do_rescue, POS_FIGHTING, 0, LOG_NORMAL }, { "stance", do_stance, POS_FIGHTING, 0, LOG_NORMAL }, /* * Warlock Commands. */ { "dimmak", do_dimmak, POS_STANDING, 3, LOG_NORMAL }, { "spheres", do_spheres, POS_FIGHTING, 3, LOG_NORMAL }, { "perception", do_perception, POS_FIGHTING, 3, LOG_NORMAL }, { "objectgate", do_objectgate, POS_STANDING, 3, LOG_NORMAL }, { "mgate", do_mgate, POS_STANDING, 3, LOG_NORMAL }, { "polyappear", do_polyappear, POS_FIGHTING, 3, LOG_NORMAL }, { "discharge", do_discharge, POS_FIGHTING, 3, LOG_NORMAL }, { "telekinetics", do_telekinetics,POS_STANDING, 3, LOG_NORMAL }, { "calllightning", do_call_lightning,POS_FIGHTING, 3, LOG_NORMAL }, { "controlweather", do_controlweather,POS_STANDING, 3, LOG_NORMAL }, { "earthembrace", do_earthembrace,POS_FIGHTING, 3, LOG_NORMAL }, { "tempest", do_tempest, POS_STANDING, 3, LOG_NORMAL }, { "quintessence", do_quintessence,POS_FIGHTING, 3, LOG_NORMAL }, { "enchant", do_enchant, POS_STANDING, 3, LOG_NORMAL }, { "rubbing", do_rubbing, POS_FIGHTING, 3, LOG_NORMAL }, { "purification", do_purification,POS_FIGHTING, 3, LOG_NORMAL }, { "qblast", do_qblast, POS_FIGHTING, 3, LOG_NORMAL }, //vamp drain moved up { "drain", do_drain, POS_FIGHTING, 3, LOG_NORMAL }, { "drainmove", do_drainmove, POS_STANDING, 3, LOG_NORMAL }, { "hotienchi", do_hotienchi, POS_STANDING, 3, LOG_NORMAL }, { "littledeath", do_littledeath, POS_FIGHTING, 3, LOG_NORMAL }, { "betterbody", do_betterbody, POS_FIGHTING, 3, LOG_NORMAL }, { "shapechange", do_shapechange, POS_STANDING, 3, LOG_NORMAL }, { "layhands", do_layhands, POS_STANDING, 3, LOG_NORMAL }, { "analyze", do_analyze, POS_FIGHTING, 3, LOG_NORMAL }, { "alterstate", do_alterstate, POS_FIGHTING, 3, LOG_NORMAL }, { "alterweight", do_alterweight, POS_STANDING, 3, LOG_NORMAL }, { "enchantarmor", do_enchantarmor,POS_STANDING, 3, LOG_NORMAL }, { "hover", do_hover, POS_FIGHTING, 3, LOG_NORMAL }, // Shield { "impulse", do_command, POS_STANDING, 3, LOG_NORMAL }, { "probethoughts", do_unveil, POS_STANDING, 3, LOG_NORMAL }, // Possession { "untether", do_mshadow, POS_STANDING, 3, LOG_NORMAL }, { "callspirit", do_callspirit, POS_STANDING, 3, LOG_NORMAL }, { "spiritkiss", do_spiritkiss, POS_FIGHTING, 3, LOG_NORMAL }, { "awaken", do_zombie, POS_STANDING, 3, LOG_NORMAL }, { "spiritblast", do_spiritblast, POS_FIGHTING, 3, LOG_NORMAL }, { "breach", do_breach, POS_STANDING, 3, LOG_NORMAL }, /* * Arena Commands */ { "challenge", do_challenge, POS_STANDING, 3, LOG_NORMAL }, { "arenaagree", do_arenaagree, POS_STANDING, 3, LOG_NORMAL }, { "decline", do_decline, POS_STANDING, 3, LOG_NORMAL }, { "giveup", do_giveup, POS_STANDING, 3, LOG_NORMAL }, /* * Miscellaneous commands. */ { "accep", do_huh, POS_STANDING, 2, LOG_NORMAL }, { "accept", do_accept, POS_STANDING, 2, LOG_NORMAL }, { "autostance", do_autostance, POS_STANDING, 0, LOG_NORMAL }, { "artifact", do_artifact, POS_STANDING, 0, LOG_NORMAL }, { "priceless", do_priceless, POS_STANDING, 8, LOG_NORMAL }, { "birth", do_birth, POS_STANDING, 1, LOG_NORMAL }, { "blindfold", do_blindfold, POS_STANDING, 3, LOG_NORMAL }, { "breaku", do_huh, POS_STANDING, 2, LOG_NORMAL }, { "breakup", do_breakup, POS_STANDING, 2, LOG_NORMAL }, { "claim", do_claim, POS_STANDING, 0, LOG_NORMAL }, { "complete", do_complete, POS_STANDING, 0, LOG_NORMAL }, { "consen", do_huh, POS_STANDING, 1, LOG_NORMAL }, { "consent", do_consent, POS_STANDING, 1, LOG_NORMAL }, { "finger", do_finger, POS_SITTING, 0, LOG_NORMAL }, { "follow", do_follow, POS_SITTING, 0, LOG_NORMAL }, { "gag", do_gag, POS_STANDING, 3, LOG_NORMAL }, { "gift", do_gift, POS_STANDING, 0, LOG_NORMAL }, { "group", do_group, POS_DEAD, 0, LOG_NORMAL }, { "hide", do_hide, POS_STANDING, 0, LOG_NORMAL }, { "home", do_home, POS_STANDING, 0, LOG_NORMAL }, { "hunt", do_hunt, POS_STANDING, 0, LOG_NORMAL }, { "leaders", do_hiscore, POS_DEAD, 0, LOG_NORMAL }, { "hiscoset", do_hiscoset, POS_DEAD, 12, LOG_NORMAL }, { "locate", do_locate, POS_STANDING, 0, LOG_NORMAL }, { "moonhunt", do_moonhunt, POS_STANDING, 3, LOG_NORMAL }, { "practice", do_practice, POS_SLEEPING, 0, LOG_NORMAL }, { "propos", do_huh, POS_STANDING, 2, LOG_NORMAL }, { "propose", do_propose, POS_STANDING, 2, LOG_NORMAL }, { "qui", do_qui, POS_DEAD, 0, LOG_NORMAL }, { "quit", do_quit, POS_SLEEPING, 0, LOG_NORMAL }, { "recall", do_recall, POS_FIGHTING, 0, LOG_NORMAL }, { "escape", do_escape, POS_DEAD, 3, LOG_NORMAL }, { "/", do_recall, POS_FIGHTING, 0, LOG_NORMAL }, { "recharge", do_recharge, POS_STANDING, 0, LOG_NORMAL }, { "refresh", do_refresh, POS_STANDING, 0, LOG_NORMAL }, { "rent", do_rent, POS_DEAD, 0, LOG_NORMAL }, { "safe", do_safe, POS_STANDING, 0, LOG_NORMAL }, { "save", do_save, POS_DEAD, 0, LOG_NORMAL }, { "backup", do_backup, POS_DEAD, 0, LOG_NORMAL }, { "sleep", do_sleep, POS_SLEEPING, 0, LOG_NORMAL }, { "smother", do_smother, POS_STANDING, 0, LOG_NORMAL }, { "sneak", do_sneak, POS_STANDING, 0, LOG_NORMAL }, { "split", do_split, POS_SITTING, 0, LOG_NORMAL }, { "scan", do_scan, POS_SITTING, 0, LOG_NORMAL }, { "spy", do_spy, POS_SITTING, 0, LOG_NORMAL }, { "steal", do_steal, POS_STANDING, 0, LOG_NORMAL }, { "summon", do_summon, POS_DEAD, 0, LOG_NORMAL }, { "summoning", do_summoning, POS_STANDING, 3, LOG_NORMAL }, { "tie", do_tie, POS_STANDING, 3, LOG_NORMAL }, { "token", do_token, POS_STANDING, 2, LOG_NORMAL }, /* { "tokens", do_tokens, POS_DEAD, 0, LOG_NORMAL }, */ { "tokencount", do_tokencount, POS_DEAD, 0, LOG_NORMAL }, { "istoken", do_istoken, POS_STANDING, 14, LOG_ALWAYS }, { "etoken", do_dtoken, POS_STANDING, 2, LOG_NORMAL }, { "track", do_track, POS_STANDING, 0, LOG_NORMAL }, { "train", do_train, POS_DEAD, 0, LOG_NORMAL }, { "unpolymorph", do_unpolymorph, POS_STANDING, 3, LOG_NORMAL }, { "untie", do_untie, POS_STANDING, 3, LOG_NORMAL }, { "visible", do_visible, POS_SLEEPING, 0, LOG_NORMAL }, { "wake", do_wake, POS_SLEEPING, 0, LOG_NORMAL }, { "where", do_where, POS_SITTING, 0, LOG_NORMAL }, { "favor", do_favor, POS_STANDING, 0, LOG_NORMAL }, { "favour", do_favour, POS_STANDING, 0, LOG_NORMAL }, /*start drow section */ { "earthshatter", do_earthshatter,POS_FIGHTING, 3, LOG_NORMAL }, { "ncreate", do_ninjaeq, POS_STANDING, 3, LOG_NORMAL }, { "sign", do_sign, POS_FIGHTING, 2, LOG_NORMAL }, { "llothsfavor", do_llothsfavor, POS_STANDING, 3, LOG_NORMAL }, { "grant", do_grant, POS_STANDING, 3, LOG_NORMAL }, { "skills", do_skills, POS_STANDING, 3, LOG_NORMAL }, { "house", do_drows, POS_DEAD, 3, LOG_NORMAL }, { "drowsight", do_drowsight, POS_STANDING, 3, LOG_NORMAL }, { "drowshield", do_drowshield, POS_STANDING, 3, LOG_NORMAL }, { "drowfire", do_drowfire, POS_FIGHTING, 3, LOG_NORMAL }, { "drowhate", do_drowhate, POS_STANDING, 3, LOG_NORMAL }, { "drowpowers", do_drowpowers, POS_STANDING, 3, LOG_NORMAL }, { "darkness", do_darkness, POS_STANDING, 3, LOG_NORMAL }, { "shadowwalk", do_shadowwalk, POS_STANDING, 3, LOG_NORMAL }, { "drowcreate", do_drowcreate, POS_STANDING, 3, LOG_NORMAL }, { "garotte", do_garotte, POS_STANDING, 3, LOG_NORMAL }, { "spiderform", do_spiderform, POS_STANDING, 3, LOG_NORMAL }, { "driderform", do_driderform, POS_STANDING, 3, LOG_NORMAL }, { "darktendrils", do_darktendrils,POS_STANDING, 3, LOG_NORMAL }, { "fightdance", do_fightdance, POS_STANDING, 3, LOG_NORMAL }, {"chaosblast", do_chaosblast, POS_FIGHTING, 3, LOG_NORMAL }, {"dgarotte", do_dark_garotte,POS_STANDING, 3, LOG_NORMAL }, { "glamour", do_glamour , POS_RESTING, 3, LOG_NORMAL }, { "confusion", do_confusion, POS_FIGHTING, 3, LOG_NORMAL }, { "confuse", do_confuse, POS_FIGHTING, 3, LOG_NORMAL }, /* end drow */ // Phoenix //{ "pcry", do_phoenixcry, POS_DEAD, 3, LOG_NORMAL }, //BASTETADDITION { "bastetpowers", do_bastetpowers,POS_FIGHTING, 3, LOG_NORMAL }, { "bgifts", do_bgifts, POS_STANDING, 3, LOG_NORMAL }, { "pride", do_pride, POS_STANDING, 3, LOG_NORMAL }, { "purrr", do_purrr, POS_STANDING, 3, LOG_NORMAL }, // Garou Commands // Homid { "persuasion", do_persuasion, POS_STANDING, 3, LOG_NORMAL }, { "staredown", do_staredown, POS_FIGHTING, 3, LOG_NORMAL }, { "disquiet", do_disquiet, POS_FIGHTING, 3, LOG_NORMAL }, { "reshapeobj", do_reshape, POS_STANDING, 3, LOG_NORMAL }, { "cocoon", do_cocoon, POS_STANDING, 3, LOG_NORMAL }, // Metis { "quills", do_quills, POS_STANDING, 3, LOG_NORMAL }, { "burrow", do_burrow, POS_STANDING, 3, LOG_NORMAL }, { "nightsight", do_nightsight, POS_STANDING, 3, LOG_NORMAL }, { "wither", do_wither, POS_FIGHTING, 3, LOG_NORMAL }, /* totem gift */ // Lupus { "heightened", do_heightened, POS_FIGHTING, 3, LOG_NORMAL }, /* catfeet, auto */ { "gnaw", do_gnaw, POS_FIGHTING, 3, LOG_NORMAL }, { "elementgift", do_elementalgift,POS_FIGHTING, 3, LOG_NORMAL }, { "songbeast", do_songbeast, POS_STANDING, 3, LOG_NORMAL }, // Ragabash { "vanish", do_vanish, POS_STANDING, 3, LOG_NORMAL }, // no track { "blissful", do_blissful, POS_STANDING, 3, LOG_NORMAL }, { "lunasblessing", do_lunasblessing,POS_STANDING, 3, LOG_NORMAL }, { "whelpsbody", do_whelp, POS_STANDING, 3, LOG_NORMAL }, //Theurge { "motherstouch", do_mothers, POS_FIGHTING, 3, LOG_NORMAL }, //Grasp, Auto. { "spiritdrain", do_spiritdrain, POS_STANDING, 3, LOG_NORMAL }, { "feral", do_feral, POS_FIGHTING, 3, LOG_NORMAL }, { "malleable", do_malleable, POS_STANDING, 3, LOG_NORMAL }, /* Philodox */ { "granitewall", do_wallofgranite,POS_STANDING, 3, LOG_NORMAL }, //Everything else is auto /* Ahroun */ { "clenched", do_clenched, POS_FIGHTING, 3, LOG_NORMAL }, // Everything else is auto /* Black Furies */ { "bodywrack", do_bodywrack, POS_FIGHTING, 3, LOG_NORMAL }, // Everything else is Auto. /* Children of Gaia */ { "dazzle", do_dazzle, POS_FIGHTING, 3, LOG_NORMAL }, { "garouserenity", do_garouserenity,POS_FIGHTING, 3, LOG_NORMAL }, { "livingwoods", do_livingwood, POS_FIGHTING, 3, LOG_NORMAL }, // Everythin' Else is Auto /* Get of Fenris */ { "snarl", do_snarl, POS_FIGHTING, 3, LOG_NORMAL }, // Everythin' Else if Auto /* Red Talons */ { "avalanche", do_avalanche, POS_STANDING, 3, LOG_NORMAL }, { "barrage", do_barrage, POS_FIGHTING, 3, LOG_NORMAL }, { "vengeance", do_vengeance, POS_FIGHTING, 3, LOG_NORMAL }, /* Shadow Lords */ { "clapofthunder", do_clapofthunder,POS_STANDING, 3, LOG_NORMAL }, // Everythin' Else is Auto /* Silent Striders */ //moved gate up from below, vamp power { "gate", do_gate, POS_STANDING, 3, LOG_NORMAL }, { "gatemoon", do_gatemoon, POS_STANDING, 3, LOG_NORMAL }, { "reach", do_shadowplane, POS_STANDING, 3, LOG_NORMAL }, // EEIA /* Silver Fangs */ { "lunasavenger", do_lunasavenger,POS_FIGHTING, 3, LOG_NORMAL }, { "paws", do_paws, POS_FIGHTING, 3, LOG_NORMAL }, // Auto. /* StarGazers */ { "merciful", do_merciful, POS_FIGHTING, 3, LOG_NORMAL }, // Auto { "invis", do_invis, POS_DEAD, 7, LOG_NORMAL }, /* Uktena */ { "darkshroud", do_darkshroud, POS_STANDING, 3, LOG_NORMAL }, { "flamespirit", do_flamespirit, POS_FIGHTING, 3, LOG_NORMAL }, { "invisibility", do_invisibility,POS_STANDING, 3, LOG_NORMAL }, // AUTO! /* Wendigo */ { "camouflage", do_huh, POS_STANDING, 3, LOG_NORMAL }, { "cuttingwind", do_cuttingwind, POS_FIGHTING, 3, LOG_NORMAL }, { "cannibal", do_cannibalspirit,POS_STANDING, 3, LOG_NORMAL }, { "heartofice", do_heartofice, POS_STANDING, 3, LOG_NORMAL }, { "chillfrost", do_chillfrost, POS_STANDING, 3, LOG_NORMAL }, /* * Vampire and werewolf commands. */ { "beastwithin", do_beastwithin, POS_STANDING, 3, LOG_NORMAL }, { "possession", do_possession, POS_STANDING, 3, LOG_NORMAL }, { "powers", do_racepower, POS_DEAD, 3, LOG_NORMAL }, { "anarch", do_anarch, POS_STANDING, 3, LOG_NORMAL }, { "bite", do_bite, POS_STANDING, 3, LOG_NORMAL }, { "calm", do_calm, POS_STANDING, 3, LOG_NORMAL }, { "champions", do_champions, POS_STANDING, 3, LOG_NORMAL }, { "change", do_change, POS_STANDING, 3, LOG_NORMAL }, { "stats", do_stat, POS_SITTING, 3, LOG_NORMAL }, { "clandisc", do_clandisc, POS_SITTING, 3, LOG_NORMAL }, { "clanname", do_clanname, POS_STANDING, 9, LOG_ALWAYS }, { "lord", do_lord, POS_STANDING, 9, LOG_ALWAYS }, { "claw", do_claw, POS_SITTING, 3, LOG_NORMAL }, { "claws", do_claws, POS_SITTING, 3, LOG_NORMAL }, { "darkheart", do_darkheart, POS_STANDING, 3, LOG_NORMAL }, { "demonarmour", do_demonarmour, POS_STANDING, 3, LOG_NORMAL }, { "fangs", do_fangs, POS_SITTING, 3, LOG_NORMAL }, { "feed", do_feed, POS_SITTING, 3, LOG_NORMAL }, { "flex", do_flex, POS_SITTING, 3, LOG_NORMAL }, { "gcommand", do_fcommand, POS_STANDING, 3, LOG_NORMAL }, { "ghoul", do_ghoul, POS_STANDING, 3, LOG_NORMAL }, { "evileye", do_evileye, POS_STANDING, 3, LOG_NORMAL }, { "horns", do_horns, POS_STANDING, 3, LOG_NORMAL }, { "tail", do_tail, POS_STANDING, 3, LOG_NORMAL }, { "tailmonkey", do_tailmonkey, POS_FIGHTING, 3, LOG_NORMAL }, { "grab", do_grab, POS_STANDING, 3, LOG_NORMAL }, { "hooves", do_hooves, POS_STANDING, 3, LOG_NORMAL }, { "fhooves", do_flamehooves, POS_STANDING, 3, LOG_NORMAL }, { "bspikes", do_bodyspikes, POS_STANDING, 3, LOG_NORMAL }, { "daemonseed", do_demonseed, POS_STANDING, 3, LOG_NORMAL }, { "servant", do_servant, POS_STANDING, 3, LOG_NORMAL }, { "demondrain", do_demondrain, POS_FIGHTING, 3, LOG_NORMAL }, { "humanform", do_humanform, POS_SITTING, 2, LOG_NORMAL }, { "inconn", do_huh, POS_STANDING, 3, LOG_NORMAL }, { "inconnu", do_inconnu, POS_STANDING, 3, LOG_NORMAL }, { "inpart", do_inpart, POS_STANDING, 3, LOG_NORMAL }, { "leap", do_leap, POS_RESTING, 2, LOG_NORMAL }, { "leafwalk", do_leafwalk, POS_STANDING, 3, LOG_NORMAL }, { "lifespan", do_lifespan, POS_RESTING, 2, LOG_NORMAL }, { "majesty", do_majesty, POS_STANDING, 3, LOG_NORMAL }, { "mask", do_mask, POS_STANDING, 3, LOG_NORMAL }, { "mortal", do_mortal, POS_FIGHTING, 3, LOG_NORMAL }, { "umbra", do_shadowsight, POS_SITTING, 3, LOG_NORMAL }, { "nightsight", do_nightsight, POS_SITTING, 3, LOG_NORMAL }, { "offersoul", do_offersoul, POS_STANDING, 3, LOG_NORMAL }, { "pact", do_pact, POS_STANDING, 3, LOG_NORMAL }, { "poison", do_poison, POS_STANDING, 3, LOG_NORMAL }, { "pray", do_pray, POS_DEAD, 0, LOG_NORMAL }, { "rage", do_rage, POS_FIGHTING, 3, LOG_NORMAL }, { "readaura", do_readaura, POS_STANDING, 3, LOG_NORMAL }, { "regenerate", do_regenerate, POS_DEAD, 3, LOG_NORMAL }, { "roll", do_roll, POS_RESTING, 0, LOG_NORMAL }, { "rolldirt", do_rolldirt, POS_STANDING, 0, LOG_NORMAL }, { "pour", do_pour, POS_RESTING, 0, LOG_NORMAL }, { "stake", do_stake, POS_STANDING, 3, LOG_NORMAL }, { "scry", do_scry, POS_STANDING, 3, LOG_NORMAL }, { "serpent", do_serpent, POS_STANDING, 3, LOG_NORMAL }, { "shadowplane", do_shadowplane, POS_STANDING, 3, LOG_NORMAL }, { "shadowsight", do_shadowsight, POS_SITTING, 3, LOG_NORMAL }, { "shield", do_shield, POS_SITTING, 3, LOG_NORMAL }, { "teach", do_teach, POS_STANDING, 5, LOG_NORMAL }, { "gifts", do_gifts, POS_SITTING, 3, LOG_NORMAL }, { "tribe", do_tribe, POS_SITTING, 3, LOG_NORMAL }, { "travel", do_travel, POS_STANDING, 3, LOG_NORMAL }, { "truesight", do_truesight, POS_SITTING, 3, LOG_NORMAL }, { "upkeep", do_upkeep, POS_DEAD, 3, LOG_NORMAL }, { "vclan", do_vclan, POS_DEAD, 3, LOG_NORMAL }, { "weaponform", do_weaponform, POS_STANDING, 2, LOG_NORMAL }, { "web", do_web, POS_FIGHTING, 3, LOG_NORMAL }, // Next line by Unique 22/07/02 { "wwpowers", do_wwpowers, POS_STANDING, 3, LOG_NORMAL }, { "gunaya", do_web, POS_FIGHTING, 3, LOG_NORMAL }, { "trip", do_trip, POS_FIGHTING, 3, LOG_NORMAL }, { "orimasu", do_orimasu, POS_STANDING, 3, LOG_NORMAL }, { "mizotamouyo", do_mizotamouyo, POS_STANDING, 3, LOG_NORMAL }, { "wings", do_wings, POS_STANDING, 3, LOG_NORMAL }, { "klaive", do_klaive, POS_STANDING, 0, LOG_NORMAL }, { "affects", do_affects, POS_DEAD, 0, LOG_NORMAL }, { "afk", do_afk, POS_DEAD, 0, LOG_NORMAL }, { "dnd", do_busy, POS_DEAD, 8, LOG_NORMAL }, { "coding", do_coding, POS_DEAD, 13, LOG_NORMAL }, { "newbiepack", do_newbiepack, POS_DEAD, 0, LOG_NORMAL }, { "embrace", do_embrace, POS_DEAD, 3, LOG_NORMAL }, { "level", do_level, POS_DEAD, 0, LOG_NORMAL }, { "demonform", do_demonform, POS_STANDING, 1, LOG_NORMAL }, { "exp", do_level, POS_DEAD, 0, LOG_NORMAL }, { "generation", do_generation, POS_DEAD, 9, LOG_ALWAYS }, { "classset", do_class, POS_DEAD, 9, LOG_ALWAYS }, { "classme", do_classme, POS_STANDING, 2, LOG_NORMAL }, { "zuloform", do_zuloform, POS_STANDING, 0, LOG_NORMAL }, { "freeze", do_freeze, POS_DEAD, 9, LOG_ALWAYS }, { "immolate", do_immolate, POS_STANDING, 3, LOG_NORMAL }, { "freezeweap", do_wfreeze, POS_STANDING, 3, LOG_NORMAL }, { "caust", do_caust, POS_STANDING, 3, LOG_NORMAL }, { "leech", do_leech, POS_FIGHTING, 3, LOG_NORMAL }, { "blink", do_blink, POS_STANDING, 3, LOG_NORMAL }, { "inferno", do_inferno, POS_DEAD, 3, LOG_NORMAL }, { "unnerve", do_unnerve, POS_FIGHTING, 3, LOG_NORMAL }, { "eyespy", do_eyespy, POS_STANDING, 3, LOG_NORMAL }, /* Mage Stuff */ { "learnrune", do_learnrune, POS_STANDING, 4, LOG_NORMAL }, { "teachmastery", do_teachmastery,POS_STANDING, 5, LOG_NORMAL }, { "advance", do_advance, POS_STANDING, 6, LOG_NORMAL }, /* Highlander Stuff */ { "weaponteach", do_weaponteach, POS_STANDING, 3, LOG_NORMAL }, { "gainpowers", do_gainpowers, POS_STANDING, 3, LOG_NORMAL }, { "quickening", do_quickening, POS_MEDITATING, 3, LOG_NORMAL }, { "swordcraft", do_swordcraft, POS_FIGHTING, 3, LOG_NORMAL }, { "ancestralpath", do_ancestralpath, POS_STANDING, 3, LOG_NORMAL }, /* Gargoyle Powers - (C) Macademus 2000 */ { "endowment", do_endowment, POS_DEAD, 3, LOG_NORMAL }, /* * Malstars bag of fun. */ { "halloffame", do_halloffame, POS_STANDING, 3, LOG_NORMAL }, { "mdonate", do_mdonate, POS_STANDING, 3, LOG_NORMAL }, { "showretired", do_showretired, POS_STANDING, 10, LOG_NORMAL }, { "retire", do_retire, POS_STANDING, 3, LOG_NORMAL }, { "retireset", do_retireset, POS_STANDING, 11, LOG_ALWAYS }, /* * legend_clan.c - the clan code by Malstar */ { "addclan", do_addclan, POS_STANDING, 12, LOG_ALWAYS }, { "clanlistimm", do_clanlistimm, POS_STANDING, 10, LOG_NORMAL }, { "clanset", do_clanset, POS_STANDING, 12, LOG_ALWAYS }, { "clanindex", do_clanindex, POS_STANDING, 1, LOG_NORMAL }, { "clantable", do_clantable, POS_STANDING, 1, LOG_NORMAL }, { "clanedit", do_clanedit, POS_STANDING, 3, LOG_ALWAYS }, { "induct", do_induct, POS_STANDING, 3, LOG_ALWAYS }, { "outcast", do_outcast, POS_STANDING, 3, LOG_ALWAYS }, { "clantalk", do_nclantalk, POS_STANDING, 3, LOG_NORMAL }, { "deposit", do_deposit, POS_STANDING, 3, LOG_ALWAYS }, { "withdraw", do_withdraw, POS_STANDING, 3, LOG_ALWAYS }, { "claninfo", do_clanstatus, POS_STANDING, 3, LOG_NORMAL }, //Pfileeditor { "pfile", do_pfile, POS_DEAD, 13, LOG_ALWAYS }, { "lscan", do_logscan, POS_DEAD, 10, LOG_ALWAYS }, { "pscan", do_pfilescan, POS_DEAD, 10, LOG_ALWAYS }, //MONK New bits { "monkpowers", do_monkpowers, POS_STANDING, 3, LOG_NORMAL }, { "reverend", do_reverend, POS_DEAD, 3, LOG_NORMAL }, { "magickalshield", do_auranomagic, POS_STANDING, 5, LOG_NORMAL }, { "paragon", do_paragon, POS_DEAD, 6, LOG_NORMAL }, { "airmail", do_airmail, POS_DEAD, 11, LOG_NORMAL }, { "miniflags", do_miniflags, POS_DEAD, 2, LOG_NORMAL }, { "font", do_font, POS_DEAD, 13, LOG_NORMAL }, { "triviaset", do_trivia, POS_DEAD, 9, LOG_NORMAL }, { "triviashow", do_ptrivia, POS_DEAD, 1, LOG_NORMAL }, { "scramble", do_scramble, POS_DEAD, 9, LOG_NORMAL }, { "jailplayer", do_jail, POS_DEAD, 10, LOG_ALWAYS }, { "auction", do_auction, POS_STANDING, 2, LOG_NORMAL }, { "calculate", do_getexp, POS_DEAD, 2, LOG_NORMAL }, { "pptalk", do_ptalk, POS_DEAD, 11, LOG_NORMAL }, { "pchat", do_pchat, POS_DEAD, 11, LOG_NORMAL }, { "hint", do_hint, POS_DEAD, 0, LOG_NORMAL }, { "qkillsocket", do_qkillsocket, POS_DEAD, 13, LOG_ALWAYS }, { "tag", do_tag, POS_STANDING, 2, LOG_NORMAL }, { "notag", do_notag, POS_STANDING, 2, LOG_NORMAL }, { "punload", do_unloaddummy, POS_DEAD, 12, LOG_ALWAYS }, { "loadup", do_loaddummy, POS_DEAD, 12, LOG_ALWAYS }, { "boot", do_boot, POS_DEAD, 12, LOG_ALWAYS }, { "multiple", do_multiple, POS_DEAD, 9, LOG_NORMAL }, { "randomload", do_randomload, POS_DEAD, 11, LOG_ALWAYS }, { "statistics", do_statistics, POS_DEAD, 3, LOG_NORMAL }, { "ienter", do_ienter, POS_STANDING, 2, LOG_NORMAL }, { "iexit", do_iexit, POS_STANDING, 2, LOG_NORMAL }, { "makesave", do_makesave, POS_DEAD, 10, LOG_ALWAYS }, { "initleade", do_huh, POS_DEAD, 11, LOG_NORMAL }, { "initleaders", do_leaderclear, POS_DEAD, 11, LOG_ALWAYS }, { "capmessage", do_decapmessage, POS_STANDING, 3, LOG_NORMAL }, { "bitchsession", do_bitchsession,POS_DEAD, 11, LOG_NORMAL }, { "clearwarps", do_warpclear, POS_STANDING, 3, LOG_NORMAL }, { "pipe", do_pipe, POS_DEAD, 13, LOG_ALWAYS }, { "pkratio", do_pkratio, POS_STANDING, 3, LOG_NORMAL }, { "dempowers", do_dempowers, POS_STANDING, 3, LOG_NORMAL }, { "pwhere", do_pwhere, POS_DEAD, 10, LOG_NORMAL }, { "owhere", do_owhere, POS_DEAD, 10, LOG_NORMAL }, { "pdelete", do_pdelete, POS_DEAD, 12, LOG_ALWAYS }, { "fset", do_fset, POS_DEAD, 10, LOG_ALWAYS }, { "spousetalk", do_wedtalk, POS_DEAD, 2, LOG_NEVER }, { "empower", do_empower, POS_DEAD, 13, LOG_ALWAYS }, { "revoke", do_revoke, POS_DEAD, 13, LOG_ALWAYS }, { "updatetick", do_updatetick, POS_DEAD, 9, LOG_ALWAYS }, { "highlanders", do_hclan, POS_DEAD, 3, LOG_NORMAL }, {"highlanderpowers",do_highlanderpowers,POS_STANDING,3, LOG_NORMAL }, { "nclan", do_nclan, POS_DEAD, 3, LOG_NORMAL }, { "monastry", do_monastry, POS_DEAD, 3, LOG_NORMAL }, { "noreply", do_noreply, POS_DEAD, 2, LOG_NORMAL }, { "ignore", do_ignore, POS_DEAD, 0, LOG_NORMAL }, { "unignore", do_unignore, POS_DEAD, 0, LOG_NORMAL }, { "rsilence", do_rsilence, POS_DEAD, 9, LOG_ALWAYS }, { "charshow", do_chardump, POS_DEAD, 13, LOG_NORMAL }, { "dismember", do_dismember, POS_DEAD, 10, LOG_ALWAYS }, { "sinbin", do_chartimers, POS_DEAD, 10, LOG_NORMAL }, { "loadarti", do_loadarti, POS_DEAD, 13, LOG_NORMAL }, { "totalscore", do_totalscore, POS_DEAD, 2, LOG_NORMAL }, { "rogue", do_rogue, POS_STANDING, 3, LOG_NORMAL }, { "leaveclan", do_leaveclan, POS_STANDING, 3, LOG_NEVER }, { "ronin", do_ronin, POS_STANDING, 3, LOG_NORMAL }, { "demongate", do_dgate, POS_STANDING, 3, LOG_NORMAL }, { "entrails", do_entrails, POS_DEAD, 3, LOG_NORMAL }, { "notravel", do_notravel, POS_STANDING, 3, LOG_NORMAL }, /* { "induct", do_claninduct, POS_STANDING, 3, LOG_NORMAL }, { "outcast", do_clanoutcast, POS_STANDING, 3, LOG_NORMAL },*/ { "cset", do_cset, POS_DEAD, 12, LOG_ALWAYS }, { "katana", do_katana, POS_STANDING, 3, LOG_NORMAL }, { "discset", do_discset, POS_DEAD, 10, LOG_ALWAYS }, { "giftset", do_giftset, POS_DEAD, 10, LOG_ALWAYS }, { "delet", do_dele, POS_DEAD, 2, LOG_NORMAL }, { "delete", do_delete, POS_DEAD, 2, LOG_NEVER }, { "pardon", do_pardon, POS_DEAD, 9, LOG_NORMAL }, { "clearparadox", do_ppardon, POS_DEAD, 9, LOG_NORMAL }, { "smite", do_smite, POS_DEAD, 11, LOG_ALWAYS }, { "retribution", do_retribution, POS_DEAD, 11, LOG_NORMAL }, { "recolor", do_recolour, POS_DEAD, 5, LOG_ALWAYS }, { "wizconfig", do_wizconfig, POS_DEAD, 10, LOG_ALWAYS }, { "prepare", do_prepare, POS_DEAD, 11, LOG_NORMAL }, { "selfrestore", do_selfrestore, POS_DEAD, 3, LOG_NORMAL }, { "obeah", do_obeah, POS_DEAD, 3, LOG_NORMAL }, { "anesthetic", do_anesthetic, POS_DEAD, 3, LOG_NORMAL }, { "panacea", do_panacea, POS_DEAD, 3, LOG_NORMAL }, { "renew", do_renew, POS_DEAD, 3, LOG_NORMAL }, { "prefix", do_prefix, POS_DEAD, 9, LOG_NORMAL }, { "loadhelp", do_loadhelp, POS_DEAD, 12, LOG_ALWAYS }, { "monkcreate", do_monkeq, POS_SITTING, 3, LOG_NORMAL }, { "apply", do_apply, POS_SITTING, 2, LOG_NORMAL }, /* { "applytokens", do_applytokens, POS_STANDING, 3, LOG_NORMAL }, */ { "astat", do_astat, POS_DEAD, 9, LOG_NORMAL }, { "aclear", do_aclear, POS_DEAD, 9, LOG_NORMAL }, { "alock", do_alock, POS_DEAD, 9, LOG_NORMAL }, { "pclear", do_pclear, POS_DEAD, 9, LOG_NORMAL }, { "pinfo", do_pinfo, POS_DEAD, 9, LOG_ALWAYS }, { "system", do_shell, POS_DEAD, 12, LOG_NORMAL }, { "pmort", do_pmort, POS_DEAD, 10, LOG_NORMAL }, { "pstat", do_pstat, POS_DEAD, 9, LOG_NORMAL }, { "renamep", do_renamep, POS_DEAD, 12, LOG_ALWAYS }, { "waitplayer", do_waitplayer, POS_DEAD, 13, LOG_ALWAYS }, { "pshow", do_pshow, POS_DEAD, 9, LOG_NORMAL }, { "version", do_version, POS_DEAD, 2, LOG_NORMAL }, { "pack", do_pack, POS_DEAD, 7, LOG_NORMAL }, { "makepreg", do_makepreg, POS_DEAD, 11, LOG_NORMAL }, { "abortion", do_abortion, POS_DEAD, 11, LOG_NORMAL }, { "topxp", do_top, POS_DEAD, 2, LOG_NORMAL }, { "popular", do_popular, POS_DEAD, 2, LOG_NORMAL }, { "popitem", do_popitem, POS_DEAD, 12, LOG_NORMAL }, { "doublexp", do_doublexp, POS_DEAD, 12, LOG_ALWAYS }, { "reimb", do_reimb, POS_DEAD, 10, LOG_ALWAYS }, { "resetpass", do_resetpassword,POS_DEAD, 13, LOG_NORMAL }, { "classcount", do_class_count, POS_DEAD, 12, LOG_NORMAL }, { "objectscry", do_objectscry, POS_STANDING, 1, LOG_NORMAL }, { "divert", do_divert, POS_FIGHTING, 1, LOG_NORMAL }, // Highlander shit { "healself", do_highlanderheal,POS_DEAD, 3, LOG_NORMAL }, { "sensequickening",do_sensequickening,POS_DEAD, 3, LOG_NORMAL }, { "hempower", do_hempower, POS_DEAD, 3, LOG_NORMAL }, { "bladespin", do_bladespin, POS_FIGHTING, 3, LOG_NORMAL }, { "theft", do_theft, POS_STANDING, 3, LOG_NORMAL }, { "diablerise", do_diablerise, POS_STANDING, 3, LOG_ALWAYS }, { "scream", do_scream, POS_STANDING, 3, LOG_NORMAL }, { "preserve", do_preserve, POS_STANDING, 3, LOG_NORMAL }, { "spiritguard", do_spiritguard, POS_STANDING, 3, LOG_NORMAL }, { "spiritgate", do_spiritgate, POS_STANDING, 3, LOG_NORMAL }, { "bonemod", do_bonemod, POS_STANDING, 3, LOG_NORMAL }, { "fleshcraft", do_fleshcraft, POS_STANDING, 3, LOG_NORMAL }, { "zombie", do_zombie, POS_STANDING, 3, LOG_NORMAL }, { "beckon", do_beckon, POS_STANDING, 3, LOG_NORMAL }, { "share", do_share, POS_STANDING, 3, LOG_NORMAL }, { "frenzy", do_frenzy, POS_FIGHTING, 3, LOG_NORMAL }, { "serenity", do_serenity, POS_FIGHTING, 3, LOG_NORMAL }, { "pigeon", do_pigeon, POS_STANDING, 3, LOG_NORMAL }, { "lamprey", do_lamprey, POS_STANDING, 3, LOG_NORMAL }, { "shroud", do_shroud, POS_STANDING, 3, LOG_NORMAL }, { "shadowstep", do_shadowstep, POS_STANDING, 3, LOG_NORMAL }, { "mindblast", do_mindblast, POS_STANDING, 3, LOG_NORMAL }, { "entrance", do_entrance, POS_STANDING, 3, LOG_NORMAL }, { "awe", do_awe, POS_STANDING, 3, LOG_NORMAL }, { "spit", do_spit, POS_FIGHTING, 3, LOG_NORMAL }, { "assassinate", do_assassinate, POS_FIGHTING, 3, LOG_NORMAL }, { "bloodagony", do_bloodagony, POS_STANDING, 3, LOG_NORMAL }, { "infirmity", do_infirmity, POS_STANDING, 3, LOG_NORMAL }, { "vsilence", do_death, POS_FIGHTING, 3, LOG_NORMAL }, { "taste", do_taste, POS_STANDING, 3, LOG_NORMAL }, { "cauldron", do_cauldron, POS_FIGHTING, 3, LOG_NORMAL }, { "tide", do_tide, POS_STANDING, 3, LOG_NORMAL }, { "potency", do_potency, POS_STANDING, 3, LOG_NORMAL }, { "unveil", do_unveil, POS_STANDING, 3, LOG_NORMAL }, { "astralwalk", do_astralwalk, POS_STANDING, 3, LOG_NORMAL }, { "mesmerise", do_mesmerise, POS_STANDING, 3, LOG_NORMAL }, { "acid", do_acid , POS_STANDING, 3, LOG_NORMAL }, { "conceal", do_conceal, POS_STANDING, 3, LOG_NORMAL }, { "earthmeld", do_earthmeld , POS_STANDING, 3, LOG_NORMAL }, { "flamehands", do_flamehands, POS_STANDING, 3, LOG_NORMAL }, { "tendrils", do_tendrils, POS_FIGHTING, 3, LOG_NORMAL }, { "plasma", do_plasma , POS_STANDING, 3, LOG_NORMAL }, { "dragonform", do_dragonform, POS_STANDING, 3, LOG_NORMAL }, { "guardian", do_guardian, POS_STANDING, 3, LOG_NORMAL }, { "fear", do_fear, POS_FIGHTING, 3, LOG_NORMAL }, { "bloodwall", do_bloodwall, POS_STANDING, 3, LOG_NORMAL }, { "coil", do_coil, POS_STANDING, 3, LOG_NORMAL }, { "share", do_share, POS_STANDING, 3, LOG_NORMAL }, { "mirror", do_mirror, POS_STANDING, 3, LOG_NORMAL }, { "formillusion", do_formillusion,POS_STANDING, 3, LOG_NORMAL }, { "clone", do_clone, POS_STANDING, 3, LOG_NORMAL }, { "objectmask", do_objmask, POS_STANDING, 3, LOG_NORMAL }, { "hagswrinkles", do_hagswrinkles,POS_STANDING, 3, LOG_NORMAL }, { "putrefaction", do_putrefaction,POS_STANDING, 3, LOG_NORMAL }, { "ashes", do_ashes, POS_STANDING, 3, LOG_NORMAL }, { "withering", do_withering, POS_STANDING, 3, LOG_NORMAL }, { "bloodwater", do_bloodwater, POS_FIGHTING, 3, LOG_NORMAL }, { "gourge", do_gourge, POS_STANDING, 3, LOG_NORMAL }, { "gourgelife", do_dgourge, POS_STANDING, 3, LOG_NORMAL }, { "sharpen", do_sharpen, POS_STANDING, 3, LOG_NORMAL }, { "tongue", do_tongue, POS_FIGHTING, 3, LOG_NORMAL }, /* Wraith Powers { "weirdness", do_weirdness, POS_STANDING, 3, LOG_NORMAL }, { "fetter", do_fetter, POS_STANDING, 3, LOG_NORMAL }, { "sellbody", do_sellbody, POS_STANDING, 3, LOG_NORMAL }, { "sculpt", do_sculpt, POS_STANDING, 3, LOG_NORMAL }, { "gremlinize", do_gremlinize, POS_STANDING, 3, LOG_NORMAL }, { "muse", do_muse, POS_STANDING, 3, LOG_NORMAL }, { "charitable", do_charitable, POS_STANDING, 3, LOG_NORMAL }, { "withdrawl", do_withdrawl, POS_STANDING, 3, LOG_NORMAL }, { "wraithpowers", do_wraithpowers,POS_STANDING, 3, LOG_NORMAL }, { "arcanoi", do_arcanoi, POS_STANDING, 3, LOG_NORMAL }, { "enshroud", do_enshroud, POS_STANDING, 3, LOG_NORMAL }, { "jump", do_jump, POS_STANDING, 3, LOG_NORMAL }, { "oubliette", do_oubliette, POS_STANDING, 3, LOG_NORMAL }, { "soulsight", do_soulsight, POS_STANDING, 3, LOG_NORMAL }, { "coax", do_coax, POS_STANDING, 3, LOG_NORMAL }, { "secrets", do_secrets, POS_STANDING, 3, LOG_NORMAL }, { "purify", do_purify, POS_STANDING, 3, LOG_NORMAL }, { "defiance", do_defiance, POS_STANDING, 3, LOG_NORMAL }, { "statue", do_statue, POS_STANDING, 3, LOG_NORMAL }, { "materialize", do_materialize, POS_STANDING, 3, LOG_NORMAL }, { "surge", do_surge, POS_FIGHTING, 3, LOG_NORMAL }, { "objectride", do_objectride, POS_STANDING, 3, LOG_NORMAL }, { "itemjump", do_itemjump, POS_STANDING, 3, LOG_NORMAL }, { "dirge", do_dirge, POS_STANDING, 3, LOG_NORMAL }, { "ballad", do_ballad, POS_STANDING, 3, LOG_NORMAL }, { "crescendo", do_crescendo, POS_STANDING, 3, LOG_NORMAL }, { "requiem", do_requiem, POS_STANDING, 3, LOG_NORMAL }, { "imitate", do_imitate, POS_STANDING, 3, LOG_NORMAL }, { "rend", do_rend, POS_FIGHTING, 3, LOG_NORMAL }, { "bodyshape", do_bodyshape, POS_STANDING, 3, LOG_NORMAL }, { "pinging", do_pinging, POS_STANDING, 3, LOG_NORMAL }, { "wraithgrasp", do_wraithgrasp, POS_STANDING, 3, LOG_NORMAL }, { "stonehand", do_stonehand, POS_FIGHTING, 3, LOG_NORMAL }, { "pyro", do_pyro, POS_STANDING, 3, LOG_NORMAL }, { "obliviate", do_obliviate, POS_FIGHTING, 3, LOG_NORMAL }, { "weirdness", do_weirdness, POS_STANDING, 3, LOG_NORMAL }, { "befuddlement", do_befuddlement,POS_STANDING, 3, LOG_NORMAL }, { "ether", do_ether, POS_STANDING, 3, LOG_NORMAL }, { "tempus", do_tempus, POS_STANDING, 3, LOG_NORMAL }, { "lucidity", do_lucidity, POS_STANDING, 3, LOG_NORMAL }, { "dreams", do_dreams, POS_STANDING, 3, LOG_NORMAL }, { "phantasmagoria", do_phantasmagoria,POS_STANDING, 3, LOG_NORMAL }, { "agon", do_agon, POS_STANDING, 3, LOG_NORMAL }, { "skinride", do_skinride, POS_STANDING, 3, LOG_NORMAL }, { "rein", do_rein, POS_STANDING, 3, LOG_NORMAL }, { "whispers", do_whispers, POS_STANDING, 3, LOG_NORMAL }, { "absorblife", do_fleshbond, POS_STANDING, 3, LOG_NORMAL }, */ { "wail", do_wraithtalk, POS_SLEEPING, 3, LOG_NORMAL }, { "martialry", do_martialry, POS_STANDING, 3, LOG_NORMAL }, { "wraithpowers", do_wraithpowers,POS_STANDING, 3, LOG_NORMAL }, { "weirdness", do_weirdness, POS_STANDING, 3, LOG_NORMAL }, { "sellbody", do_sellbody, POS_STANDING, 2, LOG_NEVER }, { "fetter", do_fetter, POS_DEAD, 3, LOG_NEVER }, { "manifest", do_manifest, POS_RESTING, 2, LOG_NEVER }, { "arcanoi", do_arcanoi, POS_RESTING, 2, LOG_NEVER }, { "shadowwings", do_shadowwings, POS_STANDING, 3, LOG_NEVER }, { "requiem", do_requiem, POS_STANDING, 3, LOG_NEVER }, { "oubliette", do_oubilette, POS_STANDING, 3, LOG_NEVER }, { "bodyshape", do_bodyshape, POS_STANDING, 3, LOG_NEVER }, { "deadsight", do_truesight, POS_STANDING, 3, LOG_NEVER }, { "ballad", do_ballad, POS_STANDING, 3, LOG_NEVER }, { "soulpact", do_soulpact, POS_STANDING, 3, LOG_NORMAL }, { "cutstrand", do_shield, POS_STANDING, 3, LOG_NEVER }, { "sensegrimlin", do_sensegrimlin,POS_STANDING, 3, LOG_NEVER }, { "enshroud", do_enshroud, POS_STANDING, 3, LOG_NEVER }, { "jump", do_jump, POS_STANDING, 3, LOG_NEVER }, { "lullaby", do_lullaby, POS_STANDING, 3, LOG_NEVER }, { "dirge", do_dirge, POS_STANDING, 3, LOG_NEVER }, { "websense", do_readaura, POS_STANDING, 2, LOG_NEVER }, { "severstrand", do_severstrand, POS_STANDING, 2, LOG_NEVER }, { "crescendo", do_crescendo, POS_STANDING, 3, LOG_NEVER }, { "befuddlement", do_befuddlement,POS_FIGHTING, 3, LOG_NEVER }, { "splicestrand", do_unveil, POS_STANDING, 3, LOG_NEVER }, { "sculpt", do_sculpt, POS_STANDING, 2, LOG_NEVER }, { "gremlinize", do_gremlinize, POS_STANDING, 3, LOG_NEVER }, { "wempower", do_wempower, POS_STANDING, 3, LOG_NEVER }, { "imitate", do_imitate, POS_STANDING, 3, LOG_NEVER }, { "tempestfugit", do_tempestfugit,POS_STANDING, 3, LOG_NEVER }, { "rend", do_withering, POS_STANDING, 3, LOG_NEVER }, { "foulhumor", do_foulhumor, POS_FIGHTING, 3, LOG_NORMAL }, { "surge", do_surge, POS_STANDING, 3, LOG_NORMAL }, { "shellride", do_shellride, POS_STANDING, 3, LOG_NEVER }, /* * * Online creation commands. */ { "aedit", do_aedit, POS_DEAD, 12, LOG_NORMAL }, { "redit", do_redit, POS_DEAD, 8, LOG_NORMAL }, { "oedit", do_oedit, POS_DEAD, 8, LOG_NORMAL }, { "hedit", do_hedit, POS_DEAD, 8, LOG_NORMAL }, { "hlist", do_hlist, POS_DEAD, 8, LOG_NORMAL }, { "ashow", do_ashow, POS_DEAD, 8, LOG_NORMAL }, { "rshow", do_rshow, POS_DEAD, 8, LOG_NORMAL }, { "oshow", do_oshow, POS_DEAD, 8, LOG_NORMAL }, { "mshow", do_mshow, POS_DEAD, 8, LOG_NORMAL }, { "resets", do_resets, POS_DEAD, 8, LOG_NORMAL }, { "resetarea", do_resetarea, POS_DEAD, 8, LOG_NORMAL }, { "asave", do_asave, POS_DEAD, 8, LOG_NORMAL }, { "alist", do_arealist, POS_DEAD, 8, LOG_NORMAL }, { "=", do_buildtalk, POS_DEAD, 8, LOG_NORMAL }, { "buildtalk", do_buildtalk, POS_DEAD, 8, LOG_NORMAL }, /* * Immortal commands. */ //Next line by unique { "newbieify", do_newbieify, POS_DEAD, 11, LOG_NORMAL }, { "todo", do_todo, POS_DEAD, 12, LOG_NORMAL }, { "immproject", do_todo2, POS_DEAD, 12, LOG_NORMAL }, { "clearartifact", do_clearartifact,POS_DEAD, 10, LOG_ALWAYS }, { "initartifact", do_initartitable,POS_DEAD, 10, LOG_ALWAYS }, { "takeapart", do_takeapart, POS_DEAD, 10, LOG_ALWAYS }, { "whereparts", do_whereparts, POS_DEAD, 10, LOG_ALWAYS }, { "puttogether", do_puttogether, POS_STANDING, 2, LOG_ALWAYS }, { "ban", do_ban, POS_DEAD, 10, LOG_ALWAYS }, { "bind", do_bind, POS_DEAD, 10, LOG_ALWAYS }, { "clearstats", do_clearstats, POS_STANDING, 0, LOG_NORMAL }, { "clearotherstats",do_clearstatsothers,POS_STANDING,10, LOG_NORMAL }, { "clearreply", do_clearreply, POS_STANDING, 0, LOG_NORMAL }, { "clearvam", do_clearvam, POS_STANDING, 1, LOG_NORMAL }, { "clearvamp", do_clearvamp, POS_STANDING, 11, LOG_ALWAYS }, { "create", do_create, POS_STANDING, 9, LOG_NORMAL }, { "copyover", do_newcopyover, POS_DEAD, 11, LOG_ALWAYS }, { "hotboot", do_copyover, POS_DEAD, 11, LOG_ALWAYS }, { "crashmud", do_crashmud, POS_DEAD, 13, LOG_ALWAYS }, { "deny", do_deny, POS_DEAD, 10, LOG_ALWAYS }, { "undeny", do_undeny, POS_DEAD, 10, LOG_ALWAYS }, { "disable", do_disable, POS_DEAD, 11, LOG_ALWAYS }, { "disconnect", do_disconnect, POS_DEAD, 10, LOG_ALWAYS }, { "depower", do_depower, POS_DEAD, 12, LOG_NORMAL }, { "divorce", do_divorce, POS_DEAD, 9, LOG_ALWAYS }, { "clearmarriage", do_clearmarriage, POS_STANDING, 8, LOG_ALWAYS }, { "familiar", do_familiar, POS_STANDING, 13, LOG_NORMAL }, { "fcommand", do_fcommand, POS_STANDING, 4, LOG_NORMAL }, { "marry", do_marry, POS_DEAD, 3, LOG_ALWAYS }, { "paradox", do_paradox, POS_DEAD, 12, LOG_ALWAYS }, { "qset", do_qset, POS_DEAD, 9, LOG_ALWAYS }, { "qstat", do_qstat, POS_DEAD, 9, LOG_ALWAYS }, { "qtrust", do_qtrust, POS_DEAD, 10, LOG_ALWAYS }, { "reboo", do_reboo, POS_DEAD, 12, LOG_NORMAL }, { "reboot", do_reboot, POS_DEAD, 12, LOG_ALWAYS }, { "shutdow", do_shutdow, POS_DEAD, 12, LOG_NORMAL }, { "shutdown", do_shutdown, POS_DEAD, 12, LOG_ALWAYS }, { "users", do_users, POS_DEAD, 9, LOG_NORMAL }, { "numlock", do_numlock, POS_DEAD, 11, LOG_ALWAYS }, { "newlock", do_newlock, POS_DEAD, 11, LOG_ALWAYS }, { "wizlock", do_wizlock, POS_DEAD, 11, LOG_ALWAYS }, { "nosafe", do_nosafe, POS_DEAD, 11, LOG_ALWAYS }, { "watche", do_huh, POS_DEAD, 2, LOG_NEVER }, { "watcher", do_watcher, POS_DEAD, 2, LOG_NEVER }, { "force", do_force, POS_DEAD, 9, LOG_ALWAYS }, { "exlist", do_exlist, POS_DEAD, 8, LOG_NORMAL }, { "vlist", do_vlist, POS_DEAD, 8, LOG_NORMAL }, { "unixsy", do_huh, POS_DEAD, 2, LOG_NORMAL }, { "unixsys", do_unixsys, POS_DEAD, 12, LOG_NEVER }, { "unixtail", do_unix_tail, POS_DEAD, 12, LOG_NORMAL }, { "makemud", do_make, POS_DEAD, 12, LOG_ALWAYS }, { "makewarn", do_makewarn, POS_DEAD, 12, LOG_ALWAYS }, { "mclear", do_mclear, POS_DEAD, 9, LOG_ALWAYS }, { "mload", do_mload, POS_DEAD, 8, LOG_ALWAYS }, { "mset", do_mset, POS_DEAD, 9, LOG_ALWAYS }, { "noemote", do_noemote, POS_DEAD, 7, LOG_NORMAL }, { "notell", do_notell, POS_DEAD, 7, LOG_NORMAL }, { "oclone", do_oclone, POS_DEAD, 9, LOG_ALWAYS }, { "oload", do_oload, POS_DEAD, 8, LOG_ALWAYS }, { "oset", do_oset, POS_DEAD, 9, LOG_ALWAYS }, { "otransfer", do_otransfer, POS_DEAD, 9, LOG_ALWAYS }, { "pload", do_pload, POS_DEAD, 12, LOG_ALWAYS }, { "preturn", do_preturn, POS_DEAD, 2, LOG_ALWAYS }, { "pset", do_pset, POS_DEAD, 10, LOG_ALWAYS }, { "purge", do_purge, POS_DEAD, 8, LOG_NORMAL }, { "qmake", do_qmake, POS_DEAD, 9, LOG_ALWAYS }, { "release", do_release, POS_DEAD, 9, LOG_ALWAYS }, { "relevel", do_relevel2, POS_DEAD, 1, LOG_ALWAYS }, { "editlevel", do_setrelevel, POS_DEAD, 12, LOG_ALWAYS }, { "delevel", do_delevel, POS_DEAD, 11, LOG_ALWAYS }, { "restore", do_restore, POS_DEAD, 7, LOG_ALWAYS }, { "rset", do_rset, POS_DEAD, 8, LOG_ALWAYS }, { "silence", do_silence, POS_DEAD, 7, LOG_NORMAL }, { "sla", do_sla, POS_DEAD, 10, LOG_NORMAL }, { "slay", do_slay, POS_DEAD, 10, LOG_ALWAYS }, { "special", do_special, POS_DEAD, 10, LOG_ALWAYS }, { "decapitate", do_decapitate, POS_STANDING, 3, LOG_SILENCE}, { "sset", do_sset, POS_DEAD, 10, LOG_ALWAYS }, { "tear", do_tear, POS_STANDING, 3, LOG_SILENCE}, { "transfer", do_transfer, POS_DEAD, 8, LOG_ALWAYS }, { "randarea", do_randarea, POS_DEAD, 12, LOG_ALWAYS }, { "transport", do_transport, POS_DEAD, 0, LOG_NORMAL }, { "at", do_at, POS_DEAD, 10, LOG_NORMAL }, { "backlist", do_backlist, POS_DEAD, 12, LOG_NORMAL }, { "bamfin", do_bamfin, POS_DEAD, 7, LOG_NORMAL }, { "bamfout", do_bamfout, POS_DEAD, 7, LOG_NORMAL }, { "color", do_color, POS_DEAD, 4, LOG_NORMAL }, { "magi", do_color, POS_DEAD, 4, LOG_NORMAL }, { "echo", do_gecho, POS_DEAD, 9, LOG_NORMAL }, { "gecho", do_echo, POS_DEAD, 13, LOG_ALWAYS }, { "pecho", do_pecho, POS_DEAD, 10, LOG_ALWAYS }, { "zecho", do_zecho, POS_DEAD, 10, LOG_ALWAYS }, { "goto", do_goto, POS_DEAD, 7, LOG_NORMAL }, { "holylight", do_holylight, POS_DEAD, 7, LOG_NORMAL }, { "incog", do_incog, POS_DEAD, 7, LOG_NORMAL }, { "log", do_log, POS_DEAD, 12, LOG_ALWAYS }, { "login", do_login, POS_DEAD, 9, LOG_NORMAL }, { "memory", do_memory, POS_DEAD, 10, LOG_NORMAL }, { "mfind", do_mfind, POS_DEAD, 8, LOG_NORMAL }, { "rfind", do_rfind, POS_DEAD, 8, LOG_NORMAL }, { "mstat", do_mstat, POS_DEAD, 8, LOG_NORMAL }, { "mwhere", do_mwhere, POS_DEAD, 8, LOG_NORMAL }, { "ofind", do_ofind, POS_DEAD, 8, LOG_NORMAL }, { "ostat", do_ostat, POS_DEAD, 8, LOG_NORMAL }, { "oswitch", do_oswitch, POS_DEAD, 9, LOG_NORMAL }, { "oreturn", do_oreturn, POS_DEAD, 9, LOG_NORMAL }, { "peace", do_peace, POS_DEAD, 9, LOG_NORMAL }, { "promote", do_promote, POS_DEAD, 9, LOG_NORMAL }, { "recho", do_recho, POS_DEAD, 9, LOG_ALWAYS }, { "reloadplayer", do_reloadp, POS_DEAD, 13, LOG_ALWAYS }, { "return", do_return, POS_DEAD, 9, LOG_NORMAL }, { "rstat", do_rstat, POS_DEAD, 8, LOG_NORMAL }, { "slookup", do_slookup, POS_DEAD, 8, LOG_NORMAL }, { "nslookup", do_slowns, POS_DEAD, 11, LOG_ALWAYS }, { "snoop", do_snoop, POS_DEAD, 9, LOG_NORMAL }, { "switch", do_switch, POS_DEAD, 9, LOG_ALWAYS }, { "vampire", do_vampire, POS_DEAD, 0, LOG_NORMAL }, { "vamptalk", do_vamptalk, POS_DEAD, 3, LOG_NORMAL }, { "ict", do_nclantalk, POS_DEAD, 12, LOG_NORMAL }, // { "clantalk", do_clantalk, POS_DEAD, 3, LOG_NORMAL }, { "ct", do_nclantalk, POS_DEAD, 3, LOG_NORMAL }, { "magetalk", do_magetalk, POS_DEAD, 4, LOG_NORMAL }, { "mageupkeep", do_mageupkeep, POS_STANDING, 4, LOG_NORMAL }, { "magecommands", do_magecommands,POS_STANDING, 4, LOG_NORMAL }, { "magepowers", do_magepowers, POS_STANDING, 3, LOG_NORMAL }, { "vtalk", do_vamptalk, POS_DEAD, 3, LOG_NORMAL }, { ">", do_vamptalk, POS_DEAD, 3, LOG_NORMAL }, { "vtwist", do_vtwist, POS_STANDING, 3, LOG_NORMAL }, { "mxp", do_mxp, POS_STANDING, 2, LOG_NORMAL }, { "sound", do_sound, POS_STANDING, 2, LOG_NORMAL }, { "mxptest", do_mxptest, POS_DEAD, 2, LOG_NORMAL }, { "defences", do_defences, POS_STANDING, 0, LOG_NORMAL }, { "cache", do_cache, POS_DEAD, 12, LOG_NORMAL }, { "immune", do_immune, POS_DEAD, 0, LOG_NORMAL }, { "[", do_fcommand, POS_SITTING, 3, LOG_NORMAL }, { "ftalk", do_ftalk, POS_DEAD, 2, LOG_NORMAL }, { "btalk", do_btalk, POS_DEAD, 2, LOG_NORMAL }, { "foundertalk", do_founder, POS_DEAD, 3, LOG_NORMAL }, { ":", do_immtalk, POS_DEAD, 7, LOG_NORMAL }, // Tag Commands { "ftag", do_ftag, POS_SLEEPING, 9, LOG_NORMAL }, { "autoftag", do_autoftag, POS_SLEEPING, 9, LOG_NORMAL }, { "ftagstats", do_ftagstats, POS_SLEEPING, 0, LOG_NORMAL }, { "ztag", do_ztag, POS_RESTING, 0, LOG_NORMAL }, { "redtalk", do_red, POS_RESTING, 0, LOG_NORMAL }, { "bluetalk", do_blue, POS_RESTING, 0, LOG_NORMAL }, { "countdown", do_countdown, POS_DEAD, 11, LOG_ALWAYS }, { "tokenquest", do_tokenquest, POS_DEAD, 11, LOG_ALWAYS }, { "smackdown", do_smackdown, POS_DEAD, 11, LOG_ALWAYS }, { "joinwar", do_joinwar, POS_STANDING, 3, LOG_NORMAL }, { "eliminate", do_eliminate, POS_STANDING, 3, LOG_SILENCE}, { "startwar", do_startwar, POS_DEAD, 12, LOG_ALWAYS }, { "viewwar", do_viewwar, POS_STANDING, 0, LOG_NORMAL }, { "endwar", do_endwar, POS_DEAD, 11, LOG_ALWAYS }, { "makewatcher", do_makewatcher, POS_DEAD, 13, LOG_NORMAL }, { "mercenary", do_mercenary, POS_STANDING, 3, LOG_NORMAL }, {"addchange", do_naddchange, POS_DEAD, 11, LOG_NORMAL }, { "testcommand", do_testcommand, POS_DEAD, 13, LOG_NORMAL }, { "changes", do_changes, POS_DEAD, 0, LOG_NORMAL }, { "editchange", do_chsave, POS_DEAD, 11, LOG_ALWAYS }, { "cleararti", do_purgeartitable,POS_DEAD, 13, LOG_ALWAYS }, { "distinv", do_distinv, POS_DEAD, 7, LOG_NORMAL }, { "sortareas", do_sortareas, POS_DEAD, 13, LOG_ALWAYS }, { "socedit", do_socedit, POS_DEAD, 9, LOG_NORMAL }, { "socshow", do_socshow, POS_DEAD, 9, LOG_NORMAL }, { "unclaim", do_unclaim, POS_DEAD, 2, LOG_NORMAL }, /* New Wolf Stuff */ { "senseaura", do_senseaura, POS_FIGHTING, 3, LOG_NORMAL }, { "wyld", do_wyld, POS_DEAD, 3, LOG_NORMAL }, { "banshee", do_banshee, POS_DEAD, 3, LOG_NORMAL }, { "balorsgaze", do_balor, POS_DEAD, 3, LOG_NORMAL }, { "brew", do_brew, POS_STANDING, 3, LOG_NORMAL }, { "halosun", do_halosun, POS_STANDING, 3, LOG_NORMAL }, { "shred", do_shred, POS_STANDING, 3, LOG_NORMAL }, { "talon", do_talons, POS_FIGHTING, 3, LOG_NORMAL }, { "devour", do_devour, POS_STANDING, 3, LOG_NORMAL }, {"lightofgod", do_lightofgod, POS_STANDING, 3, LOG_NORMAL }, {"vielshadow", do_vielshadow, POS_STANDING, 3, LOG_NORMAL }, {"chameleon", do_chameleon, POS_STANDING, 3, LOG_NORMAL }, {"fleshofmoltenrock",do_fleshofmoltenrock,POS_STANDING,3,LOG_NORMAL }, {"shademirror", do_shademirror, POS_STANDING, 3, LOG_NORMAL }, { "sunwalk", do_sunwalk, POS_STANDING, 3, LOG_NORMAL }, { "godbreath", do_gbreath, POS_STANDING, 3, LOG_NORMAL }, { "stokenquest", do_stoken, POS_DEAD, 14, LOG_ALWAYS }, { "hatch", do_hatch, POS_SITTING, 3, LOG_NORMAL }, { "droar", do_earthembrace,POS_SITTING, 3, LOG_NORMAL }, // { "consume", do_consume, POS_SITTING, 3, LOG_NORMAL }, { "dgain", do_dgain, POS_SITTING, 3, LOG_NORMAL }, { "dlick", do_lick, POS_SITTING, 3, LOG_NORMAL }, { "dragonarmor", do_dragonarmour,POS_SITTING, 3, LOG_NORMAL }, { "drackform", do_drackform, POS_SITTING, 3, LOG_NORMAL }, { "dbreath", do_dbreath, POS_SITTING, 3, LOG_NORMAL }, { "dconfuse", do_dconfuse, POS_SITTING, 3, LOG_NORMAL }, { "dpolymorph", do_dpolymorph, POS_SITTING, 3, LOG_NORMAL }, { "dfly", do_fly, POS_SITTING, 3, LOG_NORMAL }, { "dpeer", do_peer, POS_SITTING, 3, LOG_NORMAL }, { "consume", do_consume, POS_SITTING, 3, LOG_NORMAL }, { "gem", do_gem, POS_SITTING, 3, LOG_NORMAL }, { "horde", do_horde, POS_DEAD, 3, LOG_NORMAL }, { "dragonpowers", do_dragonpowers,POS_STANDING, 3, LOG_NORMAL }, { "faepowers", do_faepowers, POS_STANDING, 3, LOG_NORMAL }, { "grandeur", do_grandeur, POS_STANDING, 3, LOG_NORMAL }, { "faeawe", do_faeawe, POS_STANDING, 3, LOG_NORMAL }, { "dictum", do_dictum, POS_STANDING, 3, LOG_NORMAL }, { "captive", do_captive, POS_STANDING, 3, LOG_NORMAL }, { "faesight", do_faesight, POS_STANDING, 3, LOG_NORMAL }, { "ensnare", do_ensnare, POS_STANDING, 3, LOG_NORMAL }, { "passage", do_passage, POS_STANDING, 3, LOG_NORMAL }, { "flicker", do_flicker, POS_STANDING, 3, LOG_NORMAL }, { "flickering", do_wflicker, POS_STANDING, 2, LOG_NEVER }, { "hopscotch", do_hopscotch, POS_STANDING, 3, LOG_NORMAL }, { "wind", do_wind, POS_STANDING, 3, LOG_NORMAL }, { "augury", do_augury, POS_STANDING, 3, LOG_NORMAL }, { "boil", do_boil, POS_STANDING, 3, LOG_NORMAL }, { "arts", do_arts, POS_STANDING, 3, LOG_NORMAL }, { "faeenchant", do_faeenchant, POS_STANDING, 3, LOG_NORMAL }, { "choose", do_choose, POS_STANDING, 3, LOG_NORMAL }, { "weaver", do_weaver, POS_STANDING, 3, LOG_NORMAL }, { "cleave", do_cleave, POS_STANDING, 3, LOG_NORMAL }, { "fate", do_fate, POS_STANDING, 3, LOG_NORMAL }, { "holly", do_holly, POS_FIGHTING, 3, LOG_NORMAL }, { "fugue", do_fugue, POS_STANDING, 3, LOG_NORMAL }, { "effigy", do_effigy, POS_STANDING, 3, LOG_NORMAL }, { "fuddle", do_fuddle, POS_STANDING, 3, LOG_NORMAL }, { "gimmix", do_gimmix, POS_STANDING, 3, LOG_NORMAL }, { "boggan", do_boggan, POS_STANDING, 3, LOG_NORMAL }, { "eshu", do_eshu, POS_STANDING, 3, LOG_NORMAL }, { "nocker", do_nocker, POS_STANDING, 3, LOG_NORMAL }, { "pooka", do_pooka, POS_STANDING, 3, LOG_NORMAL }, { "redcap", do_redcap, POS_STANDING, 3, LOG_NORMAL }, { "satyr", do_satyr, POS_STANDING, 3, LOG_NORMAL }, { "sidhe", do_sidhe, POS_STANDING, 3, LOG_NORMAL }, { "sluagh", do_sluagh, POS_STANDING, 3, LOG_NORMAL }, { "troll", do_troll, POS_STANDING, 3, LOG_NORMAL }, { "teeth", do_teeth, POS_STANDING, 3, LOG_NORMAL }, { "dreameyes", do_dreameyes, POS_STANDING, 3, LOG_NORMAL }, { "faehorns", do_faehorns, POS_STANDING, 3, LOG_NORMAL }, { "faehooves", do_faehooves, POS_STANDING, 3, LOG_NORMAL }, { "freehold", do_freehold, POS_STANDING, 3, LOG_NORMAL }, { "viewaura", do_viewaura, POS_STANDING, 3, LOG_NORMAL }, { "oakenshield", do_oakenshield, POS_STANDING, 3, LOG_NORMAL }, { "veiled", do_veiled, POS_STANDING, 3, LOG_NORMAL }, { "tattle", do_scry, POS_STANDING, 3, LOG_NORMAL }, { "elderform", do_elderform, POS_STANDING, 3, LOG_NORMAL }, { "haunted", do_haunted, POS_FIGHTING, 3, LOG_NORMAL }, { "squirm", do_squirm, POS_STANDING, 3, LOG_NORMAL }, { "heather", do_heather, POS_STANDING, 3, LOG_NORMAL }, { "craftarmour", do_craftarmour, POS_STANDING, 3, LOG_NORMAL }, { "faecharm", do_faecharm, POS_STANDING, 3, LOG_NORMAL }, { "geasa", do_geasa, POS_STANDING, 3, LOG_NORMAL }, { "phantom", do_phantom, POS_STANDING, 3, LOG_NORMAL }, { "willow", do_willow, POS_STANDING, 3, LOG_NORMAL }, { "quicksilver", do_quicksilver, POS_STANDING, 3, LOG_NORMAL }, { "poisonweapon", do_poisonweapon,POS_STANDING, 3, LOG_NORMAL }, { "freezeweapon", do_freezeweapon,POS_STANDING, 3, LOG_NORMAL }, { "flameweapon", do_flameweapon, POS_STANDING, 3, LOG_NORMAL }, { "cover", do_cover, POS_STANDING, 3, LOG_NORMAL }, { "sap", do_sap, POS_STANDING, 3, LOG_NORMAL }, { "shapeshift", do_shapeshift, POS_STANDING, 3, LOG_NORMAL }, { "shadowshade", do_shadowshade, POS_STANDING, 3, LOG_NORMAL }, { "showcourt", do_showcourt, POS_STANDING, 3, LOG_NORMAL }, { "faesteed", do_faesteed, POS_STANDING, 3, LOG_NORMAL }, { "teethclench", do_teethclench, POS_STANDING, 3, LOG_NORMAL }, { "silentwalk", do_silentwalk, POS_STANDING, 3, LOG_NORMAL }, { "entrap", do_entrap, POS_STANDING, 3, LOG_NORMAL }, { "redclaws", do_redclaws, POS_STANDING, 3, LOG_NORMAL }, { "craftweapon", do_craftweapon, POS_STANDING, 3, LOG_NORMAL }, { "dreamtalk", do_dreamtalk, POS_DEAD, 3, LOG_NORMAL }, { "roar", do_dragtalk, POS_DEAD, 3, LOG_NORMAL }, { "dt", do_dreamtalk, POS_DEAD, 3, LOG_NORMAL }, { "dreaming", do_dreaming, POS_SLEEPING, 2, LOG_NORMAL }, //{ "phantomwings", do_phantomwings,POS_STANDING, 3, LOG_NORMAL }, //{ "phantommask", do_phantommask, POS_STANDING, 3, LOG_NORMAL }, { "protocol", do_protocol, POS_FIGHTING, 3, LOG_NORMAL }, //{ "purgeold", do_purgeoldchar,POS_DEAD, 13, LOG_ALWAYS }, //{ "transfering", do_transfering, POS_STANDING, 3, LOG_NORMAL }, //{ "shadowritual", do_shadowritual,POS_STANDING, 3, LOG_NORMAL }, { "parasite", do_parasite, POS_DEAD, 11, LOG_ALWAYS }, { "nochan", do_nochan, POS_DEAD, 8, LOG_NORMAL }, { "nobeep", do_nobeep, POS_DEAD, 2, LOG_NORMAL }, { "multexp", do_multexp, POS_DEAD, 12, LOG_ALWAYS }, { "multqps", do_multqp, POS_DEAD, 12, LOG_ALWAYS }, { "exacorpse", do_exacorpse, POS_DEAD, 2, LOG_NORMAL }, { "grantqp", do_grantqp, POS_DEAD, 10, LOG_ALWAYS }, { "findtoken", do_findstoken, POS_DEAD, 11, LOG_SILENCE }, { "doxlimit", do_paradoxlimit,POS_DEAD, 11, LOG_ALWAYS }, { "asperson", do_asperson, POS_DEAD, 11, LOG_ALWAYS }, { "offline", do_offline, POS_DEAD, 12, LOG_ALWAYS }, { "seize", do_seize, POS_DEAD, 12, LOG_ALWAYS }, { "checkmulti", do_multicheck, POS_DEAD, 10, LOG_NORMAL }, { "xname", do_shitlist, POS_STANDING, 12, LOG_NORMAL }, { "fvlist", do_fvlist, POS_DEAD, 12, LOG_NORMAL }, { "idecap", do_idecap, POS_DEAD, 13, LOG_ALWAYS }, { "gohome", do_gohome, POS_STANDING, 3, LOG_NORMAL }, { "mudinfo", do_mudinfo, POS_DEAD, 10, LOG_NORMAL }, // { "gethost", do_gethost, POS_DEAD, 10, LOG_NORMAL }, { "loadbackup", do_reloadplayer,POS_DEAD, 12, LOG_ALWAYS }, { "unfoldarea", do_unfoldarea, POS_DEAD, 13, LOG_ALWAYS }, { "spectate", do_spectate, POS_STANDING, 3, LOG_NORMAL }, { "vt100", do_vt100, POS_STANDING, 2, LOG_NORMAL }, { "selfpardon", do_selfpardon, POS_STANDING, 3, LOG_NORMAL }, { "sever", do_sever, POS_DEAD, 12, LOG_ALWAYS }, { "giveclan", do_giveclan, POS_STANDING, 3, LOG_ALWAYS }, { "automap", do_automap, POS_STANDING, 2, LOG_NORMAL }, { "soulsteal", do_soulsteal, POS_STANDING, 3, LOG_NORMAL }, { "soulpromote", do_promotesoul, POS_STANDING, 3, LOG_NORMAL }, { "lowergen", do_lowergen, POS_STANDING, 3, LOG_NORMAL }, { "gensteal", do_gensteal, POS_STANDING, 3, LOG_ALWAYS }, { "spellcheck", do_spellcheck, POS_STANDING, 2, LOG_NORMAL }, //{ "whotype", do_whotype, POS_DEAD, 0, LOG_NORMAL }, { "autoconsume", do_autoconsume, POS_STANDING, 3, LOG_NORMAL }, { "rules", do_rules, POS_DEAD, 0, LOG_NEVER }, { "vote", do_vote, POS_DEAD, 2, LOG_NORMAL }, { "polladd", do_polladd, POS_DEAD, 7, LOG_NORMAL }, { "polledit", do_polledit, POS_DEAD, 7, LOG_NORMAL }, { "pollstop", do_pollstop, POS_DEAD, 7, LOG_NORMAL }, { "pollshow", do_pollshow, POS_DEAD, 7, LOG_NORMAL }, //{ "clanshow", do_clanshow, POS_DEAD, 2, LOG_NORMAL }, { "lcommands", do_lcommands, POS_STANDING, 1, LOG_NORMAL }, { "tportal", do_tportal, POS_STANDING, 2, LOG_NORMAL }, { "trestore", do_trestore, POS_STANDING, 2, LOG_NORMAL }, { "pkready", do_pkready, POS_STANDING, 3, LOG_NORMAL }, { "amup", do_amup, POS_DEAD, 10, LOG_NORMAL }, { "psycho", do_psycho, POS_DEAD, 10, LOG_NORMAL }, { "mobquest", do_mobquest, POS_DEAD, 11, LOG_NORMAL }, /* * Kingdom Stuff */ /* { "krecall", do_krecall, POS_FIGHTING, 3, LOG_NORMAL}, { "kingdom" , do_kingdoms, POS_STANDING, 3, LOG_NORMAL}, { "kingdomlist", do_kinglist, POS_STANDING, 3, LOG_NORMAL}, { "promoterank", do_kpromote, POS_STANDING, 3, LOG_NORMAL}, { "demoterank", do_kdemote, POS_STANDING, 3, LOG_NORMAL}, { "disband", do_kdisband, POS_STANDING, 3, LOG_NEVER }, { "initiate", do_kinduct, POS_STANDING, 3, LOG_NORMAL}, { "expell", do_koutcast, POS_STANDING, 3, LOG_NORMAL}, { "defect", do_kdesert, POS_STANDING, 3, LOG_NORMAL}, { "kcmdset", do_kcmdset, POS_STANDING, 3, LOG_NORMAL}, { "abdicate", do_krenounce, POS_STANDING, 3, LOG_NORMAL}, { "wantk", do_clannable, POS_STANDING, 3, LOG_NORMAL}, { "khow", do_kshow, POS_DEAD, 9, LOG_NORMAL}, { "kedit", do_kedit, POS_DEAD, 9, LOG_NORMAL}, { "ktalk", do_ktalk, POS_DEAD, 2, LOG_NORMAL}, { "diplomacy", do_kdiplomacy, POS_DEAD, 3, LOG_NORMAL}, { "declare", do_kdeclare, POS_DEAD, 3, LOG_NORMAL}, { "kinginfo", do_kinginfo, POS_DEAD, 3, LOG_NORMAL}, { "depositqps", do_depositqps, POS_STANDING, 3, LOG_ALWAYS}, { "withdrawqps", do_withdrawqps, POS_STANDING, 3, LOG_ALWAYS}, */ //New Quotes stuff (copy of changes) by Unique { "addquote", do_naddquote, POS_DEAD, 11, LOG_NORMAL }, { "quotes", do_quotes, POS_DEAD, 0, LOG_NORMAL }, { "editquote", do_qusave, POS_DEAD, 11, LOG_ALWAYS }, { "genpoint", do_genpoints, POS_STANDING, 3, LOG_NORMAL }, { "register", do_register, POS_STANDING, 2, LOG_NORMAL }, { "reregister", do_reregister, POS_STANDING, 12, LOG_NORMAL }, /* * End of list. */ { "", 0, POS_DEAD, 0, LOG_NORMAL } }; bool check_speedwalk( CHAR_DATA *ch, char *argument ) { int len; int count; char buf[MSL]; len = strlen( argument ); if (ch->fight_timer > 0) { stcprintf(ch, "not with a fight timer!\n\r"); return FALSE; } for ( count = 1; count < len; count++ ) { switch (argument[count]) { case 'n': case 'N': case 's': case 'S': case 'e': case 'E': case 'w': case 'W': case 'u': case 'U': case 'd': case 'D': break; default: stcprintf(ch, "%c isn't a valid direction.\n\r", argument[count]); WAIT_STATE(ch, 4); return FALSE; break; } } argument++; while ( *argument != '\0' ) { sprintf(buf, "%c", *argument ); interpret( ch, buf ); WAIT_STATE(ch, 4); argument++; } return TRUE; } /* * The main entry point for executing commands. * Can be recursively called from 'at', 'order', 'force'. */ void interpret( CHAR_DATA *ch, char *argument ) { CHAR_DATA *unveil; CHAR_DATA *vch; char *reason; char arg[MAX_STRING_LENGTH]; char argu[MAX_STRING_LENGTH]; // char newer_argument[MAX_STRING_LENGTH]; // char new_argument[MAX_STRING_LENGTH]; char buf[MAX_STRING_LENGTH]; char buf2[MAX_STRING_LENGTH]; char command[MAX_STRING_LENGTH]; char logline[MAX_STRING_LENGTH]; char cmd_copy[MAX_STRING_LENGTH]; char memcheck[MSL]; int cmd; int trust; bool found, foundstar = FALSE; sh_int col = 0; int star = 0; int string_count = nAllocString ; int perm_count = nAllocPerm ; if (!ch || !ch->in_room) return; WRITE_STR(debug_last_character, ch->name); WRITE_STR(debug_last_command, argument ); debug_last_room = ch->in_room->vnum; sprintf(argu,"%s %s",arg,one_argument( argument, arg)); if ( IS_CLASS(ch, CLASS_DEMON) && IS_SET(ch->warp, WARP_SLOW) ) WAIT_STATE( ch, 10 ); if ( IS_GAR1(ch, GAROU_BLISSFUL) ) { stc("You lose your concentration and fade back into existance.\n\r",ch); REMOVE_BIT(ch->garou1, GAROU_BLISSFUL); } /* * Strip leading spaces. */ while ( isspace(*argument) ) argument++; if ( argument[0] == '\0' ) return; /* * No hiding. */ if (!IS_AFFECTED(ch, AFF_SNEAK) && (IS_NPC (ch) || (!IS_CLASS (ch, CLASS_NINJA) && !(IS_CLASS (ch, CLASS_FAE) && IS_SET (ch->kith, KITH_ESHU))))) REMOVE_BIT( ch->affected_by, AFF_HIDE ); /* * Implement freeze command. */ if ( !IS_NPC(ch) && IS_SET(ch->act, PLR_FREEZE) ) { send_to_char( "You're totally frozen!\n\r", ch ); return; } else if (number_percent() <= 25 && IS_SET(ch->newbits, NEW_CALM)) { send_to_char( "You really can't be bothered.\n\r", ch ); return; } else if (number_percent() <= 25 && ch->dconfuse_counter > 0) { switch (number_range (1, 8)) { default: do_chat(ch,argument); return; break; case 1: do_berserk(ch,""); return; break; case 2: do_cast(ch,"'dispel magic' self"); return; break; case 3: do_cast(ch,"gas"); return; break; case 4: do_chat(ch,argument); return; break; case 5: do_recall(ch,""); return; break; case 6: do_score(ch,""); return; break; case 7: do_who(ch,""); return; break; case 8: do_say(ch,argument); return; break; } } else if ( (number_percent() <= 25 ) && ( IS_SET (ch->flag2, AFF2_FROZEN ) ) ) { send_to_char( "You're frozen solid.\n\r", ch ); return; } /* if ( !IS_NPC(ch) && ch->desc && argument == ch->desc->incomm ) { // new_argument[0] = '\0'; // check_multi_cmd ( ch, argument, new_argument ); // argument = new_argument; // if (argument[0] == ch->pcdata->speedchar) // { // newer_argument[0] = '\0'; // check_speedwalk(ch, argument); // return; } } */ if ( !IS_IMMORTAL(ch) && !IS_NPC(ch) && IS_SET(ch->flag2, EXTRA_AFK) && str_cmp(argument, "afk")) do_afk(ch,""); if ( !IS_NPC(ch) && IS_SET(ch->flag2, EXTRA_CODING)&& str_cmp(argument, "coding") ) do_coding(ch,""); /* * Grab the command word. * Special parsing so ' can be a command, * also no spaces needed after punctuation. */ strcpy( logline, argument ); strcpy( cmd_copy, argument ); strcpy( buf, argument); if ( !isalpha(argument[0]) && !isdigit(argument[0]) ) { command[0] = argument[0]; command[1] = '\0'; argument++; while ( isspace(*argument) ) argument++; } else { argument = one_argument( argument, command ); } if (command[strlen(command) - 1] == '*') { command[strlen(command) - 1] = '\0'; loc_to_char(ch); for ( cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++ ) { if ((!str_prefix(command, cmd_table[cmd].name) || strlen(command) == 0) && can_interpret(ch, cmd)) { foundstar = TRUE; star++; sprintf( buf, "%-15s", cmd_table[cmd].name ); send_to_char( buf, ch ); if ( ++col % 5 == 0 ) send_to_char( "\n\r", ch ); } } if (col % 5 != 0 && foundstar) send_to_char("\n\r", ch); if (foundstar && star != 0) { sprintf(buf, "#w%d command%s found.#n", star, (star > 1) ? "s" : ""); divide7_to_char(ch); cent_to_char(buf, ch); divide7_to_char(ch); } if (!foundstar) { divide7_to_char(ch); cent_to_char("#wNo commands found.#n", ch); divide7_to_char(ch); } return; } /* * Look for command in command table. */ if (!IS_NPC(ch) && ch->pcdata->evilchat != NULL) { CHAR_DATA *temp; found = FALSE; trust = get_trust( ch ); for ( cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++ ) { sprintf( buf2, "%s@", cmd_table[cmd].name ); if ( command[0] == cmd_table[cmd].name[0] && !str_prefix( command, cmd_table[cmd].name ) && (cmd_table[cmd].level <= trust || is_name(cmd_table[cmd].name, ch->empowered)) && !is_name(buf2, ch->empowered) ) { if (!str_cmp( cmd_table[cmd].name, "beep" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "control" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "command" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "kill" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "warps" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "harakiri")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "srestore")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "donate" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "alignment")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "config" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "description")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "profile" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "title" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "wimpy" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "prompt" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "cprompt" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "impulse" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "challenge")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "arenaagree")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "giveup" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "consent" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "propose" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "accept" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "token" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "etoken" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "teachmastery")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "selfrestore")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "diablerie")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "selfpardon")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "giveclan")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "soulsteal")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "gensteal")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "disband" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "expell" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "defect" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "promoterank")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "tportal" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "trestore")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "order" )) found = TRUE; } } temp = ch; if (found) ch = ch->pcdata->evilchat; temp->pcdata->evilchat = NULL; } found = FALSE; trust = get_trust( ch ); for ( cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++ ) { sprintf( buf2, "%s@", cmd_table[cmd].name ); if ( command[0] == cmd_table[cmd].name[0] && !str_prefix( command, cmd_table[cmd].name ) && (cmd_table[cmd].level <= trust || is_name(cmd_table[cmd].name, ch->empowered)) && !is_name(buf2, ch->empowered) ) { if (IS_HEAD(ch,LOST_HEAD) || IS_EXTRA(ch,EXTRA_OSWITCH) ) { if (!str_cmp( cmd_table[cmd].name, "say" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "'" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "immtalk" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "ftalk" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "btalk" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, ":" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "chat" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "." )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "exits" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "emote" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "tell" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "order" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "weather" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "where" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "safe" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "scan" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "spy" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "oreturn" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "preturn" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "roll" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "pour" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "leap" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "lifespan" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "nightsight" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "truesight" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "horns" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "fangs" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "cast" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "plasma" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "ashes" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "statue" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "itemjump" )) found = TRUE; else if (!str_cmp(cmd_table[cmd].name, "dpolymorph") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "quit" ) && !IS_NPC(ch) && ch->pcdata->obj_vnum != 0) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "humanform" ) && !IS_NPC(ch) && ch->pcdata->obj_vnum != 0) found = TRUE; else { send_to_char( "Not without a body!\n\r", ch ); return; } } else if (IS_SET(ch->more, MORE_JAIL) ) { if (!str_cmp( cmd_table[cmd].name, "save") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "chat") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "look") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "say") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "tell") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "reply") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "vamptalk") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "vt") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "music") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "hum") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "magetalk") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "hightalk") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "miktalk") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "pray") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "howl") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "sign") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "quit") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "who" ) ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "score") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "finger") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "board") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "note") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "ftalk") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "'") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, ".") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "timers") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "ktalk") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "help") ) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "changes") ) found = TRUE; else { stc("Not while in Jail\n\r", ch); return; } } else if (IS_EXTRA(ch,EXTRA_EARTHMELD) ) { if (!str_cmp( cmd_table[cmd].name, "earthmeld" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "earth" )) found = TRUE; else if (!str_cmp(cmd_table[cmd].name,"burrow")) found= TRUE; else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "exits")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "weather" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "where" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "safe" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "scan" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "spy" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "shadowsight" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "vclan" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "upkeep" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "immune" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "clandisc" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "dreaming" )) found = TRUE; else { if(IS_CLASS(ch,CLASS_FAE))stc("Not whilst Dreaming.\n\r",ch); else send_to_char( "Not while in the ground.\n\r", ch ); return; } } else if (ch->embracing!=NULL || ch->embraced!=NULL) { if (!str_cmp( cmd_table[cmd].name, "say" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "embrace" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "'" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "chat" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "." )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "report" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "goto" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "kill" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "berserk" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "testemb" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "reboot" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE; else if (!str_cmp(cmd_table[cmd].name,"diablerise") && ch->embracing !=NULL) found=TRUE; else if(!str_cmp(cmd_table[cmd].name,"restore"))found=TRUE; else { send_to_char( "Not while in an embrace.\n\r", ch ); return; } } else if (IS_EXTRA(ch,EXTRA_NO_ACTION) ) { if (!str_cmp( cmd_table[cmd].name, "reply" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "fcommand" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "[" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "muse" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "projection" )) found = TRUE; else { send_to_char( "You are not in control of your body.\n\r", ch ); if (ch->pcdata->familiar == NULL) REMOVE_BIT(ch->extra, EXTRA_NO_ACTION); return; } } else if (IS_EXTRA(ch,TIED_UP) ) { if (!str_cmp( cmd_table[cmd].name, "say" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "'" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "chat" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "ftalk" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "btalk" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "." )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "yell" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "shout")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "exits")) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "tell" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "order" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "weather" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "where" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "introduce" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "safe" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "scan" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "spy" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "darkness" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "sleep" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "wake" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "fangs" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "claws" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "nightsight" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "shadowsight" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "shadowplane" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "regenerate" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "shield" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "vclan" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "upkeep" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "immune" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "report" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "goto" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "flex" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "change" )) found = TRUE; else if (!str_cmp( cmd_table[cmd].name, "drink" )) found = TRUE; else { send_to_char( "Not while tied up.\n\r", ch ); if (ch->position > POS_STUNNED) act("$n strains against $s bonds.",ch,NULL,NULL,TO_ROOM); return; } } found = TRUE; break; } } /* * Log and snoop. */ if ( cmd_table[cmd].log == LOG_NEVER ) strcpy( logline, "XXXXXXXX XXXXXXXX XXXXXXXX" ); /* New Code For when i get around to Coding the new stuff for it. */ if ( !IS_NPC(ch) && !IS_CREATOR(ch) ) { if ( cmd_table[cmd].log == LOG_SILENCE ) { sprintf( log_buf, "Log %s: %s", ch->name, logline ); if ( IS_SET( ch->act, PLR_LOG ) ) log_player( log_buf, ch, TRUE ); else log_string_sil( log_buf ); } else if ( IS_SET( ch->act, PLR_LOG ) && cmd_table[cmd].log != LOG_NOSHOW ) { sprintf( log_buf, "Log %s: %s", ch->name, logline ); log_player( log_buf, ch, FALSE ); } else if ( ( WizConfig->logall || cmd_table[cmd].log == LOG_ALWAYS ) && cmd_table[cmd].log != LOG_NOSHOW ) { sprintf( log_buf, "Log %s: %s", ch->name, logline ); log_string( log_buf, ch ); wiznet (ch, WIZ_SECURE, trust , log_buf ); } } if ( ch->desc != NULL && ch->desc->snoop_by != NULL ) { if ( (vch = ch->desc->snoop_by->character) == NULL) ch->desc->snoop_by = NULL; else if (IS_IMMORTAL(vch)) { write_to_buffer( ch->desc->snoop_by, "% ", 2 ); write_to_buffer( ch->desc->snoop_by, logline, 0 ); write_to_buffer( ch->desc->snoop_by, "\n\r", 2 ); } else if (ch->in_room == NULL || vch->in_room == NULL) { sprintf(buf, "You loose your mental link with %s.\n\r",ch->name); send_to_char(buf,vch); if (IS_SET(ch->newbits, WRA_SKINRIDE) ) REMOVE_BIT(ch->newbits, WRA_SKINRIDE); bug( "Auspex power 4 in-room bug.", 0 ); ch->desc->snoop_by = NULL; } else if (ch->in_room != vch->in_room) { sprintf(buf, "You loose your mental link with %s.\n\r",ch->name); send_to_char(buf,vch); if (IS_SET(ch->newbits, WRA_SKINRIDE) ) REMOVE_BIT(ch->newbits, WRA_SKINRIDE); ch->desc->snoop_by = NULL; } else { sprintf(buf, "%s thinks: %s.\n\r",ch->name,logline); send_to_char(buf,vch); } } if ( ch != NULL && ch->unveil != NULL ) { unveil = ch->unveil; if ( unveil->in_room->vnum != ch->in_room->vnum ) { sprintf(buf,"You lose your mental link with %s.\n\r",ch->name); stc(buf,unveil); ch->unveil = NULL; } else { sprintf(buf, "%s thinks : %s.\n\r",ch->name, logline); stc(buf, unveil); } } if (ch->desc != NULL) write_to_buffer(ch->desc,"\n\r",2); if ( !found ) { /* * Look for command in socials table. */ if ( !check_social( ch, command, argument ) ) { if ( !check_xsocial( ch, command, argument )) { if (!is_name(command, ch->empowered)) do_rand_typo(ch); } } /* else { sprintf(kavirarg,">>>%s",argu); room_text( ch, kavirarg ); } */ return; } else /* a normal valid command.. check if it is disabled */ if((reason=disabled_reason(&cmd_table[cmd]))!=NULL) { char buf[MSL]; send_to_char ("#rThis command has been temporarily disabled.\n\r", ch ); if (strlen(reason) > 3) { sprintf(buf,"#rReason: #g%s#n\n\r",reason); stc(buf,ch); } if (!IS_CREATOR(ch) ) return; } /* * Character not in position for command? */ if ( ch->position < cmd_table[cmd].position ) { switch( ch->position ) { case POS_DEAD: send_to_char( "Lie still; you are DEAD.\n\r", ch ); break; case POS_MORTAL: case POS_INCAP: send_to_char( "You are hurt far too bad for that.\n\r", ch ); break; case POS_STUNNED: send_to_char( "You are too stunned to do that.\n\r", ch ); break; case POS_SLEEPING: send_to_char( "In your dreams, or what?\n\r", ch ); break; case POS_MEDITATING: case POS_SITTING: case POS_RESTING: send_to_char( "Nah... You feel too relaxed...\n\r", ch); break; case POS_FIGHTING: send_to_char( "No way! You are still fighting!\n\r", ch); break; } return; } /* Nice idea... No USE for it tho if ( ch->in_room->vnum == ROOM_VNUM_LOUNGE ) { bool lgl_cmd = FALSE; if ( !str_prefix( command, "say" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "look" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "quit" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "north" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "south" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "east" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "west" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "up" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "chat" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "say" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "tell" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "reply" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "eq" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "note" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "down" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "board" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "quit" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "score" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "." ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "flame" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "pray" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "howl" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "vamptalk" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "vtalk" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "vamp" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "humm" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "mikt" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "sign" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "ftalk" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "save" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "time" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "relevel" ) ) lgl_cmd = TRUE; if ( !str_prefix( command, "who" ) ) lgl_cmd = TRUE; if ( !lgl_cmd && !IS_IMMORTAL(ch)) { char full_argument[MSL]; if (!str_prefix( command, "chant" ) ) { char da_buf[5000]; //that a stands for arse do_info( NULL, "#RL#rO#RS#rE#RR#r!#n" ); sprintf( da_buf, "#y%s is soooo stupid. They are trying to chant %s in the lounge!", ch->name, argument ); do_info( NULL, da_buf ); } do_say( ch, cmd_copy ); //sprintf( full_argument, "say %s %s", command, argument ); //interpret( ch, full_argument ); return; } } */ /* * Dispatch the command. */ if (last_command != NULL) free_string(last_command); if (!ch->in_room) sprintf(log_buf, "%s %s BY %s", cmd_table[cmd].name,argument,ch->name); else sprintf(log_buf, "%s %s BY %s in %d", cmd_table[cmd].name,argument,ch->name,ch->in_room->vnum); last_command = str_dup(log_buf); cmd_done = FALSE; (*cmd_table[cmd].do_fun)(ch, argument); cmd_done = TRUE; if (string_count < nAllocString) { sprintf(memcheck, "Memcheck : Increase in strings :: %s : %s", ch->name, buf) ; //log_string_sil(memcheck); wiznet (NULL, WIZ_DEBUG, LEVEL_IMPLEMENTOR , memcheck ); } if (perm_count < nAllocPerm) { sprintf(memcheck,"Memcheck : Increase in perms :: %s : %s", ch->name, buf) ; //log_string_sil(memcheck); wiznet (NULL, WIZ_DEBUG, LEVEL_IMPLEMENTOR, memcheck); } tail_chain( ); return; } /* * Return true if an argument is completely numeric. */ bool is_number( char *arg ) { if ( *arg == '\0' ) return FALSE; for ( ; *arg != '\0'; arg++ ) { if (!isdigit(*arg) && *arg != '-' && *arg != '.') return FALSE; } return TRUE; } /* * Given a string like 14.foo, return 14 and 'foo' */ int number_argument( char *argument, char *arg ) { char *pdot; int number; for ( pdot = argument; *pdot != '\0'; pdot++ ) { if ( *pdot == '.' ) { *pdot = '\0'; number = atoi( argument ); *pdot = '.'; strcpy( arg, pdot+1 ); return number; } } strcpy( arg, argument ); return 1; } /* * Pick off one argument from a string and return the rest. * Understands quotes. */ char *one_argument( char *argument, char *arg_first ) { char cEnd; while ( isspace(*argument) ) argument++; cEnd = ' '; if ( *argument == '\'' || *argument == '"' ) cEnd = *argument++; while ( *argument != '\0' ) { if ( *argument == cEnd ) { argument++; break; } *arg_first = LOWER(*argument); arg_first++; argument++; } *arg_first = '\0'; while ( isspace(*argument) ) argument++; return argument; } /* Syntax is: disable - shows disabled commands disable <command> - toggles disable status of command */ void do_disable (CHAR_DATA *ch, char *argument) { char arg[MSL]; int i; DISABLED_DATA *p,*q; char buf[MSL]; argument=one_argument(argument,arg); if (IS_NPC(ch)) { send_to_char ("RETURN first.\n\r",ch); return; } if (!arg[0]) /* Nothing specified. Show disabled commands. */ { if (!disabled_first) /* Any disabled at all ? */ { send_to_char ("There are no commands disabled.\n\r",ch); return; } send_to_char ("Disabled commands:\n\r",ch); sprintf(buf,"%-12s%-5s %-12s%-24s\n\r", "Command","Level","Disabled By","Reason"); stc(buf,ch); for (p = disabled_first; p; p = p->next) { sprintf (buf, "%-12s%5d %-12s%-24s\n\r",p->command->name, p->level, p->disabled_by,p->reason==NULL||p->reason[0]=='\0'?"None Given":p->reason); send_to_char (buf,ch); } return; } /* command given */ /* First check if it is one of the disabled commands */ for (p = disabled_first; p ; p = p->next) if (!str_cmp(arg, p->command->name)) break; if (p) /* this command is disabled */ { /* Optional: The level of the imm to enable the command must equal or exceed level of the one that disabled it */ // if (get_trust(ch) < p->level) // { // send_to_char ("This command was disabled by a higher power.\n\r",ch); // return; // } /* Remove */ if (disabled_first == p) /* node to be removed == head ? */ disabled_first = p->next; else /* Find the node before this one */ { for (q = disabled_first; q->next != p; q = q->next); /* empty for */ q->next = p->next; } free_string (p->disabled_by); /* free name of disabler */ free_mem (p,sizeof(DISABLED_DATA)); /* free node */ save_disabled(); /* save to disk */ send_to_char ("Command enabled.\n\r",ch); } else /* not a disabled command, check if that command exists */ { /* IQ test */ if (!str_cmp(arg,"disable")) { send_to_char ("You cannot disable the disable command.\n\r",ch); return; } /* Search for the command */ for (i = 0; cmd_table[i].name[0] != '\0'; i++) if (!str_cmp(cmd_table[i].name, arg)) break; /* Found? */ if (cmd_table[i].name[0] == '\0') { send_to_char ("No such command.\n\r",ch); return; } /* Can the imm use this command at all ? */ if (cmd_table[i].level > get_trust(ch)) { send_to_char ("You dot have access to that command; you cannot disable it.\n\r",ch); return; } /* Disable the command */ p = alloc_mem (sizeof(DISABLED_DATA)); p->command = &cmd_table[i]; p->disabled_by = str_dup (ch->name); /* save name of disabler */ p->level = get_trust(ch); /* save trust */ p->next = disabled_first; p->reason=str_dup(argument); disabled_first = p; /* add before the current first element */ send_to_char ("Command disabled.\n\r",ch); save_disabled(); /* save to disk */ } } /* Check if that command is disabled Note that we check for equivalence of the do_fun pointers; this means that disabling 'chat' will also disable the '.' command */ char *disabled_reason(const struct cmd_type *command) { DISABLED_DATA *p; for (p=disabled_first;p;p=p->next){ if(p->command->do_fun==command->do_fun){ return p->reason?p->reason:"None Given";}} return NULL; } bool check_disabled (const struct cmd_type *command) { DISABLED_DATA *p; for (p = disabled_first; p ; p = p->next) if (p->command->do_fun == command->do_fun) return TRUE; return FALSE; } /* Load disabled commands */ void load_disabled() { FILE *fp; DISABLED_DATA *p; char *name; int i; disabled_first = NULL; fp = fopen (DISABLED_FILE, "r"); if (!fp) /* No disabled file.. no disabled commands : */ return; name = fread_word (fp); while (str_cmp(name, END_MARKER)) /* as long as name is NOT END_MARKER :) */ { /* Find the command in the table */ for (i = 0; cmd_table[i].name[0] ; i++) if (!str_cmp(cmd_table[i].name, name)) break; if (!cmd_table[i].name[0]) /* command does not exist? */ { bug ("Skipping uknown command in " DISABLED_FILE " file.",0); fread_number(fp); /* level */ fread_word(fp); /* disabled_by */ fread_string(fp); /* RREASSONN */ } else /* add new disabled command */ { p = alloc_mem(sizeof(DISABLED_DATA)); p->command = &cmd_table[i]; p->level = fread_number(fp); p->disabled_by = str_dup(fread_word(fp)); p->reason=str_dup(fread_string(fp)); p->next = disabled_first; disabled_first = p; } name = fread_word(fp); } fclose (fp); } /* Save disabled commands */ void save_disabled() { FILE *fp; DISABLED_DATA *p; if (!disabled_first) /* delete file if no commands are disabled */ { unlink (DISABLED_FILE); return; } fp = fopen (DISABLED_FILE, "w"); if (!fp) { bug ("Could not open " DISABLED_FILE " for writing",0); return; } for (p = disabled_first; p ; p = p->next) fprintf (fp, "%s %d %s %s~\n", p->command->name, p->level, p->disabled_by,p->reason); fprintf (fp, "%s\n",END_MARKER); fclose (fp); } /* itoa, ltoa, and _ultoa are all (C) DJ Delorie and can be gotten from http://www.koders.com/c/fid5F9B1CF12E947E5030A132D309A367C5CCB671CE.aspx DJ's website is found at http://www.delorie.com/ for those wanting more information */ char *itoa(int value, char *string, int radix) { char tmp[33]; char *tp = tmp; int i; unsigned v; int sign; char *sp; if (radix > 36 || radix <= 1) { return 0; } sign = (radix == 10 && value < 0); if (sign) v = -value; else v = (unsigned)value; while (v || tp == tmp) { i = v % radix; v = v / radix; if (i < 10) *tp++ = i+'0'; else *tp++ = i + 'a' - 10; } if (string == 0) string = (char *)malloc((tp-tmp)+sign+1); sp = string; if (sign) *sp++ = '-'; while (tp > tmp) *sp++ = *--tp; *sp = 0; return string; } char *ltoa(long value, char *string, int radix) { char tmp[33]; char *tp = tmp; long i; unsigned long v; int sign; char *sp; if (radix > 36 || radix <= 1) { return 0; } sign = (radix == 10 && value < 0); if (sign) v = -value; else v = (unsigned long)value; while (v || tp == tmp) { i = v % radix; v = v / radix; if (i < 10) *tp++ = i+'0'; else *tp++ = i + 'a' - 10; } if (string == 0) string = (char *)malloc((tp-tmp)+sign+1); sp = string; if (sign) *sp++ = '-'; while (tp > tmp) *sp++ = *--tp; *sp = 0; return string; } char *_ultoa(unsigned long value, char *string, int radix) { char tmp[33]; char *tp = tmp; long i; unsigned long v = value; char *sp; if (radix > 36 || radix <= 1) { return 0; } while (v || tp == tmp) { i = v % radix; v = v / radix; if (i < 10) *tp++ = i+'0'; else *tp++ = i + 'a' - 10; } if (string == 0) string = (char *)malloc((tp-tmp)+1); sp = string; while (tp > tmp) *sp++ = *--tp; *sp = 0; return string; }