/***************************************************************************
* 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;
}