diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 7c43b6a168..3c824ebfd4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -3164,33 +3164,38 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api module.Say(npcId, World, message, channel); } } - - public void osNpcSayTo(LSL_Key npc, string target, int channel, string msg) + + public void osNpcSayTo(LSL_Key npc, LSL_Key target, int channel, string msg) { CheckThreatLevel(ThreatLevel.High, "osNpcSayTo"); INPCModule module = World.RequestModuleInterface(); - if (module != null) - { - UUID npcId = new UUID(npc.m_string); + if (module == null) + return; + + UUID npcId; + if (!UUID.TryParse(npc.m_string, out npcId)) + return; - if (!module.CheckPermissions(npcId, m_host.OwnerID)) - return; - - ScenePresence NPCpresence = World.GetScenePresence(npcId); - if (NPCpresence == null || NPCpresence.IsDeleted) - return; - - Vector3 npcPOS = NPCpresence.AbsolutePosition; - string npcNAME = NPCpresence.Name; UUID TargetID; - UUID.TryParse(target, out TargetID); - - IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface(); + if (!UUID.TryParse(target.m_string, out TargetID)) + return; + + if (!module.CheckPermissions(npcId, m_host.OwnerID)) + return; + + ScenePresence NPCpresence = World.GetScenePresence(npcId); + if (NPCpresence == null || NPCpresence.IsDeleted || !NPCpresence.IsNPC) + return; + + Vector3 npcPOS = NPCpresence.AbsolutePosition; + string npcNAME = NPCpresence.Name; + + IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface(); if (wComm != null) wComm.DeliverMessageTo(TargetID, channel, npcPOS, npcNAME, npcId, msg); - } } + public void osNpcShout(LSL_Key npc, int channel, string message) { CheckThreatLevel(ThreatLevel.High, "osNpcShout"); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 2f800bc420..12e8103b3d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -358,7 +358,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void osNpcSetProfileImage(LSL_Key npc, string image); void osNpcSay(key npc, string message); void osNpcSay(key npc, int channel, string message); - void osNpcSayTo(LSL_Key npc, string target, int channel, string msg); + void osNpcSayTo(LSL_Key npc, LSL_Key target, int channel, string msg); void osNpcShout(key npc, int channel, string message); void osNpcSit(key npc, key target, int options); void osNpcStand(LSL_Key npc); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index ba899b0c97..94df1eaa76 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -682,10 +682,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { m_OSSL_Functions.osNpcSay(npc, channel, message); } - public void osNpcSayTo(LSL_Key npc, string target, int channel, string msg) + + public void osNpcSayTo(LSL_Key npc, LSL_Key target, int channel, string msg) { m_OSSL_Functions.osNpcSayTo(npc, target, channel, msg); - } + } + public void osNpcShout(key npc, int channel, string message) { m_OSSL_Functions.osNpcShout(npc, channel, message); diff --git a/bin/ScriptSyntax.xml b/bin/ScriptSyntax.xml index 5f5c421a2c..fb6969e420 100644 --- a/bin/ScriptSyntax.xml +++ b/bin/ScriptSyntax.xml @@ -1,4 +1,4 @@ -94172d61-5659-3578-82df-8eef2e48ef45 +fe7d5416-2379-feca-3b16-6b9854799c50 llsd-lsl-syntax-version2 controls @@ -3805,6 +3805,11 @@ facetypeinteger + llGetCreator + + returnkey + arguments + llGetDate returnstring @@ -4003,11 +4008,21 @@ returnfloat arguments + llGetMaxScaleFactor + + returnfloat + arguments + llGetMemoryLimit returninteger arguments + llGetMinScaleFactor + + returnfloat + arguments + llGetNextEmail arguments @@ -6054,6 +6069,14 @@ volumetypefloat + osAgentSaveAppearance + + returnkey + arguments + agentIdtypekey + notecardtypestring + + osAngleBetween returnfloat @@ -6068,35 +6091,35 @@ arguments vatypevector vbtypevector + + + osApproxEquals + + returninteger + arguments + atypefloat + btypefloat margintypefloat osApproxEquals + + returninteger + arguments + atypefloat + btypefloat + + + osApproxEquals returninteger arguments vatypevector vbtypevector - - - osApproxEquals - - returninteger - arguments - atypefloat - btypefloat margintypefloat osApproxEquals - - returninteger - arguments - atypefloat - btypefloat - - - osApproxEquals returninteger arguments @@ -6783,6 +6806,194 @@ ytypeinteger + osNpcCreate + + returnkey + arguments + usertypestring + nametypestring + positiontypevector + notecardtypestring + + + osNpcCreate + + returnkey + arguments + usertypestring + nametypestring + positiontypevector + notecardtypestring + optionstypeinteger + + + osNpcGetOwner + + returnkey + arguments + npctypekey + + + osNpcGetPos + + returnvector + arguments + npctypekey + + + osNpcGetRot + + returnrotation + arguments + npctypekey + + + osNpcLoadAppearance + + arguments + npctypekey + notecardtypestring + + + osNpcMoveTo + + arguments + npctypekey + positiontypevector + + + osNpcMoveToTarget + + arguments + npctypekey + targettypevector + optionstypeinteger + + + osNpcPlayAnimation + + arguments + npctypekey + animationtypestring + + + osNpcRemove + + arguments + npctypekey + + + osNpcSaveAppearance + + returnkey + arguments + npctypekey + notecardtypestring + + + osNpcSay + + arguments + npctypekey + messagetypestring + + + osNpcSay + + arguments + npctypekey + channeltypeinteger + messagetypestring + + + osNpcSayTo + + arguments + npctypekey + targettypekey + channeltypeinteger + msgtypestring + + + osNpcSetProfileAbout + + arguments + npctypekey + abouttypestring + + + osNpcSetProfileImage + + arguments + npctypekey + imagetypestring + + + osNpcSetRot + + arguments + npctypekey + rottyperotation + + + osNpcShout + + arguments + npctypekey + channeltypeinteger + messagetypestring + + + osNpcSit + + arguments + npctypekey + targettypekey + optionstypeinteger + + + osNpcStand + + arguments + npctypekey + + + osNpcStopAnimation + + arguments + npctypekey + animationtypestring + + + osNpcStopMoveToTarget + + arguments + npctypekey + + + osNpcTouch + + arguments + npcLSL_Keytypekey + object_keytypekey + link_numtypeinteger + + + osNpcWhisper + + arguments + npctypekey + channeltypeinteger + messagetypestring + + + osOwnerSaveAppearance + + returnkey + arguments + notecardtypestring + + osParcelJoin arguments @@ -6853,6 +7064,7 @@ returninteger arguments secondstypefloat + msgtypestring osRegionRestart @@ -6860,7 +7072,6 @@ returninteger arguments secondstypefloat - msgtypestring osReplaceString @@ -7084,7 +7295,6 @@ osSetProjectionParams arguments - primtypekey projectiontypeinteger texturetypekey fovtypefloat @@ -7095,6 +7305,7 @@ osSetProjectionParams arguments + primtypekey projectiontypeinteger texturetypekey fovtypefloat @@ -7196,6 +7407,8 @@ arguments srctypestring valuetypestring + starttypeinteger + counttypeinteger ignorecasetypeinteger @@ -7205,8 +7418,6 @@ arguments srctypestring valuetypestring - starttypeinteger - counttypeinteger ignorecasetypeinteger @@ -7326,13 +7537,6 @@ osTeleportOwner - - arguments - positiontypevector - lookattypevector - - - osTeleportOwner arguments regionNametypestring @@ -7349,6 +7553,13 @@ lookattypevector + osTeleportOwner + + arguments + positiontypevector + lookattypevector + + osTerrainFlush arguments diff --git a/bin/config-include/osslEnable.ini b/bin/config-include/osslEnable.ini index 0d2461a7a7..674b2abfe9 100644 --- a/bin/config-include/osslEnable.ini +++ b/bin/config-include/osslEnable.ini @@ -171,7 +171,7 @@ Allow_osNpcRemove = ${OSSL|osslNPC} Allow_osNpcSaveAppearance = ${OSSL|osslNPC} Allow_osNpcSay = ${OSSL|osslNPC} - Allow_osNpcSayTo = ${OSSL|osslNPC} + Allow_osNpcSayTo = ${OSSL|osslNPC} Allow_osNpcSetRot = ${OSSL|osslNPC} Allow_osNpcShout = ${OSSL|osslNPC} Allow_osNpcSit = ${OSSL|osslNPC}