Fix bug in osCauseHealing() if called with an avatar ID for an avatar that is not in the scene.

0.7.4-extended
Justin Clark-Casey (justincc) 2013-03-14 23:16:39 +00:00
parent 60060e7be9
commit 9f1aac82b2
1 changed files with 9 additions and 13 deletions

View File

@ -2939,20 +2939,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
UUID avatarId = new UUID(avatar); UUID avatarId = new UUID(avatar);
ScenePresence presence = World.GetScenePresence(avatarId); ScenePresence presence = World.GetScenePresence(avatarId);
Vector3 pos = m_host.GetWorldPosition();
bool result = World.ScriptDanger(m_host.LocalId, new Vector3((float)pos.X, (float)pos.Y, (float)pos.Z)); if (presence != null && World.ScriptDanger(m_host.LocalId, m_host.GetWorldPosition()))
if (result)
{ {
if (presence != null) float health = presence.Health;
{ health += (float)healing;
float health = presence.Health;
health += (float)healing; if (health >= 100)
if (health >= 100) health = 100;
{
health = 100; presence.setHealthWithUpdate(health);
}
presence.setHealthWithUpdate(health);
}
} }
} }