Add osNpcPlayAnimation and osNpcStopAnimation which respect ownership as well
							parent
							
								
									a34278cfc3
								
							
						
					
					
						commit
						a47aa46962
					
				|  | @ -897,6 +897,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|         { | ||||
|             CheckThreatLevel(ThreatLevel.VeryHigh, "osAvatarPlayAnimation"); | ||||
| 
 | ||||
|             AvatarPlayAnimation(avatar, animation); | ||||
|         } | ||||
| 
 | ||||
|         private void AvatarPlayAnimation(string avatar, string animation) | ||||
|         { | ||||
|             UUID avatarID = (UUID)avatar; | ||||
| 
 | ||||
|             m_host.AddScriptLPS(1); | ||||
|  | @ -929,6 +934,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|         { | ||||
|             CheckThreatLevel(ThreatLevel.VeryHigh, "osAvatarStopAnimation"); | ||||
| 
 | ||||
|             AvatarStopAnimation(avatar, animation); | ||||
|         } | ||||
| 
 | ||||
|         private void AvatarStopAnimation(string avatar, string animation) | ||||
|         { | ||||
|             UUID avatarID = (UUID)avatar; | ||||
| 
 | ||||
|             m_host.AddScriptLPS(1); | ||||
|  | @ -2341,6 +2351,40 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public void osNpcPlayAnimation(LSL_Key npc, string animation) | ||||
|         { | ||||
|             CheckThreatLevel(ThreatLevel.High, "osPlayAnimation"); | ||||
| 
 | ||||
|             INPCModule module = World.RequestModuleInterface<INPCModule>(); | ||||
|             if (module != null) | ||||
|             { | ||||
|                 UUID npcID = new UUID(npc.m_string); | ||||
|                 if (module.IsNPC(npcID)) | ||||
|                 { | ||||
|                     UUID ownerID = module.GetOwner(npcID); | ||||
|                     if (ownerID == UUID.Zero || ownerID == m_host.OwnerID) | ||||
|                         AvatarPlayAnimation(npcID.ToString(), animation); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public void osNpcStopAnimation(LSL_Key npc, string animation) | ||||
|         { | ||||
|             CheckThreatLevel(ThreatLevel.High, "osNpcStopAnimation"); | ||||
| 
 | ||||
|             INPCModule module = World.RequestModuleInterface<INPCModule>(); | ||||
|             if (module != null) | ||||
|             { | ||||
|                 UUID npcID = new UUID(npc.m_string); | ||||
|                 if (module.IsNPC(npcID)) | ||||
|                 { | ||||
|                     UUID ownerID = module.GetOwner(npcID); | ||||
|                     if (ownerID == UUID.Zero || ownerID == m_host.OwnerID) | ||||
|                         AvatarStopAnimation(npcID.ToString(), animation); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Save the current appearance of the script owner permanently to the named notecard. | ||||
|         /// </summary> | ||||
|  |  | |||
|  | @ -185,6 +185,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
|         void osNpcSit(key npc, key target, int options); | ||||
|         void osNpcStand(LSL_Key npc); | ||||
|         void osNpcRemove(key npc); | ||||
|         public void osNpcPlayAnimation(LSL_Key npc, string animation); | ||||
|         public void osNpcStopAnimation(LSL_Key npc, string animation); | ||||
| 
 | ||||
|         LSL_Key osOwnerSaveAppearance(string notecard); | ||||
|         LSL_Key osAgentSaveAppearance(key agentId, string notecard); | ||||
|  |  | |||
|  | @ -553,6 +553,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
|             m_OSSL_Functions.osNpcRemove(npc); | ||||
|         } | ||||
| 
 | ||||
|         public void osNpcPlayAnimation(LSL_Key npc, string animation) | ||||
|         { | ||||
|             m_OSSL_Functions.osNpcPlayAnimation(npc, animation); | ||||
|         } | ||||
| 
 | ||||
|         public void osNpcStopAnimation(LSL_Key npc, string animation) | ||||
|         { | ||||
|             m_OSSL_Functions.osNpcStopAnimation(npc, animation); | ||||
|         } | ||||
| 
 | ||||
|         public LSL_Key osOwnerSaveAppearance(string notecard) | ||||
|         { | ||||
|             return m_OSSL_Functions.osOwnerSaveAppearance(notecard); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Melanie
						Melanie