Merge branch 'master' of /home/opensim/var/repo/opensim

integration
BlueWall 2012-05-08 07:52:54 -04:00
commit 800fae41c7
15 changed files with 90 additions and 74 deletions

View File

@ -205,3 +205,4 @@ In addition, we would like to thank:
* The Mono Project * The Mono Project
* The NANT Developers * The NANT Developers
* Microsoft (.NET, MSSQL-Adapters) * Microsoft (.NET, MSSQL-Adapters)
*x

View File

@ -241,10 +241,14 @@ namespace OpenSim.Framework
m_textureEntry = prim.Textures.GetBytes(); m_textureEntry = prim.Textures.GetBytes();
SculptEntry = (prim.Sculpt.Type != OpenMetaverse.SculptType.None); if (prim.Sculpt != null)
SculptData = prim.Sculpt.GetBytes(); {
SculptTexture = prim.Sculpt.SculptTexture; SculptEntry = (prim.Sculpt.Type != OpenMetaverse.SculptType.None);
SculptType = (byte)prim.Sculpt.Type; SculptData = prim.Sculpt.GetBytes();
SculptTexture = prim.Sculpt.SculptTexture;
SculptType = (byte)prim.Sculpt.Type;
}
else SculptType = (byte)OpenMetaverse.SculptType.None;
} }
[XmlIgnore] [XmlIgnore]

View File

@ -356,7 +356,7 @@ namespace OpenSim.Framework.Servers.HttpServer
} }
catch (Exception e) catch (Exception e)
{ {
m_log.ErrorFormat("[BASE HTTP SERVER]: OnRequest() failed with {0}{1}", e.Message, e.StackTrace); m_log.Error(String.Format("[BASE HTTP SERVER]: OnRequest() failed: {0} ", e.Message), e);
} }
} }
@ -551,11 +551,11 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
catch (IOException e) catch (IOException e)
{ {
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}. ", e.Message), e);
} }
return; return;
@ -658,15 +658,15 @@ namespace OpenSim.Framework.Servers.HttpServer
// //
// An alternative may be to turn off all response write exceptions on the HttpListener, but let's go // An alternative may be to turn off all response write exceptions on the HttpListener, but let's go
// with the minimum first // with the minimum first
m_log.WarnFormat("[BASE HTTP SERVER]: HandleRequest threw {0}.\nNOTE: this may be spurious on Linux", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: HandleRequest threw {0}.\nNOTE: this may be spurious on Linux ", e.Message), e);
} }
catch (IOException e) catch (IOException e)
{ {
m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}{1}", e.Message, e.StackTrace); m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.Message), e);
} }
catch (Exception e) catch (Exception e)
{ {
m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}{1}", e.Message, e.StackTrace); m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.Message), e);
SendHTML500(response); SendHTML500(response);
} }
finally finally
@ -933,11 +933,11 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
catch (IOException e) catch (IOException e)
{ {
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0} ", e.Message), e);
} }
} }
return; return;
@ -970,11 +970,11 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
catch (IOException e) catch (IOException e)
{ {
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0} ", e.Message), e);
} }
} }
} }
@ -1085,12 +1085,12 @@ namespace OpenSim.Framework.Servers.HttpServer
} }
catch (IOException e) catch (IOException e)
{ {
m_log.WarnFormat("[BASE HTTP SERVER]: LLSD IOException {0}.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: LLSD IOException {0} ", e.Message), e);
} }
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER]: LLSD issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: LLSD issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
} }
} }
@ -1342,8 +1342,8 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException f) catch (SocketException f)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat( m_log.Warn(
"[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", f); String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", f.Message), f);
} }
} }
catch(Exception) catch(Exception)
@ -1638,11 +1638,11 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
catch (IOException e) catch (IOException e)
{ {
m_log.Warn("[BASE HTTP SERVER]: XmlRpcRequest issue: " + e.Message); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0} ", e.Message), e);
} }
} }
} }
@ -1679,7 +1679,7 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER]: XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
} }
} }
@ -1715,7 +1715,7 @@ namespace OpenSim.Framework.Servers.HttpServer
catch (SocketException e) catch (SocketException e)
{ {
// This has to be here to prevent a Linux/Mono crash // This has to be here to prevent a Linux/Mono crash
m_log.WarnFormat("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux.", e); m_log.Warn(String.Format("[BASE HTTP SERVER] XmlRpcRequest issue {0}.\nNOTE: this may be spurious on Linux. ", e.Message), e);
} }
} }
} }
@ -1794,7 +1794,7 @@ namespace OpenSim.Framework.Servers.HttpServer
public void httpServerException(object source, Exception exception) public void httpServerException(object source, Exception exception)
{ {
m_log.ErrorFormat("[BASE HTTP SERVER]: {0} had an exception {1}", source.ToString(), exception.ToString()); m_log.Error(String.Format("[BASE HTTP SERVER]: {0} had an exception: {1} ", source.ToString(), exception.Message), exception);
/* /*
if (HTTPDRunning)// && NotSocketErrors > 5) if (HTTPDRunning)// && NotSocketErrors > 5)
{ {

View File

@ -26,6 +26,8 @@
*/ */
using System; using System;
using System.Reflection;
using log4net;
using OpenMetaverse; using OpenMetaverse;
namespace OpenSim.Framework namespace OpenSim.Framework
@ -35,6 +37,8 @@ namespace OpenSim.Framework
/// </summary> /// </summary>
public class TaskInventoryItem : ICloneable public class TaskInventoryItem : ICloneable
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary> /// <summary>
/// XXX This should really be factored out into some constants class. /// XXX This should really be factored out into some constants class.
/// </summary> /// </summary>
@ -331,12 +335,18 @@ namespace OpenSim.Framework
} }
} }
public bool OwnerChanged { public bool OwnerChanged
get { {
get
{
return _ownerChanged; return _ownerChanged;
} }
set { set
{
_ownerChanged = value; _ownerChanged = value;
// m_log.DebugFormat(
// "[TASK INVENTORY ITEM]: Owner changed set {0} for {1} {2} owned by {3}",
// _ownerChanged, Name, ItemID, OwnerID);
} }
} }

