diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 6a0c274ee4..82afab2026 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -3655,7 +3655,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (avatar != null) avatar.SpeedModifier = (float)SpeedModifier; } + + public void osSetOwnerSpeed(LSL_Float SpeedModifier) + { + CheckThreatLevel(ThreatLevel.Moderate, "osSetOwnerSpeed"); + if(SpeedModifier > 4)SpeedModifier = 4; + ScenePresence avatar = World.GetScenePresence(m_host.OwnerID); + if (avatar != null) + avatar.SpeedModifier = (float)SpeedModifier; + } + public void osKickAvatar(string FirstName, string SurName, string alert) { CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar"); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 9f35d7aee6..23cccd08b9 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -383,6 +383,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces int osGetSimulatorMemoryKB(); void osKickAvatar(string FirstName,string SurName,string alert); void osSetSpeed(string UUID, LSL_Float SpeedModifier); + void osSetOwnerSpeed(LSL_Float SpeedModifier); LSL_Float osGetHealth(string avatar); void osCauseHealing(string avatar, double healing); void osSetHealth(string avatar, double health); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 5c6d2331ca..609675cf82 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -985,7 +985,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { m_OSSL_Functions.osSetSpeed(UUID, SpeedModifier); } - + + public void osSetOwnerSpeed(LSL_Float SpeedModifier) + { + m_OSSL_Functions.osSetOwnerSpeed(SpeedModifier); + } + public LSL_Float osGetHealth(string avatar) { return m_OSSL_Functions.osGetHealth(avatar); diff --git a/bin/config-include/osslEnable.ini b/bin/config-include/osslEnable.ini index 4726502fdc..8524a5517e 100644 --- a/bin/config-include/osslEnable.ini +++ b/bin/config-include/osslEnable.ini @@ -141,6 +141,7 @@ Allow_osGetSimulatorMemoryKB = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osMessageAttachments = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetSpeed = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetOwnerSpeed = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER ; ThreatLevel High Allow_osCauseDamage = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER