Main Connecting Starting



Building: Tells

MusicMUD supports a relatively complex conversation system for a MUD. In order to avoid going into a different "mode", we do not have a conversation tree as such but instead have a system of keyword based triggers, which can be made dependent upon mobile or mission state, or arbitrarily scripted. This system was inspired by that in CRPGs, and Exile in particular.

All non-hostile, non-dumb mobiles should have at a mininum reponses to name, job, help, mission and follow. Adding others is encouraged, as is a custom "telldefault".

Non-speaking mobiles should have the CantTalk flag set on them.

Normally, if a mobile who can talk who is told something they don't have a response for, a log message is generated to tell the staff about a missing tell. If the mobile shoudln't respond to stuff in general but should just insult the player (or whatever), give them the WontTalk flag to hide the logmessage.

Normally, mobiles will respond to saytos as well as tells. When responding to a sayto, they'll use sayto as well, but this can be either irritating in a public area or worse potentially leak important mission details. To stop them using sayto automatically in a response, set the RespondWithTell flag on them

Adding/changing tells

chstr mobile_id_1 tell.whatever respond Whatever.
chstr mobile_id_1 telldefault respond Excuse me?

In addition to "tell", you can use "whisper", "give to $1", "<action> $1". If you want to use a normal command that would work too. If you want to use one which $1 support hasn't been added for yet, just ask someone who is in a position to do it...

If you want to do multiple commands just separate them with ;

If you want one as an alias for another use the 'betold' command.

Also, you can do just "trap" which triggers a trap which can then do Stuff.

Tells Under Certain Conditions

If you want a mobile's state to effect the tells it listens to, you can set, for example, 'tell.foo.1'. This will activate only when the mobile is in state 1 and is told foo.

If you want the state to be taken from another object not the mobile, set the 'tellstate' property on the mobile to the relevant object. This is quite limited, so for greater complexity lua tells may be useful.

Tells Only If You Are On A Quest

tell.foo.quest_0 will be triggered only if the player has accepted quest 0. tell.foo.quest_0.3 will be triggered only if the player has accepted quest 0 and it (the quest) is in state 3.

Lua Tells

You can hook lua into tells directly. For example, instead of making a tell.bar property, have a lua.tell.bar property, that does something like "if somecondition then tell(one thing) else tell(another thing) return 1"

If you want you can grab ALL tells to a mobile into lua, with the lua.tell property. You are then responsible for parsing the tells. Return 1 if you've handled it, return 0 to continue the default tell behaviour.

Removing tells

delete mobile_id_1 tell.whatever

Responding to actions

You can use "on_hug" to respond to hugs, "on_smile" to respond to smiles, etc.

Treatas

If a mobile has a treatas it will look at that object for tells.

Archetypes

Before triggering telldefault it will check the archetype of a mobile to see if it knows how to respond. The archetype is specified with the "archetype" property. If this isn't set, it will default to a value depending on the mobile's "nation" property.