Jump to content

[PATCH] Official GM Mail (GM+Item or GM)


Recommended Posts

  • 39 years later...

Hey,

I saw some patches similiar to this one and wrote 2 of my own, made but haven't tested compiling now.

Revision 9199 (Rewrite)

GM Mode On

diff --git a/contrib/extractor/ad.exe b/contrib/extractor/ad.exe
index 105f381..ed50bc2 100755
Binary files a/contrib/extractor/ad.exe and b/contrib/extractor/ad.exe differ
diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp
index 0509240..90d029d 100644
--- a/src/game/Mail.cpp
+++ b/src/game/Mail.cpp
@@ -793,6 +793,8 @@ MailSender::MailSender( Object* sender, MailStationery stationery ) : m_statione
        case TYPEID_PLAYER:
            m_messageType = MAIL_NORMAL;
            m_senderId = sender->GetGUIDLow();
+            if(static_cast<Player *>(sender)->isGameMaster())
+                m_stationery = MAIL_STATIONERY_GM;
            break;
        default:
            m_messageType = MAIL_NORMAL;

Revision 8818

- GM Mode On

diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp
index 061bfbb..8f6291a 100644
--- a/src/game/Mail.cpp
+++ b/src/game/Mail.cpp
@@ -799,6 +799,11 @@ MailSender::MailSender( Object* sender, MailStationery stationery ) : m_statione
        case TYPEID_PLAYER:
            m_messageType = MAIL_NORMAL;
            m_senderId = sender->GetGUIDLow();
+            {
+                Player* plr = sObjectMgr.GetPlayer(m_senderId);
+                if(plr && plr->isGameMaster())
+                    m_stationery = MAIL_STATIONERY_GM;
+            }
            break;
        default:
            m_messageType = MAIL_NORMAL;

- GM Mode On + Item

diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp
index 061bfbb..7c801bc 100644
--- a/src/game/Mail.cpp
+++ b/src/game/Mail.cpp
@@ -799,6 +799,11 @@ MailSender::MailSender( Object* sender, MailStationery stationery ) : m_statione
        case TYPEID_PLAYER:
            m_messageType = MAIL_NORMAL;
            m_senderId = sender->GetGUIDLow();
+            {
+                Player* plr = sObjectMgr.GetPlayer(m_senderId);
+                if(plr && plr->isGameMaster() && pl->HasItemCount(18154, 1, false))
+                    m_stationery = MAIL_STATIONERY_GM;
+            }
            break;
        default:
            m_messageType = MAIL_NORMAL;

Download

Old

- One that requires for gm mode to be on

diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp
index 5dba0b6..26c4ad2 100644
--- a/src/game/Mail.cpp
+++ b/src/game/Mail.cpp
@@ -273,8 +273,11 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data )
    // If theres is an item, there is a one hour delivery delay if sent to another account's character.
    uint32 deliver_delay = needItemDelay ? sWorld.getConfig(CONFIG_MAIL_DELIVERY_DELAY) : 0;

+    // Set the mail type
+    MailStationery mailType = (pl->isGameMaster()) ? MAIL_STATIONERY_GM : MAIL_STATIONERY_NORMAL;
+
    // will delete item or place to receiver mail list
-    WorldSession::SendMailTo(receive, MAIL_NORMAL, MAIL_STATIONERY_NORMAL, pl->GetGUIDLow(), GUID_LOPART(rc), subject, itemTextId, &mi, money, COD, MAIL_CHECK_MASK_NONE, deliver_delay);
+    WorldSession::SendMailTo(receive, MAIL_NORMAL, mailType, pl->GetGUIDLow(), GUID_LOPART(rc), subject, itemTextId, &mi, money, COD, MAIL_CHECK_MASK_NONE, deliver_delay);

    CharacterDatabase.BeginTransaction();
    pl->SaveInventoryAndGoldToDB();

- One that requires an item and gm mode to be on

diff --git a/src/game/Mail.cpp b/src/game/Mail.cpp
index 5dba0b6..88b1625 100644
--- a/src/game/Mail.cpp
+++ b/src/game/Mail.cpp
@@ -273,8 +273,11 @@ void WorldSession::HandleSendMail(WorldPacket & recv_data )
    // If theres is an item, there is a one hour delivery delay if sent to another account's character.
    uint32 deliver_delay = needItemDelay ? sWorld.getConfig(CONFIG_MAIL_DELIVERY_DELAY) : 0;

