/*************************************************************************** * 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. * * * * Dystopia Mud improvements copyright (C) 2000, 2001 by Brian Graversen * * * * 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. * ***************************************************************************/ /*************************************************************************** * _/ _/ * * _/_/_/ _/_/ _/_/_/ _/ _/_/ _/ _/ _/_/_/ * * _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ * * _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ * * _/ _/ _/ _/_/_/ _/ _/_/ _/_/_/ _/_/_/ * *************************************************************************** * Mindcloud Copyright 2001-2003 by Jeff Boschee (Zarius), * * Additional credits are in the help file CODECREDITS * * All Rights Reserved. * ***************************************************************************/ #include <sys/types.h> #include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <unistd.h> /* unlink() */ #include "merc.h" #include "interp.h" #include "garou.h" #include "olc.h" bool check_social args((CHAR_DATA * ch, char *command, char *argument)); bool check_xsocial args((CHAR_DATA * ch, char *command, char *argument)); int can_interpret args((CHAR_DATA * ch, int cmd)); int can_interpret(CHAR_DATA * ch, int cmd) { bool cando = FALSE; if (ch->level == 12) cando = TRUE; if (cmd_table[cmd].level > get_trust(ch)) return 0; if (cmd_table[cmd].race == 0 && cmd_table[cmd].discipline == 0) cando = TRUE; if (cmd_table[cmd].race > 0 && cmd_table[cmd].discipline == 0 && ch->class == cmd_table[cmd].race) cando = TRUE; if (cmd_table[cmd].discipline > 0 && ch->power[cmd_table[cmd].discipline] >= cmd_table[cmd].disclevel) cando = TRUE; if (!cando) return 0; if (ch->position < cmd_table[cmd].position) return -1; return 1; } void do_racecommands(CHAR_DATA * ch, char *argument) { int i, cmd, foundpower = 0; char buf[MAX_STRING_LENGTH]; bool displayed; if ((ch->class == 0 && !IS_IMMORTAL(ch)) || IS_NPC(ch)) { send_to_char("You don't have any special powers.\n\r", ch); return; } xprintf(buf, "%s\n\r", get_dystopia_banner(" Powers ", 82)); send_to_char(buf, ch); for (i = 0; i < MAX_DISCIPLINES; i++) { displayed = FALSE; if (ch->power[i] > 0 && strlen(discipline[i]) > 0 && (ch->level < 7 || argument[0] == '\0' || !str_prefix(argument, discipline[i]))) { foundpower = 1; for (cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++) { if (cmd_table[cmd].discipline == i && ch->power[i] >= cmd_table[cmd].disclevel && IS_CLASS(ch, cmd_table[cmd].race)) { if (!displayed) { displayed = TRUE; xprintf(buf, " %15s : ", discipline[i]); send_to_char(buf, ch); } send_to_char(cmd_table[cmd].name, ch); send_to_char(" ", ch); } } if (displayed) send_to_char("\n\r", ch); } } /* OBEAH CRAP HAVE TO ADD MANUAL......ANYONE HAVE ANOTHER WAY.....PLEASE BY ALL MEANS CHANGE IT */ if (IS_CLASS(ch, CLASS_VAMPIRE)) { if (IS_CLASS(ch, CLASS_VAMPIRE) && ch->power[DISC_VAMP_OBEA] > 1) { xprintf(buf, " obeah :"); send_to_char(buf, ch); } if (IS_CLASS(ch, CLASS_VAMPIRE) && ch->power[DISC_VAMP_OBEA] > 6) { xprintf(buf, " (#Gpurify#n)"); send_to_char(buf, ch); } if (IS_CLASS(ch, CLASS_VAMPIRE) && ch->power[DISC_VAMP_OBEA] > 8) { xprintf(buf, " (#rBeast control#n)"); send_to_char(buf, ch); } if (IS_CLASS(ch, CLASS_VAMPIRE) && ch->power[DISC_VAMP_OBEA] > 9) { xprintf(buf, " (#wMovement of pure magic#n)"); send_to_char(buf, ch); } send_to_char("\n\r", ch); } if (IS_CLASS(ch, CLASS_SKYBLADE)) { send_to_char(" Misc : Bladetalk Abilities\n\r", ch); if (ch->pcdata->powers[SKYBLADE_POWER] > 0) { send_to_char(" Power :", ch); if (ch->pcdata->powers[SKYBLADE_POWER] >= 1) send_to_char(" OwlEyes(Leye/Reye)", ch); if (ch->pcdata->powers[SKYBLADE_POWER] >= 3) send_to_char(" EagleStrength", ch); if (ch->pcdata->powers[SKYBLADE_POWER] >= 5) send_to_char(" HawkEyes", ch); if (ch->pcdata->powers[SKYBLADE_POWER] >= 7) send_to_char(" VultureVigor", ch); if (ch->pcdata->powers[SKYBLADE_POWER] >= 9) send_to_char(" FalconBlade", ch); send_to_char("\n\r", ch); } if (ch->pcdata->powers[SKYBLADE_MAGIC] > 0) { send_to_char(" Magic :", ch); if (ch->pcdata->powers[SKYBLADE_MAGIC] >= 1) send_to_char(" SkyForge", ch); //if (ch->pcdata->powers[SKYBLADE_MAGIC] >= 2) //send_to_char(" SkyArmor",ch); if (ch->pcdata->powers[SKYBLADE_MAGIC] >= 3) send_to_char(" HeavenlyRain", ch); if (ch->pcdata->powers[SKYBLADE_MAGIC] >= 5) send_to_char(" Climax", ch); if (ch->pcdata->powers[SKYBLADE_MAGIC] >= 7) send_to_char(" DragonAura", ch); if (ch->pcdata->powers[SKYBLADE_MAGIC] >= 9) send_to_char(" WyrmAura", ch); send_to_char("\n\r", ch); } if (ch->pcdata->powers[SKYBLADE_SKILLS] > 0) { send_to_char(" Skills:", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 1) send_to_char(" BladeJump", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 2) send_to_char(" Pummel", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 3) send_to_char(" CloudsBlessing", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 4) send_to_char(" RapierStrike", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 5) send_to_char(" Retort", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 6) send_to_char(" LeapOfFaith", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 7) send_to_char(" DragonCharge", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 8) send_to_char (" \n\rDragonX", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 9) send_to_char(" WyrmRoar", ch); if (ch->pcdata->powers[SKYBLADE_SKILLS] >= 10) send_to_char(" DiveStrike", ch); send_to_char("\n\r", ch); } } i = 0; displayed = FALSE; for (cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++) { if (IS_CLASS(ch, cmd_table[cmd].race) && cmd_table[cmd].discipline == 0) { strcpy(buf, ""); if (i == 0) { switch (ch->class) { case 1: xprintf(buf, " %15s : ", "Demon Kind"); break; case 2: xprintf(buf, " %15s : ", "Magi"); break; case 3: xprintf(buf, " %15s : ", "Werewolf Powers"); break; case 4: xprintf(buf, " %15s : ", "Innate"); break; case 5: xprintf(buf, " %15s : ", "Weaponsmaster"); break; case 6: xprintf(buf, " %15s : ", "Drow Abilities"); break; case 7: xprintf(buf, " %15s : ", "Monk Abilities"); break; case 8: xprintf(buf, " %15s : ", "Ninja Abilities"); break; case CLASS_LICH: xprintf(buf, " %15s : ", "Lich Abilities"); break; case CLASS_SHAPESHIFTER: xprintf(buf, " %15s : ", "Shapeshifter"); break; case CLASS_TANARRI: xprintf(buf, " %15s : ", "Tanar'ri Powers"); break; case CLASS_ANGEL: xprintf(buf, " %15s : ", "Angel Abilities"); break; case CLASS_UNDEAD_KNIGHT: xprintf(buf, " %15s : ", "Knight Powers"); break; case CLASS_CYBORG: xprintf(buf, " %15s : ", "Cyborg Powers"); break; case CLASS_SKYBLADE: xprintf(buf, " %15s : ", "Tapped Powers"); break; case CLASS_GHOUL: xprintf(buf, " %15s : ", "Ghoul Powers"); break; case CLASS_THIEF: xprintf(buf, " %15s : ", "Thief Skills"); break; case 19: xprintf(buf, " %15s : ", "Magical Abilities"); break; case CLASS_SHADOW: xprintf(buf, " %15s : ", "Shadow Skills"); break; case CLASS_PRIEST: xprintf(buf, " %15s : ", "Priest Abilities"); break; case CLASS_JEDI: xprintf(buf, " %15s : ", "Jedi Skills"); break; case CLASS_DRONE: xprintf(buf, " %15s : ", "Drone Powers"); break; case CLASS_DROID: xprintf(buf, " %15s : ", "Droid Powers"); break; case CLASS_HOBBIT: xprintf(buf, " %15s : ", "Hobbit Powers"); break; case CLASS_FAE: xprintf(buf, " %15s : ", "Fae Powers"); break; case CLASS_GIANT: xprintf(buf, " %15s : ", "Giant Powers"); break; case CLASS_ELEMENTAL: xprintf(buf, " %15s : ", "Elemental Powers"); break; case CLASS_PALADIN: xprintf(buf, " %15s : ", "Paladin Powers"); break; case CLASS_BLADE_MASTER: xprintf(buf, " %15s : ", "Blademaster Powers"); break; case CLASS_DRAGON: xprintf(buf, " %15s : ", "Dragon Powers"); break; case CLASS_ZOMBIE: xprintf(buf, " %15s : ", "Zombie Powers"); break; case CLASS_SHINOBI: xprintf(buf, " %15s : ", "Shinobi Powers"); break; case CLASS_ANTIPALADIN: xprintf(buf, " %15s : ", "AntiPaladin Powers"); } } else if (i % 4 == 0) { xprintf(buf, "\n\r "); } i++; send_to_char(buf, ch); send_to_char(cmd_table[cmd].name, ch); send_to_char(" ", ch); displayed = TRUE; foundpower++; } } if (displayed) send_to_char("\n\r", ch); if (foundpower == 0) { send_to_char(" You do not yet possess any powers.\n\r", ch); } xprintf(buf, "%s\n\r", get_dystopia_banner("", 80)); send_to_char(buf, ch); return; } /* * Command logging types. */ #define LOG_NORMAL 0 // Doesn't log unless the player is logged #define LOG_ALWAYS 1 // Will always log this command (both file and logchannel) #define LOG_NEVER 2 // Will never log this command, no matter what #define LOG_SEMI 3 // Will always log this command (file only) /* * Log-all switch. */ char *last_command = NULL; bool arena_open = FALSE; bool arena_base = FALSE; bool arenaopen = FALSE; bool current_arena = FALSE; bool ragnarok = FALSE; bool fLogAll = FALSE; bool global_exp = FALSE; bool global_qp = FALSE; bool global_dt = FALSE; bool global_cp = FALSE; bool global_chaos = FALSE; bool tourney = FALSE; bool extra_log = FALSE; bool cmd_done = TRUE; bool arena2 = TRUE; bool arena2death = FALSE; int exptimer = 0; int qpstimer = 0; int players_logged = 0; int thread_count = 0; int top_playerid = 0; int ragnarok_cost = 5000; int exp_cost = 25000; int dt_cost = 50000; int cp_cost = 25000; int bones_cost = 75000; int pulse_exp = -1; int pulse_cp = -1; int pulse_dt = -1; int pulse_qp = -1; int ragnarok_timer = PULSE_AREA * 60; int pulse_arena = 1; int players_decap = 0; int players_gstolen = 0; int iDelete = 0; int total_output = 0; int mudinfo[MUDINFO_MAX]; int ccenter[CCENTER_MAX]; bool check_disabled(const struct cmd_type *command); DISABLED_DATA *disabled_first; BAN_DATA *ban_list; BAN_DATA *newbieban_list; pthread_mutex_t memory_mutex = PTHREAD_MUTEX_INITIALIZER; /* * Command table. */ const struct cmd_type cmd_table[] = { /* * Name Function Min Position Level Log Class,DiscLevel,DiscName */ /* * common movement commands */ {"north", do_north, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"east", do_east, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"south", do_south, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"west", do_west, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"up", do_up, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"down", do_down, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, /* * Common other commands. * Placed here so one and two letter abbreviations work. */ {"cast", do_cast, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"call", do_call, POS_SLEEPING, 0, LOG_NORMAL, 0, 0, 0}, {"consider", do_consider, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"chi", do_chi, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"mesmerise", do_command, POS_SITTING, 3, LOG_ALWAYS, 4, DISC_VAMP_DOMI, 2}, {"command", do_command, POS_SITTING, 3, LOG_ALWAYS, 4, DISC_VAMP_DOMI, 1}, {"crack", do_crack, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"diagnose", do_diagnose, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"dismount", do_dismount, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"enter", do_enter, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"exits", do_exits, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"get", do_get, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"inventory", do_inventory, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"kill", do_kill, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"combatswitch", do_combatswitch, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"look", do_look, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"ls", do_look, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"mount", do_mount, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"order", do_order, POS_SITTING, 1, LOG_ALWAYS, 0, 0, 0}, {"rest", do_rest, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"reimb", do_reimb, POS_MEDITATING, 12, LOG_NORMAL, 0, 0, 0}, {"sit", do_sit, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"stand", do_stand, POS_SLEEPING, 0, LOG_NORMAL, 0, 0, 0}, {"tell", do_tell, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"whisper", do_whisper, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"wield", do_wear, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"wizhelp", do_wizhelp, POS_DEAD, 4, LOG_NORMAL, 0, 0, 0}, {"wizlist", do_wizlist, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"version", do_version, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"linkdead", do_linkdead, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, /* * Informational commands. */ {"affects", do_affects, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"areas", do_areas, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"credits", do_credits, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"equipment", do_equipment, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"examine", do_examine, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"help", do_help, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"idea", do_idea, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"report", do_report, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"reply", do_reply, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"autoset", do_autoset, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"autoall", do_autoall, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autostance", do_autostance, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"mastery", do_mastery, POS_STANDING, 3, LOG_ALWAYS, 0, 0, 0}, {"expcalc", do_exp, POS_FIGHTING, 1, LOG_NORMAL, 0, 0, 0}, {"pkpowers", do_pkpowers, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"gensteal", do_gensteal, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"setstance", do_setstance, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"findspec", do_specfind, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"itemwf", do_itemwearfind, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"mudstat", do_mudstat, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"level", do_level, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"oldlevel", do_oldlevel, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"top", do_top, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"topclear", do_topclear, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"selfdelete", do_selfdelete, POS_STANDING, 2, LOG_NEVER, 0, 0, 0}, {"selfclass", do_classself, POS_STANDING, 3, LOG_ALWAYS, 0, 0, 0}, {"selfrace", do_raceself, POS_STANDING, 3, LOG_ALWAYS, 0, 0, 0}, {"score", do_newscore, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"scroll", do_scroll, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"spit", do_spit, POS_SITTING, 3, LOG_NORMAL, 4, DISC_VAMP_QUIE, 1}, {"split", do_split, POS_SITTING, 3, LOG_NORMAL, 0, 0, 0}, {"tongue", do_tongue, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_SERP, 4}, {"mindblast", do_mindblast, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_PRES, 2}, {"stat", do_stat, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"skill", do_skill, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"spells", do_spell, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"socials", do_socials, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"time", do_time, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"typo", do_typo, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"who", do_who, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"viewtier", do_viewtier, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"xemot", do_huh, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"xemote", do_xemote, POS_SITTING, 1, LOG_NORMAL, 0, 0, 0}, {"xsocial", do_huh, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"xsocials", do_xsocials, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"group", do_group, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, /*Ghoul Commands*/ {"realms", do_realms, POS_STANDING, 3, LOG_NORMAL, 17, 0, 0}, {"gcreate", do_gcreate, POS_SITTING, 3, LOG_NORMAL, 17, 0, 0}, {"gore", do_gore, POS_STANDING, 3, LOG_NORMAL, 17, 0, 0}, {"ravage", do_ravage, POS_FIGHTING, 3, LOG_NORMAL, 17, 0, 0}, {"sdecay", do_sdecay, POS_STANDING, 3, LOG_NORMAL, 17, 0, 0}, {"sdeath", do_sdeath, POS_STANDING, 3, LOG_NORMAL, 17, 0, 0}, //{ "ghouleq", do_ghouleq, POS_STANDING, 3, LOG_NORMAL, 17,0,0 }, {"swampwalk", do_swampwalk, POS_STANDING, 3, LOG_NORMAL, 17, 0, 0}, /*Draconians*/ {"dragonorb", do_dragonorb, POS_STANDING, 0, LOG_NORMAL, 15, 0, 0}, {"fieryeyes", do_fieryeyes, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"spikes", do_spikes, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"deathstate", do_deathstate, POS_STANDING, 0, LOG_NORMAL, 15, 0, 0}, {"dclaws", do_dclaws, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"headbash", do_headbash, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"acidblood", do_acidblood, POS_STANDING, 0, LOG_NORMAL, 15, 0, 0}, {"lizardform", do_lizardform, POS_STANDING, 0, LOG_NORMAL, 15, 0, 0}, {"dtail", do_dtail, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"venomspit", do_venomspit, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"dragonrun", do_dragonrun, POS_STANDING, 0, LOG_NORMAL, 15, 0, 0}, {"gasbreath", do_gasbreath, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, {"firebreath", do_firebreath, POS_FIGHTING, 0, LOG_NORMAL, 15, 0, 0}, /*Thief Commands*/ {"thiefskills", do_thiefskills, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"rolldice", do_rolldice, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"tconceal", do_tconceal, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"gleam", do_gleam, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"bstab", do_bstab, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"tdagger", do_tdagger, POS_FIGHTING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, //{ "thiefeq", do_thiefeq, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF,0,0 }, {"dtrick", do_dtrick, POS_FIGHTING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"poisonblade", do_poisonblade, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, {"shadowmove", do_shadowmove, POS_STANDING, 3, LOG_NORMAL, CLASS_THIEF, 0, 0}, /* * shadows */ {"moonstrike", do_moonstrike, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"shadowthrust", do_shadowthrust, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"dirtthrow", do_dirtthrow, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"gutcutter", do_gutcutter, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"soulreaper", do_soulreaper, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"knifespin", do_knifespin, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"wakasashislice", do_wakasashislice, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, SHADOW_ATTACK, 64}, {"caltrops", do_caltrops, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"shadowlearn", do_shadowlearn, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"soulseek", do_soulseek, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"soultarget", do_soultarget, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"shadowwalk", do_shadowwalk, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"scry", do_scry, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"vanish", do_vanish, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"shield", do_shield, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"assassinate", do_assassinate, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_SHADOW, 0, 0}, { "gods", do_gods, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, /* * Priests */ {"pgain", do_pgain, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"priestform", do_priestform, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"holyaura", do_holyaura, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"godbless", do_godbless, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"ascend", do_ascend, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"godheal", do_godheal, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"godpeace", do_godpeace, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"godstrike", do_godstrike, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"grheal", do_grheal, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"grstorm", do_grstorm, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"healstorm", do_healstorm, POS_STANDING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"majorheal", do_majorheal, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"minheal", do_minheal, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"minstorm", do_minstorm, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"pwho", do_pwho, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, {"turn", do_turnundead, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PRIEST, 0, 0}, /* * Jedi */ {"jfight", do_jfight, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jstate", do_jstate, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jstep", do_jstep, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, //{ "forcetalk", do_forcetalk, POS_DEAD, 3, LOG_NORMAL,24,0,0}, //{ "jediarmor", do_jediarmor, POS_STANDING, 3, LOG_NORMAL,24,0,0}, {"jedilearn", do_jedilearn, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jediskill", do_jediskill, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"fshield", do_fshield, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jlevitate", do_jlevitate, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jsight", do_jsight, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jeyes", do_jeyes, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jsense", do_jsense, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jhealing", do_jhealing, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jsummon", do_jsummon, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jsault", do_jsault, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"fpush", do_fpush, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jreverse", do_jreverse, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jkneel", do_jkneel, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jstab", do_jstab, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jhigh", do_jhigh, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jupper", do_jupper, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jbutterfly", do_jbutterfly, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jcross", do_jcross, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jslash", do_jslash, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jcircle", do_jcircle, POS_FIGHTING, 3, LOG_NORMAL, 24, 0, 0}, {"jedishield", do_jedishield, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jedisleep", do_jedisleep, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"fspeed", do_fspeed, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, {"jwalk", do_jwalk, POS_STANDING, 3, LOG_NORMAL, CLASS_JEDI, 0, 0}, {"jfocus", do_jfocus, POS_STANDING, 3, LOG_NORMAL, CLASS_JEDI, 0, 0}, {"jtouch", do_jtouch, POS_STANDING, 3, LOG_NORMAL, 24, 0, 0}, /* * Configuration commands. */ {"alignment", do_alignment, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"alias", do_alias, POS_STANDING, 2, LOG_ALWAYS, 0, 0, 0}, {"config", do_config, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"vt100", do_vt100, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"compres", do_compres, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"compress", do_compress, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"description", do_description, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"password", do_password, POS_DEAD, 0, LOG_NEVER, 0, 0, 0}, {"title", do_title, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"ansi", do_ansi, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autoexit", do_autoexit, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autoloot", do_autoloot, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autoslab", do_autoslab, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autohilt", do_autohilt, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autogem", do_autogem, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autohead", do_autohead, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autosplit", do_autosplit, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autoweather", do_autoweather, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autosigil", do_autosigil, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"weather", do_weather, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autosac", do_autosac, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autobones", do_autobones, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"autostore", do_autostore, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief1", do_brief, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief2", do_brief2, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief3", do_brief3, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief4", do_brief4, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief5", do_brief5, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief6", do_brief6, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"brief7", do_brief7, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"cprompt", do_cprompt, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"prompt", do_prompt, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"sound", do_sound, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"music", do_music, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"map", do_map, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, /* * Communication commands. */ {"flame", do_flame, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"gsocial", do_gsocial, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"trivia", do_trivia, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"chat", do_chat, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {".", do_chat, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"clandisc", do_clandisc, POS_SITTING, 3, LOG_NORMAL, 0, 0, 0}, {"intro", do_introduce, POS_DEAD, 3, LOG_NORMAL, 8, 0, 0,}, {"intro", do_introduce, POS_DEAD, 3, LOG_NORMAL, 4, 0, 0,}, {"emote", do_xemote, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {",", do_xemote, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"gtell", do_gtell, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {";", do_gtell, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"howl", do_howl, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"telepath", do_telepath, POS_DEAD, 1, LOG_NORMAL, 512, 0, 0}, {"music", do_music, POS_SLEEPING, 2, LOG_NORMAL, 0, 0, 0}, {"sing", do_sing, POS_SITTING, 2, LOG_NORMAL, 0, 0, 0}, {"note", do_note, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"board", do_board, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"pose", do_emote, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"gemote", do_gemote, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"quest", do_quest, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"qtalk", do_qtalk, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"say", do_say, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"speak", do_speak, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"'", do_say, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"yell", do_yell, POS_SITTING, 2, LOG_NORMAL, 0, 0, 0}, {"powers", do_racecommands, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"history", do_history, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"replay", do_replay, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"lastmessage", do_lastmessage, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, /* * Object manipulation commands. */ {"trigger", do_trigger, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"activate", do_activate, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"brandish", do_brandish, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"close", do_close, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"draw", do_draw, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"drink", do_drink, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"drop", do_drop, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"eat", do_eat, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"empty", do_empty, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"fill", do_fill, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"give", do_give, POS_SITTING, 0, LOG_ALWAYS, 0, 0, 0}, {"gift", do_gift, POS_STANDING, 0, LOG_NEVER, 0, 0, 0}, {"hold", do_wear, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"lock", do_lock, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"open", do_open, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"pick", do_pick, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"press", do_press, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"pull", do_pull, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"put", do_put, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"quaff", do_quaff, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"recite", do_recite, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"remove", do_remove, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"removealias", do_removealias, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"sheath", do_sheath, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"take", do_get, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"throw", do_throw, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"turn", do_turn, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"twist", do_twist, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"sacrifice", do_sacrifice, POS_SITTING, 1, LOG_NORMAL, 0, 0, 0}, {"unlock", do_unlock, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"wear", do_wear, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"voodoo", do_voodoo, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"zap", do_zap, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"junk", do_sacrifice, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"stalk", do_stalk, POS_STANDING, 0, LOG_NORMAL, 128, 0, 0}, /* * Samurai */ {"ancestralpath", do_hologramtransfer, POS_STANDING, 3, LOG_NORMAL, 5, 0, 0}, {"techniques", do_bladespin, POS_STANDING, 3, LOG_NORMAL, 5, 0, 0}, {"web", do_web, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, {"focus", do_focus, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, {"slide", do_slide, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, {"sidestep", do_sidestep, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, {"block", do_block, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, {"countermove", do_countermove, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, {"martial", do_martial, POS_STANDING, 3, LOG_NORMAL, 5, 0, 0}, {"samseye", do_samseye, POS_STANDING, 3, LOG_NORMAL, 5, 0, 0}, {"samlearn", do_samlearn, POS_STANDING, 3, LOG_NORMAL, 5, 0, 0}, {"sword", do_sword, POS_FIGHTING, 3, LOG_NORMAL, 5, 0, 0}, /* * Combat commands. */ {"generation", do_generation, POS_STANDING, 11, LOG_ALWAYS, 0, 0, 0}, {"class", do_class, POS_STANDING, 9, LOG_ALWAYS, 0, 0, 0}, {"backstab", do_backstab, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"berserk", do_berserk, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"bs", do_backstab, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"disarm", do_disarm, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"flee", do_flee, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"fightstyle", do_fightstyle, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"hurl", do_hurl, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"kick", do_kick, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"servant", do_servant, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_DAIM, 8}, {"punch", do_punch, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"rescue", do_rescue, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"stance", do_stance, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"surrender", do_surrender, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"pray", do_pray, POS_MEDITATING, 1, LOG_NORMAL, 64, 0, 0}, // Xrakisis { "nuke", do_nuke, POS_DEAD, 12, LOG_ALWAYS, 0,0,0 }, { "jail", do_jail, POS_DEAD, 9, LOG_ALWAYS, 0,0,0 }, { "freechar", do_freechar, POS_DEAD, 9, LOG_ALWAYS, 0,0,0 }, { "warden", do_warden, POS_DEAD, 7, LOG_NORMAL, 0,0,0 }, {"gain", do_gain, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, { "gainlevel", do_gainlevel, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "practice", do_rompractice, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "prof", do_prof, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "racepowers", do_racepowers, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "convert", do_convert, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "ascension", do_ascension, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "relarmor", do_relarmor, POS_DEAD, 3, LOG_NORMAL, 0,0,0 }, { "xcenter", do_xcenter, POS_DEAD, 11, LOG_NORMAL, 0,0,0 }, // Race Powers -Xrakisis { "thunderhammer", do_thunderhammer, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "mistform", do_mistform, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "weaponenhance", do_weaponenhance, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "armorenhance", do_armorenhance, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "flameblade", do_flameblade, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "goblingrenade", do_goblingrenade, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "airshiptravel", do_airshiptravel, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "superberserk", do_superberserk, POS_FIGHTING, 3, LOG_NORMAL, 0,0,0 }, { "infravision", do_elveninfra, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "songs", do_songs, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "elfsing", do_elfsing, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "lessons", do_lessons, POS_STANDING, 3, LOG_NORMAL, 0,0,0 }, { "tremble", do_tremble, POS_FIGHTING, 3, LOG_NORMAL, 0,0,0 }, { "pirate", do_pirate, POS_FIGHTING, 3, LOG_NORMAL, 0,0,0 }, { "regrow", do_regrow, POS_FIGHTING, 3, LOG_NORMAL, 0,0,0 }, { "toughskin", do_toughskin, POS_FIGHTING, 3, LOG_NORMAL, 0,0,0 }, { "trample", do_trample, POS_FIGHTING, 3, LOG_NORMAL, 0,0,0 }, // Drexx { "objsell", do_objsell, POS_STANDING, 3, LOG_NORMAL, 0,0,0}, { "identify", do_identify, POS_STANDING, 3, LOG_NORMAL, 0,0,0}, /* * Elemental, */ { "truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0}, { "enflame", do_enflame, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0}, { "magma", do_magma, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0 }, { "naturesfury", do_naturesfury, POS_MEDITATING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0 }, { "disburse", do_disperce, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0 }, { "enfold", do_enfold, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0}, { "earthshatter", do_earthshatter,POS_FIGHTING, 3, LOG_NORMAL, CLASS_ELEMENTAL, 0, 0 }, { "hydro", do_hydro, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ELEMENTAL, 0, 0 }, { "evaporate", do_evaporate, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0 }, { "solidify", do_solidify, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0 }, { "elemshift", do_elemshift, POS_STANDING, 3, LOG_NORMAL, CLASS_ELEMENTAL,0,0 }, /* * Anti-Paladin */ { "summonmount", do_summonmount, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "unholyritual", do_unholyritual, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "layonhands", do_layonhands, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "delve", do_delve, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "raisedead", do_raise, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "morph", do_morph, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "entangle", do_web, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "dirtkick", do_dirtkick, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "detectliving", do_detectliving, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "flamestrike", do_flamestrike, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "grapple", do_grapple, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "sandman", do_apsleep, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "battlerage", do_battlerage, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, { "shadowtravel", do_shadowtravel, POS_STANDING, 3, LOG_NORMAL, CLASS_ANTIPALADIN,0,0}, /* * Paladin */ { "enlighten", do_enlighten, POS_STANDING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "holyaura", do_pholyaura, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "retribution", do_retribution, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "pmight", do_pmight, POS_STANDING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "holywrath", do_pwrath, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "pblade", do_pblade, POS_STANDING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "barmor", do_barmor, POS_STANDING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "ppractice", do_paladinpractice,POS_STANDING,3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "holyvision", do_holyvision, POS_STANDING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "righteousaura", do_righteous, POS_STANDING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "bash", do_pbash, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, { "leap", do_paladinleap, POS_FIGHTING, 3, LOG_NORMAL, CLASS_PALADIN,0,0}, /* * Blade Master Class by Xrakisis */ { "bladeshow", do_bladegain, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "retort", do_retort, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "portal", do_portal, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "rapidstrike", do_rapidstrike, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "pstrike", do_pstrike, POS_FIGHTING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "combatstyle", do_combatstyle, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0 }, { "weaponpractice", do_weaponpractice, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0}, { "shield", do_shield, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER, 0, 0 }, { "truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_BLADE_MASTER,0,0 }, /* * Dragon Commands. GryphonHawk, March 20003 */ { "dscry", do_scry, POS_STANDING, 3, LOG_NORMAL, CLASS_DRAGON, 0, 0}, { "droar", do_droar, POS_DEAD, 3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "nest", do_nest, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dgain", do_dgain, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dfly", do_fly, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dgem", do_dgem, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "consume", do_consume, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dragform", do_drackform, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dsight", do_dsight, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "hatch", do_hatch, POS_STANDING,3,LOG_ALWAYS, CLASS_DRAGON,0,0}, { "dlick", do_lick, POS_DEAD ,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dconfuse", do_dconfuse, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "peer", do_peer, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "age", do_age, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "gbreath", do_gbreath, POS_FIGHTING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "fbreath", do_fbreath, POS_FIGHTING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "lbreath", do_lbreath, POS_FIGHTING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "cbreath", do_cbreath, POS_FIGHTING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "abreath", do_abreath, POS_FIGHTING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "dswoop", do_dswoop, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "absorb", do_deat, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, { "breathforge", do_breathforge, POS_STANDING,3,LOG_NORMAL, CLASS_DRAGON,0,0}, /* * Shinobi Commands. */ // { "setshin", do_shinflag, POS_STANDING, 12, LOG_NORMAL, 0,0,0}, { "shinobirank",do_shinobirank, POS_STANDING, 3, LOG_NORMAL, CLASS_SHINOBI,0,0}, { "jutsus", do_jutsus, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHINOBI,0,0}, { "handmotion", do_handmotions, POS_STANDING, 3, LOG_NORMAL, CLASS_SHINOBI,0,0}, /* * Zombie Commands. */ { "fleshbond", do_fleshbond, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "evolve", do_evolve, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "shadowplane", do_shadowplane, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "infest", do_infest, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "fleshportal", do_fleshportal, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "satiate", do_satiate, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "zsight", do_zombiesight, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "deathvision", do_deathvision, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "gravespawn", do_meditate, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "shatter", do_shatter, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "zomscry", do_zomscry, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "explosion", do_explosion, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "moan", do_zomtalk, POS_SLEEPING, 2, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "forsake", do_forsake, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "regrow", do_regrow, POS_FIGHTING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "noxious", do_noxious, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "relinquish", do_relinquish, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "spawn", do_spawn, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, { "assimilate", do_assimilate, POS_STANDING, 3, LOG_NORMAL, CLASS_ZOMBIE, 0, 0}, /* Giant powers */ {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"longstep", do_classportal, POS_STANDING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"growth", do_ggrow, POS_STANDING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"smack", do_smack, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"thwack", do_thwack, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"bash", do_bash, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"dawnstrength", do_dawnstrength, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"scry", do_scry, POS_STANDING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"giantgift", do_giantgift, POS_STANDING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"sweep", do_gsweep, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"standfirm", do_standfirm, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"revival", do_revival, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"stoneshape", do_stoneshape, POS_STANDING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"earthpunch", do_earthpunch, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"rumble", do_rumble, POS_DEAD, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, {"deathfrenzy", do_deathfrenzy, POS_FIGHTING, 3, LOG_NORMAL, CLASS_GIANT, 0, 0}, /* * Hobbit powers */ {"vanish", do_vanish, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"hobtalk", do_hobtalk, POS_DEAD, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"readaura", do_readaura, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"shield", do_shield, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"bettercook", do_bettercook, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"dishes", do_dishes, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"cook", do_cook, POS_FIGHTING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, {"tunnel", do_classportal, POS_STANDING, 3, LOG_NORMAL, CLASS_HOBBIT, 0, 0}, /* * Power Lich commands. */ {"lore", do_lore, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"studylore", do_studylore, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"lichtalk", do_lichtalk, POS_SLEEPING, 3, LOG_NORMAL, 9, 0, 0}, {"objectgate", do_objectgate, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"fireball", do_infernal, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"chaosmagic", do_chaosmagic, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"chaossurge", do_chaossurge, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"chaosshield", do_chaosshield, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"golemsummon", do_summongolem, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"planartravel", do_planartravel, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"planarstorm", do_planarstorm, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"readaura", do_readaura, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"powertransfer", do_powertransfer, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"polarity", do_polarity, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"chillhand", do_chillhand, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"creepingdoom", do_creepingdoom, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"painwreck", do_painwreck, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"manasuck", do_manasuck, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"earthswallow", do_earthswallow, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, //{ "licharmor", do_licharmor, POS_STANDING, 3, LOG_NORMAL, 9,0,0}, {"soulsuck", do_soulsuck, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"zombie", do_zombie, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"pentagram", do_pentagram, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"planeshift", do_planeshift, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"chant", do_chant, POS_MEDITATING, 3, LOG_NORMAL, 9, 0, 0}, {"callgolems", do_callgolems, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, /* * Drone powers */ {"abstract", do_abstract, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"dreamscape", do_classportal, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"drool", do_drool, POS_DEAD, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"shield", do_shield, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"mentalblock", do_mentalblock, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"readaura", do_readaura, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"mindwarp", do_mindwarp, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"realityshift", do_realityshift, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"psionicburst", do_psionicburst, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"mindseye", do_mindseye, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"distort", do_distort, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"horrid", do_horrid, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"nightmare", do_nightmare, POS_STANDING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"memorytwist", do_memorytwist, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, {"visage", do_visage, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DRONE, 0, 0}, /* * Fae Powers */ {"reform", do_reform, POS_FIGHTING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_ARCANE, 1}, {"faetalk", do_faetalk, POS_DEAD, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"infuse", do_infuse, POS_FIGHTING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"will", do_will, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"energy", do_energy, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"matter", do_matter, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"plasma", do_plasma, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"conjurebow", do_conjurebow, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"ancients", do_ancients, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"scry", do_scry, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_NATURE, 3}, {"readaura", do_readaura, POS_FIGHTING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_NATURE, 5}, {"barkshift", do_classportal, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_NATURE, 6}, {"djinn", do_djinn, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_NATURE, 8}, {"elementalform", do_elementalform, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_NATURE, 10}, {"vanish", do_vanish, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_ARCANE, 4}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_ARCANE, 6}, {"genie", do_genie, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_ARCANE, 8}, {"glamour", do_glamour, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_ARCANE, 10}, /* * Tanar'ri commands. */ {"earthquake", do_earthquake, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"tornado", do_tornado, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"infernal", do_infernal, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"bloodsacrifice", do_bloodsac, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"enmity", do_enmity, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"enrage", do_enrage, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"booming", do_booming, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"web", do_web, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"claws", do_claws, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"chaosgate", do_chaosgate, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"fury", do_fury, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"tantalk", do_tantalk, POS_DEAD, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, //{ "taneq", do_taneq, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI,0,0}, {"bloodrite", do_unholyrite, POS_STANDING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"lavablast", do_lavablast, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, {"chaossurge", do_chaossurge, POS_FIGHTING, 3, LOG_NORMAL, CLASS_TANARRI, 0, 0}, /* * Undead Knight commands */ {"knighttalk", do_knighttalk, POS_DEAD, 3, LOG_NORMAL, 13, 0, 0}, //{ "knightarmor", do_knightarmor, POS_STANDING, 3, LOG_NORMAL,13,0,0}, // up higher {"gain", do_gain, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, {"weaponpractice", do_weaponpractice, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, {"powerword", do_powerword, POS_FIGHTING, 3, LOG_NORMAL, 13, 0, 0}, {"aura", do_aura, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, {"command", do_command, POS_STANDING, 3, LOG_ALWAYS, 13, 0, 0}, {"unholysight", do_truesight, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, {"bloodrite", do_unholyrite, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, {"ride", do_ride, POS_STANDING, 3, LOG_NORMAL, 13, 0, 0}, {"soulsuck", do_soulsuck, POS_FIGHTING, 3, LOG_NORMAL, 13, 0, 0}, /* * Angel Commands. */ {"prayer", do_angeltalk, POS_MEDITATING, 3, LOG_NORMAL, 12, 0, 0}, {"gpeace", do_gpeace, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"innerpeace", do_innerpeace, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"houseofgod", do_houseofgod, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"angelicaura", do_angelicaura, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, {"gbanish", do_gbanish, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, {"harmony", do_harmony, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, {"gsenses", do_gsenses, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"gfavor", do_gfavor, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"forgiveness", do_forgivness, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, {"martyr", do_martyr, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"swoop", do_swoop, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"awings", do_awings, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"halo", do_halo, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, {"sinsofthepast", do_sinsofthepast, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, {"eyeforaneye", do_eyeforaneye, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, //{ "angelicarmor", do_angelicarmor, POS_STANDING, 3, LOG_NORMAL, 12,0,0 }, {"touchofgod", do_touchofgod, POS_FIGHTING, 3, LOG_NORMAL, 12, 0, 0}, {"spiritform", do_spiritform, POS_STANDING, 3, LOG_NORMAL, 12, 0, 0}, /* * Shapeshifter Commands. */ {"shift", do_shift, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"formlearn", do_formlearn, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"camouflage", do_camouflage, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"mask", do_mask, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"shapeshift", do_shapeshift, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"hatform", do_hatform, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"mistwalk", do_mistwalk, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, //{ "shapearmor", do_shapearmor, POS_STANDING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER,0,0 }, {"roar", do_shaperoar, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"charge", do_charge, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"fblink", do_faerieblink, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"stomp", do_stomp, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"faeriecurse", do_faeriecurse, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"phase", do_phase, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, {"breath", do_breath, POS_FIGHTING, 3, LOG_NORMAL, CLASS_SHAPESHIFTER, 0, 0}, /* * Mage Commands. */ {"magics", do_magics, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"teleport", do_teleport, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"invoke", do_invoke, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"chant", do_chant, POS_MEDITATING, 3, LOG_NORMAL, 2, 0, 0}, //{ "magearmor", do_magearmor, POS_MEDITATING, 3, LOG_NORMAL, 2,0,0 }, {"objectgate", do_objectgate, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"discharge", do_discharge, POS_FIGHTING, 3, LOG_NORMAL, 2, 0, 0}, {"scry", do_scry, POS_FIGHTING, 3, LOG_NORMAL, 2, 0, 0}, {"reveal", do_reveal, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"chaosmagic", do_chaosmagic, POS_FIGHTING, 3, LOG_NORMAL, 2, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, /* * PK POWERS */ {"eaglesight", do_pkscry, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"silverpath", do_pkportal, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"darkhunter", do_pkhunter, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"lifesense", do_pkaura, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"sanctum", do_pkheal, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"calltoarms", do_pkcall, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"ironmind", do_pkmind, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"objectscry", do_pkobjscry, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"crystalsight", do_pkvision, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, /* ****| V-A-M-P-I-R-E-S |**** */ // Melpominee {"scream", do_scream, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_MELP, 1}, // Daimoinon {"guardian", do_guardian, POS_STANDING, 3, LOG_NORMAL, 4,DISC_VAMP_DAIM, 1}, {"fear", do_fear, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_DAIM, 2}, {"portal", do_gate, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_DAIM, 3}, // Lvl 4 - curse --- {"vtwist", do_vtwist, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_DAIM, 5}, {"wither", do_wither, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_HAWK, 7}, // Thanatosis {"hagswrinkles", do_hagswrinkles, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAN, 1}, {"putrefaction", do_rot, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAN, 2}, /* { "ashes", do_ashes, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAN, 3 }, */ {"withering", do_withering, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAN, 4}, {"drainlife", do_drain, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_THAN, 5}, // Necromancy {"preserve", do_preserve, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_NECR, 2}, {"spiritgate", do_spiritgate, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_NECR, 3}, {"spiritguard", do_spiritguard, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_NECR, 4}, // Auspex {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, 4, DISC_WERE_HAWK, 3}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_AUSP, 1}, {"readaura", do_readaura, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_AUSP, 2}, {"scry", do_scry, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_AUSP, 3}, {"astralwalk", do_astralwalk, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_AUSP, 4}, {"unveil", do_unveil, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_AUSP, 5}, // Obfuscate {"vanish", do_vanish, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_OBFU, 1}, {"mask", do_mask, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_OBFU, 2}, {"shield", do_shield, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_OBFU, 3}, {"shield", do_shield, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_OWL, 2}, // Chimerstry {"mirror", do_mirror, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_CHIM, 1}, {"formillusion", do_formillusion, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_CHIM, 2}, {"controlclone", do_control, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_CHIM, 4}, /* * Miscellaneous commands. */ {"accep", do_huh, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"accept", do_accept, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"artifact", do_artifact, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"artisteal", do_artisteal, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"birth", do_birth, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"blindfold", do_blindfold, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"breaku", do_huh, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"breakup", do_breakup, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"claim", do_claim, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"consen", do_huh, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"consent", do_consent, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"finger", do_finger, POS_SITTING, 1, LOG_NORMAL, 0, 0, 0}, {"follow", do_follow, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"gag", do_gag, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"godsfavor", do_godsfavor, POS_DEAD, 3, LOG_NORMAL, 64, 0, 0}, {"hide", do_hide, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"home", do_home, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"hunt", do_hunt, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"locate", do_locate, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"godwarspractice", do_practice, POS_SLEEPING, 0, LOG_NORMAL, 0, 0, 0}, {"propos", do_huh, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"propose", do_propose, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"qui", do_qui, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"quit", do_quit, POS_SLEEPING, 0, LOG_NORMAL, 0, 0, 0}, {"recall", do_recall, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"crecall", do_crecall, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"escape", do_escape, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"/", do_recall, POS_FIGHTING, 0, LOG_NORMAL, 0, 0, 0}, {"rent", do_rent, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"safe", do_safe, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"save", do_save, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"sleep", do_sleep, POS_SLEEPING, 0, LOG_NORMAL, 0, 0, 0}, {"smother", do_smother, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"sneak", do_sneak, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"scan", do_scan, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"scales", do_dscales, POS_STANDING, 0, LOG_NORMAL, 15, 0, 0}, {"spy", do_spy, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"steal", do_steal, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"notravel", do_notravel, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"nosummon", do_nosummon, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"embrace", do_embrace, POS_STANDING, 3, LOG_NORMAL, 8, 0, 0}, {"diablerise", do_diablerise, POS_STANDING, 3, LOG_NORMAL, 8, 0, 0}, {"assassinate", do_assassinate, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_QUIE, 4}, {"tendrils", do_tendrils, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_SERP, 4}, {"lamprey", do_lamprey, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_OBTE, 5}, {"entrance", do_entrance, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_PRES, 3}, {"fleshcraft", do_fleshcraft, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_VICI, 2}, {"zombie", do_zombie, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_NECR, 5}, {"baal", do_baal, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_DOMI, 5}, {"dragonform", do_dragonform, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_VICI, 4}, {"spew", do_spew, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_THAU, 6}, {"bloodwater", do_bloodwater, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_NECR, 5}, {"gourge", do_gourge, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAU, 8}, {"roar", do_roar, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_BEAR, 6}, {"jawlock", do_jawlock, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_RAPT, 8}, {"perception", do_perception, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_RAPT, 3}, {"skin", do_skin, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_BEAR, 7}, {"rend", do_rend, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_BOAR, 7}, {"slam", do_slam, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_BEAR, 8}, {"shred", do_shred, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_RAPT, 7}, {"diablerize", do_diablerise, POS_STANDING, 3, LOG_NORMAL, 8, 0, 0}, {"taste", do_taste, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAU, 1}, {"pigeon", do_pigeon, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_ANIM, 3}, {"bloodagony", do_bloodagony, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_QUIE, 3}, {"tie", do_tie, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"token", do_token, POS_STANDING, 10, LOG_NORMAL, 0, 0, 0}, {"track", do_track, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"train", do_train, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"unpolymorph", do_unpolymorph, POS_STANDING, 4, LOG_NORMAL, 0, 0, 0}, {"untie", do_untie, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"visible", do_visible, POS_SLEEPING, 1, LOG_NORMAL, 0, 0, 0}, {"wake", do_wake, POS_SLEEPING, 0, LOG_NORMAL, 0, 0, 0}, {"where", do_where, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"connect", do_connect, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"game", do_game, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, /* need it before forge */ {"contraception", do_contraception, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, /* * Monk */ {"chaoshands", do_chands, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, //{ "monkarmor", do_monkarmor, POS_STANDING, 3, LOG_NORMAL, 64,0,0 }, {"ghold", do_ghold, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"godsheal", do_godsheal, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"mantra", do_mantra, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"guide", do_guide, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"wrathofgod", do_wrathofgod, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"cloak", do_cloak, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"prayofages", do_prayofages, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"sacredinvis", do_sacredinvis, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"flaminghands", do_flaminghands, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"darkblaze", do_darkblaze, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"adamantium", do_adamantium, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"godseye", do_godseye, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"celestial", do_celestial, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"steelskin", do_steelskin, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"godsbless", do_godsbless, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"thrustkick", do_thrustkick, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"spinkick", do_spinkick, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"backfist", do_backfist, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"elbow", do_elbow, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"sweep", do_sweep, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"reverse", do_reverse, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"knee", do_knee, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"shinkick", do_shinkick, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"palmstrike", do_palmstrike, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"spiritpower", do_spiritpower, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"deathtouch", do_deathtouch, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, {"relax", do_relax, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, {"monktalk", do_monktalk, POS_DEAD, 3, LOG_NORMAL, 64, 0, 0}, {"disciplines", do_disciplines, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"research", do_research, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, /* * Garou */ // Ahroun {"razorclaws", do_razorclaws, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_WOLF, 4}, // Homid // Persuasion, automatic {"staredown", do_staredown, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_OWL, 5}, {"disquiet", do_disquiet, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_OWL, 6}, {"reshape", do_reshape, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_OWL, 7}, {"cocoon", do_cocoon, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_OWL, 8}, // Metis {"quills", do_quills, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_HAWK, 5}, {"burrow", do_burrow, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_HAWK, 6}, {"nightsight", do_nightsight, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_HAWK, 1}, {"learn", do_learn, POS_FIGHTING, 3, LOG_NORMAL, 64, 0, 0}, /* * Vampire and werewolf commands. */ //{ "vamparmor", do_vampirearmor, POS_STANDING, 3, LOG_NORMAL, 8, 0, 0 }, {"bloodwall", do_bloodwall, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_DAIM, 2}, {"conceal", do_conceal, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_OBFU, 5}, {"sharpen", do_sharpen, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_QUIE, 7}, {"purify", do_purification, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, /* * Protean *//* * healing has to go after drow heal */ /* * Obtene */ {"grab", do_grab, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_OBTE, 8}, {"shadowgaze", do_shadowgaze, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_OBTE, 10}, /* * Luna Powers */ {"flameclaws", do_flameclaws, POS_STANDING, 3, LOG_NORMAL, 4, DISC_WERE_LUNA, 1}, {"motherstouch", do_motherstouch, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_LUNA, 3}, {"gmotherstouch", do_gmotherstouch, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_LUNA, 4}, {"sclaws", do_sclaws, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_LUNA, 5}, {"moonbeam", do_moonbeam, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_WERE_LUNA, 8}, //{ "moonarmour", do_moonarmour,POS_STANDING, 3, LOG_NORMAL, 4,DISC_WERE_LUNA,2 }, {"moongate", do_moongate, POS_STANDING, 3, LOG_NORMAL, 4, DISC_WERE_LUNA, 6}, /* * No more luna Powers */ {"tribe", do_tribe, POS_STANDING, 3, LOG_NORMAL, 4, 0, 0}, {"info", do_info, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"building", do_building, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"coding", do_coding, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"demongate", do_dgate, POS_FIGHTING, 3, LOG_NORMAL, 1, 0, 0}, {"devour", do_devour, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_RAPT, 5}, {"frostbreath", do_frostbreath, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_GELU, 2}, {"tick", do_tick, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"resetarea", do_resetarea, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"graft", do_graft, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_ATTA, 5}, {"rage", do_rage, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_ATTA, 3}, {"calm", do_calm, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_ATTA, 4}, {"vamptalk", do_vamptalk, POS_DEAD, 1, LOG_NORMAL, 8, 0, 0}, {"obtain", do_obtain, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"warps", do_warps, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"claws", do_claws, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_ATTA, 1}, {"claws", do_claws, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_WOLF, 1}, {"fangs", do_fangs, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_ATTA, 2}, {"fangs", do_fangs, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_WOLF, 2}, {"horns", do_horns, POS_FIGHTING, 3, LOG_NORMAL, 1, DISC_DAEM_ATTA, 4}, {"blink", do_blink, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_ATTA, 7}, {"inferno", do_dinferno, POS_DEAD, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_HELL, 3}, {"tail", do_tail, POS_FIGHTING, 3, LOG_NORMAL, 1, 0, 0}, /* Vamp */ {"binferno", do_inferno, POS_STANDING, 3, LOG_NORMAL, 1, DISC_VAMP_DAIM, 6}, /* Vamp ^^^^ */ {"immolate", do_immolate, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_HELL, 2}, {"daemonseed", do_seed, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_HELL, 7}, {"hellfire", do_hellfire, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_HELL, 8}, {"ban", do_ban, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"transfer", do_transfer, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"runeeq", do_runeeq, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"afk", do_afk, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"hedit", do_hedit, POS_STANDING, 7, LOG_NORMAL, 0, 0, 0}, {"freeze", do_freeze, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"bitchslap", do_freeze, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"unnerve", do_unnerve, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_DISC, 1}, {"freezeweapon", do_wfreeze, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_GELU, 1}, {"chaosportal", do_chaosport, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_DISC, 4}, {"caust", do_caust, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_CORR, 4}, {"gust", do_gust, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_GELU, 7}, {"entomb", do_entomb, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_GELU, 6}, {"evileye", do_evileye, POS_STANDING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_DISC, 2}, {"leech", do_leech, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_NETH, 4}, {"deathsense", do_deathsense, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DEMON, DISC_DAEM_NETH, 2}, {"prefix", do_prefix, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, /* * bugaboo lala Dunkirk Shit Lala mmm POOP Daemon Stuff */ /* * Start of OLC Shit. Hmm */ {"hset", do_hset, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"hlist", do_hlist, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"tcolor", do_tcolor, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"talons", do_talons, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_RAPT, 10}, {"bonemod", do_bonemod, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_VICI, 3}, {"cauldron", do_cauldron, POS_FIGHTING, 3, LOG_NORMAL, 8, DISC_VAMP_THAU, 2}, {"flamehands", do_flamehands, POS_FIGHTING, 3, LOG_NORMAL, 8, DISC_VAMP_PROT, 5}, {"summon", do_summon, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_PRES, 4}, {"shroud", do_shroud, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_OBTE, 1}, {"share", do_share, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_ANIM, 4}, {"frenzy", do_frenzy, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_ANIM, 5}, {"far", do_far, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_PRES, 9}, {"awe", do_awe, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_PRES, 1}, {"forge", do_forge, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"forget", do_forget, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_DOMI, 8}, {"acid", do_acid, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_DOMI, 4}, {"vsilence", do_death, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_QUIE, 5}, {"flash", do_flash, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_QUIE, 9}, {"tide", do_tide, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_THAU, 5}, {"coil", do_coil, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_SERP, 8}, {"infirmity", do_infirmity, POS_FIGHTING, 3, LOG_NORMAL, 8, DISC_VAMP_QUIE, 2}, {"klaive", do_klaive, POS_STANDING, 3, LOG_NORMAL, 3, 0, 0}, {"gklaive", do_gklaive, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_LUNA, 7}, {"calm", do_calm, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_WOLF, 3}, {"change", do_change, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_PROT, 3}, {"katana", do_katana, POS_RESTING, 3, LOG_NORMAL, CLASS_SAMURAI, 0, 0}, {"earthshatter", do_earthshatter, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, //{ "ninjaarmor", do_ninjaarmor, POS_STANDING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0 }, {"shadowstep", do_shadowstep, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_OBTE, 4}, {"claws", do_claws, POS_SITTING, 3, LOG_NORMAL, 4, DISC_VAMP_PROT, 2}, {"darkheart", do_darkheart, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_SERP, 1}, {"earthmeld", do_earthmeld, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_PROT, 4}, {"burrow", do_burrow, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_BOAR, 5}, {"fangs", do_fangs, POS_SITTING, 3, LOG_NORMAL, 8, 0, 0}, {"flex", do_flex, POS_SITTING, 0, LOG_NORMAL, 0, 0, 0}, {"gcommand", do_fcommand, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"possession", do_possession, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_DOMI, 3}, {"hum", do_monktalk, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"humanform", do_humanform, POS_SITTING, 2, LOG_NORMAL, 0, 0, 0}, {"theft", do_theft, POS_FIGHTING, 3, LOG_NORMAL, 4, DISC_VAMP_THAU, 4}, {"plasma", do_plasma, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_VICI, 5}, {"zuloform", do_zuloform, POS_FIGHTING, 3, LOG_NORMAL, 8, DISC_VAMP_VICI, 2}, {"beckon", do_beckon, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_ANIM, 1}, /* * Ninja */ {"miktalk", do_miktalk, POS_SLEEPING, 2, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"principles", do_principles, POS_MEDITATING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"michi", do_michi, POS_FIGHTING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"harakiri", do_hara_kiri, POS_MEDITATING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"circle", do_circle, POS_FIGHTING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"kakusu", do_kakusu, POS_STANDING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"kanzuite", do_kanzuite, POS_MEDITATING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"mienaku", do_mienaku, POS_FIGHTING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"bomuzite", do_bomuzite, POS_MEDITATING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"tsume", do_tsume, POS_FIGHTING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"mitsukeru", do_mitsukeru, POS_MEDITATING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"koryou", do_koryou, POS_MEDITATING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, {"hakunetsu", do_strangle, POS_STANDING, 3, LOG_NORMAL, CLASS_NINJA, 0, 0}, /* * start drow section */ {"newbiepack", do_newbiepack, POS_SLEEPING, 1, LOG_NORMAL, 0, 0, 0}, {"sign", do_sign, POS_DEAD, 1, LOG_NORMAL, 6, 0, 0}, {"reltalk", do_reltalk, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"relevel", do_relevel, POS_DEAD, 0, LOG_ALWAYS, 0, 0, 0}, {"delevel", do_delevel, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"grant", do_grant, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"drowsight", do_drowsight, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"drowshield", do_drowshield, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"drowfire", do_drowfire, POS_FIGHTING, 3, LOG_NORMAL, 6, 0, 0}, {"drowhate", do_drowhate, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"drowpowers", do_drowpowers, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"darkness", do_darkness, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"lloth", do_lloth, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"collective", do_lloth, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"shadowwalk", do_shadowwalk, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, //{ "drowcreate", do_drowcreate, POS_STANDING, 3, LOG_NORMAL, 6,0,0 }, {"dheal", do_heal, POS_FIGHTING, 3, LOG_NORMAL, 6, 0, 0}, {"garotte", do_garotte, POS_FIGHTING, 3, LOG_NORMAL, 6, 0, 0}, {"spiderform", do_spiderform, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"chaosblast", do_chaosblast, POS_FIGHTING, 3, LOG_NORMAL, 6, 0, 0}, {"dgarotte", do_dark_garotte, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"glamour", do_glamour, POS_RESTING, 3, LOG_NORMAL, 6, 0, 0}, {"confuse", do_confuse, POS_FIGHTING, 3, LOG_NORMAL, 6, 0, 0}, {"darktendrils", do_darktendrils, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, {"fightdance", do_fightdance, POS_STANDING, 3, LOG_NORMAL, 6, 0, 0}, /* end drow */ /*demon section*/ {"eyespy", do_eyespy, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, {"champions", do_champions, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, //{ "demonarmour", do_demonarmour, POS_STANDING, 3, LOG_NORMAL, 1,0,0 }, {"hooves", do_hooves, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, {"humanform", do_humanform, POS_SITTING, 2, LOG_NORMAL, 1, 0, 0}, {"inpart", do_inpart, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, {"travel", do_travel, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, {"weaponform", do_weaponform, POS_STANDING, 2, LOG_NORMAL, 1, 0, 0}, {"leap", do_leap, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, {"wings", do_wings, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0}, {"demonform", do_demonform, POS_STANDING, 3, LOG_NORMAL, 1, 0, 0,}, /*end demon section*/ {"abilities", do_abilities, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, //{ "bladetalk", do_bladetalk, POS_DEAD, 3, LOG_NORMAL, 0,0,0}, {"heavenlyrain", do_heavenlyrain, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"leye", do_truesight, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"reye", do_shadowsight, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"eaglestrength", do_eaglestrength, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"hawkeyes", do_hawkeyes, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"vulturevigor", do_vulturevigor, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"skyforge", do_skyforge, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, //{ "skyarmor", do_skyarmor, POS_STANDING, 3, LOG_NORMAL, 0,0,0}, {"bladejump", do_bladejump, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"pummel", do_pummel, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"cloudsblessing", do_cloudsblessing, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"dragonx", do_dragonx, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"wyrmroar", do_wyrmroar, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"divestrike", do_divestrike, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, /* Autocommands (doesn't have to be typed but this will send them a note telling them that this is an automatic command if they type it.*/ {"falconblade", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"climax", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"dragonaura", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"wyrmaura", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"rapierstrike", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"retort", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"leapoffaith", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"dragoncharge", do_isauto, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"bladetalk", do_bladetalk, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, /* vamp protean healing*/ {"healing", do_healing, POS_FIGHTING, 3, LOG_NORMAL, 8, DISC_VAMP_PROT, 8}, {"healingtouch", do_healingtouch, POS_STANDING, 3, LOG_NORMAL, 64, 0, 0}, /*monks healing power */ {"inconnu", do_inconnu, POS_STANDING, 3, LOG_NORMAL, 8, 0, 0}, {"majesty", do_majesty, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_PRES, 5}, {"nightsight", do_nightsight, POS_SITTING, 3, LOG_NORMAL, 8, DISC_VAMP_PROT, 1}, {"poison", do_poison, POS_STANDING, 3, LOG_NORMAL, 4, DISC_VAMP_SERP, 3}, {"rage", do_rage, POS_FIGHTING, 3, LOG_NORMAL, 4, 0, 0}, {"regenerate", do_regenerate, POS_SLEEPING, 3, LOG_NORMAL, 8, 0, 0}, {"roll", do_roll, POS_RESTING, 2, LOG_NORMAL, 1, 0, 0}, {"stake", do_stake, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"serpent", do_serpent, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_SERP, 2}, {"shadowplane", do_shadowplane, POS_STANDING, 3, LOG_NORMAL, 8, DISC_VAMP_OBTE, 3}, {"shadowplane", do_shadowplane, POS_STANDING, 3, LOG_NORMAL, 4, DISC_WERE_OWL, 3}, {"shadowsight", do_shadowsight, POS_SITTING, 3, LOG_NORMAL, 8, DISC_VAMP_OBTE, 2}, {"shadowsight", do_shadowsight, POS_SITTING, 3, LOG_NORMAL, 4, DISC_WERE_HAWK, 2}, {"serenity", do_serenity, POS_SITTING, 3, LOG_NORMAL, 8, DISC_VAMP_ANIM, 2}, {"totems", do_totems, POS_SITTING, 3, LOG_NORMAL, 4, 0, 0}, {"upkeep", do_upkeep, POS_DEAD, 3, LOG_NORMAL, 0, 0, 0}, {"vanish", do_vanish, POS_STANDING, 3, LOG_NORMAL, 3, DISC_WERE_OWL, 1}, {"web", do_web, POS_FIGHTING, 3, LOG_NORMAL, 3, DISC_WERE_SPID, 2}, /* Spider Droid Powers */ {"chitter", do_chitter, POS_DEAD, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"web", do_web, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, // { "spiderarmor", do_spiderarmor, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0 }, {"lloth", do_lloth, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"shadowwalk", do_classportal, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"darkness", do_darkness, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"radarscan", do_radarscan, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"truesight", do_truesight, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"battlestation", do_battlestation, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"implant", do_implant, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"reload", do_reload, POS_STANDING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"droidspeed", do_droidspeed, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"submachine", do_submachine, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"rocketblast", do_rocketblast, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, {"steam", do_steam, POS_FIGHTING, 3, LOG_NORMAL, CLASS_DROID, 0, 0}, /* Tag commands */ {"healme", do_healme, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"bounty", do_bounty, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"bountylist", do_bountylist, POS_FIGHTING, 2, LOG_NORMAL, 0, 0, 0}, {"oilspit", do_stuntubes, POS_FIGHTING, 3, LOG_NORMAL, 8192, 0, 0}, {"terminator", do_cubeform, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, {"implant", do_implant, POS_STANDING, 0, LOG_NORMAL, 8192, 0, 0}, {"scry", do_scry, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, {"readaura", do_readaura, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, {"lloth", do_lloth, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, {"darkness", do_darkness, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, {"mechsight", do_infravision, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, //{ "cyborgeq", do_cyborgeq, POS_STANDING, 3, LOG_NORMAL, 8192,0,0}, {"web", do_web, POS_FIGHTING, 3, LOG_NORMAL, 8192, 0, 0}, {"transmit", do_transmit, POS_DEAD, 3, LOG_NORMAL, 8192, 0, 0}, {"upload", do_shadowwalk, POS_STANDING, 3, LOG_NORMAL, 8192, 0, 0}, /* * quest stuff */ {"createbase", do_createbase, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"showquest", do_showquest, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"qgain", do_qgain, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"qcomplete", do_qcomplete, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"showalias", do_showalias, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"history", do_history, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, /* * shopping commands */ {"shop", do_shop, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, // {"obuy", do_obuy, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, // {"olist", do_olist, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"buy", do_buy, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, // {"sell", do_sell, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"list", do_list, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, // {"describe", do_describe, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"auction", do_auction, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"vote", do_vote, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"changes", do_changes, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"delchange", do_delchange, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"addchange", do_addchange, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"oldscore", do_score, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"shoot", do_shoot, POS_STANDING, 1, LOG_NORMAL, CLASS_CYBORG, 0, 0}, {"reload", do_reload, POS_STANDING, 1, LOG_NORMAL, CLASS_CYBORG, 0, 0}, {"unload", do_unload, POS_STANDING, 1, LOG_NORMAL, CLASS_CYBORG, 0, 0}, /* * Immortal commands. */ {"faith", do_faith, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"timer", do_timer, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"ragnarok", do_ragnarok, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"aggrocheck", do_aggrocheck, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"showsounds", do_showsounds, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"dblbuy", do_dblbuy, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"showsilence", do_showsilence, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"setclass", do_setclass, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"pathfind", do_pathfind, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"ccenter", do_ccenter, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"project", do_project, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"showcomp", do_showcompress, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"implag", do_implag, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"toggle", do_toggle, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"trust", do_trust, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"snatch", do_snatch, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"allow", do_allow, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"bind", do_bind, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"clearstats", do_clearstats, POS_STANDING, 0, LOG_NORMAL, 0, 0, 0}, {"create", do_create, POS_STANDING, 8, LOG_NORMAL, 0, 0, 0}, {"deny", do_deny, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"wipe", do_wipe, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"disable", do_disable, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"disconnect", do_disconnect, POS_DEAD, 10, LOG_NEVER, 0, 0, 0}, {"divorce", do_divorce, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"familiar", do_familiar, POS_STANDING, 12, LOG_NORMAL, 0, 0, 0}, {"unpreg", do_unpreg, POS_STANDING, 12, LOG_NORMAL, 0, 0, 0}, {"makepreg", do_makepreg, POS_STANDING, 11, LOG_NORMAL, 0, 0, 0}, {"fcommand", do_fcommand, POS_STANDING, 4, LOG_NORMAL, 0, 0, 0}, {"freeze", do_freeze, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"marry", do_marry, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"paradox", do_paradox, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"bully", do_bully, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"unmaster", do_unmaster, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"qset", do_qset, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"qstat", do_qstat, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"qtrust", do_qtrust, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"prename", do_prename, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"wiznet", do_wiznet, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"copyover", do_copyover, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"shutdow", do_shutdow, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"shutdown", do_shutdown, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"users", do_users, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"omni", do_omni, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"hreload", do_hreload, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"wizlock", do_wizlock, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"closemud", do_closemud, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"force", do_force, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"asperson", do_asperson, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"offline", do_offline, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"pfile", do_pfile, POS_DEAD, 7, LOG_ALWAYS, 0, 0, 0}, {"exlist", do_exlist, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"load", do_load, POS_DEAD, 7, LOG_ALWAYS, 0, 0, 0}, {"undeny", do_undeny, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"mset", do_mset, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"wset", do_wset, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"multicheck", do_multicheck, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"resetpasswd", do_resetpassword, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"oclone", do_oclone, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, { "oload", do_oload, POS_DEAD, 12 , LOG_ALWAYS, 0,0,0 }, {"randomload", do_randomload, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"psycho", do_psycho, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"oset", do_oset, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"otransfer", do_otransfer, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"pload", do_pload, POS_DEAD, 11, LOG_ALWAYS, 0, 0, 0}, {"preturn", do_preturn, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"pset", do_pset, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"pstat", do_pstat, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"purge", do_purge, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"beep", do_beep, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"unrestore", do_unrestore, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"xpup", do_xpup, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"checkpk", do_checkpk, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"freevnums", do_freevnums, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"daynight", do_daynight, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"release", do_release, POS_DEAD, 9, LOG_ALWAYS, 0, 0, 0}, {"restore", do_restore, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"rset", do_rset, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"silence", do_silence, POS_DEAD, 9, LOG_NORMAL, 0, 0, 0}, {"sla", do_sla, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"slay", do_slay, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"slay2", do_slay2, POS_FIGHTING, 12, LOG_NORMAL, 0, 0, 0}, {"decapitate", do_decapitate, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"tiercap", do_tiercap, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"sset", do_sset, POS_DEAD, 10, LOG_ALWAYS, 0, 0, 0}, {"transfer", do_transfer, POS_DEAD, 7, LOG_ALWAYS, 0, 0, 0}, {"transport", do_transport, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"at", do_at, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"bamfin", do_bamfin, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"bamfout", do_bamfout, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"echo", do_echo, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"goto", do_goto, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"holylight", do_holylight, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"invis", do_invis, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"incognito", do_incognito, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"ghost", do_ghost, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"log", do_log, POS_DEAD, 12, LOG_ALWAYS, 0, 0, 0}, {"logstat", do_logstat, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"logstatclear", do_logstatclear, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"memusage", do_memory, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"mfind", do_mfind, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"mstat", do_mstat, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"mpstat", do_mpstat, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"opedit", do_opedit, POS_DEAD, 11, LOG_ALWAYS, 0}, {"rpedit", do_rpedit, POS_DEAD, 11, LOG_ALWAYS, 0}, {"opdump", do_opdump, POS_DEAD, 7, LOG_NEVER, 0}, {"mpdump", do_mpdump, POS_DEAD, 7, LOG_NEVER, 0}, {"opstat", do_opstat, POS_DEAD, 7, LOG_NEVER, 0}, {"rpdump", do_rpdump, POS_DEAD, 7, LOG_NEVER, 0}, {"rpstat", do_rpstat, POS_DEAD, 7, LOG_NEVER, 0}, {"mwhere", do_mwhere, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"ofind", do_ofind, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"ostat", do_ostat, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"oswitch", do_oswitch, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"oreturn", do_oreturn, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"owhere", do_owhere, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"peace", do_peace, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"recho", do_recho, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"immreturn", do_return, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"rstat", do_rstat, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"slookup", do_slookup, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"snoop", do_snoop, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"switch", do_switch, POS_DEAD, 8, LOG_ALWAYS, 0, 0, 0}, {"samtalk", do_hightalk, POS_DEAD, 1, LOG_NORMAL, 5, 0, 0}, {"magetalk", do_magetalk, POS_DEAD, 2, LOG_NORMAL, 2, 0, 0}, {"vtalk", do_vamptalk, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {">", do_vamptalk, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"vampire", do_vampire, POS_STANDING, 1, LOG_NORMAL, 0, 0, 0}, {"immune", do_immune, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"resistance", do_resistance, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"[", do_fcommand, POS_SITTING, 3, LOG_NORMAL, 0, 0, 0}, {"immtalk", do_immtalk, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {":", do_immtalk, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"thirdeye", do_thirdeye, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"psilence", do_psilence, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"plog", do_plog, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, /* * New Database shit - JOBO */ {"leader", do_leader, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"leaderclear", do_leaderclear, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"kingdoms", do_kingdoms, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"ktalk", do_ktalk, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"kstats", do_kstats, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"kingset", do_kingset, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"wantkingdom", do_wantkingdom, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"kinduct", do_kinduct, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"kset", do_kset, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"koutcast", do_koutcast, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"kdeposit", do_kdeposit, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"decwar", do_decwar, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"warlist", do_warlist, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"warpeace", do_warpeace, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"krecall", do_krecall, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"kpromote", do_kpromote, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"kwithdraw", do_kwithdraw, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"defect", do_defect, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, /* * newbie banning and unbanning */ {"newban", do_newban, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"newallow", do_newallow, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, /* * Arena stuff - Jobo */ {"resign", do_resign, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"arenastats", do_arenastats, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"arenaset", do_arenaset, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"tourney", do_tourney, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"arenajoin", do_arenajoin, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"arenaopen", do_openthearena, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"bet", do_bet, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"balance", do_balance, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"membership", do_membership, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"deposit", do_deposit, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"withdraw", do_withdraw, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"fortressstats", do_fortressstats, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, {"challenge", do_challenge, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"decline", do_decline, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"agree", do_accept2, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"ignore", do_ignore, POS_DEAD, 2, LOG_NORMAL, 0, 0, 0}, {"policy", do_policy, POS_STANDING, 1, LOG_NEVER, 0, 0, 0}, {"favor", do_favor, POS_STANDING, 2, LOG_NORMAL, 0, 0, 0}, /* * Religion commands */ {"worship", do_worship, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"forsake", do_forsake, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"setavatar", do_setavatar, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"setdecap", do_setdecap, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"setlogout", do_setlogout, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"setlogin", do_setlogin, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"settie", do_settie, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"relset", do_relset, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"setrank", do_setrank, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"relbuy", do_relbuy, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"darmor", do_darmor, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"gzone", do_gzone, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"holyword", do_holyword, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"areaaffects", do_areaaffects, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"thorns", do_thorns, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"rpurge", do_rpurge, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"deja", do_deja, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"holysymbol", do_holysymbol, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"badmoon", do_badmoon, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"areaheal", do_areaheal, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"relpowers", do_relpowers, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"hdesire", do_hdesire, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"dscry", do_dscry, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"pestilence", do_pestilence, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"banishment", do_banishment, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"starsight", do_starsight, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"gaia", do_gaia, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"dbattle", do_dbattle, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"callwild", do_callwild, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"madness", do_madness, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"gfury", do_gfury, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"subvert", do_subvert, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"rebirth", do_rebirth, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"landscape", do_landscape, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"supernova", do_supernova, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, {"farmor", do_farmor, POS_FIGHTING, 3, LOG_NORMAL, 0, 0, 0}, /* * New shit added by Hutoshi */ {"sigil", do_sigil, POS_STANDING, 3, LOG_NORMAL, 0, 0, 0}, {"cprime", do_cprime, POS_STANDING, 11, LOG_NORMAL, 0, 0, 0}, /* * OLC 1.1b and Social Edit */ {"allpeace", do_allpeace, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"aedit", do_aedit, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"dismember", do_dismember, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"redit", do_redit, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"oedit", do_oedit, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"medit", do_medit, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"mpedit", do_mpedit, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"asave", do_asave, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"alist", do_alist, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"resets", do_resets, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"spellset", do_spellset, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"stanceset", do_stanceset, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"weapset", do_weapset, POS_DEAD, 10, LOG_NORMAL, 0, 0, 0}, {"sedit", do_sedit, POS_DEAD, 7, LOG_NORMAL, 0, 0, 0}, {"wrlist", do_wrlist, POS_DEAD, 8, LOG_NORMAL, 0, 0, 0}, {"meditate", do_meditate, POS_MEDITATING, 0, LOG_NORMAL, 0, 0, 0}, {"relearn", do_relearn, POS_DEAD, 1, LOG_NORMAL, 0, 0, 0}, {"mobquest", do_mobquest, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"clearflags", do_clearflags, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"spinebreak", do_spinebreak, POS_DEAD, 12, LOG_NORMAL, 0, 0, 0}, {"startragbid", do_startragbid, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"endragnarok", do_endragnarok, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"loop", do_loop, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"scatter", do_scatter, POS_DEAD, 11, LOG_NORMAL, 0, 0, 0}, {"commands", do_commands, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"meditate", do_meditate, POS_STANDING, 3, LOG_NORMAL, CLASS_FAE, DISC_FAE_ARCANE, 2}, {"channel", do_channel, POS_FIGHTING, 3, LOG_NORMAL, CLASS_FAE, 0, 0}, {"newwho", do_newwho, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"channels", do_channels, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0}, {"channelforce", do_channelforce, POS_STANDING, 3, LOG_NORMAL, CLASS_JEDI, 0, 0}, {"arts", do_arts, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"chaos", do_chaos, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"thunderclap", do_thunderclap, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, // {"mirage", do_mirage, POS_STANDING, 3, LOG_NORMAL, 9, 0, 0}, {"hellblades", do_hellblades, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"wod", do_wrath, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"firebolt", do_firebolt, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"pshift", do_pshift, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"plost", do_plost, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"icelance", do_icelance, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, {"negativity", do_negativity, POS_FIGHTING, 3, LOG_NORMAL, 9, 0, 0}, /*New Mages*/ {"mageskill", do_mageskill, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"specialize", do_specialize, POS_STANDING, 3, LOG_NORMAL, 2, 0, 0}, {"magechant", do_sorchant, POS_FIGHTING, 3, LOG_NORMAL, 2, 0, 0}, {"mindblank", do_mindblank, POS_FIGHTING, 3, LOG_NORMAL, 2, 0, 0}, {"target", do_target, POS_FIGHTING, 3, LOG_NORMAL, 2, 0, 0}, {"magespells", do_magespells, POS_MEDITATING, 3, LOG_NORMAL, 2, 0, 0}, /* Akurei's things */ { "outerexits", do_outerexits, POS_STANDING, 7, LOG_NORMAL, 0, 0, 0 }, { "enterexits", do_enterexits, POS_STANDING, 7, LOG_NORMAL, 0, 0, 0 }, { "removeexit", do_removeexit, POS_STANDING, 12, LOG_ALWAYS, 0, 0, 0 }, { "removeexits", do_removeexits, POS_STANDING, 12, LOG_ALWAYS, 0, 0, 0 }, /* * End of list. */ {"", 0, POS_DEAD, 0, LOG_NORMAL, 0, 0, 0} }; /* * 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 arg[MAX_STRING_LENGTH]; char argu[MAX_STRING_LENGTH]; char buf[MAX_INPUT_LENGTH]; char log_buf[MSL]; char command[MAX_STRING_LENGTH]; char logline[MAX_STRING_LENGTH]; int cmd; int trust; bool found, foundstar = FALSE; sh_int col = 0; int star = 0; int cPerm = sAllocPerm; char cmd_copy[MAX_INPUT_LENGTH]; if (!ch) return; if (!ch->in_room) { xprintf(buf, "Interpret: %s not in any room.", ch->name); bug(buf, 0); return; } xprintf(argu, "%s %s", arg, one_argument(argument, arg)); /* * Strip leading spaces. */ while (isspace(*argument)) argument++; if (argument[0] == '\0') return; strcpy(cmd_copy, argument); /* * Implement freeze command. */ if (!IS_NPC(ch) && IS_SET(ch->act, PLR_FREEZE)) { send_to_char("You can't do anything while frozen!\n\r", ch); return; } if (!IS_NPC(ch) && IS_SET(ch->extra, EXTRA_AFK) && str_cmp(argument, "afk")) do_afk(ch, ""); /* * Grab the command word. * Special parsing so ' can be a command, * also no spaces needed after punctuation. */ strcpy(logline, 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); } /* * List all valid commands */ if (command[strlen(command) - 1] == '*') { command[strlen(command) - 1] = '\0'; 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++; xprintf(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) { xprintf(buf, "\n%d command%s found.\n\r", star, (star > 1) ? "s" : ""); stc(buf, ch); } if (!foundstar) { stc("No commands found.\n\r", ch); } return; } /* * Alias system, beta version by Jobo. */ if (!IS_NPC(ch)) { ALIAS_DATA *ali; for (ali = ch->pcdata->alias; ali; ali = ali->next) { if (!str_cmp(command, ali->short_n)) { xprintf(buf, "%s %s", ali->long_n, argument); interpret(ch, buf); return; } } } /* * Look for command in command table. */ found = FALSE; trust = get_trust(ch); for (cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++) { if (command[0] == cmd_table[cmd].name[0] && !str_prefix(command, cmd_table[cmd].name) && cmd_table[cmd].level <= trust) { 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, ":")) 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, "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, "roll")) 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, "obj") && !IS_NPC(ch) && ch->pcdata->obj_vnum != 0) 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_EXTRA(ch, EXTRA_EARTHMELD)) { if (!str_cmp (cmd_table[cmd].name, "earthmeld")) 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, "wake")) 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, "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 { 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, "'")) 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, "diablerize") && 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, 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, ".")) 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, "call")) 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, "restore")) 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, "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, "consent")) 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, "wake")) 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"); if (!IS_NPC(ch) && (IS_SET(ch->act, PLR_LOG) || fLogAll || cmd_table[cmd].log == LOG_ALWAYS)) { if (!IS_CREATOR(ch) && !IS_NPC(ch)) { if (ch->pcdata->log_count > 0) { ch->pcdata->log_count--; if (ch->pcdata->log_count == 0) REMOVE_BIT(ch->act, PLR_LOG); } xprintf(log_buf, "Log %s: %s", ch->pcdata->switchname, logline); wiznet(log_buf, ch, NULL, WIZ_SECURE, 0, get_trust(ch)); log_string(LOG_SECURITY, log_buf); } } /* * logs only to file, not to channel_log */ if (IS_SET(ch->special, SPC_LOG2) || cmd_table[cmd].log == LOG_SEMI) { if (!IS_NPC(ch)) { xprintf(log_buf, "Log %s: %s", ch->pcdata->switchname, logline); log_string(LOG_SECURITY, log_buf); } } if (ch->desc != NULL && ch->desc->snoop_by != NULL) { 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); } if (ch != NULL && ch->unveil != NULL) { unveil = ch->unveil; if (unveil->in_room != NULL) { if (unveil->in_room->vnum != ch->in_room->vnum) { xprintf(buf, "You lose your mental link with %s.\n\r", ch->name); stc(buf, unveil); } else { stc("% ", unveil); stc(logline, unveil); stc("\n\r", unveil); } } else ch->unveil = NULL; } 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) #ifdef I3 && !I3_command_hook(ch, command, argument) #endif #ifdef IMC && !imc_command_hook(ch, command, argument) #endif ) { if (!check_xsocial(ch, command, argument)) do_rand_typo(ch, ""); } return; } else /* a normal valid command.. check if it is disabled */ if (check_disabled(&cmd_table[cmd])) { send_to_char ("This command has been temporarily disabled.\n\r", ch); return; } if (IS_AFF2(ch, PLR_IMPLAG)) { WAIT_STATE(ch, 20 * PULSE_VIOLENCE); } /* * 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; } /* * Dispatch the command. */ if (last_command != NULL) free_string(last_command); xprintf(log_buf, "%s %s BY %s", cmd_table[cmd].name, argument, ch->name); last_command = str_dup(log_buf); cmd_done = FALSE; (*cmd_table[cmd].do_fun) (ch, argument); cmd_done = TRUE; if (extra_log) { if (cPerm < sAllocPerm) { xprintf(buf, "Alloc_perm : %s %s by %s", cmd_table[cmd].name, argument, ch->name); log_string(LOG_GAME, buf); } } tail_chain(); return; } bool check_social(CHAR_DATA * ch, char *command, char *argument) { char arg[MAX_STRING_LENGTH]; CHAR_DATA *victim; int cmd; bool found; found = FALSE; for (cmd = 0; social_table[cmd].name[0] != '\0'; cmd++) { if (command[0] == social_table[cmd].name[0] && !str_prefix(command, social_table[cmd].name)) { found = TRUE; break; } } if (!found) return FALSE; switch (ch->position) { case POS_DEAD: send_to_char("Lie still; you are DEAD.\n\r", ch); return TRUE; case POS_INCAP: case POS_MORTAL: send_to_char("You are hurt far too bad for that.\n\r", ch); return TRUE; case POS_STUNNED: send_to_char("You are too stunned to do that.\n\r", ch); return TRUE; case POS_SLEEPING: /* * I just know this is the path to a 12" 'if' statement. :( * But two players asked for it already! -- Furey */ if (!str_cmp(social_table[cmd].name, "snore")) break; send_to_char("In your dreams, or what?\n\r", ch); return TRUE; } one_argument(argument, arg); victim = NULL; if (arg[0] == '\0') { act(social_table[cmd].others_no_arg, ch, NULL, victim, TO_ROOM); act(social_table[cmd].char_no_arg, ch, NULL, victim, TO_CHAR); } else if ((victim = get_char_room(ch, NULL, arg)) == NULL) { send_to_char("They aren't here.\n\r", ch); } else if (victim == ch) { act(social_table[cmd].others_auto, ch, NULL, victim, TO_ROOM); act(social_table[cmd].char_auto, ch, NULL, victim, TO_CHAR); } else { act(social_table[cmd].others_found, ch, NULL, victim, TO_NOTVICT); act(social_table[cmd].char_found, ch, NULL, victim, TO_CHAR); act(social_table[cmd].vict_found, ch, NULL, victim, TO_VICT); if (!IS_NPC(ch) && IS_NPC(victim) && !IS_AFFECTED(victim, AFF_CHARM) && IS_AWAKE(victim)) { switch (number_bits(4)) { case 0: multi_hit(victim, ch, TYPE_UNDEFINED); break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: act(social_table[cmd].others_found, victim, NULL, ch, TO_NOTVICT); act(social_table[cmd].char_found, victim, NULL, ch, TO_CHAR); act(social_table[cmd].vict_found, victim, NULL, ch, TO_VICT); break; case 9: case 10: case 11: case 12: act("$n slaps $N.", victim, NULL, ch, TO_NOTVICT); act("You slap $N.", victim, NULL, ch, TO_CHAR); act("$n slaps you.", victim, NULL, ch, TO_VICT); break; } } } return TRUE; } bool check_xsocial(CHAR_DATA * ch, char *command, char *argument) { char arg[MAX_STRING_LENGTH]; CHAR_DATA *victim; CHAR_DATA *partner = NULL; int cmd; int stage; int amount; bool is_ok = FALSE; bool found = FALSE; bool one = FALSE; bool two = FALSE; if (IS_NPC(ch)) return FALSE; for (cmd = 0; xsocial_table[cmd].name[0] != '\0'; cmd++) { if (command[0] == xsocial_table[cmd].name[0] && !str_prefix(command, xsocial_table[cmd].name)) { found = TRUE; break; } } if (!found) return FALSE; switch (ch->position) { case POS_DEAD: send_to_char("Lie still; you are DEAD.\n\r", ch); return TRUE; case POS_INCAP: case POS_MORTAL: send_to_char("You are hurt far too bad for that.\n\r", ch); return TRUE; case POS_STUNNED: send_to_char("You are too stunned to do that.\n\r", ch); return TRUE; case POS_SLEEPING: send_to_char("In your dreams, or what?\n\r", ch); return TRUE; } one_argument(argument, arg); victim = NULL; if ((victim = get_char_room(ch, NULL, arg)) == NULL) { send_to_char("They aren't here.\n\r", ch); return TRUE; } if (IS_NPC(victim)) { send_to_char("You can only perform xsocials on players.\n\r", ch); return TRUE; } if (!str_cmp(ch->pcdata->switchname, "")) { victim->pcdata->partner = ch; } else if (IS_SET(victim->extra, TIED_UP)) { victim->pcdata->partner = ch; } if (IS_EXTRA(ch, TIED_UP)) { send_to_char ("You wiggle and strain but the ropes only tighten.\n\r", ch); act("$n strains helplessly against $m bonds.", ch, NULL, NULL, TO_ROOM); return FALSE; } else if (arg[0] == '\0') { act(xsocial_table[cmd].others_no_arg, ch, NULL, victim, TO_ROOM); act(xsocial_table[cmd].char_no_arg, ch, NULL, victim, TO_CHAR); } else if (victim == ch) { act(xsocial_table[cmd].others_auto, ch, NULL, victim, TO_ROOM); act(xsocial_table[cmd].char_auto, ch, NULL, victim, TO_CHAR); } else { if (xsocial_table[cmd].gender == SEX_MALE && ch->sex != SEX_MALE) { send_to_char ("Only men can perform this type of social.\n\r", ch); } else if (xsocial_table[cmd].gender == SEX_FEMALE && ch->sex != SEX_FEMALE) { send_to_char ("Only women can perform this type of social.\n\r", ch); } else if (xsocial_table[cmd].gender == SEX_MALE && victim->sex != SEX_FEMALE) { send_to_char ("You can only perform this social on a woman.\n\r", ch); } else if (xsocial_table[cmd].gender == SEX_FEMALE && victim->sex != SEX_MALE) { send_to_char ("You can only perform this social on a man.\n\r", ch); } else if (xsocial_table[cmd].gender == 3 && ch->sex != SEX_FEMALE) { stc("Only females may preform this command.\n\r", ch); } else if (xsocial_table[cmd].gender == 3 && victim->sex != SEX_FEMALE) { stc("You can only preform this command on a female.\n\r", ch); } else if (((partner = victim->pcdata->partner) == NULL || partner != ch)) { stc("You cannot perform an xsocial on someone without their consent.\n\r", ch); } else if (xsocial_table[cmd].stage == 0 && ch->pcdata->stage[0] < 1 && ch->pcdata->stage[2] > 0 && ch->sex == 5) send_to_char ("You have not yet recovered from last time!\n\r", ch); else if (xsocial_table[cmd].stage == 0 && victim->pcdata->stage[0] < 1 && victim->pcdata->stage[2] > 0 && victim->sex == 5) send_to_char ("They have not yet recovered from last time!\n\r", ch); else if (xsocial_table[cmd].stage > 0 && ch->pcdata->stage[0] < 100) send_to_char("You are not sufficiently aroused.\n\r", ch); else if (xsocial_table[cmd].stage > 0 && victim->pcdata->stage[0] < 100) send_to_char("They are not sufficiently aroused.\n\r", ch); else if (xsocial_table[cmd].stage > 1 && ch->pcdata->stage[1] < 1) send_to_char("You are not in the right position.\n\r", ch); else if (xsocial_table[cmd].stage > 1 && victim->pcdata->stage[1] < 1) send_to_char ("They are not in the right position.\n\r", ch); else { act(xsocial_table[cmd].others_found, ch, NULL, victim, TO_NOTVICT); act(xsocial_table[cmd].char_found, ch, NULL, victim, TO_CHAR); act(xsocial_table[cmd].vict_found, ch, NULL, victim, TO_VICT); if (xsocial_table[cmd].chance) { if (ch->sex == SEX_FEMALE && !IS_EXTRA(ch, EXTRA_PREGNANT) && number_range(1, 3) == 1) make_preg(ch, victim); else if (victim->sex == SEX_FEMALE && !IS_EXTRA(victim, EXTRA_PREGNANT) && number_range(1, 3) == 1) make_preg(victim, ch); } if (!str_prefix(xsocial_table[cmd].name, "x-tie")) { SET_BIT(victim->extra, TIED_UP); } if (!str_prefix(xsocial_table[cmd].name, "x-gag")) { SET_BIT(victim->extra, GAGGED); } if (!str_prefix (xsocial_table[cmd].name, "x-blindfold")) { SET_BIT(victim->extra, BLINDFOLDED); } if (xsocial_table[cmd].stage == 1) { ch->pcdata->stage[1] = xsocial_table[cmd].position; victim->pcdata->stage[1] = xsocial_table[cmd].position; if (!IS_SET(ch->extra, EXTRA_DONE)) { SET_BIT(ch->extra, EXTRA_DONE); if (ch->sex == SEX_FEMALE) { act("You feel $n bleed as you enter $m.", ch, NULL, victim, TO_VICT); act("You feel yourself bleed as $N enters you.", ch, NULL, victim, TO_CHAR); ch->in_room->blood += 1; } } if (!IS_SET(victim->extra, EXTRA_DONE)) { SET_BIT(victim->extra, EXTRA_DONE); if (victim->sex == SEX_FEMALE) { act("You feel $N bleed as you enter $M.", ch, NULL, victim, TO_CHAR); act("You feel yourself bleed as $n enters you.", ch, NULL, victim, TO_VICT); ch->in_room->blood += 1; } } stage = 2; } else stage = xsocial_table[cmd].stage; if (stage == 2) amount = ch->pcdata->stage[1]; else amount = 100; if (xsocial_table[cmd].self > 0) { is_ok = FALSE; if (ch->pcdata->stage[stage] >= amount) is_ok = TRUE; ch->pcdata->stage[stage] += xsocial_table[cmd].self; if (!is_ok && ch->pcdata->stage[stage] >= amount) { stage_update(ch, victim, stage, xsocial_table[cmd].name); one = TRUE; } } if (xsocial_table[cmd].other > 0) { is_ok = FALSE; if (victim->pcdata->stage[stage] >= amount) is_ok = TRUE; victim->pcdata->stage[stage] += xsocial_table[cmd].other; if (!is_ok && victim->pcdata->stage[stage] >= amount) { stage_update(victim, ch, stage, xsocial_table[cmd].name); two = TRUE; } } if (one && two) { ch->pcdata->stage[0] = 0; victim->pcdata->stage[0] = 0; if (!IS_EXTRA(ch, EXTRA_EXP)) { send_to_char ("Congratulations on achieving a simultanious orgasm! Recieve 100000 exp!\n\r", ch); SET_BIT(ch->extra, EXTRA_EXP); ch->exp += 100000; } if (!IS_EXTRA(victim, EXTRA_EXP)) { send_to_char ("Congratulations on achieving a simultanious orgasm! Recieve 100000 exp!\n\r", victim); SET_BIT(victim->extra, EXTRA_EXP); victim->exp += 100000; } } } } return TRUE; } void stage_update(CHAR_DATA * ch, CHAR_DATA * victim, int stage, char *argument) { if (IS_NPC(ch) || IS_NPC(victim)) return; if (stage == 0) { if (ch->sex == SEX_MALE) { send_to_char("You get a boner.\n\r", ch); act("You feel $n get a boner.", ch, NULL, victim, TO_VICT); return; } else if (ch->sex == SEX_FEMALE) { send_to_char("You get wet.\n\r", ch); act("You feel $n get wet.", ch, NULL, victim, TO_VICT); return; } } else if (stage == 2) { if (ch->sex == SEX_MALE) { if (str_cmp(argument, "xm-cum") && str_cmp(argument, "xm-facial") && str_cmp(argument, "xm-canal") && str_cmp(argument, "xm-canal") && str_cmp(argument, "xm-cbreasts") && str_cmp(argument, "xm-chair") && str_cmp(argument, "xm-chand") && str_cmp(argument, "xm-cstomach") && str_cmp(argument, "xf-chands") && str_cmp(argument, "xf-cbreasts")) { act("You grit your teeth as you shoot your creamy load inside of $M.", ch, NULL, victim, TO_CHAR); act("$n grits his teeth as he shoots his load inside of you.", ch, NULL, victim, TO_VICT); act("$n grits his teeth as he shoots a load of cum inside of $N.", ch, NULL, victim, TO_NOTVICT); } ch->pcdata->genes[8] += 1; victim->pcdata->genes[8] += 1; save_char_obj(ch); save_char_obj(victim); if (victim->pcdata->stage[2] < 1 || victim->pcdata->stage[2] >= 250) { ch->pcdata->stage[2] = 0; if (ch->pcdata->stage[0] >= 200) ch->pcdata->stage[0] -= 100; } else ch->pcdata->stage[2] = 200; if (victim->sex == SEX_FEMALE && !IS_EXTRA(victim, EXTRA_PREGNANT) && number_percent() <= 8) make_preg(victim, ch); return; } else if (ch->sex == SEX_FEMALE) { if (str_cmp(argument, "xf-cum") && str_cmp(argument, "xf-cface")) { act("You whimper as you cum.", ch, NULL, victim, TO_CHAR); act("$n whimpers as $e cums.", ch, NULL, victim, TO_ROOM); } if (victim->pcdata->stage[2] < 1 || victim->pcdata->stage[2] >= 250) { ch->pcdata->stage[2] = 0; if (ch->pcdata->stage[0] >= 200) ch->pcdata->stage[0] -= 100; } else ch->pcdata->stage[2] = 200; return; } } return; } void make_preg(CHAR_DATA * mother, CHAR_DATA * father) { char *strtime; char buf[MAX_STRING_LENGTH]; if (IS_NPC(mother) || IS_NPC(father)) return; if (IS_SET(mother->affected_by2, AFF_CONTRACEPTION)) return; strtime = ctime(¤t_time); strtime[strlen(strtime) - 1] = '\0'; free_string(mother->pcdata->conception); mother->pcdata->conception = str_dup(strtime); xprintf(buf, "%s", father->name); free_string(mother->pcdata->cparents); mother->pcdata->cparents = str_dup(buf); SET_BIT(mother->extra, EXTRA_PREGNANT); mother->pcdata->genes[0] = (mother->max_hit + father->max_hit) * 0.5; mother->pcdata->genes[1] = (mother->max_mana + father->max_mana) * 0.5; mother->pcdata->genes[2] = (mother->max_move + father->max_move) * 0.5; if (IS_IMMUNE(mother, IMM_SLASH) && IS_IMMUNE(father, IMM_SLASH)) SET_BIT(mother->pcdata->genes[3], IMM_SLASH); if (IS_IMMUNE(mother, IMM_STAB) && IS_IMMUNE(father, IMM_STAB)) SET_BIT(mother->pcdata->genes[3], IMM_STAB); if (IS_IMMUNE(mother, IMM_SMASH) && IS_IMMUNE(father, IMM_SMASH)) SET_BIT(mother->pcdata->genes[3], IMM_SMASH); if (IS_IMMUNE(mother, IMM_ANIMAL) && IS_IMMUNE(father, IMM_ANIMAL)) SET_BIT(mother->pcdata->genes[3], IMM_ANIMAL); if (IS_IMMUNE(mother, IMM_MISC) && IS_IMMUNE(father, IMM_MISC)) SET_BIT(mother->pcdata->genes[3], IMM_MISC); if (IS_IMMUNE(mother, IMM_CHARM) && IS_IMMUNE(father, IMM_CHARM)) SET_BIT(mother->pcdata->genes[3], IMM_CHARM); if (IS_IMMUNE(mother, IMM_HEAT) && IS_IMMUNE(father, IMM_HEAT)) SET_BIT(mother->pcdata->genes[3], IMM_HEAT); if (IS_IMMUNE(mother, IMM_COLD) && IS_IMMUNE(father, IMM_COLD)) SET_BIT(mother->pcdata->genes[3], IMM_COLD); if (IS_IMMUNE(mother, IMM_LIGHTNING) && IS_IMMUNE(father, IMM_LIGHTNING)) SET_BIT(mother->pcdata->genes[3], IMM_LIGHTNING); if (IS_IMMUNE(mother, IMM_ACID) && IS_IMMUNE(father, IMM_ACID)) SET_BIT(mother->pcdata->genes[3], IMM_ACID); if (IS_IMMUNE(mother, IMM_VOODOO) && IS_IMMUNE(father, IMM_VOODOO)) SET_BIT(mother->pcdata->genes[3], IMM_VOODOO); if (IS_IMMUNE(mother, IMM_HURL) && IS_IMMUNE(father, IMM_HURL)) SET_BIT(mother->pcdata->genes[3], IMM_HURL); if (IS_IMMUNE(mother, IMM_BACKSTAB) && IS_IMMUNE(father, IMM_BACKSTAB)) SET_BIT(mother->pcdata->genes[3], IMM_BACKSTAB); if (IS_IMMUNE(mother, IMM_KICK) && IS_IMMUNE(father, IMM_KICK)) SET_BIT(mother->pcdata->genes[3], IMM_KICK); if (IS_IMMUNE(mother, IMM_DISARM) && IS_IMMUNE(father, IMM_DISARM)) SET_BIT(mother->pcdata->genes[3], IMM_DISARM); if (IS_IMMUNE(mother, IMM_STEAL) && IS_IMMUNE(father, IMM_STEAL)) SET_BIT(mother->pcdata->genes[3], IMM_STEAL); if (IS_IMMUNE(mother, IMM_SLEEP) && IS_IMMUNE(father, IMM_SLEEP)) SET_BIT(mother->pcdata->genes[3], IMM_SLEEP); if (IS_IMMUNE(mother, IMM_DRAIN) && IS_IMMUNE(father, IMM_DRAIN)) SET_BIT(mother->pcdata->genes[3], IMM_DRAIN); mother->pcdata->genes[4] = number_range(1, 2); 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)) 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) { int i; DISABLED_DATA *p, *q; char buf[100]; if (IS_NPC(ch)) { send_to_char("RETURN first.\n\r", ch); return; } if (!argument[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" "Command Level Disabled by\n\r", ch); for (p = disabled_first; p; p = p->next) { xprintf(buf, "%-12s %5d %-12s\n\r", p->command->name, p->level, p->disabled_by); 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(argument, 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(argument, "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, argument)) 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->pcdata->switchname); /* save name of disabler */ p->level = get_trust(ch); /* save trust */ p->next = disabled_first; 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 */ 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 */ } 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->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\n", p->command->name, p->level, p->disabled_by); fprintf(fp, "%s\n", END_MARKER); fclose(fp); } const char *typo_table[25] = { "My tummy feels funny.", "System going down, incorrect command typed!", "ARRRRGGHH!!!", "What!", "Yes?", "I'll do it when I get around to it.", "Yes Sire.", "What was that..Jerky?", "Use BOTH hands when you type.", "I'd rather be sailing!", "that makes me sick.", "Say that again, it makes me HOT!!!.", "Negative Sir, Try again.", "Stop rocking the boat...", "Your making me seasick...", "*bleeauccch*", "Even elder races get tired of waiting.", "Time is of the essence.", "I'm sorry Dave, but I'm afraid I can't do that.", "Wha? Wha?", "That word is on the LAME LIST!", "Running Level 1 Diagnostic -", "Try again...", "As if...", "Thats some foul language there", }; void do_rand_typo(CHAR_DATA * ch, char *argument) { char buf[MAX_STRING_LENGTH]; int number; number = number_range(0, 25); xprintf(buf, "#g%s#n\n\r", typo_table[number]); send_to_char(buf, ch); return; }