Вот сама пропущенная строка из предыдущего поста :
Код:
sWorld.SendGlobalMessageOnlyGM(3,player_tap,TmpTextMassage.str());
где-то в файле World.cpp
Код:
// Вставка начинается Отседова :)
void World::SendGlobalMessageOnlyGM(uint32 type, Player *cheater, std::string msg)
{
CharacterDatabase.PExecute("INSERT INTO log_cheaters_alert (typeaction,account,player,timeact,message) VALUES ('%u','%u','%s',UNIX_TIMESTAMP(),'%s')", type, cheater->GetSession()->GetAccountId(), cheater->GetName(), msg.c_str());
WorldPacket data;
ChatHandler::FillMessageData(&data, NULL, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, 0, msg.c_str(), NULL);
SessionMap::const_iterator itr;
for (itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
{
if (itr->second && itr->second->GetPlayer() && itr->second->GetPlayer()->IsInWorld() && itr->second->GetPlayer()->isGameMaster()) {itr->second->SendPacket(&data);}
}
}
// Вставка заканчивается тут !
namespace MaNGOS
{
где-то в файле World.h
Код:
void LoadConfigSettings(bool reload = false);
// Вставка начинается Отседова :)
void SendGlobalMessageOnlyGM(uint32 type, Player *cheater, std::string msg); // Anticheat
// Вставка заканчивается тут !
void SendWorldText(int32 string_id, ...);
Вот структура базы:
Код:
DROP TABLE IF EXISTS `log_cheaters_alert`;
CREATE TABLE IF NOT EXISTS `log_cheaters_alert` (
`entry` bigint(20) NOT NULL AUTO_INCREMENT,
`typeaction` int(3) NOT NULL default 0,
`account` int NOT NULL default 0,
`player` varchar(60) NOT NULL default '',
`timeact` int NOT NULL DEFAULT '0',
`message` text NOT NULL,
PRIMARY KEY (`entry`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=33 ;
typeaction = 3 = 'bosskill'
ну вот както так .... вроде ничего не пропустил, должно работать...
Кроме занесения записи в таблицу, анонсируется в чат игры ГМ'ам