+    // Set the mail type
+    MailStationery mailType = (pl->isGameMaster() && pl->HasItemCount(18154, 1, false)) ? MAIL_STATIONERY_GM : MAIL_STATIONERY_NORMAL;
+
    // will delete item or place to receiver mail list
-    WorldSession::SendMailTo(receive, MAIL_NORMAL, MAIL_STATIONERY_NORMAL, pl->GetGUIDLow(), GUID_LOPART(rc), subject, itemTextId, &mi, money, COD, MAIL_CHECK_MASK_NONE, deliver_delay);
+    WorldSession::SendMailTo(receive, MAIL_NORMAL, mailType, pl->GetGUIDLow(), GUID_LOPART(rc), subject, itemTextId, &mi, money, COD, MAIL_CHECK_MASK_NONE, deliver_delay);

    CharacterDatabase.BeginTransaction();
    pl->SaveInventoryAndGoldToDB();

Download em here

Regards, Xeross

Link to comment
Share on other sites

Yep that's working as intended it checks for both GM and item.

MailStationery mailType = (pl->isGameMaster() && pl->HasItemCount(18154, 1, false)) ? MAIL_STATIONERY_GM : MAIL_STATIONERY_NORMAL;

As you can see pl->isGameMaster() and pl->hasItemCount() are both checked, I could make it only check for GM level and item so you don't need .gm on if you want.

Link to comment
Share on other sites

  • 2 weeks later...

Xeross155 can I give u an ideea?

The official Blizz Gm's are not even entering the game..they have a tool made especially for them..They can do anything from there...like:

- anything about emails with sending,receiving, reading, deleting, put items on it/money etc

- anything about items with sending, receiving, etc

- anything about quest helping players, reporting from that tool to their database developers in our case on udb, something to send a report from your account with all the informations filled on like on a paper, not like now that u have to read all the info including the db and core vers

- anything about players ban/kick/monitor/investigate inventory,talents,gear, achivs,etc

- something like a camera system that popup a windows and show him exactly what the player is doing in real time

- plus many other functions..

If u like the ideea good luck. I don't know how to code but this would help mangos to be improved...

With respect,

Axel

Link to comment
Share on other sites

alexluana, I'm sorry but I'm not sure where you got that information. It is very clear, GMs play the actual game. They have an Interface-AddOn to assist them while doing so. They have systems and programs developed outside of WoW in order to send emails, look up accounts, etc.

I attended BlizzCon '09 and had the chance to see the employees play as GM characters. They do, in fact, have an AddOn which I see them use several times in-game to preform GM-related tasks. They also had the "Bl1zz" icon next to their name when they spoke in chat, raid, etc.

They play the game, but they don't have some entirely different client written for them to assist players. I've had them appear before me in-game before, cast spells, etc.

Link to comment
Share on other sites

alexluana, I'm sorry but I'm not sure where you got that information. It is very clear, GMs play the actual game. They have an Interface-AddOn to assist them while doing so. They have systems and programs developed outside of WoW in order to send emails, look up accounts, etc.

I attended BlizzCon '09 and had the chance to see the employees play as GM characters. They do, in fact, have an AddOn which I see them use several times in-game to preform GM-related tasks. They also had the "Bl1zz" icon next to their name when they spoke in chat, raid, etc.

They play the game, but they don't have some entirely different client written for them to assist players. I've had them appear before me in-game before, cast spells, etc.

I can confirm this as I've seen the GM tool they use and it's similar to mangadmin that I wish was updated to 3.2.2a but the latest copy I have crashes on load-up, they also do have outside tools that they can use to aid players accounts but those are mostly for the Business end of things like Payment management, Player Accounting and in or out of game E-Mails.;)

Link to comment
Share on other sites

They might play the game, but that is nothing to do with the word "play".. I belive they monitor the server in someway probably through some tool I don't know for sure, but when interact, they can use something like pseuwow and be there without entering the game...and talk on chat without being online on through a form or a state maybe something like a messenger between them and the client....but for sure they have external tools for almost everything...

My ideea is not to copy what they do and how they do it, but to improve it, and crete it in our way... it's good to have the control on all the server with only one program that does it all + probably some things that THEY didn't thinked about it..

With respect,

Axel

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use