Ru-MaNGOS

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

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

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.03.2010, 07:30   #1
GriffonHeart
Гость
 
Сообщений: 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
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

на официалке если не изменяет память, виклик обновляется во вторник, а арена-поинты начисляются по средам
Fedia22 вне форума  
Старый 08.03.2010, 13:44   #3
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Цитата:
+ if(uint32 id = GetUInt32Value(PLAYER_FIELD_DAILY_QUESTS_1+quest_d aily_idx))
?

Насколько я знаю weekly квесты не имеют лимита по количеству и не помещаются в список daily квестов.... млм я не прав?
Vladimir вне форума  
Старый 08.03.2010, 13:51   #4
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

Надо поинтересоваться у людей на оффе, меня тоже смутило это, но это был самый быстрый способ реализации

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
на официалке если не изменяет память, виклик обновляется во вторник, а арена-поинты начисляются по средам
Вообще моё предложение - избавиться от time в character_queststatus_daily, а в saved_variables добавить две колонки с датой обновления дэйликов и датой обновления викликов.

Последний раз редактировалось GriffonHeart; 08.03.2010 в 14:03.
 
Старый 08.03.2010, 14:18   #5
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

Цитата:
Сообщение от GriffonHeart Посмотреть сообщение
Надо поинтересоваться у людей на оффе, меня тоже смутило это, но это был самый быстрый способ реализации
что именно?
Цитата:
Сообщение от Vladimir Посмотреть сообщение
?

Насколько я знаю weekly квесты не имеют лимита по количеству и не помещаются в список daily квестов.... млм я не прав?
не понял эту фразу, в МаНГОСе или на оффе?
Fedia22 вне форума  
Старый 08.03.2010, 14:27   #6
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
что именно?
Связаны ли виклики и дэйлики. Если допустим у тебя макс. 25 дэйликов в день, то исходя из моего патча получится, что выполнив виклик, всю неделю у тебя будет 24 дэйлика в день, пока не сбросятся виклики. Не знаю, правильно ли это...
 
Старый 08.03.2010, 14:10   #7
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Возможно, всеравно это время при сохранении одинаковое.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Пользователь сказал cпасибо:
Старый 08.03.2010, 14:24   #8
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

В поле даты для дайли-квестов зановится одно и тоже время на момент сохранений - время выполения последнего дейли-квеста.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 08.03.2010, 14:58   #9
Mr.Grom
Пользователь
 
Аватар для Mr.Grom
 
Регистрация: 08.03.2010
Сообщений: 43
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Mr.Grom На верном пути
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
В поле даты для дайли-квестов зановится одно и тоже время на момент сохранений - время выполения последнего дейли-квеста.
А если поменять на время и дату когда квест станет доступен снова, то можно все упростить? Неделю, месяц.
Mr.Grom вне форума  
Старый 08.03.2010, 14:29   #10
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

не влияет

но точно не помню
Fedia22 вне форума  
Старый 08.03.2010, 14:32   #11
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Там кстати один месячный есть - когда сбрасывается не знаю...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 08.03.2010, 17:26   #12
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Там кстати один месячный есть - когда сбрасывается не знаю...
А в QuestDef.h для него есть описаннный флаг?
 
Старый 08.03.2010, 14:36   #13
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

уточнил у оффициальщиков виклик идёт как квестом, и ни на что не влияет
Fedia22 вне форума  
Старый 08.03.2010, 15:09   #14
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

Викли да, во вторник в 8 утра постоянно, не зависимо, когда ты его сделал.
timmit вне форума  
Старый 08.03.2010, 23:57   #15
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

http://www.wowwiki.com/Monthly_quest я тут только читал
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 09.03.2010, 12:19   #16
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
http://www.wowwiki.com/Monthly_quest я тут только читал
http://ru.wowhead.com/?quest=9886 имеет флаг: QUEST_FLAGS_TBC | QUEST_FLAGS_SHARABLE. Может быть месячные квесты были убраны близардами?
 
Старый 15.03.2010, 07:05   #17
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

Цитата:
Сообщение от GriffonHeart Посмотреть сообщение
http://ru.wowhead.com/?quest=9886 имеет флаг: QUEST_FLAGS_TBC | QUEST_FLAGS_SHARABLE. Может быть месячные квесты были убраны близардами?
Этот квест если я не ошибаюсь висит с вопросительным синим знаком там какие то кристаллы нада принести!
PS убежал проверять)

add: квест по принципу пришёл и сдал, ничего сдавать не нужно... возможно действительно еженедельный или ежемесячный! послежу за ним

Последний раз редактировалось Fedia22; 15.03.2010 в 07:17.
Fedia22 вне форума  
Пользователь сказал cпасибо:
Vladimir (15.03.2010)
Старый 14.03.2010, 00:21   #18
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

