void Commands::forceRaid(Player& player, const std::string& param) { Raid* raid = Raids::getInstance()->getRaidByName(param); if (!raid || !raid->isLoaded()) { player.sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "No such raid exists."); return; } if (Raids::getInstance()->getRunning()) { player.sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Another raid is already being executed."); return; } Raids::getInstance()->setRunning(raid); RaidEvent* event = raid->getNextRaidEvent(); if (!event) { player.sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The raid does not contain any data."); return; } raid->setState(RAIDSTATE_EXECUTING); uint32_t ticks = event->getDelay(); if (ticks > 0) { g_scheduler.addEvent(createSchedulerTask(ticks, std::bind(&Raid::executeRaidEvent, raid, event))); } else { g_dispatcher.addTask(createTask(std::bind(&Raid::executeRaidEvent, raid, event))); } player.sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Raid started."); }
bool Commands::forceRaid(Creature* creature, const std::string& cmd, const std::string& param) { Player* player = creature->getPlayer(); if(!player){ return false; } Raid* raid = Raids::getInstance()->getRaidByName(param); if(!raid || !raid->isLoaded()){ player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "No such raid exists."); return false; } if(Raids::getInstance()->getRunning()){ player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "Another raid is already being executed."); return false; } Raids::getInstance()->setRunning(raid); RaidEvent* event = raid->getNextRaidEvent(); if(!event){ player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "The raid does not contain any data."); return false; } raid->setState(RAIDSTATE_EXECUTING); uint32_t ticks = event->getDelay(); if(ticks > 0){ Scheduler::getScheduler().addEvent(createSchedulerTask(ticks, boost::bind(&Raid::executeRaidEvent, raid, event))); } else{ Dispatcher::getDispatcher().addTask(createTask( boost::bind(&Raid::executeRaidEvent, raid, event))); } player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "Raid started."); return true; }