Ru-MaNGOS

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

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

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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2012, 21:49   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию REMOVE_REQ_SOURCE_ITEM

В `quest_template` есть поля `ReqSourceIdX`, в которых указываются вспомогательные итемы, необходимые для выполнения квеста.
Итемы из этих полей с bonding=4 должны удаляться из инвентаря и банка в следующих ситуациях:
1. Квест сдан.
2. Игрок отказался от квеста.

На текущий момент итемы не забираются вообще.

Ревизия ядра: 11973.
Патч во вложении, копия: http://paste2.org/p/1990165

Гетмангос не работает в обычном режиме, поэтому обсуждение патча пока здесь.

Заметил, что в функции DestroyItemCount есть несколько одинаковых кусков кода, повторяющихся для каждого места хранения итемов, но пока не стал выносить их в отдельную функцию.

Интересуют мнения:
1. Данный патч.
2. Оптимизация DestroyItemCount для избавления от повторяющихся кусков кода.
Вложения
Тип файла: diff REMOVE_REQ_SOURCE_ITEM.diff (16.7 Кб, 9 просмотров)
virusav вне форума  
6 пользователя(ей) сказали cпасибо:
Astoria (23.04.2012), Dereka (25.04.2012), evilstar (23.04.2012), KiriX (23.04.2012), NeatElves (22.04.2012), schmoozerd (25.04.2012)
Старый 23.04.2012, 00:55   #2
schmoozerd
MaNGOS Dev
 
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
schmoozerd Скоро придёт к известности
По умолчанию

Код:
-            if (const Quest *pQuest = sObjectMgr.GetQuestTemplate(quest))
Why do you remove the check if the quest exists?
schmoozerd вне форума  
Старый 23.04.2012, 09:18   #3
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Опечатка, в других версиях патча проверка есть.
Должно быть так:
Код:
            const Quest *pQuest = sObjectMgr.GetQuestTemplate(quest);
            if (pQuest)
            {
                if (pQuest->HasSpecialFlag(QUEST_SPECIAL_FLAG_TIMED))
                    _player->RemoveTimedQuest(quest);

                for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
                {
                    if (pQuest->ReqSourceId[i])
                    {
                        ItemPrototype const* iProto = ObjectMgr::GetItemPrototype(pQuest->ReqSourceId[i]);
                        if (iProto && iProto->Bonding == BIND_QUEST_ITEM)
                            _player->DestroyItemCount(pQuest->ReqSourceId[i], pQuest->ReqSourceCount[i], true, false, true);
                    }
                }
            }
virusav вне форума  
Старый 25.04.2012, 15:51   #4
schmoozerd
MaNGOS Dev
 
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
schmoozerd Скоро придёт к известности
По умолчанию

In [11979]. Thank you
schmoozerd вне форума  
Пользователь сказал cпасибо:
KiriX (26.04.2012)
 


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

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



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


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