Code:
// disable for gamemasters with GM-mode enabled
if (m_player->IsGameMaster())
return;
This is how is achievements are disabled for game masters. I'm sure you can expand on this. Example could be:
Code:
// disable for everyone
if (m_player->IsGameMaster() || !m_player->IsGameMaster())
return;
This checks if the player is a GM or is not a GM.
This is the AchievementMgr.CPP and you would have to replace all the instances from the first line. I've tried this with my core for making chat universal and it worked good so I'm guessing it should work fine in this situation. Backup your source and compile and should be good.