Aardwolf MUD Home Page Link

Location: Home / Lua Coding / Task Hint System

The tasklog / taskhint system is designed to help players track their progress through the goals. Many clues and hints are easily missed in goals because a clue will often be given only once, usually in mob speech. Unless a player is pasting everything into another document, returning to a quest a week later makes it almost impossible without these notes.

While a goal is active, a very common sequence is that a mob says something and that "something" contains important hints to solving a task. The mob then opens the actual task. In these cases, what the player needs is a simple record of what the mob said.

Some more complex tasks require a player to uncover many other clues to be able to complete the task. In these situations, a "task notepad" could contain multiple clues, but these should not be given all at once - they have to be uncovered. The tasklog system also allows this to be handled.

Editing Task Hints

Within the goal editor, in the task submenu, is a new section for hints:


Selecting this option takes you into another menu where you can add hints numbered 1 through 31. Selecting a hint number takes you into the regular description editor for that hint.



Player Interface

When a player types 'goals ' they will now see a task number next to each task. This number is not your internal task number within the quest editor - that would be confusing for players. This number is just a sequential count of their open tasks:

A player can type either 'tasklog [goal name]' to see all their hints so far in a goal, or 'tasklog [goal name] [task#]' to see hints only for a single task:


Simple task hints

If a task has hint number 1 set, and the player has that task open or completed (without the overall goal completed), it will be shown unconditionally.

This will be the method used for most tasks and, as a builder, is very simple to set up. You copy the important parts of the output given when a task is opened into hint #1 for the task, and that is all you need to do.

Complex task hints

If a task has hint numbers other than 1, the player must have uncovered those hints to see them. Whether or not a hint is uncovered is determined by the builder using a new Lua function.

For example, let's imagine you have to say the codeword "August" to a spy and in return the spy says "I'd suggest hanging around the Blood Desert at midnight, but make yourself unseen".

This is the kind of hint we want to be able to record for players without forcing them to paste everything into notepad, but we don't want to give this particular hint until they actually talk to the spy.

Let's imagine this is quest number 2, task number 5. You might define hint 3 on this task as:

"The spy said to hang around the Blood Desert at Midnight, but to make sure I'm not spotted."

Then in the lua prog you would do:

--- Spy trigger on 'August'
if taskopen(ch,2,5) then
   sayto(ch,"So you're looking to catch the smugglers eh "..ch.name.."?")
   sayto(ch,"I'd recommend hanging around the Blood Desert at Midnight, but make sure you aren't spotted.")
   --- Hint #3 on this task repeats the spy's clue. Setting this flag now
   --- means it will show then the player views hints for this goal.
   taskhint(ch,2,5,3,1)
end

This function itself follows the same format as taskdata and taskstatus - the argument are:

player, quest number, task number, hint number, 1=set 0=unset.

Because this flag is now set, when a player accesses hints for that quest, they will also see hint number 3.

Other possible uses

Although the original aim for this was to store almost an identical copy of the clues given at the time the player first receives them, it doesn't have to be. You can use it for pretty much anything.

The amusement park has a 'help' prog on the rides to show the commands for each ride. This could also be put into taskhints with a summary of the purpose of each ride.

Another area could have some writing on a wall that is part of a clue. When the player reads that writing, it could silently add a flag for a hint, with the description on the hint being:

"You read some writing on a wall in the alley."

The fact that it went to taskhints at all gives the player a clue it might be important.

In some areas it may even make sense to have a way to "buy" a hint where the prog checks which hintflags a player already has and adds a new one. You could even take it a step further and add taskdata each time a player gets a free clue, then reduce the end rewards accordingly.

Summary

This is a new system which hopefully goes a long way towards solving a common issue players are having with goals now that the first dozen or so have been added.

It won't work perfectly for every area - you would probably even get a buffer overflow trying to display all of the FT2 hints, but for most goals for most people, it solves the problem nicely. It also opens up some interesting ways to document specific tasks beyond just repeating mob output.

On FT2 itself, not having taskhints on a goal marked "very difficult" seems reasonable enough, at least that's the story we're sticking to!