<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://myst.dustbird.net/w/index.php?action=history&amp;feed=atom&amp;title=Python_and_Responders%3A_Please_Read%21</id>
	<title>Python and Responders: Please Read! - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://myst.dustbird.net/w/index.php?action=history&amp;feed=atom&amp;title=Python_and_Responders%3A_Please_Read%21"/>
	<link rel="alternate" type="text/html" href="http://myst.dustbird.net/w/index.php?title=Python_and_Responders:_Please_Read!&amp;action=history"/>
	<updated>2026-04-04T15:11:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>http://myst.dustbird.net/w/index.php?title=Python_and_Responders:_Please_Read!&amp;diff=1572&amp;oldid=prev</id>
		<title>AndyLegate: Created page with &#039;If you are using Python files to make things happen in your Age (and you more than likely will if you want puzzles, and neat actions to happen), then it is very IMPORTANT that yo…&#039;</title>
		<link rel="alternate" type="text/html" href="http://myst.dustbird.net/w/index.php?title=Python_and_Responders:_Please_Read!&amp;diff=1572&amp;oldid=prev"/>
		<updated>2011-01-24T12:40:33Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;If you are using Python files to make things happen in your Age (and you more than likely will if you want puzzles, and neat actions to happen), then it is very IMPORTANT that yo…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If you are using Python files to make things happen in your Age (and you more than likely will if you want puzzles, and neat actions to happen), then it is very IMPORTANT that you remember to have your responders that you have Python run to &amp;#039;&amp;#039;&amp;#039;notify&amp;#039;&amp;#039;&amp;#039; Python that they are done.&lt;br /&gt;
&lt;br /&gt;
Basically what is happening is your python file will have something in it that has a responder run, say like this clip here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=Python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    def OnNotify(self, state, id, events):&lt;br /&gt;
        global avatarEntering&lt;br /&gt;
        if (id == triggerRgn1.id):&lt;br /&gt;
            if (PtFindAvatar(events) != PtGetLocalAvatar()):&lt;br /&gt;
                return &lt;br /&gt;
            print &amp;#039; must have ki&amp;#039;&lt;br /&gt;
            kiLevel = PtGetLocalKILevel()&lt;br /&gt;
            if (kiLevel &amp;lt; 2):&lt;br /&gt;
                return &lt;br /&gt;
            for event in events:&lt;br /&gt;
                if ((event[0] == 1) and (event[1] == 1)):&lt;br /&gt;
                    avatarEntering = PtFindAvatar(events)&lt;br /&gt;
                    print &amp;quot;entered the region, disable this one and the other door&amp;#039;s triggers&amp;quot;&lt;br /&gt;
                    triggerRgn1.disable()&lt;br /&gt;
                    triggerRgn2.disable()&lt;br /&gt;
                    if (avatarEntering == PtGetLocalAvatar()):&lt;br /&gt;
                        print &amp;#039;stop this avatar&amp;#039;&lt;br /&gt;
                        PtDisableMovementKeys()&lt;br /&gt;
                        print &amp;#039;take away first person&amp;#039;&lt;br /&gt;
                        cam = ptCamera()&lt;br /&gt;
                        cam.disableFirstPersonOverride()&lt;br /&gt;
                        cam.undoFirstPerson()&lt;br /&gt;
                        PtSendKIMessage(kDisableEntireYeeshaBook, 0)&lt;br /&gt;
                    print &amp;#039;open the door&amp;#039;&lt;br /&gt;
                    door1OpenResponder.run(self.key, avatar=avatarEntering)&lt;br /&gt;
                    return &lt;br /&gt;
&lt;br /&gt;
        if (id == door1OpenResponder.id):&lt;br /&gt;
            if (avatarEntering != PtGetLocalAvatar()):&lt;br /&gt;
                return &lt;br /&gt;
            print &amp;#039; door is open, walk in&amp;#039;&lt;br /&gt;
            avatarEntering.avatar.runBehaviorSetNotify(behaviorWalkIn.value, self.key, behaviorWalkIn.netForce)&lt;br /&gt;
            return &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this clip, the Avatar is going to be stopped, and commands to it disabled. My door responder is going to be told by python to run.&lt;br /&gt;
&lt;br /&gt;
This python file is the &amp;quot;trigger&amp;quot; for that door responder. If it does NOT tell the Python file that it&amp;#039;s done, you will end up with nothing else happening (I know, I went down this road, wondering why after the door opened nothing else was happening!).&lt;br /&gt;
&lt;br /&gt;
All you need to do is add this to the end of your responders that are being controlled by Python:&lt;br /&gt;
&lt;br /&gt;
[[File:Notifytrig.jpg]]&lt;br /&gt;
&lt;br /&gt;
You may want to make sure you tell it to wait until the previous command is finished too.&lt;br /&gt;
&lt;br /&gt;
This is the responder saying &amp;quot;Hey Python File! I&amp;#039;m done! You can go do your next thing!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return To: [[Andy&amp;#039;s Max Tutorials]]&lt;/div&gt;</summary>
		<author><name>AndyLegate</name></author>
		
	</entry>
</feed>