[Rule] Allow GMs to silently summon (#3910)

* [Rule] Allow GMs to silently summon

Disable to silently summon players with #summon.

Converted SummonPC to a MessageString

* Implementing an automatic detection of gm hidden mode and silent summoning.
This commit is contained in:
Fryguy
2024-01-08 23:28:50 -05:00
committed by GitHub
parent e6dc980315
commit 98928aee74
4 changed files with 18 additions and 9 deletions
+7 -1
View File
@@ -88,6 +88,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
target_zone_id = zone->GetZoneID();
break;
case GMSummon:
case GMHiddenSummon:
case ZoneSolicited: //we told the client to zone somewhere, so we know where they are going.
target_zone_id = zonesummon_id;
break;
@@ -276,6 +277,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
target_heading = safe_heading;
break;
case GMSummon:
case GMHiddenSummon:
target_x = m_ZoneSummonLocation.x;
target_y = m_ZoneSummonLocation.y;
target_z = m_ZoneSummonLocation.z;
@@ -697,6 +699,9 @@ void Client::ProcessMovePC(uint32 zoneID, uint32 instance_id, float x, float y,
Message(Chat::Yellow, "You have been summoned by a GM!");
ZonePC(zoneID, instance_id, x, y, z, heading, ignorerestrictions, zm);
break;
case GMHiddenSummon:
ZonePC(zoneID, instance_id, x, y, z, heading, ignorerestrictions, zm);
break;
case ZoneToBindPoint:
ZonePC(zoneID, instance_id, x, y, z, heading, ignorerestrictions, zm);
break;
@@ -704,7 +709,7 @@ void Client::ProcessMovePC(uint32 zoneID, uint32 instance_id, float x, float y,
ZonePC(zoneID, instance_id, x, y, z, heading, ignorerestrictions, zm);
break;
case SummonPC:
Message(Chat::Yellow, "You have been summoned!");
MessageString(Chat::Yellow, PLAYER_SUMMONED);
ZonePC(zoneID, instance_id, x, y, z, heading, ignorerestrictions, zm);
break;
case Rewind:
@@ -761,6 +766,7 @@ void Client::ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z
heading = zone_safe_point.w;
break;
case GMSummon:
case GMHiddenSummon:
m_Position = glm::vec4(x, y, z, heading);
m_ZoneSummonLocation = m_Position;
zonesummon_id = zoneID;