2012-03-07 18:07:23 +00:00
|
|
|
wMUD TODO file
|
|
|
|
|
|
|
|
* Store EVERYTHING in an SQLite3 database
|
|
|
|
|
|
|
|
* At least two threads. One of them should continuously write everything back
|
|
|
|
to the database, while the other one should serve the connections. Maybe the
|
|
|
|
out-of-game chat should be outsourced to a separate thread, either.
|
|
|
|
|
|
|
|
* All descriptions should be written in a markup language to support bold,
|
|
|
|
underline, colours, and such
|
|
|
|
|
|
|
|
* Movement
|
|
|
|
o 10 directions (N, E, S, W, NE, NW, SE, SW, U, D)
|
|
|
|
o Also, some rooms may have other exits, like portals, which can be ENTER'ed.
|
|
|
|
o Doors can be locked or hidden
|
|
|
|
|
|
|
|
* Planets/Planes
|
|
|
|
o Rooms are connected to Planets
|
|
|
|
o Planets are connected to Planes
|
|
|
|
o Rooms may have different descriptions depending on the Plane the Character
|
|
|
|
is active on
|
|
|
|
|
|
|
|
* Commands already defined in Zim Wiki:
|
|
|
|
o DROP
|
|
|
|
o GET
|
|
|
|
o PRACISE/PRACTICE
|
|
|
|
o PRAY
|
|
|
|
o RECALL should take back the character to their house, or the Inn room they
|
|
|
|
have rented. Specific rooms may have a flag so there must be no recall from
|
|
|
|
them (this should also mean that upon logout/login, the character will get
|
|
|
|
back to this room)
|
|
|
|
o SURVEY
|
|
|
|
o TALE
|
|
|
|
|
|
|
|
* Commands that should be present
|
|
|
|
o AFFECTS to show all the spells that affects the character (spell name,
|
|
|
|
apply count, duration, applier name)
|
|
|
|
o SCORE to show the player's statistics
|
|
|
|
o INVENTORY to show the character's inventory
|
|
|
|
o EQUIPMENT to show the equipped items
|
|
|
|
o AUTOEXIT to toggle exit display on LOOK
|
|
|
|
o LOOK
|
|
|
|
o EXITS
|
|
|
|
o EXAMINE should be an alias to LOOK, except it should work only on objects
|
|
|
|
o CONSIDER
|
|
|
|
o SET
|
|
|
|
. AUTOLOOT [OFF]
|
|
|
|
. AUTOSKIN [OFF]
|
|
|
|
. AUTODRAIN [OFF]
|
|
|
|
. AUTOSPLIT [OFF]
|
|
|
|
. COLOR [ON ]
|
|
|
|
. AUTOLOOK [ON ]
|
|
|
|
. WIMPY [OFF]
|
|
|
|
. AUTOCONSUME [OFF] (To automatically consume food and drink when
|
|
|
|
hungry/thirsty)
|
|
|
|
. GROUPINV [ON ]
|
|
|
|
. PAGELENGTH [30 ]
|
|
|
|
o BURY/DIG
|
|
|
|
o EQUIP/WIELD
|
|
|
|
o IGNORE/UNIGNORE
|
|
|
|
o WHO/WHOIS
|
|
|
|
o QUIT should exit the game
|
|
|
|
o LOGOUT should go back to intro menu
|
|
|
|
o USE may use objects in hand (map, weapons with spells, etc.), or in room
|
|
|
|
(buttons, levers, etc.)
|
|
|
|
|
|
|
|
* Player grouping (AKA Party)
|
|
|
|
|
|
|
|
* Housing system should automatically expand towns (this will be fun to write).
|
|
|
|
Maybe a better alternative is to check for free housing and if the amount
|
|
|
|
goes too low, manually create some new one.
|
|
|
|
o Housing should be decorated with different objects.
|
|
|
|
|
|
|
|
* The whole world should have one fallback start location (Tree of Memories?)
|
|
|
|
|
|
|
|
* All Races have at least one possible start locations
|
|
|
|
|
|
|
|
* People start in a well-defined start location (randomly selected during
|
|
|
|
character generation)
|
|
|
|
|
|
|
|
* Characters can set their hometown in an Inn; however, Inns have only a
|
|
|
|
limited amount of rooms. Inn rooms cost some amount of gold per day, which is
|
|
|
|
pre-paid. If the rent is over, the character's start location is set to one
|
|
|
|
of the racial defaults. If the character is online when the rent is over,
|
|
|
|
they should get a warning message about this. If the player gets an own
|
|
|
|
house, their home location should be automatically set to it
|
|
|
|
|
|
|
|
* Item creation (AKA combining or Professions, like Blacksmithing and Alchemy)
|
|
|
|
o Trainers, who know only specific recipes
|
|
|
|
o Recipe scrolls (e.g to be dropped by mobs and such)
|
|
|
|
o Corpse skinning (only specific corpses)
|
|
|
|
o Corpse butching (only specific corpses)
|
|
|
|
o Fishing
|
|
|
|
o Mining
|
|
|
|
o Foraging
|
|
|
|
|
|
|
|
* Container items (bags)
|
|
|
|
|
|
|
|
* Companions
|
|
|
|
o Combat/Pack animals
|
|
|
|
o Mounts (may also act as combat/pack animals)
|
|
|
|
o Charming
|
|
|
|
|
|
|
|
* Auction system
|
|
|
|
|
|
|
|
* Item donation
|
|
|
|
|
|
|
|
* Gods
|
|
|
|
o Gods may be chosen upon character creation (for wMUD, a character MUST have
|
|
|
|
at least two Gods)
|
|
|
|
|
|
|
|
* Reputation system
|
|
|
|
|
|
|
|
* Player Guilds
|
|
|
|
|
|
|
|
* Sacrifices
|
|
|
|
|
|
|
|
* Prayers
|
|
|
|
|
|
|
|
* Item types
|
|
|
|
o Armour/Clothing
|
|
|
|
. Shields
|
|
|
|
o Weapon
|
|
|
|
. Ballista
|
|
|
|
. Bashing
|
|
|
|
. Bow
|
|
|
|
. Crossbow
|
|
|
|
. Club
|
|
|
|
. Knuckle
|
|
|
|
. Lash
|
|
|
|
. Net
|
|
|
|
. Piercing
|
|
|
|
. Slashing
|
|
|
|
. Whip
|
|
|
|
o Potion
|
|
|
|
o Poison (appliable to weapons)
|
|
|
|
o Food/Water/Alcohol/Sugar
|
|
|
|
o Light
|
|
|
|
. Maybe these objects (or some of them) should be seen in the dark
|
|
|
|
o Spell reagent
|
|
|
|
o Material
|
|
|
|
o Artifacts
|
|
|
|
|
|
|
|
* Death system, Rebirth
|
|
|
|
|
|
|
|
* War Machines
|
|
|
|
|
|
|
|
* Shops
|
|
|
|
o Most shops should open/close depending on the in-game time
|
|
|
|
|
|
|
|
* Skills/Spells/Talents granted by the Gods
|
|
|
|
o Fear
|
|
|
|
|
|
|
|
* Magic Profession
|
|
|
|
|
|
|
|
* Fighting Professions with practicing
|
|
|
|
o Disarm
|
|
|
|
o Dual Wield
|
|
|
|
o Stun
|
|
|
|
|
|
|
|
* The whole system should be built with class support, although wMUD will
|
|
|
|
technically have only one "Adventurer" class. Also, multiclassing should be
|
|
|
|
possible
|
|
|
|
|
|
|
|
* Character aging, with racial maximum age. When a character is too old, they
|
|
|
|
can retire (e.g they will become story tellers or such), or die and rebirth.
|
|
|
|
Reborn characters have a bonus to their maximum age. Upon rebirth they create
|
|
|
|
a totally new character, with all their old data remaining in the database.
|
|
|
|
Reborn characters have the possibility to regain all their old powers after a
|
|
|
|
few years
|
|
|
|
|
|
|
|
* Quests given by NPCs
|
|
|
|
|
|
|
|
* Player creatable quests
|
|
|
|
|
|
|
|
* In-game chat (whisper, say, shout, emotes, group/party, guild). Guild chat
|
|
|
|
should be accessible without entering the game (from the Circle-like main
|
|
|
|
menu), or even via IRC or something like that
|
|
|
|
|
|
|
|
* Speedwalking?
|
|
|
|
|
|
|
|
* Arenas
|
|
|
|
|
|
|
|
* Player killing/thieving should be enabled/disabled per world
|
|
|
|
|
|
|
|
* Mercy mob flag: mobs will stop attacking if their enemy is unable to fight
|
|
|
|
any more
|
|
|
|
|
|
|
|
* Mobs should be able to wear/wield items, have an inventory, have Skills,
|
|
|
|
Spells and Talents
|
|
|
|
|
|
|
|
* Sneaking, thieving, robbery
|
|
|
|
o A mob may steal stuff from you, you may detect it, and maybe able to catch
|
|
|
|
it and get your stuff back. However, killing them in a city may result in
|
|
|
|
punishment by the guards.
|
|
|
|
|
|
|
|
* Gossips
|
|
|
|
|
|
|
|
* Bragging NPCs: if a character gets killed by a specific NPCs, those NPCs will
|
|
|
|
humiliate that character for a while
|
|
|
|
|
|
|
|
* Weapon USE: wielded weapons may do something (like cast spells or such) if a
|
|
|
|
specific attribute is set. The item spell should recharge over time, or
|
|
|
|
recharge upon a specific condition
|
|
|
|
|
|
|
|
* Money (with the possibility to create several money types, like different
|
|
|
|
currencies for different Races)
|
|
|
|
|
|
|
|
* Banks
|
|
|
|
o Money deposit (with interest in some banks)
|
|
|
|
o Storage, for a fee
|
|
|
|
o Loans
|
|
|
|
|
|
|
|
* Guild bank
|
|
|
|
|
|
|
|
* All looted items should be used in some way or another. Sacrifice is a common
|
|
|
|
way, but some items may be milled (e.g bones and herbs) or disassembled (e.g
|
|
|
|
Mechanics objects or armour), others may be used as raw materials. Extracted
|
|
|
|
body parts (e.g blood or meat) should decompose over time, even in an
|
|
|
|
inventory, unless put in a special container
|
|
|
|
|
|
|
|
* Object affects and attribute modifiers, like an earring which make the
|
|
|
|
character deaf. These affects may be hidden, and even delayed (e.g the
|
|
|
|
character puts on the earring that gives a high amount of charisma, but after
|
|
|
|
wearing it for a specific time, they will become deaf, and they will have no
|
|
|
|
idea what caused it. The same object can also be cursed, so it cannot be
|
|
|
|
removed except by some professional magicians
|
|
|
|
|
|
|
|
* Item modifiers, like sharpening stones
|
|
|
|
|
|
|
|
* Item durability. Items must have a Profession and a Profession Level
|
|
|
|
associated to them to show who can repair it
|
|
|
|
|
|
|
|
* <mob> arrives from <direction>
|
|
|
|
|
|
|
|
* Character bounty, which can be placed by other characters for a fee (should
|
|
|
|
be enabled per world), or NPCs.
|
|
|
|
|
|
|
|
* Guild wars (Players from a Guild may PK players from another Guild if the two
|
|
|
|
Guilds are in war with each other)
|
|
|
|
|
|
|
|
* Mob glowing (e.g they will be unable to sneak)
|
|
|
|
|
|
|
|
* Polls
|
|
|
|
|
|
|
|
* Configurable prompt
|
|
|
|
|
|
|
|
* Marriage?
|
|
|
|
|
|
|
|
* Character titles, which can be rewards for quests, or be bought for a high
|
|
|
|
amount of money
|
|
|
|
|
|
|
|
* Spirit world
|
|
|
|
o Some rooms (at least one) should be marked as Spirit World. Upon death,
|
|
|
|
characters get the DEAD flag, and get to this room. They must find their
|
|
|
|
way to remove the DEAD flag, and/or find a way back to the real world.
|
|
|
|
|
|
|
|
* Blood may remain on the floor during a fight (even without a kill)
|
|
|
|
|
|
|
|
* Death trap rooms
|
|
|
|
|
|
|
|
* Regeneration rooms
|
|
|
|
|
|
|
|
* Teleportation objects (portal machines) and rooms (elevators)
|
|
|
|
|
|
|
|
* Languages
|
|
|
|
|
|
|
|
* Books
|
|
|
|
|
|
|
|
* Rivers should have some kind of a current. If you get into a river (even on a
|
|
|
|
boat, or by swimming), it will move you automatically somewhere
|
|
|
|
|
|
|
|
* Gambling (may be illegal in some towns ;) )
|
|
|
|
|
|
|
|
* Guides that can be payed for. E.g in a big city, a guide can lead you to the
|
|
|
|
Inn, or something like that for a small fee.
|
|
|
|
|
|
|
|
* Automatically hiding/appearing exits (e.g to created mazes to hide stuff)
|
|
|
|
|
|
|
|
* Mailing
|
|
|
|
|
|
|
|
* Abilities
|
|
|
|
o Rolled upon character creation
|
|
|
|
o May be trained
|
|
|
|
o There should be a racial maximum
|
|
|
|
o May be modified by affections and worn items
|
|
|
|
o May increase/decrease with age
|
2012-03-11 14:09:50 +00:00
|
|
|
|
|
|
|
Materia Magica command list
|
|
|
|
===========================
|
|
|
|
|
|
|
|
$ = gold
|
|
|
|
. = shout
|
|
|
|
/ = chat
|
|
|
|
; = formtalk
|
|
|
|
? = help
|
|
|
|
away
|
|
|
|
affects
|
|
|
|
affected
|
|
|
|
auction
|
|
|
|
align
|
|
|
|
alias
|
|
|
|
alliance
|
|
|
|
bury
|
|
|
|
build
|
|
|
|
backstab
|
|
|
|
bash
|
|
|
|
breathe
|
|
|
|
bank
|
|
|
|
cast
|
|
|
|
channels
|
|
|
|
combat
|
|
|
|
ctf
|
|
|
|
clear
|
|
|
|
cls
|
|
|
|
commands
|
|
|
|
consider
|
|
|
|
chat
|
|
|
|
clan
|
|
|
|
clantalk
|
|
|
|
ct
|
|
|
|
close
|
|
|
|
charge
|
|
|
|
chess
|
|
|
|
changes
|
|
|
|
credits
|
|
|
|
class
|
|
|
|
challenge
|
|
|
|
description
|
|
|
|
donate
|
|
|
|
dream
|
|
|
|
dig
|
|
|
|
drink
|
|
|
|
drop
|
|
|
|
disarm
|
|
|
|
dismount
|
|
|
|
effects
|
|
|
|
evoke
|
|
|
|
equipment
|
|
|
|
examine
|
|
|
|
enter
|
|
|
|
extinguish
|
|
|
|
emote
|
|
|
|
eat
|
|
|
|
empty
|
|
|
|
equip
|
|
|
|
fill
|
|
|
|
feed
|
|
|
|
flee
|
|
|
|
friends
|
|
|
|
faction
|
|
|
|
formation
|
|
|
|
ft
|
|
|
|
feign
|
|
|
|
get
|
|
|
|
gold
|
|
|
|
give
|
|
|
|
grab
|
|
|
|
grapple
|
|
|
|
guide
|
|
|
|
gohome
|
|
|
|
hitch
|
|
|
|
help
|
|
|
|
hold
|
|
|
|
herald
|
|
|
|
hint
|
|
|
|
hide
|
|
|
|
history
|
|
|
|
home
|
|
|
|
inventory
|
|
|
|
invoke
|
|
|
|
ignore
|
|
|
|
kill
|
|
|
|
kick
|
|
|
|
knock
|
|
|
|
look
|
|
|
|
light
|
|
|
|
levels
|
|
|
|
lock
|
|
|
|
locker
|
|
|
|
lay
|
|
|
|
mix
|
|
|
|
memorize
|
|
|
|
mail
|
|
|
|
marks
|
|
|
|
mount
|
|
|
|
news
|
|
|
|
novice
|
|
|
|
notify
|
|
|
|
order
|
|
|
|
open
|
|
|
|
practice
|
|
|
|
pktalk
|
|
|
|
pray
|
|
|
|
pick
|
|
|
|
put
|
|
|
|
pull
|
|
|
|
push
|
|
|
|
play
|
|
|
|
protocols
|
|
|
|
page
|
|
|
|
quest
|
|
|
|
quit
|
|
|
|
rest
|
|
|
|
read
|
|
|
|
report
|
|
|
|
rules
|
|
|
|
relay
|
|
|
|
reply
|
|
|
|
remove
|
|
|
|
run
|
|
|
|
recall
|
|
|
|
rewardunit
|
|
|
|
religion
|
|
|
|
raise
|
|
|
|
snare
|
|
|
|
sit
|
|
|
|
stand
|
|
|
|
sweep
|
|
|
|
score
|
|
|
|
socials
|
|
|
|
skills
|
|
|
|
scan
|
|
|
|
survey
|
|
|
|
say
|
|
|
|
sayto
|
|
|
|
shop
|
|
|
|
shout
|
|
|
|
search
|
|
|
|
sacrifice
|
|
|
|
set
|
|
|
|
sleep
|
|
|
|
sneak
|
|
|
|
ship
|
|
|
|
steal
|
|
|
|
shift
|
|
|
|
slit
|
|
|
|
strike
|
|
|
|
tell
|
|
|
|
tag
|
|
|
|
time
|
|
|
|
termreset
|
|
|
|
typo
|
|
|
|
title
|
|
|
|
turn
|
|
|
|
take
|
|
|
|
throw
|
|
|
|
track
|
|
|
|
train
|
|
|
|
unhitch
|
|
|
|
use
|
|
|
|
unequip
|
|
|
|
unlock
|
|
|
|
vendor
|
|
|
|
visible
|
|
|
|
version
|
|
|
|
wield
|
|
|
|
who
|
|
|
|
whisper
|
|
|
|
weather
|
|
|
|
wimpy
|
|
|
|
wear
|
|
|
|
write
|
|
|
|
wake
|
|
|
|
where
|
|
|
|
yell
|
|
|
|
|
|
|
|
CircleMUD commands
|
|
|
|
==================
|
|
|
|
|
|
|
|
{ "north" , POS_STANDING, do_move , 0, SCMD_NORTH },
|
|
|
|
{ "east" , POS_STANDING, do_move , 0, SCMD_EAST },
|
|
|
|
{ "south" , POS_STANDING, do_move , 0, SCMD_SOUTH },
|
|
|
|
{ "west" , POS_STANDING, do_move , 0, SCMD_WEST },
|
|
|
|
{ "up" , POS_STANDING, do_move , 0, SCMD_UP },
|
|
|
|
{ "down" , POS_STANDING, do_move , 0, SCMD_DOWN },
|
|
|
|
{ "at" , POS_DEAD , do_at , LVL_IMMORT, 0 },
|
|
|
|
{ "advance" , POS_DEAD , do_advance , LVL_IMPL, 0 },
|
|
|
|
{ "alias" , POS_DEAD , do_alias , 0, 0 },
|
|
|
|
{ "accuse" , POS_SITTING , do_action , 0, 0 },
|
|
|
|
{ "applaud" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "assist" , POS_FIGHTING, do_assist , 1, 0 },
|
|
|
|
{ "ask" , POS_RESTING , do_spec_comm, 0, SCMD_ASK },
|
|
|
|
{ "auction" , POS_SLEEPING, do_gen_comm , 0, SCMD_AUCTION },
|
|
|
|
{ "autoexit" , POS_DEAD , do_gen_tog , 0, SCMD_AUTOEXIT },
|
|
|
|
{ "autoloot" , POS_DEAD , do_gen_tog , 0, SCMD_AUTOLOOT },
|
|
|
|
{ "autodrain", POS_DEAD , do_gen_tog , 0, SCMD_AUTODRAIN },
|
|
|
|
{ "bounce" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "backstab" , POS_STANDING, do_backstab , 1, 0 },
|
|
|
|
{ "ban" , POS_DEAD , do_ban , LVL_GRGOD, 0 },
|
|
|
|
{ "balance" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "bash" , POS_FIGHTING, do_bash , 1, 0 },
|
|
|
|
{ "beg" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "bleed" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "blush" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "bow" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "brb" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "brief" , POS_DEAD , do_gen_tog , 0, SCMD_BRIEF },
|
|
|
|
{ "burp" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "bury" , POS_STANDING, do_bury , 0, 0 },
|
|
|
|
{ "buy" , POS_STANDING, do_not_here , 0, 0 },
|
|
|
|
{ "bug" , POS_DEAD , do_gen_write, 0, SCMD_BUG },
|
|
|
|
{ "cast" , POS_SITTING , do_cast , 1, 0 },
|
|
|
|
{ "cackle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "check" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "chuckle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "clap" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "clear" , POS_DEAD , do_gen_ps , 0, SCMD_CLEAR },
|
|
|
|
{ "close" , POS_SITTING , do_gen_door , 0, SCMD_CLOSE },
|
|
|
|
{ "cls" , POS_DEAD , do_gen_ps , 0, SCMD_CLEAR },
|
|
|
|
{ "consider" , POS_RESTING , do_consider , 0, 0 },
|
|
|
|
{ "color" , POS_DEAD , do_color , 0, 0 },
|
|
|
|
{ "comfort" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "comb" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "commands" , POS_DEAD , do_commands , 0, SCMD_COMMANDS },
|
|
|
|
{ "compact" , POS_DEAD , do_gen_tog , 0, SCMD_COMPACT },
|
|
|
|
{ "cough" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "credits" , POS_DEAD , do_gen_ps , 0, SCMD_CREDITS },
|
|
|
|
{ "cringe" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "cry" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "cuddle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "curse" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "curtsey" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "dance" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "date" , POS_DEAD , do_date , LVL_IMMORT, SCMD_DATE },
|
|
|
|
{ "daydream" , POS_SLEEPING, do_action , 0, 0 },
|
|
|
|
{ "dc" , POS_DEAD , do_dc , LVL_GOD, 0 },
|
|
|
|
{ "deposit" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "diagnose" , POS_RESTING , do_diagnose , 0, 0 },
|
|
|
|
{ "dig" , POS_STANDING, do_dig , 0, 0 },
|
|
|
|
{ "display" , POS_DEAD , do_display , 0, 0 },
|
|
|
|
{ "donate" , POS_RESTING , do_drop , 0, SCMD_DONATE },
|
|
|
|
{ "drain" , POS_STANDING, do_drain , 0, 0 },
|
|
|
|
{ "drink" , POS_RESTING , do_drink , 0, SCMD_DRINK },
|
|
|
|
{ "drop" , POS_RESTING , do_drop , 0, SCMD_DROP },
|
|
|
|
{ "drool" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "eat" , POS_RESTING , do_eat , 0, SCMD_EAT },
|
|
|
|
{ "echo" , POS_SLEEPING, do_echo , LVL_IMMORT, SCMD_ECHO },
|
|
|
|
{ "emote" , POS_RESTING , do_echo , 1, SCMD_EMOTE },
|
|
|
|
{ ":" , POS_RESTING, do_echo , 1, SCMD_EMOTE },
|
|
|
|
{ "embrace" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "enter" , POS_STANDING, do_enter , 0, 0 },
|
|
|
|
{ "equipment", POS_SLEEPING, do_equipment, 0, 0 },
|
|
|
|
{ "exits" , POS_RESTING , do_exits , 0, 0 },
|
|
|
|
{ "examine" , POS_SITTING , do_examine , 0, 0 },
|
|
|
|
{ "force" , POS_SLEEPING, do_force , LVL_GOD, 0 },
|
|
|
|
{ "fart" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "fill" , POS_STANDING, do_pour , 0, SCMD_FILL },
|
|
|
|
{ "flee" , POS_FIGHTING, do_flee , 1, 0 },
|
|
|
|
{ "flip" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "flirt" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "follow" , POS_RESTING , do_follow , 0, 0 },
|
|
|
|
{ "fondle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "freeze" , POS_DEAD , do_wizutil , LVL_FREEZE, SCMD_FREEZE },
|
|
|
|
{ "french" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "frown" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "fume" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "get" , POS_RESTING , do_get , 0, 0 },
|
|
|
|
{ "gasp" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "gecho" , POS_DEAD , do_gecho , LVL_GOD, 0 },
|
|
|
|
{ "give" , POS_RESTING , do_give , 0, 0 },
|
|
|
|
{ "giggle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "glare" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "goto" , POS_SLEEPING, do_goto , LVL_IMMORT, 0 },
|
|
|
|
{ "gold" , POS_RESTING , do_gold , 0, 0 },
|
|
|
|
{ "gossip" , POS_SLEEPING, do_gen_comm , 0, SCMD_GOSSIP },
|
|
|
|
{ "group" , POS_RESTING , do_group , 1, 0 },
|
|
|
|
{ "grab" , POS_RESTING , do_grab , 0, 0 },
|
|
|
|
{ "grats" , POS_SLEEPING, do_gen_comm , 0, SCMD_GRATZ },
|
|
|
|
{ "greet" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "grin" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "groan" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "grope" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "grovel" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "growl" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "gsay" , POS_SLEEPING, do_gsay , 0, 0 },
|
|
|
|
{ "gtell" , POS_SLEEPING, do_gsay , 0, 0 },
|
|
|
|
{ "help" , POS_DEAD , do_help , 0, 0 },
|
|
|
|
{ "handbook" , POS_DEAD , do_gen_ps , LVL_IMMORT, SCMD_HANDBOOK },
|
|
|
|
{ "hcontrol" , POS_DEAD , do_hcontrol , LVL_GRGOD, 0 },
|
|
|
|
{ "hiccup" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "hide" , POS_RESTING , do_hide , 1, 0 },
|
|
|
|
{ "hit" , POS_FIGHTING, do_hit , 0, SCMD_HIT },
|
|
|
|
{ "hold" , POS_RESTING , do_grab , 1, 0 },
|
|
|
|
{ "holler" , POS_RESTING , do_gen_comm , 1, SCMD_HOLLER },
|
|
|
|
{ "holylight", POS_DEAD , do_gen_tog , LVL_IMMORT, SCMD_HOLYLIGHT },
|
|
|
|
{ "hop" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "house" , POS_RESTING , do_house , 0, 0 },
|
|
|
|
{ "hug" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "inventory", POS_DEAD , do_inventory, 0, 0 },
|
|
|
|
{ "idea" , POS_DEAD , do_gen_write, 0, SCMD_IDEA },
|
|
|
|
{ "imotd" , POS_DEAD , do_gen_ps , LVL_IMMORT, SCMD_IMOTD },
|
|
|
|
{ "immlist" , POS_DEAD , do_gen_ps , 0, SCMD_IMMLIST },
|
|
|
|
{ "info" , POS_SLEEPING, do_gen_ps , 0, SCMD_INFO },
|
|
|
|
{ "insult" , POS_RESTING , do_insult , 0, 0 },
|
|
|
|
{ "invis" , POS_DEAD , do_invis , LVL_IMMORT, 0 },
|
|
|
|
{ "junk" , POS_RESTING , do_drop , 0, SCMD_JUNK },
|
|
|
|
{ "kill" , POS_FIGHTING, do_kill , 0, 0 },
|
|
|
|
{ "kick" , POS_FIGHTING, do_kick , 1, 0 },
|
|
|
|
{ "kiss" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "look" , POS_RESTING , do_look , 0, SCMD_LOOK },
|
|
|
|
{ "laugh" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "last" , POS_DEAD , do_last , LVL_GOD, 0 },
|
|
|
|
{ "leave" , POS_STANDING, do_leave , 0, 0 },
|
|
|
|
{ "levels" , POS_DEAD , do_levels , 0, 0 },
|
|
|
|
{ "list" , POS_STANDING, do_not_here , 0, 0 },
|
|
|
|
{ "lick" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "lock" , POS_SITTING , do_gen_door , 0, SCMD_LOCK },
|
|
|
|
{ "load" , POS_DEAD , do_load , LVL_GOD, 0 },
|
|
|
|
{ "love" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "moan" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "motd" , POS_DEAD , do_gen_ps , 0, SCMD_MOTD },
|
|
|
|
{ "mail" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "massage" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "mute" , POS_DEAD , do_wizutil , LVL_GOD, SCMD_SQUELCH },
|
|
|
|
{ "murder" , POS_FIGHTING, do_hit , 0, SCMD_MURDER },
|
|
|
|
{ "news" , POS_SLEEPING, do_gen_ps , 0, SCMD_NEWS },
|
|
|
|
{ "nibble" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "nod" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "noauction", POS_DEAD , do_gen_tog , 0, SCMD_NOAUCTION },
|
|
|
|
{ "nogossip" , POS_DEAD , do_gen_tog , 0, SCMD_NOGOSSIP },
|
|
|
|
{ "nograts" , POS_DEAD , do_gen_tog , 0, SCMD_NOGRATZ },
|
|
|
|
{ "nohassle" , POS_DEAD , do_gen_tog , LVL_IMMORT, SCMD_NOHASSLE },
|
|
|
|
{ "norepeat" , POS_DEAD , do_gen_tog , 0, SCMD_NOREPEAT },
|
|
|
|
{ "noshout" , POS_SLEEPING, do_gen_tog , 1, SCMD_DEAF },
|
|
|
|
{ "nosummon" , POS_DEAD , do_gen_tog , 1, SCMD_NOSUMMON },
|
|
|
|
{ "notell" , POS_DEAD , do_gen_tog , 1, SCMD_NOTELL },
|
|
|
|
{ "notitle" , POS_DEAD , do_wizutil , LVL_GOD, SCMD_NOTITLE },
|
|
|
|
{ "nowiz" , POS_DEAD , do_gen_tog , LVL_IMMORT, SCMD_NOWIZ },
|
|
|
|
{ "nudge" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "nuzzle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "olc" , POS_DEAD , do_olc , LVL_IMPL, 0 },
|
|
|
|
{ "order" , POS_RESTING , do_order , 1, 0 },
|
|
|
|
{ "offer" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "open" , POS_SITTING , do_gen_door , 0, SCMD_OPEN },
|
|
|
|
{ "put" , POS_RESTING , do_put , 0, 0 },
|
|
|
|
{ "pat" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "page" , POS_DEAD , do_page , LVL_GOD, 0 },
|
|
|
|
{ "pardon" , POS_DEAD , do_wizutil , LVL_GOD, SCMD_PARDON },
|
|
|
|
{ "peer" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "pick" , POS_STANDING, do_gen_door , 1, SCMD_PICK },
|
|
|
|
{ "point" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "poke" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "policy" , POS_DEAD , do_gen_ps , 0, SCMD_POLICIES },
|
|
|
|
{ "ponder" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "poofin" , POS_DEAD , do_poofset , LVL_IMMORT, SCMD_POOFIN },
|
|
|
|
{ "poofout" , POS_DEAD , do_poofset , LVL_IMMORT, SCMD_POOFOUT },
|
|
|
|
{ "pour" , POS_STANDING, do_pour , 0, SCMD_POUR },
|
|
|
|
{ "pout" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "prompt" , POS_DEAD , do_display , 0, 0 },
|
|
|
|
{ "practice" , POS_RESTING , do_practice , 1, 0 },
|
|
|
|
{ "pray" , POS_SITTING , do_action , 0, 0 },
|
|
|
|
{ "puke" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "punch" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "purr" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "purge" , POS_DEAD , do_purge , LVL_GOD, 0 },
|
|
|
|
{ "quaff" , POS_RESTING , do_use , 0, SCMD_QUAFF },
|
|
|
|
{ "qecho" , POS_DEAD , do_qcomm , LVL_IMMORT, SCMD_QECHO },
|
|
|
|
{ "quest" , POS_DEAD , do_gen_tog , 0, SCMD_QUEST },
|
|
|
|
{ "qui" , POS_DEAD , do_quit , 0, 0 },
|
|
|
|
{ "quit" , POS_DEAD , do_quit , 0, SCMD_QUIT },
|
|
|
|
{ "qsay" , POS_RESTING , do_qcomm , 0, SCMD_QSAY },
|
|
|
|
{ "reply" , POS_SLEEPING, do_reply , 0, 0 },
|
|
|
|
{ "rest" , POS_RESTING , do_rest , 0, 0 },
|
|
|
|
{ "read" , POS_RESTING , do_look , 0, SCMD_READ },
|
|
|
|
{ "reload" , POS_DEAD , do_reboot , LVL_IMPL, 0 },
|
|
|
|
{ "recite" , POS_RESTING , do_use , 0, SCMD_RECITE },
|
|
|
|
{ "receive" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "remove" , POS_RESTING , do_remove , 0, 0 },
|
|
|
|
{ "rent" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "report" , POS_RESTING , do_report , 0, 0 },
|
|
|
|
{ "reroll" , POS_DEAD , do_wizutil , LVL_GRGOD, SCMD_REROLL },
|
|
|
|
{ "rescue" , POS_FIGHTING, do_rescue , 1, 0 },
|
|
|
|
{ "restore" , POS_DEAD , do_restore , LVL_GOD, 0 },
|
|
|
|
{ "return" , POS_DEAD , do_return , 0, 0 },
|
|
|
|
{ "roll" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "roomflags", POS_DEAD , do_gen_tog , LVL_IMMORT, SCMD_ROOMFLAGS },
|
|
|
|
{ "ruffle" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "say" , POS_RESTING , do_say , 0, 0 },
|
|
|
|
{ "'" , POS_RESTING , do_say , 0, 0 },
|
|
|
|
{ "save" , POS_SLEEPING, do_save , 0, 0 },
|
|
|
|
{ "score" , POS_DEAD , do_score , 0, 0 },
|
|
|
|
{ "scream" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "sell" , POS_STANDING, do_not_here , 0, 0 },
|
|
|
|
{ "send" , POS_SLEEPING, do_send , LVL_GOD, 0 },
|
|
|
|
{ "set" , POS_DEAD , do_set , LVL_GOD, 0 },
|
|
|
|
{ "shout" , POS_RESTING , do_gen_comm , 0, SCMD_SHOUT },
|
|
|
|
{ "shake" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "shiver" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "show" , POS_DEAD , do_show , LVL_IMMORT, 0 },
|
|
|
|
{ "shrug" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "shutdow" , POS_DEAD , do_shutdown , LVL_IMPL, 0 },
|
|
|
|
{ "shutdown" , POS_DEAD , do_shutdown , LVL_IMPL, SCMD_SHUTDOWN },
|
|
|
|
{ "sigh" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "sing" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "sip" , POS_RESTING , do_drink , 0, SCMD_SIP },
|
|
|
|
{ "sit" , POS_RESTING , do_sit , 0, 0 },
|
|
|
|
{ "skillset" , POS_SLEEPING, do_skillset , LVL_GRGOD, 0 },
|
|
|
|
{ "sleep" , POS_SLEEPING, do_sleep , 0, 0 },
|
|
|
|
{ "slap" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "slowns" , POS_DEAD , do_gen_tog , LVL_IMPL, SCMD_SLOWNS },
|
|
|
|
{ "smile" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "smirk" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "snicker" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "snap" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "snarl" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "sneeze" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "sneak" , POS_STANDING, do_sneak , 1, 0 },
|
|
|
|
{ "sniff" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "snore" , POS_SLEEPING, do_action , 0, 0 },
|
|
|
|
{ "snowball" , POS_STANDING, do_action , LVL_IMMORT, 0 },
|
|
|
|
{ "snoop" , POS_DEAD , do_snoop , LVL_GOD, 0 },
|
|
|
|
{ "snuggle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "socials" , POS_DEAD , do_commands , 0, SCMD_SOCIALS },
|
|
|
|
{ "split" , POS_SITTING , do_split , 1, 0 },
|
|
|
|
{ "spank" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "spit" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "squeeze" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "stand" , POS_RESTING , do_stand , 0, 0 },
|
|
|
|
{ "stare" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "stat" , POS_DEAD , do_stat , LVL_IMMORT, 0 },
|
|
|
|
{ "steal" , POS_STANDING, do_steal , 1, 0 },
|
|
|
|
{ "steam" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "stroke" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "strut" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "sulk" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "switch" , POS_DEAD , do_switch , LVL_GRGOD, 0 },
|
|
|
|
{ "syslog" , POS_DEAD , do_syslog , LVL_IMMORT, 0 },
|
|
|
|
{ "tell" , POS_DEAD , do_tell , 0, 0 },
|
|
|
|
{ "tackle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "take" , POS_RESTING , do_get , 0, 0 },
|
|
|
|
{ "tango" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "taunt" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "taste" , POS_RESTING , do_eat , 0, SCMD_TASTE },
|
|
|
|
{ "teleport" , POS_DEAD , do_teleport , LVL_GOD, 0 },
|
|
|
|
{ "thank" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "think" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "thaw" , POS_DEAD , do_wizutil , LVL_FREEZE, SCMD_THAW },
|
|
|
|
{ "title" , POS_DEAD , do_title , 0, 0 },
|
|
|
|
{ "tickle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "time" , POS_DEAD , do_time , 0, 0 },
|
|
|
|
{ "toggle" , POS_DEAD , do_toggle , 0, 0 },
|
|
|
|
{ "track" , POS_STANDING, do_track , 0, 0 },
|
|
|
|
{ "trackthru", POS_DEAD , do_gen_tog , LVL_IMPL, SCMD_TRACK },
|
|
|
|
{ "transfer" , POS_SLEEPING, do_trans , LVL_GOD, 0 },
|
|
|
|
{ "twiddle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "typo" , POS_DEAD , do_gen_write, 0, SCMD_TYPO },
|
|
|
|
{ "unlock" , POS_SITTING , do_gen_door , 0, SCMD_UNLOCK },
|
|
|
|
{ "ungroup" , POS_DEAD , do_ungroup , 0, 0 },
|
|
|
|
{ "unban" , POS_DEAD , do_unban , LVL_GRGOD, 0 },
|
|
|
|
{ "unaffect" , POS_DEAD , do_wizutil , LVL_GOD, SCMD_UNAFFECT },
|
|
|
|
{ "uptime" , POS_DEAD , do_date , LVL_IMMORT, SCMD_UPTIME },
|
|
|
|
{ "use" , POS_SITTING , do_use , 1, SCMD_USE },
|
|
|
|
{ "users" , POS_DEAD , do_users , LVL_IMMORT, 0 },
|
|
|
|
{ "value" , POS_STANDING, do_not_here , 0, 0 },
|
|
|
|
{ "version" , POS_DEAD , do_gen_ps , 0, SCMD_VERSION },
|
|
|
|
{ "visible" , POS_RESTING , do_visible , 1, 0 },
|
|
|
|
{ "vnum" , POS_DEAD , do_vnum , LVL_IMMORT, 0 },
|
|
|
|
{ "vstat" , POS_DEAD , do_vstat , LVL_IMMORT, 0 },
|
|
|
|
{ "wake" , POS_SLEEPING, do_wake , 0, 0 },
|
|
|
|
{ "wave" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "wear" , POS_RESTING , do_wear , 0, 0 },
|
|
|
|
{ "weather" , POS_RESTING , do_weather , 0, 0 },
|
|
|
|
{ "who" , POS_DEAD , do_who , 0, 0 },
|
|
|
|
{ "whoami" , POS_DEAD , do_gen_ps , 0, SCMD_WHOAMI },
|
|
|
|
{ "where" , POS_RESTING , do_where , 1, 0 },
|
|
|
|
{ "whisper" , POS_RESTING , do_spec_comm, 0, SCMD_WHISPER },
|
|
|
|
{ "whine" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "whistle" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "wield" , POS_RESTING , do_wield , 0, 0 },
|
|
|
|
{ "wiggle" , POS_STANDING, do_action , 0, 0 },
|
|
|
|
{ "wimpy" , POS_DEAD , do_wimpy , 0, 0 },
|
|
|
|
{ "wink" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "withdraw" , POS_STANDING, do_not_here , 1, 0 },
|
|
|
|
{ "wiznet" , POS_DEAD , do_wiznet , LVL_IMMORT, 0 },
|
|
|
|
{ ";" , POS_DEAD , do_wiznet , LVL_IMMORT, 0 },
|
|
|
|
{ "wizhelp" , POS_SLEEPING, do_commands , LVL_IMMORT, SCMD_WIZHELP },
|
|
|
|
{ "wizlist" , POS_DEAD , do_gen_ps , 0, SCMD_WIZLIST },
|
|
|
|
{ "wizlock" , POS_DEAD , do_wizlock , LVL_IMPL, 0 },
|
|
|
|
{ "worship" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "write" , POS_STANDING, do_write , 1, 0 },
|
|
|
|
{ "yawn" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "yodel" , POS_RESTING , do_action , 0, 0 },
|
|
|
|
{ "zreset" , POS_DEAD , do_zreset , LVL_GRGOD, 0 },
|
|
|
|
|
|
|
|
const char *fill[] =
|
|
|
|
{
|
|
|
|
"in",
|
|
|
|
"from",
|
|
|
|
"with",
|
|
|
|
"the",
|
|
|
|
"on",
|
|
|
|
"at",
|
|
|
|
"to",
|
|
|
|
"\n"
|
|
|
|
};
|
|
|
|
|
|
|
|
const char *reserved[] =
|
|
|
|
{
|
|
|
|
"a",
|
|
|
|
"an",
|
|
|
|
"self",
|
|
|
|
"me",
|
|
|
|
"all",
|
|
|
|
"room",
|
|
|
|
"someone",
|
|
|
|
"something",
|
|
|
|
"\n"
|
|
|
|
};
|