Mantis#1659. Thank you, Melanie for a patch that:

In LSL, the state command should have an immediate effect. 
The OpenSim script engine seems to wait until the function 
ends to process the state transition.
This commit is contained in:
Charles Krinke
2008-07-04 00:59:38 +00:00
parent cf87a9c5fe
commit ce5122ebf3
3 changed files with 54 additions and 32 deletions

View File

@@ -99,6 +99,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void state(string newState)
{
m_ScriptEngine.SetState(m_itemID, newState);
throw new EventAbortException();
}
public void llSay(int channelID, string text)
@@ -2791,6 +2792,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
m_ScriptEngine.ApiResetScript(m_itemID);
throw new EventAbortException();
}
public void llMessageLinked(int linknum, int num, string msg, string id)

View File

@@ -30,6 +30,7 @@ using System.IO;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using libsecondlife;
using OpenSim.Framework;
using OpenSim.Region.Environment;
@@ -37,6 +38,20 @@ using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.ScriptEngine.Shared
{
[Serializable]
public class EventAbortException : Exception
{
public EventAbortException()
{
}
protected EventAbortException(
SerializationInfo info,
StreamingContext context)
{
}
}
public class DetectParams
{
public DetectParams()