Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи

Важная информация

Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.

Если кто-то хочет задать вопрос по патчу - велкам.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.07.2010, 01:17   #1
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию [patch/dev] Рандомные Виклики/Дейлики

В общем решил написать патч на поддержку рандомных деликов и викликов.
Чтобы сразу понятно было вот вам скриншоты


Собственно патч

Есть небольшой баг. если дейлик/виклик одной группы но разные задания находятся у разных НПЦ то у того НПС которому не повезло с квестом значек над головой остается. Щас этим займусь.
Может придется переписать немного(
В общем сейчас загрузка и сохранение рандомных квестов есть и также их сброс.

Последний раз редактировалось alien; 23.07.2010 в 20:54.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 04:24   #2
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию

quest_curent_weekly и quest_curent_daily для хранения списков текущих дейликов и викликов.
можно добавить флаг в базу и использовать 1 таблицу. типа flag == 0x00 daily, flag == 0x01 weekly.
zhenya вне форума   Ответить с цитированием
Старый 23.07.2010, 08:58   #3
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Выполняемые игроком дейли и викли квесты итак хранятся в базе.
Есди не ошибаюсь, то при взятии квеста с одним значением ExclusiveGroup остальные исчезают из списка.
Что именно планируется загружать из базы?
virusav вне форума   Ответить с цитированием
Старый 23.07.2010, 10:44   #4
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

virusav,
вот именно что исчезают из списка только после взятия. а у нас сразу в списке должен быть только один. неужели по скрину непонятно?
zhenya,
просто если посмотреть на то как реализовано запоминание дейликов и викликов которые выполнил игрок то там тоже две таблицы видимо чтобы было удобней таблицу очищать.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 10:59   #5
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

У меня была мысль показывать 1 квест в зависимости от даты, чтобы в базе ничего не хранить... А на оффе они совершенно случайно выбираются?
zergtmn вне форума   Ответить с цитированием
Старый 23.07.2010, 11:11   #6
BoLT
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
А на оффе они совершенно случайно выбираются?
Да! При чём на разных рилмах разные..
  Ответить с цитированием
Старый 23.07.2010, 11:12   #7
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Да.
Может подряд несколько недель быть один и тотже.
Тоесть обычный рандом.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 11:17   #8
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Имхо, проще делать через game_event
LordJZ вне форума   Ответить с цитированием
Старый 23.07.2010, 11:36   #9
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

И какимже образом через гем_евент реализовать эту туеву кучу викликов и дейликов? ведь это не 1 и не 2 гивера. их около 100 наверно в игре кто дает рандомные квесты.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 12:04   #10
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
virusav,
вот именно что исчезают из списка только после взятия. а у нас сразу в списке должен быть только один. неужели по скрину непонятно?
Перед выводом списка квестов одной группы проверяем, есть ли на руках квест этой же группы.
Если да, то выводим его.
Если нет, то запускаем твой код и выбираем случайным образом один квест из группы.

Таким образом игроку будет показан один случайный квест из группы.
virusav вне форума   Ответить с цитированием
Старый 23.07.2010, 12:24   #11
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Цитата:
Перед выводом списка квестов одной группы проверяем, есть ли на руках квест этой же группы.
Если да, то выводим его.
Дак это и так реализованно.
А вот если на руках нету ни одного квеста из квест группы то тогда выбираем рандомный квест запоминаем его, записываем в базу и всем остальным просто предлагаем этот квест.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 13:03   #12
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Зачем? Разве случайный квест выпадает всем игрокам один и тот же?
Мне кажется, что надо делать выбор случайного квеста для каждого игрока заново при открытии списка квестов нпц или го.

Тут уже нужна инфа с офа, как там.
virusav вне форума   Ответить с цитированием
Старый 23.07.2010, 13:41   #13
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Да случный квест для всех 1(если дейлик в течении дня, если виклик в течении недели)
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 14:24   #14
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
И какимже образом через гем_евент реализовать эту туеву кучу викликов и дейликов? ведь это не 1 и не 2 гивера. их около 100 наверно в игре кто дает рандомные квесты.
Можно выделить какой-то отдельный номер в game_event и туда сохранять. И никаких дополнительных таблиц или имплементаций в ядре ненужно. Вероятно, правда, каким-то флагом или еще как-то обозначить те ExclusiveGroup, какие должны быть рандомными.
LordJZ вне форума   Ответить с цитированием
Старый 23.07.2010, 14:43   #15
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

И зачем такая морока? То есть добавили близы новый список дейликов/викликов и заносить в game_event.
Да и в game_event это сохронять не логично.(темболее не представляю даже как там это реализовать.)
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 14:50   #16
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Нет, ничего не придется заносить, это делать будет сервер (или вы собрались каждый день дейлики туда заносить?). При появлении новых дейликов вам, как и в вашем-же способе, придется как-то их обозначить. Только в моем случае не нужно никаких дополнительных изобретений и таблиц.
LordJZ вне форума   Ответить с цитированием
Старый 23.07.2010, 15:00   #17
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Ну хорошо тогда как вы представляете реализацию через game_event.
Я что-то не догоняю как это можно реализовать.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 15:01   #18
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

При сбросе дейликов пересчитывать новые, рандомные, и добавлять их в game_event (на случай отключения сервера) под определенным номером.
LordJZ вне форума   Ответить с цитированием
Старый 23.07.2010, 15:13   #19
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Тоесть сервер при сбросе будет пробегать по всем квестам, выбирать рандомный из группы и заносить в гем-евент?

Последний раз редактировалось alien; 23.07.2010 в 15:18.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 15:30   #20
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Примерно так
LordJZ вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Shadez (23.07.2010)
Старый 23.07.2010, 15:53   #21
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

А нафига лишним сервер нагружать при старте?
Просто в моем случае квесты выбираются по мере надобности(или просто подгружается уже составленный список из базы)
А так придется при первом старте пробегатся по ВСЕМ квестам(или хранить список всех груп квестов которые являются дейликами/викликами в какойто таблици или еще гдето.) да и вот еще что-то не представляю как в самом гем-евенте хранить запись о выбранном виклике/дейлике?
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 15:59   #22
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Не при старте, а раз в день, при сбросе дейликов. Квестов достаточно мало — всего около 9000, с ExclusiveGroup != 0 всего 630. Проверка по всем квестам пройдет за считанные миллисекунды.

У вас же при каждом обращении к любому квестеру идет поиск в загруженной таблице, т.п.

Система написана, документация есть, все работает без ошибок — зачем вам знать, как она работает? И зачем создавать аналоги?
LordJZ вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Foks (25.07.2010)
Старый 23.07.2010, 16:28   #23
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Вобщето идет проверка только если квест дейлик/виклик. и не по таблици а по map'у
и вот только если нету в мапе записи об этой ExclusiveGroup то тогда запускаем генерацию рандом квеста.

Так а теперь глобальный вопрос приведите пример как вы видите запись в game_event?
Я например не вижу оптимального пути использования game_event даже если убрать поиск и выбор квестов.
Тоесть возьмем пример на этой недели у нас у NPC 20735 квест 24586.
Это значит нам надо создать запись в game_event текущей даты а потом в Game_event_creature_quest добавить запись с ID из game_event и ID НПС и квеста и так для каждого НПС.
Потом когда будет другой квест нам придется править все ID квестов .
И еще сервер не перезагружает game_event при своей работе тоесть придется делать чтобы перезагружал. А это совершенно неверно.
В общем я не вижу ни одного + в пользу game_event а только сплошные -

Последний раз редактировалось alien; 23.07.2010 в 16:36.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 20:40   #24
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Для каждого квеста заводится event c единсвенным элементом game_event_creature_quest - ну возможно с негативными для остальных в группе
на время когда он будет показываться.
Вы уверены что они случайные а не идут просто по цеочке...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 23.07.2010, 20:44   #25
Energy
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 54
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 11 сообщениях
Energy На верном пути
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Для каждого квеста заводится event c единсвенным элементом game_event_creature_quest - ну возможно с негативными для остальных в группе
на время когда он будет показываться.
Вы уверены что они случайные а не идут просто по цеочке...
Случайные. Реализовать, действительно, логичнее с помощью системы эвентов. Просто доработаеть ее чтобы была возможность запуска рандомного эвента из группы
Energy вне форума   Ответить с цитированием
Старый 23.07.2010, 20:55   #26
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

возможно если quest из exclusive group - а имеено галвный в ней - то интерпретировать это как бырать случайный из?
Так как странно в нормальном случае иметь в event quest exclusive c квестами не в event... ?

Можно ограничить повторяемыми
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 23.07.2010, 21:00   #27
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Цитата:
Вы уверены что они случайные а не идут просто по цеочке...
Да уверен на все 100% ))
и немного не понял что вы тут хотели сказать.
Цитата:
возможно если quest из exclusive group - а имеено галвный в ней - то интерпретировать это как бырать случайный из?
Так как странно в нормальном случае иметь в event quest exclusive c квестами не в event... ?
Ладно щас попробую придумать как это реализовать при помощи game_event

