public setHealthWithUpdate ( float health ) : void | ||
health | float | |
리턴 | void |
private void AvatarEnteringParcel(ScenePresence avatar, int localLandID, UUID regionID) { try { ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); if (obj == null) return; if ((obj.LandData.Flags & (uint)ParcelFlags.AllowDamage) != 0 || avatar.Scene.RegionInfo.RegionSettings.AllowDamage) { avatar.Invulnerable = false; } else { avatar.Invulnerable = true; if (avatar.Health < 100.0f) { avatar.setHealthWithUpdate(100.0f); } } } catch (Exception) { } }
private void KillAvatar(uint killerObjectLocalID, ScenePresence deadAvatar) { string deadAvatarMessage; ScenePresence killingAvatar = null; // string killingAvatarMessage; // check to see if it is an NPC and just remove it INPCModule NPCmodule = deadAvatar.Scene.RequestModuleInterface<INPCModule>(); if (NPCmodule != null && NPCmodule.DeleteNPC(deadAvatar.UUID, deadAvatar.Scene)) { return; } if (killerObjectLocalID == 0) deadAvatarMessage = "You committed suicide!"; else { // Try to get the avatar responsible for the killing killingAvatar = deadAvatar.Scene.GetScenePresence(killerObjectLocalID); if (killingAvatar == null) { // Try to get the object which was responsible for the killing SceneObjectPart part = deadAvatar.Scene.GetSceneObjectPart(killerObjectLocalID); if (part == null) { // Cause of death: Unknown deadAvatarMessage = "You died!"; } else { // Try to find the avatar wielding the killing object killingAvatar = deadAvatar.Scene.GetScenePresence(part.OwnerID); if (killingAvatar == null) { IUserManagement userManager = deadAvatar.Scene.RequestModuleInterface<IUserManagement>(); string userName = "******"; if (userManager != null) userName = userManager.GetUserName(part.OwnerID); deadAvatarMessage = String.Format("You impaled yourself on {0} owned by {1}!", part.Name, userName); } else { // killingAvatarMessage = String.Format("You fragged {0}!", deadAvatar.Name); deadAvatarMessage = String.Format("You got killed by {0}!", killingAvatar.Name); } } } else { // killingAvatarMessage = String.Format("You fragged {0}!", deadAvatar.Name); deadAvatarMessage = String.Format("You got killed by {0}!", killingAvatar.Name); } } try { deadAvatar.ControllingClient.SendAgentAlertMessage(deadAvatarMessage, true); if (killingAvatar != null) killingAvatar.ControllingClient.SendAlertMessage("You fragged " + deadAvatar.Firstname + " " + deadAvatar.Lastname); } catch (InvalidOperationException) { } deadAvatar.setHealthWithUpdate(100.0f); deadAvatar.Scene.TeleportClientHome(deadAvatar.UUID, deadAvatar.ControllingClient); }