diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 117 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 13 |
2 files changed, 99 insertions, 31 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 1cf03b8..ce7d97c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3316,12 +3316,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3316 | return m_ScriptEngine.GetStartParameter(m_itemID); | 3316 | return m_ScriptEngine.GetStartParameter(m_itemID); |
3317 | } | 3317 | } |
3318 | 3318 | ||
3319 | public void llGodLikeRezObject(string inventory, LSL_Vector pos) | ||
3320 | { | ||
3321 | m_host.AddScriptLPS(1); | ||
3322 | NotImplemented("llGodLikeRezObject"); | ||
3323 | } | ||
3324 | |||
3325 | public void llRequestPermissions(string agent, int perm) | 3319 | public void llRequestPermissions(string agent, int perm) |
3326 | { | 3320 | { |
3327 | UUID agentID = new UUID(); | 3321 | UUID agentID = new UUID(); |
@@ -3870,9 +3864,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3870 | throw new Exception(String.Format("The inventory object '{0}' could not be found", inventory)); | 3864 | throw new Exception(String.Format("The inventory object '{0}' could not be found", inventory)); |
3871 | } | 3865 | } |
3872 | 3866 | ||
3873 | // check if destination is an avatar | 3867 | // check if destination is an object |
3874 | if (World.GetScenePresence(destId) != null) | 3868 | if (World.GetSceneObjectPart(destId) != null) |
3875 | { | 3869 | { |
3870 | // destination is an object | ||
3871 | World.MoveTaskInventoryItem(destId, m_host, objId); | ||
3872 | } | ||
3873 | else | ||
3874 | { | ||
3875 | ScenePresence presence = World.GetScenePresence(destId); | ||
3876 | |||
3877 | if (presence == null) | ||
3878 | { | ||
3879 | UserAccount account = | ||
3880 | World.UserAccountService.GetUserAccount( | ||
3881 | World.RegionInfo.ScopeID, | ||
3882 | destId); | ||
3883 | |||
3884 | if (account == null) | ||
3885 | { | ||
3886 | llSay(0, "Can't find destination "+destId.ToString()); | ||
3887 | return; | ||
3888 | } | ||
3889 | } | ||
3876 | // destination is an avatar | 3890 | // destination is an avatar |
3877 | InventoryItemBase agentItem = World.MoveTaskInventoryItem(destId, UUID.Zero, m_host, objId); | 3891 | InventoryItemBase agentItem = World.MoveTaskInventoryItem(destId, UUID.Zero, m_host, objId); |
3878 | 3892 | ||
@@ -3893,16 +3907,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3893 | m_host.AbsolutePosition.ToString(), | 3907 | m_host.AbsolutePosition.ToString(), |
3894 | agentItem.ID, true, m_host.AbsolutePosition, | 3908 | agentItem.ID, true, m_host.AbsolutePosition, |
3895 | bucket); | 3909 | bucket); |
3896 | |||
3897 | if (m_TransferModule != null) | 3910 | if (m_TransferModule != null) |
3898 | m_TransferModule.SendInstantMessage(msg, delegate(bool success) {}); | 3911 | m_TransferModule.SendInstantMessage(msg, delegate(bool success) {}); |
3912 | ScriptSleep(3000); | ||
3899 | } | 3913 | } |
3900 | else | ||
3901 | { | ||
3902 | // destination is an object | ||
3903 | World.MoveTaskInventoryItem(destId, m_host, objId); | ||
3904 | } | ||
3905 | ScriptSleep(3000); | ||
3906 | } | 3914 | } |
3907 | 3915 | ||
3908 | public void llRemoveInventory(string name) | 3916 | public void llRemoveInventory(string name) |
@@ -4189,12 +4197,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4189 | m_host.CollisionSoundVolume = (float)impact_volume; | 4197 | m_host.CollisionSoundVolume = (float)impact_volume; |
4190 | } | 4198 | } |
4191 | 4199 | ||
4192 | public void llCollisionSprite(string impact_sprite) | ||
4193 | { | ||
4194 | m_host.AddScriptLPS(1); | ||
4195 | NotImplemented("llCollisionSprite"); | ||
4196 | } | ||
4197 | |||
4198 | public LSL_String llGetAnimation(string id) | 4200 | public LSL_String llGetAnimation(string id) |
4199 | { | 4201 | { |
4200 | // This should only return a value if the avatar is in the same region | 4202 | // This should only return a value if the avatar is in the same region |
@@ -5526,12 +5528,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5526 | ScriptSleep(100); | 5528 | ScriptSleep(100); |
5527 | } | 5529 | } |
5528 | 5530 | ||
5529 | public void llSetSoundQueueing(int queue) | ||
5530 | { | ||
5531 | m_host.AddScriptLPS(1); | ||
5532 | NotImplemented("llSetSoundQueueing"); | ||
5533 | } | ||
5534 | |||
5535 | public void llSetSoundRadius(double radius) | 5531 | public void llSetSoundRadius(double radius) |
5536 | { | 5532 | { |
5537 | m_host.AddScriptLPS(1); | 5533 | m_host.AddScriptLPS(1); |
@@ -10312,6 +10308,73 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
10312 | 10308 | ||
10313 | return rq.ToString(); | 10309 | return rq.ToString(); |
10314 | } | 10310 | } |
10311 | |||
10312 | #region Not Implemented | ||
10313 | // | ||
10314 | // Listing the unimplemented lsl functions here, please move | ||
10315 | // them from this region as they are completed | ||
10316 | // | ||
10317 | public void llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options) | ||
10318 | { | ||
10319 | m_host.AddScriptLPS(1); | ||
10320 | NotImplemented("llCastRay"); | ||
10321 | |||
10322 | } | ||
10323 | |||
10324 | public void llGetEnv(LSL_String name) | ||
10325 | { | ||
10326 | m_host.AddScriptLPS(1); | ||
10327 | NotImplemented("llGetEnv"); | ||
10328 | |||
10329 | } | ||
10330 | |||
10331 | public void llGetSPMaxMemory() | ||
10332 | { | ||
10333 | m_host.AddScriptLPS(1); | ||
10334 | NotImplemented("llGetSPMaxMemory"); | ||
10335 | |||
10336 | } | ||
10337 | |||
10338 | public void llGetUsedMemory() | ||
10339 | { | ||
10340 | m_host.AddScriptLPS(1); | ||
10341 | NotImplemented("llGetUsedMemory"); | ||
10342 | |||
10343 | } | ||
10344 | |||
10345 | public void llRegionSayTo( LSL_Key target, LSL_Integer channel, LSL_String msg ) | ||
10346 | { | ||
10347 | m_host.AddScriptLPS(1); | ||
10348 | NotImplemented("llRegionSayTo"); | ||
10349 | |||
10350 | } | ||
10351 | |||
10352 | public void llScriptProfiler( LSL_Integer flags ) | ||
10353 | { | ||
10354 | m_host.AddScriptLPS(1); | ||
10355 | NotImplemented("llScriptProfiler"); | ||
10356 | |||
10357 | } | ||
10358 | |||
10359 | public void llSetSoundQueueing(int queue) | ||
10360 | { | ||
10361 | m_host.AddScriptLPS(1); | ||
10362 | NotImplemented("llSetSoundQueueing"); | ||
10363 | } | ||
10364 | |||
10365 | public void llCollisionSprite(string impact_sprite) | ||
10366 | { | ||
10367 | m_host.AddScriptLPS(1); | ||
10368 | NotImplemented("llCollisionSprite"); | ||
10369 | } | ||
10370 | |||
10371 | public void llGodLikeRezObject(string inventory, LSL_Vector pos) | ||
10372 | { | ||
10373 | m_host.AddScriptLPS(1); | ||
10374 | NotImplemented("llGodLikeRezObject"); | ||
10375 | } | ||
10376 | |||
10377 | #endregion | ||
10315 | } | 10378 | } |
10316 | 10379 | ||
10317 | public class NotecardCache | 10380 | public class NotecardCache |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 97ab411..d253c6a 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -393,11 +393,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
393 | return 0; | 393 | return 0; |
394 | } | 394 | } |
395 | 395 | ||
396 | public object DoMaintenance(object p) | 396 | public void SaveAllState() |
397 | { | 397 | { |
398 | object[] parms = (object[])p; | ||
399 | int sleepTime = (int)parms[0]; | ||
400 | |||
401 | foreach (IScriptInstance inst in m_Scripts.Values) | 398 | foreach (IScriptInstance inst in m_Scripts.Values) |
402 | { | 399 | { |
403 | if (inst.EventTime() > m_EventLimit) | 400 | if (inst.EventTime() > m_EventLimit) |
@@ -407,6 +404,14 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
407 | inst.Start(); | 404 | inst.Start(); |
408 | } | 405 | } |
409 | } | 406 | } |
407 | } | ||
408 | |||
409 | public object DoMaintenance(object p) | ||
410 | { | ||
411 | object[] parms = (object[])p; | ||
412 | int sleepTime = (int)parms[0]; | ||
413 | |||
414 | SaveAllState(); | ||
410 | 415 | ||
411 | System.Threading.Thread.Sleep(sleepTime); | 416 | System.Threading.Thread.Sleep(sleepTime); |
412 | 417 | ||