<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.osgrid.org/index.php?action=history&amp;feed=atom&amp;title=Door_script_0.2</id>
	<title>Door script 0.2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.osgrid.org/index.php?action=history&amp;feed=atom&amp;title=Door_script_0.2"/>
	<link rel="alternate" type="text/html" href="http://wiki.osgrid.org/index.php?title=Door_script_0.2&amp;action=history"/>
	<updated>2026-10-25T14:13:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://wiki.osgrid.org/index.php?title=Door_script_0.2&amp;diff=308&amp;oldid=prev</id>
		<title>Osgridadmin: Created page with &quot;&lt;source lang=lsl&gt;  /*     Fu&#039;s talking door script       v0.2     - locking door latch     - &quot;CONSTANTS&quot; for code clarity      v0.1     - state changes     - passing data betw...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.osgrid.org/index.php?title=Door_script_0.2&amp;diff=308&amp;oldid=prev"/>
		<updated>2018-07-20T20:50:39Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;source lang=lsl&amp;gt;  /*     Fu&amp;#039;s talking door script       v0.2     - locking door latch     - &amp;quot;CONSTANTS&amp;quot; for code clarity      v0.1     - state changes     - passing data betw...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
    Fu&amp;#039;s talking door script &lt;br /&gt;
&lt;br /&gt;
    v0.2&lt;br /&gt;
    - locking door latch&lt;br /&gt;
    - &amp;quot;CONSTANTS&amp;quot; for code clarity&lt;br /&gt;
&lt;br /&gt;
    v0.1&lt;br /&gt;
    - state changes&lt;br /&gt;
    - passing data between states&lt;br /&gt;
    - llListen() and listen event handler&lt;br /&gt;
&lt;br /&gt;
    v0.0&lt;br /&gt;
    - basic states&lt;br /&gt;
&lt;br /&gt;
    (c)2017 - Fu Barr (OSGrid)&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
integer DEBUG = FALSE;&lt;br /&gt;
&lt;br /&gt;
string  code_lock   = &amp;quot;Lockus locke&amp;quot;;&lt;br /&gt;
string  code_unlock = &amp;quot;Unlockus locke&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
string  latch;&lt;br /&gt;
&lt;br /&gt;
string  txt_unlocked    = &amp;quot;This door is now unlocked.&amp;quot;;&lt;br /&gt;
string  txt_locked      = &amp;quot;This door is now locked.&amp;quot;;&lt;br /&gt;
string  txt_noentry     = &amp;quot;Locked. Your pixels may not pass!&amp;quot;;&lt;br /&gt;
string  txt_welcome     = &amp;quot;Welcome, &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
key     avatar_uuid;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
&lt;br /&gt;
    on_rez(integer r) {&lt;br /&gt;
&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_entry() {&lt;br /&gt;
&lt;br /&gt;
        latch = &amp;quot;UNLOCKED&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        llOwnerSay(&amp;quot;running &amp;quot; + llGetScriptName());&lt;br /&gt;
&lt;br /&gt;
        state closed;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
state closed {&lt;br /&gt;
&lt;br /&gt;
    state_entry() {&lt;br /&gt;
&lt;br /&gt;
        llListen(0, &amp;quot;&amp;quot;, NULL_KEY, code_unlock);     // using two llListen() for early channel 0 chat filter&lt;br /&gt;
        llListen(0, &amp;quot;&amp;quot;, NULL_KEY, code_lock);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_end(integer t){&lt;br /&gt;
&lt;br /&gt;
        if(latch == &amp;quot;LOCKED&amp;quot;) {&lt;br /&gt;
&lt;br /&gt;
            llSay(0, txt_noentry);&lt;br /&gt;
&lt;br /&gt;
        } else {&lt;br /&gt;
&lt;br /&gt;
            avatar_uuid = llDetectedKey(0);&lt;br /&gt;
&lt;br /&gt;
            state open;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    listen(integer channel, string name, key uuid, string msg) {&lt;br /&gt;
&lt;br /&gt;
        if(DEBUG){llOwnerSay(&amp;quot;closed::listen() key: &amp;quot; + uuid);}&lt;br /&gt;
&lt;br /&gt;
        if(msg == code_unlock){&lt;br /&gt;
&lt;br /&gt;
            latch = &amp;quot;UNLOCKED&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            llSay(0, txt_unlocked);&lt;br /&gt;
&lt;br /&gt;
        } else if(msg == code_lock) {&lt;br /&gt;
&lt;br /&gt;
            latch = &amp;quot;LOCKED&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            llSay(0, txt_locked);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_exit() {&lt;br /&gt;
&lt;br /&gt;
        // TODO: swing door open&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
state open {&lt;br /&gt;
&lt;br /&gt;
    state_entry() {&lt;br /&gt;
&lt;br /&gt;
        llSay(0, txt_welcome + llKey2Name(avatar_uuid));&lt;br /&gt;
&lt;br /&gt;
        state closed;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_exit() {&lt;br /&gt;
&lt;br /&gt;
        // TODO: swing door shut&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Osgridadmin</name></author>
	</entry>
</feed>