<?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_Compatible_Trap-Preview6.lsl</id>
		<title>User:Allen Kerensky/Myriad Lite/Myriad Compatible Trap-Preview6.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_Compatible_Trap-Preview6.lsl"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl&amp;action=history"/>
		<updated>2026-06-13T20:07:14Z</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_Compatible_Trap-Preview6.lsl&amp;diff=30374&amp;oldid=prev</id>
		<title>Allen Kerensky: Myriad_Compatible_Trap-Preview6.lsl</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=User:Allen_Kerensky/Myriad_Lite/Myriad_Compatible_Trap-Preview6.lsl&amp;diff=30374&amp;oldid=prev"/>
				<updated>2012-08-12T15:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Myriad_Compatible_Trap-Preview6.lsl&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Myriad_Compatible_Trap-Preview6.lsl =&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
// Myriad_Compatible_Trap-Preview6.lsl&lt;br /&gt;
// Copyright (c) 2012 LANI GLOBAL SYSTEMS and 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;
string  VERSION = &amp;quot;0.5.4&amp;quot;; // version number&lt;br /&gt;
string  VERDATE = &amp;quot;20120202&amp;quot;; // version date&lt;br /&gt;
&lt;br /&gt;
// This trap causes Myriad damage if avatar touches or collides with it.&lt;br /&gt;
// Myriad config below this line&lt;br /&gt;
//==========================&lt;br /&gt;
integer MINDAMAGE = 1; // minimum allowed trap damage&lt;br /&gt;
integer MAXDAMAGE = 5; // maximum allowed trap damage&lt;br /&gt;
integer DAMAGE = 2; // default how much damage do you want this weapon to cause? can be overriden on rez!&lt;br /&gt;
string  CHAN_PREFIX = &amp;quot;0x&amp;quot;; // used to convert key to hexadecimal channel number&lt;br /&gt;
string  DIV = &amp;quot;|&amp;quot;; // divider between parts of Myriad API messages&lt;br /&gt;
integer CHANMYRIAD = -999; // channel to send Myriad RP events to&lt;br /&gt;
string  MYRIADTRAPNAME = &amp;quot;TRAP1&amp;quot;; //name of the trap&lt;br /&gt;
string  TOUCHMESSAGE = &amp;quot;do not touch this!&amp;quot;; // touch damage message sent to avi via IM direct&lt;br /&gt;
string  COLLISIONMESSAGE = &amp;quot;tried to trap you!&amp;quot;; //collision damage message sent to avi via IM direct&lt;br /&gt;
string  MYRIADMESSAGE = &amp;quot;tried to trap&amp;quot;; //RP attempted damage message sent via Myriad hud&lt;br /&gt;
string  SOUNDNAME = &amp;quot;zap&amp;quot;; // name of the sound to play when trap springs&lt;br /&gt;
string  HOVERTEXT = &amp;quot;TRAP&amp;quot;; //floating text&lt;br /&gt;
vector  HTEXTCOLOR = &amp;lt;1,0.0,0&amp;gt;; // &amp;lt;R,G,B&amp;gt; color of the hovertext&lt;br /&gt;
float   HTEXTALPHA = 0.5; //alpha level of the hovertext &lt;br /&gt;
vector  PUSHPOWER = &amp;lt;200,200,200&amp;gt;; // vector to push the damaged avi away  &lt;br /&gt;
&lt;br /&gt;
ATTACK(key victim,string victimname,string attackmessage) {&lt;br /&gt;
    llPlaySound(SOUNDNAME, 1.0); // play sound if touched&lt;br /&gt;
    llPushObject(victim,PUSHPOWER, ZERO_VECTOR, FALSE); // push avatar away if touch&lt;br /&gt;
    llInstantMessage(victim,&amp;quot; sorry &amp;quot;+llDetectedName(0)+ &amp;quot;, &amp;quot;+attackmessage); //tell avi something  &lt;br /&gt;
    // calculate the dynamic channel of who/what we hit &lt;br /&gt;
    integer dynchan = (integer)(CHAN_PREFIX+llGetSubString((string)llGetOwner(),0,6)); // owner of trap becomes attacker&lt;br /&gt;
    llRegionSay(dynchan,&amp;quot;CLOSECOMBAT&amp;quot;+DIV+(string)DAMAGE+DIV+(string)victim+DIV+(string)llGetOwner()+DIV+llGetObjectName()); //myriad damage regionsay&lt;br /&gt;
    llRegionSay(CHANMYRIAD,&amp;quot;RPEVENT&amp;quot;+DIV+MYRIADTRAPNAME+&amp;quot; &amp;quot;+MYRIADMESSAGE+&amp;quot; &amp;quot;+victimname+&amp;quot;!&amp;quot;); //myriad rp event regionsay&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    on_rez(integer rez_damage) { &lt;br /&gt;
        if ( rez_damage &amp;gt;= MINDAMAGE &amp;amp;&amp;amp; rez_damage &amp;lt;= MAXDAMAGE ) {&lt;br /&gt;
            DAMAGE = rez_damage; // allow rez param to override scripted in damage&lt;br /&gt;
        }&lt;br /&gt;
        llSetStatus(STATUS_PHANTOM, TRUE); // toggle phantom status&lt;br /&gt;
        llSleep(0.2); // sleep for a moment to give toggle a chance to settle&lt;br /&gt;
        llSetStatus(STATUS_PHANTOM, FALSE); // make sure trap is not phantom&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llSetText(HOVERTEXT,HTEXTCOLOR,HTEXTALPHA); // set the hovertext&lt;br /&gt;
        llSetSitText(&amp;quot;--&amp;quot;); // set the sit text&lt;br /&gt;
        llSetTouchText(&amp;quot;BAD&amp;quot;); // set the touch text&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer total_number) {&lt;br /&gt;
        while (total_number--) { // loop through all people who touched, not just first this frame&lt;br /&gt;
            ATTACK(llDetectedKey(total_number),llDetectedName(total_number),TOUCHMESSAGE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
     collision_start(integer total_number) {&lt;br /&gt;
        while (total_number--) { // loop through all people who touched, not just first this frame&lt;br /&gt;
            ATTACK(llDetectedKey(total_number),llDetectedName(total_number),COLLISIONMESSAGE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Allen Kerensky</name></author>	</entry>

	</feed>