How To's


There are a number of different things that a new programmer may want to do on the game that just isn't listed anywhere in the LambdaMOO programming manual.

Contents

Make a dark room
Create new outcrops
Get experiment data
Searching through all the verbs in the game
Modify the help database
Add a person to the project tracker
Use the project tracker
Create a new tutorial


Make a dark room

By default, rooms are bright sunshine filled places that couldn't possibly require a lantern to search around in. To create a dark room, follow these steps.

  1. Create the room as normal, using @dig
  2. @chparent room object number to $g.lantern_room

If you want to change an already functioning room into a dark room, do the following to make sure nothing breaks.

  1. @dump room object number
  2. Copy the results of that command to a safe place
  3. @chparent room object number to $g.lantern_room
  4. If something doesn't work, run the output of step 2


Create a new outcrop

Creating a new outcrop is an incredibly easy process, thanks to a verb on $g.planet_plan (#1862) called decorate_room. It takes 3 arguments: the room object number, the object number of the parent rock/mineral, and the formtype you wish the object to be. (For a more detailed discussion of formtypes, see the glossary entry titled Outcrops)

An example call would be:
$g.planet_plan:decorate_room(#118, #329, "boulder")
This will create a "boulder" of Skarn (#329) in the Staging Area (#118)

A couple of notes:


Get experiment data

This isn't necessarily a programming issue, but it is quite interesting, and may be useful for the programmer interested in learning about player history entries, player classes, and other issues involved with experiment setup and execution. This entry talks about player classes a lot, you may want to read the glossary entry on it before continuing.

There are a number of different functions that show the status of a particular player class. These functions show a number of different statistics that are important in determining experiment success or failure. Every one of these takes a player_class argument, except for show_player which takes a player object.

;$g.geoplayer:brute_champs($g.fall00_textual)
Lists the brute force champions for this player class. Winning the game by brute force is accomplished by having the lowest number of points per guess.

;$g.geoplayer:endgamestats($g.fall00_textual)
Gives statistics for the endgame for this particular player class.

;$g.geoplayer:lastlog($g.fall00_textual, "day")
Shows when players in this player class has connected. The second argument is optional. If it is not included it shows the last time all of the players in this class connected. Other arguments include "day" which tell if they have been connected in the last day, or "week" if they have been connected in the last week.

;$g.geoplayer:learn_style_stats2($g.fall00_textual)
Gives the number of reports, moves, and experiments completed by each player who has achieved 500 points. It also says the average number of reports, moves, and experiments of all players.

;$g.geoplayer:logstats($g.fall00_textual)
Summarizes the number of times players in this class have connected.

;$g.geoplayer:show_game($g.fall00_textual)
Long description of how the players are doing. Includes primary goals completed, point achieved, present goal, endgame statistics, and other statistics for each player in that class

;$g.geoplayer:show_player(#11203)
Gives a small description of player statistics. Includes first connection time, last connection time, last client, current goal, the number of objects they own, and their current score.

;$g.geoplayer:show_scores($g.fall00_textual)
Shows the score for each player in this player class.

;$g.genhistory:replay_history(player)
Replays the entire history of a player, including connects, disconnects, reports, experiments, etc.

$g.genhistory:show_time_on_task(player)
Shows the time on task (how long they have been connected to the planet) for a particular player.


Searching through all the verbs in the game

It is possible to search through all of the verbs that are present in the game for a particular substring. First, you must update the database of objects with verbs ($g.owv) with the following call.

;$g:update_owv()

Then you can search all of the verbs in the game with the following call:

;$g:verb_grep($g.owv, "substring_to_search_for")

Just replace substring to search for with the string you want to search for. This is especially important if you want to search for all the instances of a verb call. For example, $g:verb_grep($g.owv, "visit_player") will search the game for any call to visit_player in the tutoring system.


Modify the help database

It is now incredibly easy to modify the help database. Just go to the online Help Editor


Add a person to the Project Tracker This should show the new person in the list.


Use the Project Tracker

The project tracker is used to log problems or suggestions for the Geology Explorer. If you find a problem or have a thought, post it on this website and somebody can take a look at it and get it fixed. (In theory, this also provides better long term tracking than our poor GEO-MOO listserv does)


Create a new Tutorial

In the Staging Area is a tutorial guide by the name of Tisa. She gives tutorials to graphical client players on different topics about the planet, for example, how to move around. If you want to add new tutorials, take the following steps.

  1. Create a child of $g.tutorial_guide
  2. Change the property .lesson_name in the new tutor to what the tutorial will be called. This will be how the tutorial will be referenced in the popup menu on Tisa.
  3. Write a verb caled give_lesson on the new tutor which actually gives the lesson. You may want to copy a current give_lesson verb (on one of the other children of $g.tutorial_guide) for consistency.

That's all! All the popup menu stuff is handled automatically.


Return to the GEPM Table of Contents