User:Allen Kerensky/Myriad Lite/BAM Collision Goal

= BAM Collision Goal =

BAM Collision Goal Concepts
Each step/task of the quest or adventure is represented by a goal object.

There are two basic parts to configuring a Goal object:
 * 1) Configure the current task that the player must be working on, in order to have "successfully" found this goal.
 * 2) Configure a NEXT task to hand out when the player finishes this current task, to send the player on to the next goal.

There are currently 3 starter goal objects, with many more possible, to help nudge players through your quest.

There is a collision goal, which the player must physically collide with to activate.

This is useful as a transparent/phantom "detector" that a player has entered a general area, to hand them the next task that is more specifically what to do in that area.

By combining these three goals, and clever task descriptions and hints, you can build an infinite number of scavenger-hunt style quests for players in your regions.

Collision Goal Setup
Configuring all three goals is a similar process:
 * 1) Create the goal object - such as a door, box, control panel button, etc.
 * 2) Drop in the goal script
 * 3) Edit the goal script ADVENTURE-SPECIFIC CONFIGURATION settings at the top.
 * 4) MSG_SETTEXT: the hovertext message over the quest goal. Example:  "Processed Red Salt Cask";
 * 5) MSG_SETTEXT_COLOR: color of the hovertext. Examples: http://wiki.secondlife.com/wiki/Category:LSL_Color
 * 6) MSG_SETTEXT_ALPHA: alpha/transparency of the hovertext. Examples: 0.0 = invisible, 1.0 = fully visible.
 * 7) ADVNAME: short name of this adventure: Example "Red Salt Quest"
 * 8) ADVGOAL: the current task number that finding this goal will complete. Example: 101 Note: You can have multiple goal objects with the same goal number. That gives players multiple avenues to complete the same step of the quest.
 * 9) TASKDONETEXT: message to player they they found the goal to complete this task. Example: "You've found the salt mine! You'll need a lantern."
 * 10) TASKDONEUUID: uuid of a sound to play for player when they complete this step. Example: "step101done" Note: if you put a sound file in the goal object inventory, then this variable can be the name of the sound file.
 * 11) PRIZENAME: A prize to give player for completing this task step in the overrall quest. Example: "Cave Lantern" Note: Not every goal needs to give out a prize, but this lets you equip player with necessary bits to complete later tasks in the quest.
 * 12) ADVTASKTDNUM: the NEXT task number "to-do" now that player has completed THIS task. Example: 102 NOTE: You can have multiple goals with the same task number that give the same OR DIFFERENT Next Task numbers. This can channel players into different parts of your quests based on which goal items they activated at that step.
 * 13) ADVTASKTODO: a description of the NEXT task in the quest. Example: "Explore the mine for processed red salt."
 * 14) ADVTASKTODOHINT: a hint to help player complete the next task. Example: "Processed red salt is usually stored and shipped in casks or barrels"
 * 15) TRIGGERWAIT: how long must player wait before being able to re-trigger this goal, in seconds. Example: 60
 * 16) PRIZEWAIT: how long must player wait between getting the prize from this goal again, in seconds: Example 3600 (=1 hour, 86400 = 1 day)
 * 17) EVENTTIMER: time between processing the recent and prizegiven lists, in seconds. Example 15.0  Note: Smaller numbers mean more accuracy but more lag. Larger numbers mean less lag but less precise list processing and cleanup.
 * 18) Save and close the script.
 * 19) Place the next goal using steps 1-4 above...
 * 20) Set the last goal in the quest to give the player a TASK and HINT to go back to the quest NPC for the main quest prize.

The Myriad RPG Group
Join the Myriad RPG group for announcements and discussion around the Myriad RPG and Myriad Lite scripts.

SecondLife: secondlife:///app/group/dbedc3be-729e-a123-d669-92f401e07a1e/about

OSgrid: secondlife:///app/group/da0227e5-8a0d-4d99-b970-9411932c852d/about

Feature Requests
If you have a feature you would like to see added to BAM Collision Goal, write a new feature request on the talk page for this article.

The best feature requests will have: Your SL name The name, version, and date of the script you are requesting new features in A description of the feature A sample implementation of the feature in LSL compatible with OSG and SL.

Bug Reports
If you find a bug or something that just doesn't seem right in how the BAM Collision Goal script works, file a bug report on the talk page for this article.

The best bug reports will have: Your OSG or SL name The name, version, and date of the script you are having problems with A description of the problem itself Steps to follow to reproduce the problem

Contributing to Myriad Lite
If you would like to contribute to the Myriad Lite project, please do!

The best contributions will have: Your SL Name A description of the contribution The patch, script, file, or object being contributed A release stating: * that you intend to contribute this to Myriad Lite * that you are the original creator of the contribution or are legally empowered to contribute it * that you acknowledge this contribution can be released under the Creative Commons BY 3.0 Unported and Modified BSD (3-clause) licenses

//============================================================================ // BAM Collision Goal // Copyright (c) 2012 by Baroun Tardis and Allen Kerensky (OSG/SL) All Rights Reserved. // This work is dual-licensed under // Creative Commons Attribution (CC BY) 3.0 Unported // http://creativecommons.org/licenses/by/3.0/ // - or - // Modified BSD License (3-clause) // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // * Redistributions of source code must retain the above copyright notice, //  this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, //  this list of conditions and the following disclaimer in the documentation //  and/or other materials provided with the distribution. // * Neither the name of Myriad Lite nor the names of its contributors may be //  used to endorse or promote products derived from this software without //  specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN // NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // The Myriad RPG System was designed, written, and illustrated by Ashok Desai // Myriad RPG System licensed under: // Creative Commons Attribution (CC BY) 2.0 UK: England and Wales // http://creativecommons.org/licenses/by/2.0/uk/ //============================================================================