let gods see hidden avatars ( test )

avinationmerge
UbitUmarov 2014-08-02 22:32:51 +01:00
parent 35616339f3
commit 580604c231
1 changed files with 15 additions and 9 deletions

View File

@ -3377,7 +3377,7 @@ namespace OpenSim.Region.Framework.Scenes
if (!remoteClient.IsActive) if (!remoteClient.IsActive)
return; return;
if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID) if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && p.GodLevel < 200)
return; return;
@ -3586,7 +3586,7 @@ namespace OpenSim.Region.Framework.Scenes
public void SendAvatarDataToAgent(ScenePresence avatar) public void SendAvatarDataToAgent(ScenePresence avatar)
{ {
//m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID);
if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID) if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200)
return; return;
avatar.ControllingClient.SendAvatarDataImmediate(this); avatar.ControllingClient.SendAvatarDataImmediate(this);
Animator.SendAnimPackToClient(avatar.ControllingClient); Animator.SendAnimPackToClient(avatar.ControllingClient);
@ -3653,7 +3653,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// m_log.DebugFormat( // m_log.DebugFormat(
// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); // "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID);
if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID) if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200)
return; return;
avatar.ControllingClient.SendAppearance( avatar.ControllingClient.SendAppearance(
UUID, Appearance.VisualParams, Appearance.Texture.GetBytes()); UUID, Appearance.VisualParams, Appearance.Texture.GetBytes());
@ -3947,6 +3947,8 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary> /// </summary>
public void GrantGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godStatus) public void GrantGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godStatus)
{ {
int oldgodlevel = GodLevel;
if (godStatus) if (godStatus)
{ {
// For now, assign god level 200 to anyone // For now, assign god level 200 to anyone
@ -3967,6 +3969,10 @@ namespace OpenSim.Region.Framework.Scenes
} }
ControllingClient.SendAdminResponse(token, (uint)GodLevel); ControllingClient.SendAdminResponse(token, (uint)GodLevel);
if(oldgodlevel != GodLevel) // force a visibility check
ParcelCrossCheck(m_currentParcelUUID, m_previusParcelUUID,
true, m_previusParcelHide, false, true);
} }
#region Child Agent Updates #region Child Agent Updates
@ -5404,7 +5410,7 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
// those on not on parcel see me // those on not on parcel see me
if (currentParcelUUID != p.currentParcelUUID) if (currentParcelUUID != p.currentParcelUUID || p.GodLevel >= 200)
{ {
viewsToSendto.Add(p); // they see me viewsToSendto.Add(p); // they see me
} }
@ -5419,7 +5425,7 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
// those not on parcel dont see me // those not on parcel dont see me
if (currentParcelUUID != p.currentParcelUUID) if (currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
{ {
killsToSendto.Add(p); // they dont see me killsToSendto.Add(p); // they dont see me
} }
@ -5444,13 +5450,13 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
// only those on previus parcel need receive kills // only those on previus parcel need receive kills
if (previusParcelUUID == p.currentParcelUUID) if (previusParcelUUID == p.currentParcelUUID && p.GodLevel < 200)
{ {
killsToSendto.Add(p); // they dont see me killsToSendto.Add(p); // they dont see me
killsToSendme.Add(p); // i dont see them killsToSendme.Add(p); // i dont see them
} }
// only those on new parcel need see // only those on new parcel need see
if (currentParcelUUID == p.currentParcelUUID) if (currentParcelUUID == p.currentParcelUUID || p.GodLevel >= 200)
{ {
viewsToSendto.Add(p); // they see me viewsToSendto.Add(p); // they see me
viewsToSendme.Add(p); // i see them viewsToSendme.Add(p); // i see them
@ -5468,7 +5474,7 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
// those not on new parcel dont see me // those not on new parcel dont see me
if (currentParcelUUID != p.currentParcelUUID) if (currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
{ {
killsToSendto.Add(p); // they dont see me killsToSendto.Add(p); // they dont see me
} }
@ -5494,7 +5500,7 @@ namespace OpenSim.Region.Framework.Scenes
if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive)
continue; continue;
// only those old parcel need receive kills // only those old parcel need receive kills
if (previusParcelUUID == p.currentParcelUUID) if (previusParcelUUID == p.currentParcelUUID && p.GodLevel < 200)
{ {
killsToSendme.Add(p); // i dont see them killsToSendme.Add(p); // i dont see them
} }