aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs24
1 files changed, 15 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index a9a6ba4..3bdfb32 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3377,7 +3377,7 @@ namespace OpenSim.Region.Framework.Scenes
3377 if (!remoteClient.IsActive) 3377 if (!remoteClient.IsActive)
3378 return; 3378 return;
3379 3379
3380 if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID) 3380 if (ParcelHideThisAvatar && p.currentParcelUUID != currentParcelUUID && p.GodLevel < 200)
3381 return; 3381 return;
3382 3382
3383 3383
@@ -3586,7 +3586,7 @@ namespace OpenSim.Region.Framework.Scenes
3586 public void SendAvatarDataToAgent(ScenePresence avatar) 3586 public void SendAvatarDataToAgent(ScenePresence avatar)
3587 { 3587 {
3588 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID); 3588 //m_log.DebugFormat("[SCENE PRESENCE] SendAvatarDataToAgent from {0} ({1}) to {2} ({3})", Name, UUID, avatar.Name, avatar.UUID);
3589 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID) 3589 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200)
3590 return; 3590 return;
3591 avatar.ControllingClient.SendAvatarDataImmediate(this); 3591 avatar.ControllingClient.SendAvatarDataImmediate(this);
3592 Animator.SendAnimPackToClient(avatar.ControllingClient); 3592 Animator.SendAnimPackToClient(avatar.ControllingClient);
@@ -3653,7 +3653,7 @@ namespace OpenSim.Region.Framework.Scenes
3653 { 3653 {
3654// m_log.DebugFormat( 3654// m_log.DebugFormat(
3655// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID); 3655// "[SCENE PRESENCE]: Sending appearance data from {0} {1} to {2} {3}", Name, m_uuid, avatar.Name, avatar.UUID);
3656 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID) 3656 if (ParcelHideThisAvatar && currentParcelUUID != avatar.currentParcelUUID && avatar.GodLevel < 200)
3657 return; 3657 return;
3658 avatar.ControllingClient.SendAppearance( 3658 avatar.ControllingClient.SendAppearance(
3659 UUID, Appearance.VisualParams, Appearance.Texture.GetBytes()); 3659 UUID, Appearance.VisualParams, Appearance.Texture.GetBytes());
@@ -3947,6 +3947,8 @@ namespace OpenSim.Region.Framework.Scenes
3947 /// </summary> 3947 /// </summary>
3948 public void GrantGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godStatus) 3948 public void GrantGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godStatus)
3949 { 3949 {
3950 int oldgodlevel = GodLevel;
3951
3950 if (godStatus) 3952 if (godStatus)
3951 { 3953 {
3952 // For now, assign god level 200 to anyone 3954 // For now, assign god level 200 to anyone
@@ -3967,6 +3969,10 @@ namespace OpenSim.Region.Framework.Scenes
3967 } 3969 }
3968 3970
3969 ControllingClient.SendAdminResponse(token, (uint)GodLevel); 3971 ControllingClient.SendAdminResponse(token, (uint)GodLevel);
3972
3973 if(oldgodlevel != GodLevel) // force a visibility check
3974 ParcelCrossCheck(m_currentParcelUUID, m_previusParcelUUID,
3975 true, m_previusParcelHide, false, true);
3970 } 3976 }
3971 3977
3972 #region Child Agent Updates 3978 #region Child Agent Updates
@@ -5404,7 +5410,7 @@ namespace OpenSim.Region.Framework.Scenes
5404 continue; 5410 continue;
5405 5411
5406 // those on not on parcel see me 5412 // those on not on parcel see me
5407 if (currentParcelUUID != p.currentParcelUUID) 5413 if (currentParcelUUID != p.currentParcelUUID || p.GodLevel >= 200)
5408 { 5414 {
5409 viewsToSendto.Add(p); // they see me 5415 viewsToSendto.Add(p); // they see me
5410 } 5416 }
@@ -5419,7 +5425,7 @@ namespace OpenSim.Region.Framework.Scenes
5419 continue; 5425 continue;
5420 5426
5421 // those not on parcel dont see me 5427 // those not on parcel dont see me
5422 if (currentParcelUUID != p.currentParcelUUID) 5428 if (currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
5423 { 5429 {
5424 killsToSendto.Add(p); // they dont see me 5430 killsToSendto.Add(p); // they dont see me
5425 } 5431 }
@@ -5444,13 +5450,13 @@ namespace OpenSim.Region.Framework.Scenes
5444 continue; 5450 continue;
5445 5451
5446 // only those on previus parcel need receive kills 5452 // only those on previus parcel need receive kills
5447 if (previusParcelUUID == p.currentParcelUUID) 5453 if (previusParcelUUID == p.currentParcelUUID && p.GodLevel < 200)
5448 { 5454 {
5449 killsToSendto.Add(p); // they dont see me 5455 killsToSendto.Add(p); // they dont see me
5450 killsToSendme.Add(p); // i dont see them 5456 killsToSendme.Add(p); // i dont see them
5451 } 5457 }
5452 // only those on new parcel need see 5458 // only those on new parcel need see
5453 if (currentParcelUUID == p.currentParcelUUID) 5459 if (currentParcelUUID == p.currentParcelUUID || p.GodLevel >= 200)
5454 { 5460 {
5455 viewsToSendto.Add(p); // they see me 5461 viewsToSendto.Add(p); // they see me
5456 viewsToSendme.Add(p); // i see them 5462 viewsToSendme.Add(p); // i see them
@@ -5468,7 +5474,7 @@ namespace OpenSim.Region.Framework.Scenes
5468 continue; 5474 continue;
5469 5475
5470 // those not on new parcel dont see me 5476 // those not on new parcel dont see me
5471 if (currentParcelUUID != p.currentParcelUUID) 5477 if (currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
5472 { 5478 {
5473 killsToSendto.Add(p); // they dont see me 5479 killsToSendto.Add(p); // they dont see me
5474 } 5480 }
@@ -5494,7 +5500,7 @@ namespace OpenSim.Region.Framework.Scenes
5494 if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive) 5500 if (p.IsDeleted || p == this || p.ControllingClient == null || !p.ControllingClient.IsActive)
5495 continue; 5501 continue;
5496 // only those old parcel need receive kills 5502 // only those old parcel need receive kills
5497 if (previusParcelUUID == p.currentParcelUUID) 5503 if (previusParcelUUID == p.currentParcelUUID && p.GodLevel < 200)
5498 { 5504 {
5499 killsToSendme.Add(p); // i dont see them 5505 killsToSendme.Add(p); // i dont see them
5500 } 5506 }