mirror of
https://github.com/opensim/opensim.git
synced 2026-08-01 06:06:06 +08:00
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
This commit is contained in:
@@ -2109,14 +2109,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
public LSL_Integer llRotTarget(LSL_Rotation rot, double error)
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
NotImplemented("llRotTarget");
|
||||
return 0;
|
||||
return m_host.registerRotTargetWaypoint(new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), (float)error);
|
||||
}
|
||||
|
||||
public void llRotTargetRemove(int number)
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
NotImplemented("llRotTargetRemove");
|
||||
m_host.unregisterRotTargetWaypoint(number);
|
||||
}
|
||||
|
||||
public void llMoveToTarget(LSL_Vector target, double tau)
|
||||
|
||||
@@ -1983,6 +1983,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
|
||||
return (int)pws;
|
||||
}
|
||||
|
||||
public void osSetSpeed(string UUID, float SpeedModifier)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed");
|
||||
@@ -1990,6 +1991,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
ScenePresence avatar = World.GetScenePresence(new UUID(UUID));
|
||||
avatar.SpeedModifier = SpeedModifier;
|
||||
}
|
||||
|
||||
public void osKickAvatar(string FirstName,string SurName,string alert)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar");
|
||||
@@ -2010,6 +2012,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void osCauseDamage(string avatar, double damage)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.High, "osCauseDamage");
|
||||
@@ -2037,6 +2040,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void osCauseHealing(string avatar, double healing)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.High, "osCauseHealing");
|
||||
@@ -2061,4 +2065,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
land_collision_end = 4096,
|
||||
land_collision_start = 8192,
|
||||
at_target = 16384,
|
||||
at_rot_target = 16777216,
|
||||
listen = 32768,
|
||||
money = 65536,
|
||||
moving_end = 131072,
|
||||
@@ -203,7 +204,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
}
|
||||
|
||||
m_eventFlagsMap.Add("attach", scriptEvents.attach);
|
||||
// m_eventFlagsMap.Add("at_rot_target",(long)scriptEvents.at_rot_target);
|
||||
m_eventFlagsMap.Add("at_rot_target", scriptEvents.at_rot_target);
|
||||
m_eventFlagsMap.Add("at_target", scriptEvents.at_target);
|
||||
// m_eventFlagsMap.Add("changed",(long)scriptEvents.changed);
|
||||
m_eventFlagsMap.Add("collision", scriptEvents.collision);
|
||||
|
||||
@@ -59,10 +59,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
myScriptEngine.World.EventManager.OnScriptChangedEvent += changed;
|
||||
myScriptEngine.World.EventManager.OnScriptAtTargetEvent += at_target;
|
||||
myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
|
||||
myScriptEngine.World.EventManager.OnScriptAtRotTargetEvent += at_rot_target;
|
||||
myScriptEngine.World.EventManager.OnScriptNotAtRotTargetEvent += not_at_rot_target;
|
||||
myScriptEngine.World.EventManager.OnScriptControlEvent += control;
|
||||
myScriptEngine.World.EventManager.OnScriptColliderStart += collision_start;
|
||||
myScriptEngine.World.EventManager.OnScriptColliding += collision;
|
||||
myScriptEngine.World.EventManager.OnScriptCollidingEnd += collision_end;
|
||||
myScriptEngine.World.EventManager.OnScriptLandColliderStart += land_collision_start;
|
||||
myScriptEngine.World.EventManager.OnScriptLandColliding += land_collision;
|
||||
myScriptEngine.World.EventManager.OnScriptLandColliderEnd += land_collision_end;
|
||||
IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>();
|
||||
if (money != null)
|
||||
{
|
||||
@@ -285,29 +290,63 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
det.ToArray()));
|
||||
}
|
||||
|
||||
public void land_collision_start(uint localID, UUID itemID)
|
||||
{
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"land_collision_start",
|
||||
new object[0],
|
||||
new DetectParams[0]));
|
||||
public void land_collision_start(uint localID, ColliderArgs col)
|
||||
{
|
||||
List<DetectParams> det = new List<DetectParams>();
|
||||
|
||||
foreach (DetectedObject detobj in col.Colliders)
|
||||
{
|
||||
DetectParams d = new DetectParams();
|
||||
d.Position = new LSL_Types.Vector3(detobj.posVector.X,
|
||||
detobj.posVector.Y,
|
||||
detobj.posVector.Z);
|
||||
d.Populate(myScriptEngine.World);
|
||||
det.Add(d);
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"land_collision_start",
|
||||
new Object[] { new LSL_Types.Vector3(d.Position) },
|
||||
det.ToArray()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void land_collision(uint localID, UUID itemID)
|
||||
public void land_collision(uint localID, ColliderArgs col)
|
||||
{
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"land_collision",
|
||||
new object[0],
|
||||
new DetectParams[0]));
|
||||
List<DetectParams> det = new List<DetectParams>();
|
||||
|
||||
foreach (DetectedObject detobj in col.Colliders)
|
||||
{
|
||||
DetectParams d = new DetectParams();
|
||||
d.Position = new LSL_Types.Vector3(detobj.posVector.X,
|
||||
detobj.posVector.Y,
|
||||
detobj.posVector.Z);
|
||||
d.Populate(myScriptEngine.World);
|
||||
det.Add(d);
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"land_collision",
|
||||
new Object[] { new LSL_Types.Vector3(d.Position) },
|
||||
det.ToArray()));
|
||||
}
|
||||
}
|
||||
|
||||
public void land_collision_end(uint localID, UUID itemID)
|
||||
public void land_collision_end(uint localID, ColliderArgs col)
|
||||
{
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"land_collision_end",
|
||||
new object[0],
|
||||
new DetectParams[0]));
|
||||
}
|
||||
List<DetectParams> det = new List<DetectParams>();
|
||||
|
||||
foreach (DetectedObject detobj in col.Colliders)
|
||||
{
|
||||
DetectParams d = new DetectParams();
|
||||
d.Position = new LSL_Types.Vector3(detobj.posVector.X,
|
||||
detobj.posVector.Y,
|
||||
detobj.posVector.Z);
|
||||
d.Populate(myScriptEngine.World);
|
||||
det.Add(d);
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"land_collision_end",
|
||||
new Object[] { new LSL_Types.Vector3(d.Position) },
|
||||
det.ToArray()));
|
||||
}
|
||||
}
|
||||
|
||||
// timer: not handled here
|
||||
// listen: not handled here
|
||||
@@ -353,14 +392,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
new DetectParams[0]));
|
||||
}
|
||||
|
||||
public void at_rot_target(uint localID, UUID itemID)
|
||||
public void at_rot_target(uint localID, uint handle, Quaternion targetrot,
|
||||
Quaternion atrot)
|
||||
{
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"at_rot_target",new object[0],
|
||||
"at_rot_target", new object[] {
|
||||
new LSL_Types.LSLInteger(handle),
|
||||
new LSL_Types.Quaternion(targetrot.X,targetrot.Y,targetrot.Z,targetrot.W),
|
||||
new LSL_Types.Quaternion(atrot.X,atrot.Y,atrot.Z,atrot.W) },
|
||||
new DetectParams[0]));
|
||||
}
|
||||
|
||||
public void not_at_rot_target(uint localID, UUID itemID)
|
||||
public void not_at_rot_target(uint localID)
|
||||
{
|
||||
myScriptEngine.PostObjectEvent(localID, new EventParams(
|
||||
"not_at_rot_target",new object[0],
|
||||
|
||||
Reference in New Issue
Block a user