может быть или он спец. образом сбрасывается.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 15.03.2010, 12:57   #19
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Для ясности текущего стояния:
Патч не может быть принят в предложенном виде так как использует поля daily квестов для хранения weekly-квестов что неверно...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 15.03.2010, 17:36   #20
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Для ясности текущего стояния:
Патч не может быть принят в предложенном виде так как использует поля daily квестов для хранения weekly-квестов что неверно...
Я уже занялся переписыванием патча.
Список квестов планирую хранить в std:set
Таймер сброса добавить в save_variable
Виклики хранить в другой таблице, а не вместе с дайликами.

Последний раз редактировалось GriffonHeart; 15.03.2010 в 17:41.
 
3 пользователя(ей) сказали cпасибо:
ANTOMA (16.03.2010), Vladimir (07.04.2010), YuruY (15.03.2010)
Старый 15.03.2010, 18:57   #21
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от GriffonHeart Посмотреть сообщение
Виклики хранить в другой таблице, а не вместе с дайликами.
А зачем еще одна таблица? Что мешает все хранить в одной, и потом разбирать что за квест по его типу?
TOM_RUS вне форума  
Старый 07.04.2010, 03:18   #22
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

О! Давно не заглядавал в ветку, а зря...

Цитата:
Сообщение от TOM_RUS Посмотреть сообщение
А зачем еще одна таблица? Что мешает все хранить в одной, и потом разбирать что за квест по его типу?
Сохранять данные проблематичнее, так как это 2 струкутрыи, да и выполнять половину запростов на добавление при изменениях быстрее ^^
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 20.03.2010, 08:55   #23
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

ADDED 20.03.2010
Патч переделан:
1) Список квестов хранится в std:set
2) Таймер сброса в save_variable
3) Отдельная таблица для хранения викликов
DOWNLOAD NOW!
 
10 пользователя(ей) сказали cпасибо:
ANTOMA (22.03.2010), Den (22.03.2010), Dereka (20.03.2010), Gerald (20.03.2010), Nordway (20.03.2010), PSZ (20.03.2010), unlucky (20.03.2010), YuruY (20.03.2010), zhenya (20.03.2010)
Старый 20.03.2010, 11:41   #24
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от GriffonHeart Посмотреть сообщение
ADDED 20.03.2010
Патч переделан:
1) Список квестов хранится в std:set
2) Таймер сброса в save_variable
3) Отдельная таблица для хранения викликов
DOWNLOAD NOW!
отписал в аське все же лучше
Код:
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.
zhenya вне форума  
5 пользователя(ей) сказали cпасибо:
ANTOMA (22.03.2010), Dereka (20.03.2010), unlucky (20.03.2010), Vladimir (07.04.2010)
Старый 21.03.2010, 19:24   #25
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

ADDED 22.03.2010
Оптимизация работы с std:set (special thx to zhenya)
DOWNLOAD NOW!
 
5 пользователя(ей) сказали cпасибо:
ANTOMA (22.03.2010), selector (05.04.2010), sven (22.03.2010), unlucky (22.03.2010), zhenya (22.03.2010)
Старый 22.03.2010, 08:00   #26
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от GriffonHeart Посмотреть сообщение
ADDED 22.03.2010
Оптимизация работы с std:set (special thx to zhenya)
DOWNLOAD NOW!
Код:
+void Player::_LoadWeeklyQuestStatus(QueryResult *result)
+{
+    m_weeklyquests.clear(); // зачем?) помоему оно и так чистое :)
...
zhenya вне форума  
Старый 22.03.2010, 10:05   #27
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

На всякий случай
 
Старый 31.03.2010, 08:36   #28
rodionov12
Гость
 
Сообщений: n/a
По умолчанию

с сегодняшнего дня недельники обновляются не во вторник а в среду.

взял с http://forums.wow-europe.com/thread....022978&sid=5#1
 
Старый 31.03.2010, 08:45   #29
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от rodionov12 Посмотреть сообщение
с сегодняшнего дня недельники обновляются не во вторник а в среду.

взял с http://forums.wow-europe.com/thread....022978&sid=5#1
Это с патчем 3.3.3, а не "с сегодняшнего дня".
LordJZ вне форума  
Старый 05.04.2010, 04:53   #30
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

В таблице save_variables с этим патчем вы можете установить хоть вторник, хоть среду, хоть любой другой день.
 
Пользователь сказал cпасибо:
ANTOMA (05.04.2010)
Старый 07.04.2010, 03:26   #31
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Патч в [9686]. Спасибо

В [9687] добавлены опции в конфиг для точного задания времени сброса для daily и weekly квестов
и переписан код выбора времени при загрузке сервера с приведением к этим значениям текущего запланированного
сброса.
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 07.04.2010 в 05:03.
Vladimir вне форума  
18 пользователя(ей) сказали cпасибо:
ANTOMA (24.04.2010), Den (07.04.2010), Dimitrius (10.04.2010), Konctantin (07.04.2010), Madmunus (07.04.2010), Neggod (07.04.2010), PSZ (07.04.2010), Ranger (08.04.2010), Shadez (07.04.2010), sven (07.04.2010), unlucky (07.04.2010), Viste (09.04.2010), zhenya (07.04.2010)
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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


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


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