MUD

From The Pile
Jump to: navigation, search

The MUD can be accessed through telnet, but PuTTY is heavily recommended for supporting UTF8. It runs on port 32123, but the IP varies as Kawa's computer moves around. Naturally it can only be accessed while Kawa's online, and even then...

First thing it'll do when you connect is ask if you want ANSI and such. If you type N followed by a return it will from then on filter out all ANSI escape codes and turn line drawing characters into plain dashes and such.

Second, it'll ask for a username and password. The name you enter is what you'll be called in the game world, so keep that simple. Perhaps a later version will decouple the login and display name. If you have ANSI enabled, your password will (hopefully) be hidden as you type it.

First time you get in, you'll be in the waiting room. When something fucks up, you'll be moved there.

Contents

Commands

Movement

go [direction]
[direction]
Take the exit in the specified direction, if available. If the exit is locked and you are carrying the key it will be unlocked for you.

Wizardry

Wizard commands are only available to a select few.

saveworld Saves the world state. Some other commands do this, and it happens automatically. This just makes sure.
newroom [direction] Creates a new room, with plain exits connecting it to the current room in the specified direction.

Regular commands

help Displays some rough help. This page is much more informative.
examine [thing]
x [thing]
look at [thing]
Displays the thing's description (which is a Lua script).
look Examines the room you're in in more detail.
lock [exit] Locks a named door.
drop [thing] Drops a thing you're carrying and leaves it in the room.
take [thing] Tries to take a thing from the room.
[verb] [thing] If the thing has the specified verb, will try to execute that verb's Lua script.

It

It is a tracking variable. Several things store the specified thing they act upon in it, for easy recall.

it Displays what it is.
whatis [thing that is not "it"] Displays what a thing is.
select [me,here,a thing's name,a thing's id] Selects something and sets it.

Editing your stuff

rename [it,id] [new name] Parenthesis optional. If it's yours, you get to rename it. Will become handy when a Perfectly Generic Object Dispenser is built.

Text

listtext [it,me,a thing's id] Lists all the text properties of the specified thing.
gettext [it,me,a thing's id] [property name] Displays the value of a thing's specified text property.
settext [it,me,a thing's id] [property name] [new value] Parenthesis around the new value optional. Creates or changes the specified text property.

Verbs

Verbs are always Lua scripts. They are edited through the same commands as the text properties, but with listverbs, getverb and setverb.

Multiline Mode

When setting a text property or verb, you may want to type in several lines as one. This can be done by triggering multiline mode:

CMD >settext me poke "<[[
Multiline Mode engaged. Finish with "]]>".
--------

At this point, you can paste in your data. The markers will be removed before saving.

Text properties

Certain text properties are used to notify players. You can use certain $-variables in them, depending on which property it is.

onentry Sent to other players when you enter the room. Example:
<b>$myname</b> saunters into the room.
onexit Sent to other players when you leave the room. Example:
<b>$myname</b> makes his way towards <b>$targetroom</b>.

Lua

When a verb is executed, the variables source and me are set to the IDs of the player who triggered the verb and the thing being verbed.

Send (recipientID, message) Sends a string to a given connected recipient. If the ID is preceded by a minus sign, sends it to everybody in the sender's room but the recipient.
SendToAllButUs (message) Sends a string to all players in the room that are not me and source.
GetPerson (playerID) Returns a table with basic information about the specified player. So far, this includes name, id and gender (male presumed, is either "him" or "her")
SetInt (playerID, propertyName, value) Sets an integer property on the specified player. If it doesn't exist, it's created on the spot.
GetInt (playerID, propertyName[, valueIfNull]) Returns an integer property on the specified player. If it doesn't exist, valueIfNull is returned.
Place (victimID, targetID) Places a player or prop into the specified room or player's inventory. You cannot place a player in another player's inventory.

Examples

Examine

Send(source, "A tall furry with a red pimp hat. Nuff said.")

Poke

if source == me then
 Send(me, "You poke yourself in the bellybutton.")
 return
end
poker = GetPerson(source)
annoyanceAtPoker = GetInt(me, "annoyanceAt" .. poker.Name)
annoyanceAtPoker = annoyanceAtPoker + 1
SetInt(me, "annoyanceAt" .. poker.Name, annoyanceAtPoker)
if annoyanceAtPoker < 3 then
 Send(source, "\\"I'd rather you didn't.\\"")
elseif annoyanceAtPoker < 5 then
 Send(source, "Kawa glowers at you threateningly.")
 SendToAllButUs("Kawa threateningly glowers at " .. poker.Name .. ".")
else
 Send(source, "Kawa raises a fist at you. In a blinding flash, you find yourself back in the waiting room.")
 SendToAllButUs("Kawa raises a fist at " .. poker.Name .. " and teleports " .. poker.HimHer .. " to the waiting room.")
 SetInt(me, poker.Name .. "_annoyance", 5)
 Place(source, 0)
end
CMD >poke kawa
"I'd rather you didn't."
CMD >poke kawa
Kawa glowers at you threateningly.
CMD >poke kawa
Kawa raises a fist at you. In a blinding flash, you find yourself back in the waiting room.

Wise fwom youw Gwave

This project is technically dead, but was updated some time ago to use Jint instead of Lua. Still, the scripts on this page have not been updated to reflect this change. Kawa is planning to maybe revive the project in a complete rewrite.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox