Add llRegionSayTo

llRegionSayTo(key target, integer channel, string messasge)

	Allows messages to be sent region-wide
	to a particular prim.
This commit is contained in:
BlueWall
2011-08-19 18:47:21 -04:00
parent a0a0c64cb1
commit 2787207aa2
5 changed files with 68 additions and 6 deletions

View File

@@ -843,6 +843,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text);
}
public void llRegionSayTo(string target, int channel, string msg)
{
if (channel == 0)
{
LSLError("Cannot use llRegionSay() on channel 0");
return;
}
if (msg.Length > 1023)
msg = msg.Substring(0, 1023);
m_host.AddScriptLPS(1);
UUID TargetID;
UUID.TryParse(target, out TargetID);
IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
if (wComm != null)
wComm.DeliverMessageTo(TargetID, channel, m_host.Name, m_host.UUID, msg);
}
public LSL_Integer llListen(int channelID, string name, string ID, string msg)
{
m_host.AddScriptLPS(1);
@@ -10486,12 +10507,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
NotImplemented("llGetUsedMemory");
}
public void llRegionSayTo(LSL_Key target, LSL_Integer channel, LSL_String msg)
{
m_host.AddScriptLPS(1);
NotImplemented("llRegionSayTo");
}
public void llScriptProfiler(LSL_Integer flags)
{
m_host.AddScriptLPS(1);

View File

@@ -271,6 +271,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local);
void llRefreshPrimURL();
void llRegionSay(int channelID, string text);
void llRegionSayTo(string target, int channelID, string text);
void llReleaseCamera(string avatar);
void llReleaseControls();
void llReleaseURL(string url);

View File

@@ -1199,6 +1199,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_LSL_Functions.llRegionSay(channelID, text);
}
public void llRegionSayTo(string key, int channelID, string text)
{
m_LSL_Functions.llRegionSayTo(key, channelID, text);
}
public void llReleaseCamera(string avatar)
{
m_LSL_Functions.llReleaseCamera(avatar);