mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
* Implements llTarget, llTargetRemove, at_target(), not_at_target()
This commit is contained in:
@@ -1181,14 +1181,14 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
public int llTarget(LSL_Types.Vector3 position, double range)
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
NotImplemented("llTarget");
|
||||
return 0;
|
||||
return m_host.registerTargetWaypoint(new LLVector3((float)position.x, (float)position.y, (float)position.z), (float)range);
|
||||
|
||||
}
|
||||
|
||||
public void llTargetRemove(int number)
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
NotImplemented("llTargetRemove");
|
||||
m_host.unregisterTargetWaypoint(number);
|
||||
}
|
||||
|
||||
public int llRotTarget(LSL_Types.Quaternion rot, double error)
|
||||
|
||||
@@ -70,6 +70,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
||||
myScriptEngine.World.EventManager.OnRezScript += OnRezScript;
|
||||
myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript;
|
||||
myScriptEngine.World.EventManager.OnScriptChangedEvent += changed;
|
||||
myScriptEngine.World.EventManager.OnScriptAtTargetEvent += at_target;
|
||||
myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
|
||||
|
||||
// TODO: HOOK ALL EVENTS UP TO SERVER!
|
||||
IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>();
|
||||
if(money != null)
|
||||
@@ -222,14 +225,14 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
||||
myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "email", EventQueueManager.llDetectNull);
|
||||
}
|
||||
|
||||
public void at_target(uint localID, LLUUID itemID)
|
||||
public void at_target(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos)
|
||||
{
|
||||
myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "at_target", EventQueueManager.llDetectNull);
|
||||
myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "at_target", EventQueueManager.llDetectNull, new object[] { (int)handle, new LSL_Types.Vector3(targetpos.X,targetpos.Y,targetpos.Z), new LSL_Types.Vector3(atpos.X,atpos.Y,atpos.Z) });
|
||||
}
|
||||
|
||||
public void not_at_target(uint localID, LLUUID itemID)
|
||||
public void not_at_target(uint localID)
|
||||
{
|
||||
myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "not_at_target", EventQueueManager.llDetectNull);
|
||||
myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "not_at_target", EventQueueManager.llDetectNull);
|
||||
}
|
||||
|
||||
public void at_rot_target(uint localID, LLUUID itemID)
|
||||
|
||||
@@ -57,8 +57,8 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
void control(uint localID, LLUUID itemID);
|
||||
void money(uint LocalID, LLUUID agentID, int amount);
|
||||
void email(uint localID, LLUUID itemID);
|
||||
void at_target(uint localID, LLUUID itemID);
|
||||
void not_at_target(uint localID, LLUUID itemID);
|
||||
void at_target(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos);
|
||||
void not_at_target(uint localID);
|
||||
void at_rot_target(uint localID, LLUUID itemID);
|
||||
void not_at_rot_target(uint localID, LLUUID itemID);
|
||||
void run_time_permissions(uint localID, LLUUID itemID);
|
||||
|
||||
@@ -419,8 +419,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
||||
// case "at_rot_target":
|
||||
//return (long)scriptEvents.at_rot_target;
|
||||
//break;
|
||||
//case "at_target":
|
||||
//return (long)scriptEvents.at_target;
|
||||
case "at_target":
|
||||
return scriptEvents.at_target;
|
||||
//break;
|
||||
//case "changed":
|
||||
//return (long)scriptEvents.changed;
|
||||
@@ -455,8 +455,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
||||
case "land_collision_start":
|
||||
return scriptEvents.land_collision_start;
|
||||
// break;
|
||||
case "link_message":
|
||||
return scriptEvents.link_message;
|
||||
//case "link_message":
|
||||
//return scriptEvents.link_message;
|
||||
// break;
|
||||
case "listen":
|
||||
return scriptEvents.listen;
|
||||
@@ -534,7 +534,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
|
||||
land_collision = 2048,
|
||||
land_collision_end = 4096,
|
||||
land_collision_start = 8192,
|
||||
link_message = 16384,
|
||||
at_target = 16384,
|
||||
listen = 32768,
|
||||
money = 65536,
|
||||
moving_end = 131072,
|
||||
|
||||
Reference in New Issue
Block a user