View File

@ -527,9 +527,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
private void AttachToAgent( private void AttachToAgent(
IScenePresence sp, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent) IScenePresence sp, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent)
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}", // "[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}",
// so.Name, avatar.Name, attachmentpoint, attachOffset, so.RootPart.AttachedPos); // so.Name, sp.Name, attachmentpoint, attachOffset, so.RootPart.AttachedPos);
so.DetachFromBackup(); so.DetachFromBackup();
@ -788,9 +788,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
/// <param name="att"></param> /// <param name="att"></param>
private void ShowAttachInUserInventory(IScenePresence sp, uint AttachmentPt, UUID itemID, SceneObjectGroup att) private void ShowAttachInUserInventory(IScenePresence sp, uint AttachmentPt, UUID itemID, SceneObjectGroup att)
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[USER INVENTORY]: Updating attachment {0} for {1} at {2} using item ID {3}", // "[USER INVENTORY]: Updating attachment {0} for {1} at {2} using item ID {3}",
// att.Name, sp.Name, AttachmentPt, itemID); // att.Name, sp.Name, AttachmentPt, itemID);
if (UUID.Zero == itemID) if (UUID.Zero == itemID)
{ {
@ -853,9 +853,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
private void Client_OnObjectAttach(IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent) private void Client_OnObjectAttach(IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent)
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[ATTACHMENTS MODULE]: Attaching object local id {0} to {1} point {2} from ground (silent = {3})", // "[ATTACHMENTS MODULE]: Attaching object local id {0} to {1} point {2} from ground (silent = {3})",
// objectLocalID, remoteClient.Name, AttachmentPt, silent); // objectLocalID, remoteClient.Name, AttachmentPt, silent);
if (!Enabled) if (!Enabled)
return; return;

View File

@ -448,30 +448,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
/// Find the client for a ID /// Find the client for a ID
/// </summary> /// </summary>
public IClientAPI LocateClientObject(UUID agentID) public IClientAPI LocateClientObject(UUID agentID)
{
Scene scene = GetClientScene(agentID);
if (scene != null)
{
ScenePresence presence = scene.GetScenePresence(agentID);
if (presence != null)
return presence.ControllingClient;
}
return null;
}
/// <summary>
/// Find the scene for an agent
/// </summary>
private Scene GetClientScene(UUID agentId)
{ {
lock (m_Scenes) lock (m_Scenes)
{ {
foreach (Scene scene in m_Scenes) foreach (Scene scene in m_Scenes)
{ {
ScenePresence presence = scene.GetScenePresence(agentId); ScenePresence presence = scene.GetScenePresence(agentID);
if (presence != null && !presence.IsChildAgent) if (presence != null && !presence.IsChildAgent)
return scene; return presence.ControllingClient;
} }
} }
@ -498,7 +482,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
Util.FireAndForget( Util.FireAndForget(
delegate delegate
{ {
m_log.DebugFormat("[FRIENDS MODULE]: Notifying {0} friends", friendList.Count); m_log.DebugFormat(
"[FRIENDS MODULE]: Notifying {0} friends of {1} of online status {2}",
friendList.Count, agentID, online);
// Notify about this user status // Notify about this user status
StatusNotify(friendList, agentID, online); StatusNotify(friendList, agentID, online);
} }
@ -515,7 +502,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
{ {
// Try local // Try local
if (LocalStatusNotification(userID, friendID, online)) if (LocalStatusNotification(userID, friendID, online))
return; continue;
// The friend is not here [as root]. Let's forward. // The friend is not here [as root]. Let's forward.
PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { friendID.ToString() }); PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { friendID.ToString() });
@ -523,11 +510,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
{ {
PresenceInfo friendSession = null; PresenceInfo friendSession = null;
foreach (PresenceInfo pinfo in friendSessions) foreach (PresenceInfo pinfo in friendSessions)
{
if (pinfo.RegionID != UUID.Zero) // let's guard against sessions-gone-bad if (pinfo.RegionID != UUID.Zero) // let's guard against sessions-gone-bad
{ {
friendSession = pinfo; friendSession = pinfo;
break; break;
} }
}
if (friendSession != null) if (friendSession != null)
{ {

View File

@ -126,7 +126,6 @@ namespace OpenSim.Region.CoreModules.World.Land
// m_log.DebugFormat( // m_log.DebugFormat(
// "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted", // "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted",
// obj.Name, m_Scene.RegionInfo.RegionName); // obj.Name, m_Scene.RegionInfo.RegionName);
} }
} }

View File

@ -113,9 +113,11 @@ namespace OpenSim.Region.Framework.Interfaces
/// </param> /// </param>
/// <param name="landAtTarget"> /// <param name="landAtTarget">
/// If true and the avatar is flying when it reaches the target, land. /// If true and the avatar is flying when it reaches the target, land.
/// </param> /// </param> name="running">
/// If true, NPC moves with running speed.
/// <returns>True if the operation succeeded, false if there was no such agent or the agent was not an NPC</returns> /// <returns>True if the operation succeeded, false if there was no such agent or the agent was not an NPC</returns>
bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget); ///
bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget, bool running);
/// <summary> /// <summary>
/// Stop the NPC's current movement. /// Stop the NPC's current movement.

View File

@ -2771,7 +2771,7 @@ namespace OpenSim.Region.Framework.Scenes
//we need to do a terse update even if the move wasn't allowed //we need to do a terse update even if the move wasn't allowed
// so that the position is reset in the client (the object snaps back) // so that the position is reset in the client (the object snaps back)
ScheduleGroupForTerseUpdate(); RootPart.ScheduleTerseUpdate();
} }
/// <summary> /// <summary>

View File

@ -1219,13 +1219,19 @@ namespace OpenSim.Region.Framework.Scenes
{ {
if (engine != null) if (engine != null)
{ {
// m_log.DebugFormat(
// "[PRIM INVENTORY]: Resuming script {0} {1} for {2}, OwnerChanged {3}",
// item.Name, item.ItemID, item.OwnerID, item.OwnerChanged);
engine.ResumeScript(item.ItemID);
if (item.OwnerChanged) if (item.OwnerChanged)
engine.PostScriptEvent(item.ItemID, "changed", new Object[] { (int)Changed.OWNER }); engine.PostScriptEvent(item.ItemID, "changed", new Object[] { (int)Changed.OWNER });
item.OwnerChanged = false; item.OwnerChanged = false;
engine.ResumeScript(item.ItemID);
} }
} }
} }
} }
} }
} }

