diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index b257cd4..e9db5d5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -113,8 +113,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
113 | new Dictionary<UUID, UserInfoCacheEntry>(); | 113 | new Dictionary<UUID, UserInfoCacheEntry>(); |
114 | protected int EMAIL_PAUSE_TIME = 20; // documented delay value for smtp. | 114 | protected int EMAIL_PAUSE_TIME = 20; // documented delay value for smtp. |
115 | 115 | ||
116 | protected Timer m_ShoutSayTimer; | 116 | // protected Timer m_ShoutSayTimer; |
117 | protected int m_SayShoutCount = 0; | 117 | protected int m_SayShoutCount = 0; |
118 | DateTime m_lastSayShoutCheck; | ||
118 | 119 | ||
119 | private Dictionary<string, string> MovementAnimationsForLSL = | 120 | private Dictionary<string, string> MovementAnimationsForLSL = |
120 | new Dictionary<string, string> { | 121 | new Dictionary<string, string> { |
@@ -140,10 +141,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
140 | 141 | ||
141 | public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item) | 142 | public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item) |
142 | { | 143 | { |
144 | /* | ||
143 | m_ShoutSayTimer = new Timer(1000); | 145 | m_ShoutSayTimer = new Timer(1000); |
144 | m_ShoutSayTimer.Elapsed += SayShoutTimerElapsed; | 146 | m_ShoutSayTimer.Elapsed += SayShoutTimerElapsed; |
145 | m_ShoutSayTimer.AutoReset = true; | 147 | m_ShoutSayTimer.AutoReset = true; |
146 | m_ShoutSayTimer.Start(); | 148 | m_ShoutSayTimer.Start(); |
149 | */ | ||
150 | m_lastSayShoutCheck = DateTime.UtcNow; | ||
147 | 151 | ||
148 | m_ScriptEngine = ScriptEngine; | 152 | m_ScriptEngine = ScriptEngine; |
149 | m_host = host; | 153 | m_host = host; |
@@ -858,12 +862,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
858 | wComm.DeliverMessage(ChatTypeEnum.Whisper, channelID, m_host.Name, m_host.UUID, text); | 862 | wComm.DeliverMessage(ChatTypeEnum.Whisper, channelID, m_host.Name, m_host.UUID, text); |
859 | } | 863 | } |
860 | 864 | ||
865 | private void CheckSayShoutTime() | ||
866 | { | ||
867 | DateTime now = DateTime.UtcNow; | ||
868 | if ((now - m_lastSayShoutCheck).Ticks > 10000000) // 1sec | ||
869 | { | ||
870 | m_lastSayShoutCheck = now; | ||
871 | m_SayShoutCount = 0; | ||
872 | } | ||
873 | else | ||
874 | m_SayShoutCount++; | ||
875 | } | ||
876 | |||
861 | public void llSay(int channelID, string text) | 877 | public void llSay(int channelID, string text) |
862 | { | 878 | { |
863 | m_host.AddScriptLPS(1); | 879 | m_host.AddScriptLPS(1); |
864 | 880 | ||
865 | if (channelID == 0) | 881 | if (channelID == 0) |
866 | m_SayShoutCount++; | 882 | // m_SayShoutCount++; |
883 | CheckSayShoutTime(); | ||
867 | 884 | ||
868 | if (m_SayShoutCount >= 11) | 885 | if (m_SayShoutCount >= 11) |
869 | ScriptSleep(2000); | 886 | ScriptSleep(2000); |
@@ -891,7 +908,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
891 | m_host.AddScriptLPS(1); | 908 | m_host.AddScriptLPS(1); |
892 | 909 | ||
893 | if (channelID == 0) | 910 | if (channelID == 0) |
894 | m_SayShoutCount++; | 911 | // m_SayShoutCount++; |
912 | CheckSayShoutTime(); | ||
895 | 913 | ||
896 | if (m_SayShoutCount >= 11) | 914 | if (m_SayShoutCount >= 11) |
897 | ScriptSleep(2000); | 915 | ScriptSleep(2000); |
@@ -2556,12 +2574,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2556 | return new LSL_Vector(m_host.Acceleration.X, m_host.Acceleration.Y, m_host.Acceleration.Z); | 2574 | return new LSL_Vector(m_host.Acceleration.X, m_host.Acceleration.Y, m_host.Acceleration.Z); |
2557 | } | 2575 | } |
2558 | 2576 | ||
2559 | |||
2560 | public void llSetAngularVelocity(LSL_Vector avel, int local) | 2577 | public void llSetAngularVelocity(LSL_Vector avel, int local) |
2561 | { | 2578 | { |
2562 | m_host.AddScriptLPS(1); | 2579 | m_host.AddScriptLPS(1); |
2563 | // Still not done !!!! | 2580 | m_host.SetAngularVelocity(new Vector3((float)avel.x, (float)avel.y, (float)avel.z), local != 0); |
2564 | // m_host.SetAngularVelocity(new Vector3((float)avel.x, (float)avel.y, (float)avel.z), local != 0); | ||
2565 | } | 2581 | } |
2566 | 2582 | ||
2567 | public LSL_Vector llGetOmega() | 2583 | public LSL_Vector llGetOmega() |
@@ -3671,6 +3687,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3671 | 3687 | ||
3672 | protected void TargetOmega(SceneObjectPart part, LSL_Vector axis, double spinrate, double gain) | 3688 | protected void TargetOmega(SceneObjectPart part, LSL_Vector axis, double spinrate, double gain) |
3673 | { | 3689 | { |
3690 | spinrate *= gain; | ||
3674 | part.UpdateAngularVelocity(new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate))); | 3691 | part.UpdateAngularVelocity(new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate))); |
3675 | } | 3692 | } |
3676 | 3693 | ||
@@ -12044,12 +12061,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
12044 | 12061 | ||
12045 | return rq.ToString(); | 12062 | return rq.ToString(); |
12046 | } | 12063 | } |
12047 | 12064 | /* | |
12048 | private void SayShoutTimerElapsed(Object sender, ElapsedEventArgs args) | 12065 | private void SayShoutTimerElapsed(Object sender, ElapsedEventArgs args) |
12049 | { | 12066 | { |
12050 | m_SayShoutCount = 0; | 12067 | m_SayShoutCount = 0; |
12051 | } | 12068 | } |
12052 | 12069 | */ | |
12053 | private struct Tri | 12070 | private struct Tri |
12054 | { | 12071 | { |
12055 | public Vector3 p1; | 12072 | public Vector3 p1; |