void GameEventMgr::ApplyNewEvent(uint16 event_id, bool resume) { m_ActiveEvents.insert(event_id); sLog.outString("GameEvent %u \"%s\" started.", event_id, mGameEvent[event_id].description.c_str()); if (event_id == 987) // daily restart event { sWorld.ShutdownServ(mGameEvent[event_id].length*60, SHUTDOWN_MASK_RESTART, 0); return; } CharacterDatabase.PExecute("INSERT INTO game_event_status (event) VALUES (%u)", event_id); if (sWorld.getConfig(CONFIG_BOOL_EVENT_ANNOUNCE)) sWorld.SendWorldText(LANG_EVENTMESSAGE, mGameEvent[event_id].description.c_str()); // spawn positive event tagget objects GameEventSpawn(event_id); // un-spawn negative event tagged objects int16 event_nid = (-1) * event_id; GameEventUnspawn(event_nid); // Change equipement or model UpdateCreatureData(event_id, true); // Add quests that are events only to non event npc UpdateEventQuests(event_id, true); // Not send mails at game event startup, if game event just resume after server shutdown (has been active at server before shutdown) if (!resume) SendEventMails(event_id); }
void GameEventMgr::ApplyNewEvent(uint16 event_id, bool resume) { m_ActiveEvents.insert(event_id); CharacterDatabase.PExecute("INSERT INTO game_event_status (event) VALUES (%u)", event_id); if (sWorld.getConfig(CONFIG_BOOL_EVENT_ANNOUNCE)) { sWorld.SendWorldText(LANG_EVENTMESSAGE, mGameEvent[event_id].description.c_str()); if(sIRC.BOTMASK & 256) { std::string ircchan = std::string("#")+sIRC._irc_chan[sIRC.anchn]; sIRC.Send_IRC_Channel(ircchan, sIRC.MakeMsg("\00304,08\037/!\\\037\017\00304 Game Event \00304,08\037/!\\\037\017 %s", "%s", mGameEvent[event_id].description.c_str()), true); } } sLog.outString("GameEvent %u \"%s\" started.", event_id, mGameEvent[event_id].description.c_str()); // spawn positive event tagget objects GameEventSpawn(event_id); // un-spawn negative event tagged objects int16 event_nid = (-1) * event_id; GameEventUnspawn(event_nid); // Change equipement or model UpdateCreatureData(event_id, true); // Add quests that are events only to non event npc UpdateEventQuests(event_id, true); UpdateWorldStates(event_id, true); // Not send mails at game event startup, if game event just resume after server shutdown (has been active at server before shutdown) if (!resume) SendEventMails(event_id); }
void GameEventMgr::ApplyNewEvent(uint16 event_id, bool resume) { // check event_id validity int32 internal_event_id = mGameEvent.size() + event_id - 1; if (internal_event_id < 0 || (size_t)internal_event_id >= mGameEventCreatureGuids.size()) { sLog.outError("GameEventMgr::ApplyNewEvent: invalid event ID: %u", event_id); return; } m_ActiveEvents.insert(event_id); CharacterDatabase.PExecute("REPLACE INTO game_event_status (event) VALUES (%u)", event_id); if (sWorld.getConfig(CONFIG_BOOL_EVENT_ANNOUNCE)) sWorld.SendWorldText(LANG_EVENTMESSAGE, mGameEvent[event_id].description.c_str()); sLog.outString("GameEvent %u \"%s\" started.", event_id, mGameEvent[event_id].description.c_str()); // spawn positive event tagget objects GameEventSpawn(event_id); // un-spawn negative event tagged objects int16 event_nid = (-1) * event_id; GameEventUnspawn(event_nid); // Change equipement or model UpdateCreatureData(event_id, true); // Add quests that are events only to non event npc UpdateEventQuests(event_id, true); UpdateWorldStates(event_id, true); // Not send mails at game event startup, if game event just resume after server shutdown (has been active at server before shutdown) if (!resume) SendEventMails(event_id); }
void GameEventMgr::UnApplyEvent(uint16 event_id) { // check event_id validity int32 internal_event_id = mGameEvent.size() + event_id - 1; if (internal_event_id < 0 || (size_t)internal_event_id >= mGameEventCreatureGuids.size()) { sLog.outError("GameEventMgr::UnApplyEvent: invalid event ID: %u", event_id); return; } m_ActiveEvents.erase(event_id); CharacterDatabase.PExecute("DELETE FROM game_event_status WHERE event = %u", event_id); sLog.outString("GameEvent %u \"%s\" removed.", event_id, mGameEvent[event_id].description.c_str()); // un-spawn positive event tagged objects GameEventUnspawn(event_id); // spawn negative event tagget objects int16 event_nid = (-1) * event_id; GameEventSpawn(event_nid); // restore equipment or model UpdateCreatureData(event_id, false); // Remove quests that are events only to non event npc UpdateEventQuests(event_id, false); UpdateWorldStates(event_id, false); SendEventMails(event_nid); }
void GameEventMgr::ApplyNewEvent(uint16 event_id, bool resume) { m_ActiveEvents.insert(event_id); static SqlStatementID saveStat; CharacterDatabase.CreateStatement(saveStat, "REPLACE INTO game_event_status (event) VALUES (?)") .PExecute(event_id); if (sWorld.getConfig(CONFIG_BOOL_EVENT_ANNOUNCE) && (!mGameEvent[event_id].silent)) sWorld.SendWorldText(LANG_EVENTMESSAGE, mGameEvent[event_id].description.c_str()); sLog.outString("GameEvent %u \"%s\" started. %s", event_id, mGameEvent[event_id].description.c_str(), mGameEvent[event_id].silent ? "(hidden)" : ""); // spawn positive event tagget objects GameEventSpawn(event_id); // un-spawn negative event tagged objects int16 event_nid = (-1) * event_id; GameEventUnspawn(event_nid); // Change equipement or model UpdateCreatureData(event_id, true); // Add quests that are events only to non event npc UpdateEventQuests(event_id, true); UpdateWorldStates(event_id, true); // Not send mails at game event startup, if game event just resume after server shutdown (has been active at server before shutdown) if (!resume) SendEventMails(event_id); }
void GameEventMgr::UnApplyEvent(uint16 event_id) { m_ActiveEvents.erase(event_id); CharacterDatabase.PExecute("DELETE FROM game_event_status WHERE event = %u", event_id); sLog.outString("GameEvent %u \"%s\" removed.", event_id, mGameEvent[event_id].description.c_str()); // un-spawn positive event tagged objects GameEventUnspawn(event_id); // spawn negative event tagget objects int16 event_nid = (-1) * event_id; GameEventSpawn(event_nid); // restore equipment or model UpdateCreatureData(event_id, false); // Remove quests that are events only to non event npc UpdateEventQuests(event_id, false); SendEventMails(event_nid); }