TaskMaster (v 0.7.1): A general task and quest scripter.

Copyright (c) 2003 by David A. Down (Merlyn of Harvestion), 2/23/2003.

Contributions: I am currently unemployed. If you find Auto-Loot useful, I would greatly appreciate any donations to help me keep improving TaskMaster. The easiest way is with Pay me securely through PayPal! to dadown@cox.net, thanks.

Copying code: If you use code from my program, please give me credit for it in the comments.

Note: This script was inspired by the RouteMaker script written by Greg Kusnick.


Features of TaskMaster:


How to use TaskMaster:

Setup:
Scrolls uses commands in JScript version 5.5 (comes with MS IE 5.5) and will get a compile error if you try to use it with an earlier version. It also needs the Decal plugin Skunkworks, version 2.0 or later.
 
Put the TaskMaster files in the library folder under the folder where Skunkworks is installed. There is no need to preconfigure anything as you can change things in the script.
 
Warning: Don't try to edit the task files created by TaskMaster unless you are sure what you are doing or the file may become corrupted and cause TaskMaster to malfunction.
 
Starting:
Log on your character and then start TaskMaster from the Skunkworks script menu window. TaskMaster will build a list of task files found in its directory and create a drop-down menu where you can select the desired file. If there is a 'TaskMaster.task' file, it will be selected by default.
Running:
As long as TaskMaster is running, it will track logoffs and logons, automatically restoring its Decal window for the current character. If the AC client terminates, TaskMaster will automatically quit and need to be restarted after you have logged in again. The configuration will be loaded from the last time that it was saved.
 
Most commands to TaskMaster can be given just by clicking on the desired comand button or menu selection. Some comands can only be given as typed text, either in the Skunkworks command window or in the AC chat window (preceeded by '/sw ').
 
As an example, to request TaskMaster to list the steps in your current task, type the following on your keyboard: <press return> /sw list <press return>

Commands to TaskMaster:

chat
Toggle sending TaskMaster output as chat messages.
chat <prefix>
Send TaskMaster output as a chat message with the given prefix.
(i.e., use '/f ' as a prefix to output as a fellowship message.)
deb
Toggle sending TaskMaster output as debug messages.
dsoa
Toggle do-step-on-add. When on, added steps are also performed
eval <expression>
Evaluate the JScript expression and display the result.
go <location>
Run to the coordinates, i.e., 'go 12.3n 9.5e'.
hot
Toggle the use of hot-keys.
id
Display information about the selected object.
key
Display defined hot-keys.
key <key>
Remove the defined hot-key.
key <key> <command>
Define the hot-key as the given command.
list
List all the steps in your current task.
loc
Display the current location and heading.
log
Toggle detailed logging.
one
Toggle one-step. Pauses after each task step when on.
pause or poz
Pause the current task or resume if already paused.
poa
Toggle pause-on-attack. Pauses after an attack when on.
quit
Stop running TaskMaster.
save
Save the current configuration to disk.
savetl
Save the current task list to disk.
stop
Toggle stop-after-goto. Stops movement after a GoTo step when on.

Task Steps:

Chat msg (chat)
Outputs the comment text as a chat message. The Value setting is how long to delay in 1/10s of a second after the chat.
Delay (dly)
Delays the task. The Value setting is how long to delay in 1/10s of a second.
Go Here (goto)
Move to the current location. The Value setting is how close you need to be to the location before the step is complete (in 1/1000 of a map unit). If the walk option is on, you will walk instead of run. If the stop option is on, you will stop moving when the step is complete.
Jump (jump)
Turn to the current heading and perform a jump. The Value setting is how strong a jump top perform (jump buildup in 1/10s of a second). Select the walk option for a walk-jump.
Move (move)
Select must be used immediately before the Move to select the object to be moved. The currently selected object is the destination of the move and can be a container or a character (give).
Note (note)
Displays the note comment and continues. This is a no-action step that is use when inserting a step.
Open (open)
Open the currently selected object if it is not already open. If not nearby, run to the location of this object.
Pause (poz)
Forces the task to pause at this step. Use the Continue button to resume the task.
Portal (port)
Use the currently selected object as a portal. To allow for special cases, no check is made on the object being used. If not nearby, run to the location of this object.
Select (n/a)
The currently selected object is remembered for use in the following Move or Use step. This button doesn't actually generate a step.
Use /on (use)
Use the currently selected object. If Select is used first, the first selection is used on the current object. A Delay step can be added if you need to wait for a response.
Wait for (wait)
Wait for the currently selected object to appear before continuing. There is no timeout on this wait.

Task Editing:

A task must be selected before the edit tab can be used, but if started, it must be paused. A paused task will display the current step for editing, otherwise, a fake step #0 will be displayed. When starting at step #0, Next will advance to step #1, but Prev will move to the last step.

Next
Advances to the next step if there is one.
Prev
Returns to the previous step if there is one. (Goes to the last step from step #0.)
Ins
Inserts a Note step before the current step, renumbering any following steps.
Del
Deletes the current step, renumbering following steps, if any.
Set
Sets the step location to the current location if it is a GoTo step or the current heading if it is a Jump step.
Value
Edit the step value for steps that use values. Be sure to press Enter to change the value.
Stop
The Stop flag can be set or cleared for a GoTo step.
Walk
The Walk flag can be set or cleared for a GoTo step or a Jump step.
Comment
The comment text can be edited for any step. Be sure to press Enter to change the comment.

Notes: You can replace the current step by using the Add tab when a task is paused. This is the only way to change the step type or change the object refered to by a step. If a task is stopped, Adding a step will append it to the end of the current task. Be sure to save the task list after editing a task or your changes won't be permanent.


Notes on usage:

Running a task:
First, select the desired file on the Tasks panel. Then select the desired task from within the file. Then click on 'Start Task' when you are at an appropriate location for running the task. All the sample tasks in 'TaskMaster.task' can be run from the Rithwic lifestone area. While running a task, you can pause it at any step or stop it completely.
Task options:
One-step: The task is paused after each step. Use the resume button to continue.
Pause on Attack: The current step will be paused whenever an attack is detected.
Stop after GoTo: After each GoTo step, movement is stopped. This can help with lag.
Creating a task:
If you want to create a task in a new file, click on the 'New File' button and enter a suitable filename along with a comment describing the tasks to be included in the file. The file will be added as the current selection on the file menu, but won't actually be created until you click on the 'Save Task List' button. If you want to add the task to an existing file, select the desired task file.

Click on the 'New Task' button and enter a name and description for this task. The task name will be added as the current task selection. You will then be switched to the 'Add' tab to add steps to your new task. The task and its added steps won't be saved in the task file until you click on the 'Save Task List' button.

After you have finished creating a task, it is a good idea to one-step through the task to make sure that each step performs as expected and then run it again without pausing to make sure that the steps sequence properly at full speed and have appropriate delays where needed.
 

Known problems:

If lag occurs while running a task, it may timeout or fail to complete the current step. Just pause the task, manually do what was missed and then continue running the script. You can also go to the edit tab and back up to the desired step.

Performing other actions while a task step is active may cause the step to end prematurely. It is best to pause the current step when doing anything manually.


If you have comments, suggestions or find program bugs, you can send email to dadown@cox.net