|
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
08.03.2010, 07:30 | #1 |
Гость
Сообщений: n/a
|
[9686][patch] Weekly quests
Искал реализацию викликов на getmangos.com, но не нашёл. Если подобный патч уже есть, дайте ссылку.
---------------------------------------------------- Данный же патч реализует работу еженедельных квестов по очень простому принципу. Виклики - теже дейлики, только с недельным КД. Добавляем в базу колонку с типом дэйликов (1 - дэйли, 2 - викли) и сбрасываем виклики не каждый день, а раз в неделю вместе с начислением Арена-поинтов. ADDED 20.03.2010 Патч переделан: 1) Список квестов хранится в std:set 2) Таймер сброса в save_variable 3) Отдельная таблица для хранения викликов ADDED 22.03.2010 Оптимизация работы с std:set (special thx to zhenya) DOWNLOAD NOW! Последний раз редактировалось GriffonHeart; 21.03.2010 в 19:24. |
24 пользователя(ей) сказали cпасибо: | ANTOMA (22.03.2010), Chestarfild (02.04.2010), Den (15.03.2010), ExC0tiC (31.03.2010), Gen1us2k (08.03.2010), Gerald (08.03.2010), KiriX (08.03.2010), Konctantin (08.03.2010), lucky (08.03.2010), Neggod (08.03.2010), PSZ (09.03.2010), Shadez (20.03.2010), sven (15.03.2010), unlucky (08.03.2010), Viste (09.03.2010), Vladimir (08.03.2010), zevgen (15.03.2010) |
08.03.2010, 12:48 | #2 |
Ученый
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
|
на официалке если не изменяет память, виклик обновляется во вторник, а арена-поинты начисляются по средам
|
08.03.2010, 13:44 | #3 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Цитата:
Насколько я знаю weekly квесты не имеют лимита по количеству и не помещаются в список daily квестов.... млм я не прав? |
|
08.03.2010, 13:51 | #4 |
Гость
Сообщений: n/a
|
Надо поинтересоваться у людей на оффе, меня тоже смутило это, но это был самый быстрый способ реализации
Вообще моё предложение - избавиться от time в character_queststatus_daily, а в saved_variables добавить две колонки с датой обновления дэйликов и датой обновления викликов. Последний раз редактировалось GriffonHeart; 08.03.2010 в 14:03. |
08.03.2010, 14:18 | #5 | |
Ученый
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
|
Цитата:
не понял эту фразу, в МаНГОСе или на оффе? |
|
08.03.2010, 14:27 | #6 |
Гость
Сообщений: n/a
|
|
08.03.2010, 14:10 | #7 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Возможно, всеравно это время при сохранении одинаковое.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Пользователь сказал cпасибо: |
08.03.2010, 14:24 | #8 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
В поле даты для дайли-квестов зановится одно и тоже время на момент сохранений - время выполения последнего дейли-квеста.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
08.03.2010, 14:58 | #9 |
Пользователь
Регистрация: 08.03.2010
Сообщений: 43
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
|
08.03.2010, 14:32 | #11 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Там кстати один месячный есть - когда сбрасывается не знаю...
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
08.03.2010, 17:26 | #12 |
Гость
Сообщений: n/a
|
|
08.03.2010, 15:09 | #14 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
|
Викли да, во вторник в 8 утра постоянно, не зависимо, когда ты его сделал.
|
08.03.2010, 23:57 | #15 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
http://www.wowwiki.com/Monthly_quest я тут только читал
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
09.03.2010, 12:19 | #16 | |
Гость
Сообщений: n/a
|
Цитата:
|
|
15.03.2010, 07:05 | #17 | |
Ученый
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
|
Цитата:
PS убежал проверять) add: квест по принципу пришёл и сдал, ничего сдавать не нужно... возможно действительно еженедельный или ежемесячный! послежу за ним Последний раз редактировалось Fedia22; 15.03.2010 в 07:17. |
|
Пользователь сказал cпасибо: | Vladimir (15.03.2010) |
14.03.2010, 00:21 | #18 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
может быть или он спец. образом сбрасывается.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
15.03.2010, 12:57 | #19 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Для ясности текущего стояния:
Патч не может быть принят в предложенном виде так как использует поля daily квестов для хранения weekly-квестов что неверно...
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
15.03.2010, 17:36 | #20 | |
Гость
Сообщений: n/a
|
Цитата:
Список квестов планирую хранить в std:set Таймер сброса добавить в save_variable Виклики хранить в другой таблице, а не вместе с дайликами. Последний раз редактировалось GriffonHeart; 15.03.2010 в 17:41. |
|
15.03.2010, 18:57 | #21 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
|
07.04.2010, 03:18 | #22 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
О! Давно не заглядавал в ветку, а зря...
Сохранять данные проблематичнее, так как это 2 струкутрыи, да и выполнять половину запростов на добавление при изменениях быстрее ^^
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
20.03.2010, 08:55 | #23 |
Гость
Сообщений: n/a
|
ADDED 20.03.2010
Патч переделан: 1) Список квестов хранится в std:set 2) Таймер сброса в save_variable 3) Отдельная таблица для хранения викликов DOWNLOAD NOW! |
20.03.2010, 11:41 | #24 | |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
Цитата:
Код:
bool Player::SatisfyQuestWeek( Quest const* qInfo, bool msg ) { if(!qInfo->IsWeekly() || m_weeklyquests.empty()) return true; std::set<uint32>::iterator iter = m_weeklyquests.find(qInfo->GetQuestId()); if (iter != m_weeklyquests.end()) return false; return true; } Код:
void Player::_LoadWeeklyQuestStatus(QueryResult *result) { //QueryResult *result = CharacterDatabase.PQuery("SELECT quest FROM character_queststatus_weekly WHERE guid = '%u'", GetGUIDLow()); if(result) .... Код:
void Player::ResetWeeklyQuestStatus() { if (m_weeklyquests.empty()) return; m_weeklyquests.clear(); // DB data deleted in caller m_WeeklyQuestChanged = false; } Код:
void Player::_SaveWeeklyQuestStatus() { if(!m_WeeklyQuestChanged || m_weeklyquests.empty()) return; // we don't need transactions here. CharacterDatabase.PExecute("DELETE FROM character_queststatus_weekly WHERE guid = '%u'",GetGUIDLow()); std::set<uint32>::iterator iter = m_weeklyquests.begin(); for (; iter != m_weeklyquests.end(); ++iter) { uint32 quest_id = *iter; if(Quest const* pQuest = sObjectMgr.GetQuestTemplate(quest_id)) CharacterDatabase.PExecute("INSERT INTO character_queststatus_weekly (guid,quest) VALUES ('%u', '%u')", GetGUIDLow(), quest_id); } m_WeeklyQuestChanged = false; } Последний раз редактировалось zhenya; 20.03.2010 в 12:05. |
|
22.03.2010, 08:00 | #26 | |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
Цитата:
Код:
+void Player::_LoadWeeklyQuestStatus(QueryResult *result) +{ + m_weeklyquests.clear(); // зачем?) помоему оно и так чистое :) ... |
|
22.03.2010, 10:05 | #27 |
Гость
Сообщений: n/a
|
На всякий случай
|
31.03.2010, 08:36 | #28 |
Гость
Сообщений: n/a
|
с сегодняшнего дня недельники обновляются не во вторник а в среду.
взял с http://forums.wow-europe.com/thread....022978&sid=5#1 |
31.03.2010, 08:45 | #29 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Цитата:
|
|
07.04.2010, 03:26 | #31 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Патч в [9686]. Спасибо
В [9687] добавлены опции в конфиг для точного задания времени сброса для daily и weekly квестов и переписан код выбора времени при загрузке сервера с приведением к этим значениям текущего запланированного сброса.
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 07.04.2010 в 05:03. |
18 пользователя(ей) сказали cпасибо: |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[9799] Remove duplicate code causing next reset of daily/weekly quests to double up | newsbot | CMaNGOS Commits | 0 | 27.04.2010 17:30 |
[9689] Fixed typo in daily/weekly flags conflict check. | newsbot | CMaNGOS Commits | 0 | 07.04.2010 16:20 |
[9687] Add to mangos.conf options for daily/weekly reset time. | newsbot | CMaNGOS Commits | 0 | 07.04.2010 05:11 |
[9686] Implement support weekly quests cooldowns. | newsbot | CMaNGOS Commits | 0 | 07.04.2010 03:31 |