New OSSL function: osNpcSetProfileImage(LSL_Key npc, string image); This patch gives possibility to set image in created NPC's profile. You can use UUID of the texture or name of texture included in prim's inventory.
Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com> Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>melanie
parent
69776aa70c
commit
ec883d0f15
|
@ -1011,7 +1011,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
|
||||||
{
|
{
|
||||||
remoteClient.SendAvatarProperties(avatarID, ((INPC)(p.ControllingClient)).profileAbout, ((INPC)(p.ControllingClient)).Born,
|
remoteClient.SendAvatarProperties(avatarID, ((INPC)(p.ControllingClient)).profileAbout, ((INPC)(p.ControllingClient)).Born,
|
||||||
Utils.StringToBytes("Non Player Character (NPC)"), "NPCs have no life", 16,
|
Utils.StringToBytes("Non Player Character (NPC)"), "NPCs have no life", 16,
|
||||||
UUID.Zero, UUID.Zero, "", UUID.Zero);
|
UUID.Zero, ((INPC)(p.ControllingClient)).profileImage, "", UUID.Zero);
|
||||||
remoteClient.SendAvatarInterestsReply(avatarID, 0, "",
|
remoteClient.SendAvatarInterestsReply(avatarID, 0, "",
|
||||||
0, "Getting into trouble", "Droidspeak");
|
0, "Getting into trouble", "Droidspeak");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -59,6 +59,7 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
UUID ActiveGroupId { get; set; }
|
UUID ActiveGroupId { get; set; }
|
||||||
UUID Owner { get; }
|
UUID Owner { get; }
|
||||||
string profileAbout { get; set; }
|
string profileAbout { get; set; }
|
||||||
|
UUID profileImage { get; set; }
|
||||||
string Born { get; set; }
|
string Born { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
private readonly UUID m_ownerID;
|
private readonly UUID m_ownerID;
|
||||||
private UUID m_hostGroupID;
|
private UUID m_hostGroupID;
|
||||||
private string m_profileAbout = "";
|
private string m_profileAbout = "";
|
||||||
|
private UUID m_profileImage = UUID.Zero;
|
||||||
private string m_born;
|
private string m_born;
|
||||||
public List<uint> SelectedObjects {get; private set;}
|
public List<uint> SelectedObjects {get; private set;}
|
||||||
|
|
||||||
|
@ -110,6 +111,13 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
m_profileAbout = value;
|
m_profileAbout = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID profileImage
|
||||||
|
{
|
||||||
|
get { return m_profileImage; }
|
||||||
|
set { m_profileImage = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public IScene Scene
|
public IScene Scene
|
||||||
{
|
{
|
||||||
get { return m_scene; }
|
get { return m_scene; }
|
||||||
|
|
|
@ -3018,6 +3018,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void osNpcSetProfileImage(LSL_Key npc, string image)
|
||||||
|
{
|
||||||
|
CheckThreatLevel(ThreatLevel.High, "osNpcCreate");
|
||||||
|
m_host.AddScriptLPS(1);
|
||||||
|
|
||||||
|
INPCModule module = World.RequestModuleInterface<INPCModule>();
|
||||||
|
if (module != null)
|
||||||
|
{
|
||||||
|
UUID npcId = new UUID(npc.m_string);
|
||||||
|
|
||||||
|
if (!module.CheckPermissions(npcId, m_host.OwnerID))
|
||||||
|
return;
|
||||||
|
|
||||||
|
UUID ImageID = new UUID();
|
||||||
|
|
||||||
|
ImageID = ScriptUtils.GetAssetIdFromItemName(m_host, image, (int)AssetType.Texture);
|
||||||
|
|
||||||
|
if (ImageID == null || ImageID == UUID.Zero)
|
||||||
|
{
|
||||||
|
if (!UUID.TryParse(image, out ImageID))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ScenePresence sp = World.GetScenePresence(npcId);
|
||||||
|
if (sp != null)
|
||||||
|
((INPC)(sp.ControllingClient)).profileImage = ImageID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void osNpcSay(LSL_Key npc, string message)
|
public void osNpcSay(LSL_Key npc, string message)
|
||||||
{
|
{
|
||||||
osNpcSay(npc, 0, message);
|
osNpcSay(npc, 0, message);
|
||||||
|
|
|
@ -344,6 +344,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||||
void osNpcSetRot(LSL_Key npc, rotation rot);
|
void osNpcSetRot(LSL_Key npc, rotation rot);
|
||||||
void osNpcStopMoveToTarget(LSL_Key npc);
|
void osNpcStopMoveToTarget(LSL_Key npc);
|
||||||
void osNpcSetProfileAbout(LSL_Key npc, string about);
|
void osNpcSetProfileAbout(LSL_Key npc, string about);
|
||||||
|
void osNpcSetProfileImage(LSL_Key npc, string image);
|
||||||
void osNpcSay(key npc, string message);
|
void osNpcSay(key npc, string message);
|
||||||
void osNpcSay(key npc, int channel, string message);
|
void osNpcSay(key npc, int channel, string message);
|
||||||
void osNpcShout(key npc, int channel, string message);
|
void osNpcShout(key npc, int channel, string message);
|
||||||
|
|
|
@ -642,6 +642,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||||
m_OSSL_Functions.osNpcSetProfileAbout(npc, about);
|
m_OSSL_Functions.osNpcSetProfileAbout(npc, about);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void osNpcSetProfileImage(LSL_Key npc, string image)
|
||||||
|
{
|
||||||
|
m_OSSL_Functions.osNpcSetProfileImage(npc, image);
|
||||||
|
}
|
||||||
|
|
||||||
public void osNpcSay(key npc, string message)
|
public void osNpcSay(key npc, string message)
|
||||||
{
|
{
|
||||||
m_OSSL_Functions.osNpcSay(npc, message);
|
m_OSSL_Functions.osNpcSay(npc, message);
|
||||||
|
|
Loading…
Reference in New Issue