View File

@ -169,7 +169,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
} }
} }
public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget) public bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, bool landAtTarget, bool running)
{ {
lock (m_avatars) lock (m_avatars)
{ {
@ -183,6 +183,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
sp.Name, pos, scene.RegionInfo.RegionName, noFly, landAtTarget); sp.Name, pos, scene.RegionInfo.RegionName, noFly, landAtTarget);
sp.MoveToTarget(pos, noFly, landAtTarget); sp.MoveToTarget(pos, noFly, landAtTarget);
sp.SetAlwaysRun = running;
return true; return true;
} }

View File

@ -242,7 +242,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos)); Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
Vector3 targetPos = startPos + new Vector3(0, 10, 0); Vector3 targetPos = startPos + new Vector3(0, 10, 0);
m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false); m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false, false);
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos)); Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
//Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0.7071068f, 0.7071068f))); //Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0.7071068f, 0.7071068f)));
@ -267,7 +267,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
// Try a second movement // Try a second movement
startPos = npc.AbsolutePosition; startPos = npc.AbsolutePosition;
targetPos = startPos + new Vector3(10, 0, 0); targetPos = startPos + new Vector3(10, 0, 0);
m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false); m_npcMod.MoveToTarget(npc.UUID, m_scene, targetPos, false, false, false);
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos)); Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
// Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0, 1))); // Assert.That(npc.Rotation, Is.EqualTo(new Quaternion(0, 0, 0, 1)));