Последний раз редактировалось alien; 23.07.2010 в 21:08.
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 21:20   #28
Energy
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 54
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 11 сообщениях
Energy На верном пути
По умолчанию

Советую обратить внимание на квестгивера, дающего викли на боссов в вотлк рейдах.
Возле него за стенкой вращается моделька босса, которого необходимо кокнуть по текущему виклику, соответственно это стопудово система эвентов.
Просто нужно реализовать группировку эвентов, либо предусмотреть вообще тип эвента - случайный викли или случайный дейли, которые будут меняться одновременно с резетом дейликов/викликов
Energy вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
alien (23.07.2010)
Старый 23.07.2010, 21:35   #29
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Для каждого квеста заводится event c единсвенным элементом game_event_creature_quest - ну возможно с негативными для остальных в группе
на время когда он будет показываться.
Вы уверены что они случайные а не идут просто по цеочке...
А зачем создавать для каждого квеста свой id?.. Пусть они хранятся в каком-нибудь -1 или -2 (викли/дейли). Просто придется удалить лишнюю сотнб записей из creature_questrelation.
LordJZ вне форума   Ответить с цитированием
Старый 23.07.2010, 21:53   #30
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Я про свой говорил пока не написал про exсlude group
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 23.07.2010, 23:42   #31
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Такая идея реализации.
game_event.holiday разрешить отрицательные значения(типа эвенты которых нету в Holidays.dbc но которые надо как-то обработать по своему), дальше для каждой рандомной группы вручную создаем запись.
Также заполняем game_event_creature_quest всеми квестами из этой группы и просто
в GameEventMgr::UpdateEventQuests(uint16 event_id, bool Activate) обрабатываем по своему запись с отрицательным числом(например для -1 это будет выдать только рандом) и собственно
if (Activate) // Add the pair(id,quest) to the multimap
CreatureQuestMap.insert(QuestRelations::value_type (entry, randomQuest));
-2 можно будет сделать для обработки мобов за http://ru.wowhead.com/npc=20735
там может и -3 подтянется ))
alien вне форума   Ответить с цитированием
Старый 23.07.2010, 23:54   #32
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Скажите, ну вот скажите, ну вот зачем эти holiday, -3, Верховный маг Лан'далок?

