<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/index.php?action=history&amp;feed=atom&amp;title=User%3AAllen_Kerensky%2FMyriad_Lite%2FMyriad_Lite_Module_Rumors-v0.0.2-20120826.lsl</id>
		<title>User:Allen Kerensky/Myriad Lite/Myriad Lite Module Rumors-v0.0.2-20120826.lsl - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/index.php?action=history&amp;feed=atom&amp;title=User%3AAllen_Kerensky%2FMyriad_Lite%2FMyriad_Lite_Module_Rumors-v0.0.2-20120826.lsl"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl&amp;action=history"/>
		<updated>2026-06-13T18:38:18Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/index.php?title=User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl&amp;diff=30517&amp;oldid=prev</id>
		<title>Allen Kerensky: Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=User:Allen_Kerensky/Myriad_Lite/Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl&amp;diff=30517&amp;oldid=prev"/>
				<updated>2012-08-26T21:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl =&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
// Myriad_Lite_Module_Rumors-v0.0.2-20120826.lsl &lt;br /&gt;
// Copyright (c) 2012 by Allen Kerensky (OSG/SL) All Rights Reserved.&lt;br /&gt;
// This work is dual-licensed under&lt;br /&gt;
// Creative Commons Attribution (CC BY) 3.0 Unported&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
// - or -&lt;br /&gt;
// Modified BSD License (3-clause)&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without&lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
// * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
//   this list of conditions and the following disclaimer.&lt;br /&gt;
// * Redistributions in binary form must reproduce the above copyright notice,&lt;br /&gt;
//   this list of conditions and the following disclaimer in the documentation&lt;br /&gt;
//   and/or other materials provided with the distribution.&lt;br /&gt;
// * Neither the name of Myriad Lite nor the names of its contributors may be&lt;br /&gt;
//   used to endorse or promote products derived from this software without&lt;br /&gt;
//   specific prior written permission.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR&lt;br /&gt;
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;br /&gt;
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN&lt;br /&gt;
// NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,&lt;br /&gt;
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT&lt;br /&gt;
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF&lt;br /&gt;
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//&lt;br /&gt;
// The Myriad RPG System was designed, written, and illustrated by Ashok Desai&lt;br /&gt;
// Myriad RPG System licensed under:&lt;br /&gt;
// Creative Commons Attribution (CC BY) 2.0 UK: England and Wales&lt;br /&gt;
// http://creativecommons.org/licenses/by/2.0/uk/&lt;br /&gt;
&lt;br /&gt;
// CONSTANTS - DO NOT CHANGE DURING RUN&lt;br /&gt;
string VERSION = &amp;quot;0.0.2&amp;quot;; // Allen Kerensky's script version&lt;br /&gt;
string VERDATE = &amp;quot;20120826&amp;quot;; // Allen Kerensky's script yyyymmdd&lt;br /&gt;
// Module to Module Messaging Constants&lt;br /&gt;
// integer MODULE_HUD = -1;&lt;br /&gt;
// integer MODULE_CHARSHEET = -2;&lt;br /&gt;
// integer MODULE_ARMOR = -3;&lt;br /&gt;
// integer MODULE_BAM = -4;&lt;br /&gt;
integer MODULE_RUMORS = -5; // Which Module Link Message number do I listen for?&lt;br /&gt;
// integer MODULE_CLOSE = -6;&lt;br /&gt;
// integer MODULE_RANGED = -7;&lt;br /&gt;
// integer MODULE_RESILIENCE = -8;&lt;br /&gt;
// integer MODULE_PROGRESS = -9;&lt;br /&gt;
// integer MODULE_WELL = -10;&lt;br /&gt;
// integer MODULE_METER = -11;&lt;br /&gt;
integer LM_SENDTOATTACHMENT = 0x80000000;&lt;br /&gt;
&lt;br /&gt;
integer CHANMYRIAD = -999; // regionwide rendezvous channel&lt;br /&gt;
string CHAN_PREFIX = &amp;quot;0x&amp;quot;; // channel prefix for calculating dynamic channels&lt;br /&gt;
string DIV = &amp;quot;|&amp;quot;; // message field divider&lt;br /&gt;
&lt;br /&gt;
// RUNTIME GLOBALS - CAN CHANGE DURING RUN&lt;br /&gt;
integer CHANOBJ; // channel of thing we're talking to&lt;br /&gt;
string RUMOR; // the current rumor we've heard&lt;br /&gt;
integer FLAG_DEBUG; // configure in SETUP function, LSLINT hack&lt;br /&gt;
&lt;br /&gt;
// DEBUG&lt;br /&gt;
DEBUG(string debugmsg) {&lt;br /&gt;
    if ( FLAG_DEBUG == TRUE ) llSay(DEBUG_CHANNEL,&amp;quot;(&amp;quot;+llKey2Name(llGetOwner())+&amp;quot;) MOD RUMORS: &amp;quot;+debugmsg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// GETVERSION&lt;br /&gt;
GETVERSION() {&lt;br /&gt;
    SENDTOHUD(&amp;quot;VERSION=&amp;quot;+VERSION+DIV+&amp;quot;VERSIONDATE=&amp;quot;+VERDATE+DIV+llGetObjectName());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// RESET - shut down running animations then reset the script to reload character sheet&lt;br /&gt;
RESET() {&lt;br /&gt;
    llResetScript(); // now reset&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// SENDTOHUD - send reponses to HUD as Link Messages&lt;br /&gt;
SENDTOHUD(string str) {&lt;br /&gt;
    DEBUG(&amp;quot;SENDTOHUD(&amp;quot;+str+&amp;quot;)&amp;quot;);&lt;br /&gt;
    llMessageLinked(LINK_THIS,LM_SENDTOATTACHMENT,str,llGetOwner());    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// SETUP - begin bringing the HUD online&lt;br /&gt;
SETUP() {&lt;br /&gt;
    FLAG_DEBUG=FALSE;&lt;br /&gt;
    llRegionSay(CHANMYRIAD,&amp;quot;RUMOR_SERVER_FIND&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// DEFAULT STATE - load character sheet&lt;br /&gt;
default {&lt;br /&gt;
&lt;br /&gt;
    // LINK MESSAGE - commands to and from other prims in HUD&lt;br /&gt;
    link_message(integer sender,integer sending_module,string message, key speakerid) {&lt;br /&gt;
        if ( sending_module == MODULE_RUMORS || sending_module == LM_SENDTOATTACHMENT ) return; // ignore our own link messages&lt;br /&gt;
        DEBUG(&amp;quot;EVENT: link_message(&amp;quot;+(string)sender+&amp;quot;,&amp;quot;+(string)sending_module+&amp;quot;,&amp;quot;+message+&amp;quot;,&amp;quot;+(string)speakerid+&amp;quot;)&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // break down the commands and messages into units we can work with&lt;br /&gt;
        list fields = llParseString2List(message,[DIV],[]); // break into list of fields based on DIVider&lt;br /&gt;
        string command = llList2String(fields,0); // assume the first field is a Myriad Lite command&lt;br /&gt;
        //string data1   = llList2String(fields,1);&lt;br /&gt;
        //string data2   = llList2String(fields,2);&lt;br /&gt;
        //string data3   = llList2String(fields,3);&lt;br /&gt;
&lt;br /&gt;
        // General Myriad Module Commnads&lt;br /&gt;
        if ( command == &amp;quot;DEBUGOFF&amp;quot; ) { FLAG_DEBUG = FALSE; return;} // disable debugging&lt;br /&gt;
        if ( command == &amp;quot;DEBUGON&amp;quot; ) { FLAG_DEBUG = TRUE; return;} // enable debugging&lt;br /&gt;
        if ( command == &amp;quot;RESET&amp;quot; ) { RESET(); return;} // reset when told&lt;br /&gt;
        if ( command == &amp;quot;VERSION&amp;quot; ) { GETVERSION(); return;} // get version when needed&lt;br /&gt;
&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_SERVER_FIND&amp;quot; ) {&lt;br /&gt;
            llRegionSay(CHANMYRIAD,&amp;quot;RUMOR_FIND_SERVER&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_SERVER_FOUND&amp;quot; ) {&lt;br /&gt;
            // calculate dynamic channel of item/player talking to us&lt;br /&gt;
            CHANOBJ = (integer)(CHAN_PREFIX + llGetSubString((string)speakerid,0,6));&lt;br /&gt;
            llOwnerSay(&amp;quot;This region supports Myriad Lite rumors.&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_GET&amp;quot; ) { // does player want to get a rumor from system?&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_GET|&amp;quot;+(string)llGetKey());&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_SHOW&amp;quot; ) { // incoming rumor from the system&lt;br /&gt;
            RUMOR = &amp;quot;&amp;quot;;&lt;br /&gt;
            RUMOR = llGetSubString(message,llSubStringIndex(message,DIV),-1);&lt;br /&gt;
            llOwnerSay(&amp;quot;You hear a rumor, \&amp;quot;&amp;quot;+RUMOR+&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_MAIN&amp;quot; ) { // ask for rumor main menu (admins only)&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_MAIN&amp;quot; );&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_MODERATE&amp;quot; ) { // ask for first rumor to moderate (admins only)&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_MODERATE&amp;quot; );&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_YES&amp;quot; ) { // approve rumor (for admins only)&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_LIST&amp;quot; );&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_LIST&amp;quot; ) { // ask for list of all rumors in system (for admins only)&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_LIST&amp;quot; );&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_PENDING&amp;quot; ) { // ask for next pending rumor&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_PENDING&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_NONE_PENDING&amp;quot; ) { // none left&lt;br /&gt;
            llOwnerSay(&amp;quot;No rumors pending&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_APPROVE&amp;quot; ) { // approve a pending rumor (for admins only)&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_APPROVE&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_APPROVED&amp;quot; ) { // confirmed&lt;br /&gt;
            llOwnerSay(&amp;quot;Rumor approved.&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_REMOVE&amp;quot; ) { // remove a pending&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_REMOVE&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_REMOVED&amp;quot; ) { // confirmed&lt;br /&gt;
            llOwnerSay(&amp;quot;Rumor Removed&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if ( command == &amp;quot;RUMOR_PUT&amp;quot; ) { // does player want to put a rumor into system?&lt;br /&gt;
            llRegionSay(CHANOBJ,&amp;quot;RUMOR_PUT|&amp;quot;+llKey2Name(llGetOwner())+&amp;quot;|&amp;quot;+llList2String(fields,1));&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
    } // end listen&lt;br /&gt;
&lt;br /&gt;
    // STATE ENTRY - called on Reset&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        SETUP(); // show credits and start character sheet load&lt;br /&gt;
    }&lt;br /&gt;
} // end state running&lt;br /&gt;
// END&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	</feed>