Skip to content

MegaMOO 0.10.0-beta4

Pre-release
Pre-release

Choose a tag to compare

@MalifaxLax MalifaxLax released this 09 Aug 13:48
· 26 commits to main since this release

Take this one. b3 was correct for a single player; with two people in a room it was not.

pip install --upgrade megamoo
megamoo init mygame
cd mygame && megamoo --dev

Fixed

  • Every character introduced itself as "ICharacter." Emit substitution prefers cname and chargen only ever set name, so every third-person message named the prototype. The actor never sees those messages, which is why it survived so long.
  • Ordinary exits announced departures as %%S %%OMODE out. — a default message left in the retired % sigil, doubled by the display escape.
  • Rooms counted each player once per move, forever. plist compared objects against a list of object numbers, so arrivals always appended and departures never removed. It was wrong in four separate places; rooms already carrying the damage now repair themselves.
  • @move ... with <message> never delivered its message — it was reading iobj for text the parser had already put in dobj2.
  • @tel passed no subject to any of its three emits, so &S never substituted — which is why the stock wizard's message hardcoded a name. It also told you about your own departure.
  • A client that typed before the prompt lost its first line. The opening negotiation window read input and discarded it. Invisible to a person, reliably fatal to a script.
  • Containers weigh what they hold (the check was per-item), and a sheath now refuses a cannonball — the opening was computed from the two largest dimensions instead of the two smallest.
  • @adverb ... with rx auth=3 created a verb named rx auth=3. = is matched anywhere in a string and wins over a later word preposition; the verb reads argstr now, and the rule is documented in the guide.
  • find_verb scanned local verbs linearly before consulting its own index: 8,819 ns on #3 Base_Character, where every staff command lives. Now a flat 148 ns.

Also

TLS on a second port, MCCP2 compression, MSSP for listing sites, megamoo.toml actually read, and fifteen config settings deleted that were declared, documented, sometimes validated, and read by no code at all.

Community

Questions and help: GitHub Discussions. Answers stay public and searchable.

Verified from this wheel rather than the source tree: installed into a clean virtualenv, megamoo init, then the browser client over HTTP and the game over telnet with two connections — splash, login, walking, chargen, entering the game, a room emit naming the actor to the other player, and @checkpoint writing a real timestamp. 355 tests.