View File

@ -128,6 +128,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public const string GridInfoServiceConfigSectionName = "GridInfoService";
internal IScriptEngine m_ScriptEngine; internal IScriptEngine m_ScriptEngine;
internal ILSL_Api m_LSL_Api = null; // get a reference to the LSL API so we can call methods housed there internal ILSL_Api m_LSL_Api = null; // get a reference to the LSL API so we can call methods housed there
internal SceneObjectPart m_host; internal SceneObjectPart m_host;
@ -2032,8 +2034,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
string nick = String.Empty; string nick = String.Empty;
IConfigSource config = m_ScriptEngine.ConfigSource; IConfigSource config = m_ScriptEngine.ConfigSource;
if (config.Configs["GridInfo"] != null) if (config.Configs[GridInfoServiceConfigSectionName] != null)
nick = config.Configs["GridInfo"].GetString("gridnick", nick); nick = config.Configs[GridInfoServiceConfigSectionName].GetString("gridnick", nick);
if (String.IsNullOrEmpty(nick)) if (String.IsNullOrEmpty(nick))
nick = GridUserInfo(InfoType.Nick); nick = GridUserInfo(InfoType.Nick);
@ -2049,8 +2051,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
string name = String.Empty; string name = String.Empty;
IConfigSource config = m_ScriptEngine.ConfigSource; IConfigSource config = m_ScriptEngine.ConfigSource;
if (config.Configs["GridInfo"] != null) if (config.Configs[GridInfoServiceConfigSectionName] != null)
name = config.Configs["GridInfo"].GetString("gridname", name); name = config.Configs[GridInfoServiceConfigSectionName].GetString("gridname", name);
if (String.IsNullOrEmpty(name)) if (String.IsNullOrEmpty(name))
name = GridUserInfo(InfoType.Name); name = GridUserInfo(InfoType.Name);
@ -2066,8 +2068,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
string loginURI = String.Empty; string loginURI = String.Empty;
IConfigSource config = m_ScriptEngine.ConfigSource; IConfigSource config = m_ScriptEngine.ConfigSource;
if (config.Configs["GridInfo"] != null) if (config.Configs[GridInfoServiceConfigSectionName] != null)
loginURI = config.Configs["GridInfo"].GetString("login", loginURI); loginURI = config.Configs[GridInfoServiceConfigSectionName].GetString("login", loginURI);
if (String.IsNullOrEmpty(loginURI)) if (String.IsNullOrEmpty(loginURI))
loginURI = GridUserInfo(InfoType.Login); loginURI = GridUserInfo(InfoType.Login);
@ -2114,8 +2116,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
string retval = String.Empty; string retval = String.Empty;
IConfigSource config = m_ScriptEngine.ConfigSource; IConfigSource config = m_ScriptEngine.ConfigSource;
if (config.Configs["GridInfo"] != null) if (config.Configs[GridInfoServiceConfigSectionName] != null)
retval = config.Configs["GridInfo"].GetString(key, retval); retval = config.Configs[GridInfoServiceConfigSectionName].GetString(key, retval);
if (String.IsNullOrEmpty(retval)) if (String.IsNullOrEmpty(retval))
retval = GridUserInfo(InfoType.Custom, key); retval = GridUserInfo(InfoType.Custom, key);
@ -2449,7 +2451,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return; return;
Vector3 pos = new Vector3((float) position.x, (float) position.y, (float) position.z); Vector3 pos = new Vector3((float) position.x, (float) position.y, (float) position.z);
module.MoveToTarget(npcId, World, pos, false, true); module.MoveToTarget(npcId, World, pos, false, true, false);
} }
} }
@ -2474,7 +2476,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
World, World,
pos, pos,
(options & ScriptBaseClass.OS_NPC_NO_FLY) != 0, (options & ScriptBaseClass.OS_NPC_NO_FLY) != 0,
(options & ScriptBaseClass.OS_NPC_LAND_AT_TARGET) != 0); (options & ScriptBaseClass.OS_NPC_LAND_AT_TARGET) != 0,
(options & ScriptBaseClass.OS_NPC_RUNNING) != 0);
} }
} }

View File

@ -626,6 +626,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public const int OS_NPC_FLY = 0; public const int OS_NPC_FLY = 0;
public const int OS_NPC_NO_FLY = 1; public const int OS_NPC_NO_FLY = 1;
public const int OS_NPC_LAND_AT_TARGET = 2; public const int OS_NPC_LAND_AT_TARGET = 2;
public const int OS_NPC_RUNNING = 4;
public const int OS_NPC_SIT_NOW = 0; public const int OS_NPC_SIT_NOW = 0;

Binary file not shown.