Почему бы просто не создать эвенты -1 (дейлики) и -2 (виклики), и туда складывать и мобов-призраков, и дополнительные квестовые НПС (Ристалище), и сами записи из game_event_creature_quests (или как она там называется)?
LordJZ вне форума   Ответить с цитированием
Старый 24.07.2010, 00:01   #33
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Тогда и -2 не нужне.
так с точки зрения события они отличаются только длительностью а длительность задается в start_time,end_time,occurence
alien вне форума   Ответить с цитированием
Старый 24.07.2010, 00:04   #34
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Да, можно сделать один и на виклики, и на дейлики. Но тогда вам придется очищать game_event таблицы с id=-1 вручную, проверяя каждый квест на виклик, это в 100 раз замедлит работу и в 10 раз увеличит количество кода.
LordJZ вне форума   Ответить с цитированием
Старый 24.07.2010, 00:18   #35
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Подождите а зачем что-то удалять из game_event?
Просто делаем записи так. Что у евента длительность 23 часа а повторять каждые 24 часа.
Виклики соответственно 6д и 23ч длительность а повторение каждые 7 дней
Вот и все. И ничего удалять не придется или я неправ?
alien вне форума   Ответить с цитированием
Старый 24.07.2010, 00:20   #36
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

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

Подождите зачем?
вот стандартный код из геймевентманаджера.
Код:
 QuestRelations &CreatureQuestMap = sObjectMgr.mCreatureQuestRelations;
if (Activate)                                       // Add the pair(id,quest) to the multimap
            CreatureQuestMap.insert(QuestRelations::value_type(itr->first, itr->second));
        else
        {                                                   // Remove the pair(id,quest) from the multimap
            QuestRelations::iterator qitr = CreatureQuestMap.find(itr->first);
            if (qitr == CreatureQuestMap.end())
                continue;
            QuestRelations::iterator lastElement = CreatureQuestMap.upper_bound(itr->first);
            for ( ;qitr != lastElement;++qitr)
            {
                if (qitr->second == itr->second)
                {
                    CreatureQuestMap.erase(qitr);           // iterator is now no more valid
                    break;                                  // but we can exit loop since the element is found
                }
            }
        }
Нам его чутка переделать чтобы вместо того чтобы добавлять ВСЕ квесты из game_event_creature_quest он добавлял рандомный. А удаление квеста можно и в текужем виде вобще оставить.
Тоесть когда евент у нас останавливается у нас просто из sObjectMgr.mCreatureQuestRelations удаляется все квесты которые были в game_event_creature_quest а как только стартует то в mCreatureQuestRelations заносится. Дак вот в нашем случае надо не все квесты заносить в а 1 рандомный из списка который хранится под этим евентом.
alien вне форума   Ответить с цитированием
Старый 24.07.2010, 00:50   #38
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Под этим эвентом хранится УЖЕ срандомленный, один на группы, единственный-избранный квест. И его надо будет удалить ИЗ БАЗЫ.

Всего вам нужно написать:
— удаление данных из базы
— добавление данных в базу
Все остальное уже написано.

Причем делать это можно, если вам очень хочется, даже не сервером!
LordJZ вне форума   Ответить с цитированием
Старый 24.07.2010, 00:58   #39
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Зачем удалять из базы если планируется в коде выбор случайного для активации из статичесокго набора....
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 24.07.2010, 01:04   #40
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Я имею ввиду удалять из базы старые квесты, когда из групп выбираются новые.
LordJZ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 08:36. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot