mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 00:46:02 +08:00
add osKickAvatar(LSL_Key agentKey, string alert)
This commit is contained in:
@@ -3629,7 +3629,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar");
|
||||
|
||||
World.ForEachRootScenePresence(delegate(ScenePresence sp)
|
||||
World.ForEachRootScenePresence(delegate (ScenePresence sp)
|
||||
{
|
||||
if (sp.Firstname == FirstName && sp.Lastname == SurName)
|
||||
{
|
||||
@@ -3643,18 +3643,43 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
});
|
||||
}
|
||||
|
||||
public LSL_Float osGetHealth(string avatar)
|
||||
public void osKickAvatar(LSL_Key agentKey, string alert)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar");
|
||||
|
||||
UUID id;
|
||||
if (!UUID.TryParse(agentKey, out id) || id == UUID.Zero)
|
||||
return;
|
||||
|
||||
ScenePresence sp = World.GetScenePresence(id);
|
||||
if(sp == null)
|
||||
return;
|
||||
|
||||
// kick client...
|
||||
if (alert != null)
|
||||
sp.ControllingClient.Kick(alert);
|
||||
|
||||
// ...and close on our side
|
||||
sp.Scene.CloseAgent(id, false);
|
||||
}
|
||||
|
||||
public LSL_Float osGetHealth(LSL_Key agentKey)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.None, "osGetHealth");
|
||||
|
||||
LSL_Float health = new LSL_Float(-1);
|
||||
ScenePresence presence = World.GetScenePresence(new UUID(avatar));
|
||||
|
||||
UUID id;
|
||||
if (!UUID.TryParse(agentKey, out id) || id == UUID.Zero)
|
||||
return health;
|
||||
|
||||
ScenePresence presence = World.GetScenePresence(id);
|
||||
if (presence != null)
|
||||
health = presence.Health;
|
||||
return health;
|
||||
}
|
||||
|
||||
public void osCauseDamage(string avatar, double damage)
|
||||
public void osCauseDamage(LSL_Key avatar, LSL_Float damage)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.High, "osCauseDamage");
|
||||
|
||||
@@ -3683,7 +3708,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
}
|
||||
}
|
||||
|
||||
public void osCauseHealing(string avatar, double healing)
|
||||
public void osCauseHealing(LSL_Key avatar, LSL_Float healing)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.High, "osCauseHealing");
|
||||
|
||||
@@ -3704,7 +3729,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
presence.setHealthWithUpdate(health);
|
||||
}
|
||||
|
||||
public void osSetHealth(string avatar, double health)
|
||||
public void osSetHealth(LSL_Key avatar, LSL_Float health)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.High, "osSetHealth");
|
||||
|
||||
@@ -3722,7 +3747,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
}
|
||||
}
|
||||
|
||||
public void osSetHealRate(string avatar, double healrate)
|
||||
public void osSetHealRate(LSL_Key avatar, LSL_Float healrate)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.High, "osSetHealRate");
|
||||
|
||||
@@ -3737,7 +3762,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
presence.HealRate = (float)healrate;
|
||||
}
|
||||
|
||||
public LSL_Float osGetHealRate(string avatar)
|
||||
public LSL_Float osGetHealRate(LSL_Key avatar)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.None, "osGetHealRate");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user