Показать сообщение отдельно
Старый 24.07.2010, 03:39   #47
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Ну я как-бы и использую существующие возможности.
У гейм_евент есть такая таблица game_event_creature
в которую помещаются записи критчеров которые надо показать в мире при запуске евента. притом GameEventMgr сам их заспавнит и сам уберет.

Мне чтобы заработало все как нужно надо только дописать в GameEventMgr пару строчек чтобы он выбирал рандомно квест(ну и критчера к этому рандом квесту если надо).
ВСЕ остальное делает сам GameEventMgr код добавления в sObjectMgr.mCreatureQuestRelations уже в нем есть его надо только под рандомность подогнать удаление из sObjectMgr.mCreatureQuestRelations можно вообще оставить.

В итоге что у нас получается.
1)Заполняем таблицу game_event всеми нужными дейликами/викликами ставя holiday = -1
2) Удаляем из creature_questrelation все записи о тех квестах которые реализуем через game_event
3) Добавляем в game_event_creature_quest наш список квестов и связываем с нужными записями в таблицы game_event.
4) Тоже самое если нужно делаем с game_event_creature
5) Правим GameEventMgr так чтобы он если holiday <0 и время обновить евент выбирал рандомный квест из текущего евента(и получал по этому квестИД если нужно соответствующего критчер) также записываем на место holiday -(CurQuestId)чтобы если сервер упал или перезагрузили то был тот-же квест.
ВСЕ Больще нам делать нечего, все остальное уже есть в GameEventMgr
alien вне форума   Ответить с цитированием