Ru-MaNGOS

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

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

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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.05.2010, 05:13   #1
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию [9878][patch] Отображение BGWeekend в списке БГ

Патч реализует нововведение близов в патче 3.3.3

+ Поле боя, которому посвящены выходные, будет отображаться на соответствующей закладке и в календаре с пометкой «К оружию!».
+ Для изменения количества получаемый очков чести, зарабатываемое на этих полях боя, необходим патч [patch] Random BattleGrounds

Код:
diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h
index c762e15..c1d1a21 100644
--- a/src/game/DBCStructure.h
+++ b/src/game/DBCStructure.h
@@ -574,7 +574,7 @@ struct BattlemasterListEntry
     char*   name[16];                                       // 11-26
     //uint32 nameFlags                                      // 27 string flag, unused
     uint32 maxGroupSize;                                    // 28 maxGroupSize, used for checking if queue as group
-    //uint32 HolidayWorldStateId;                           // 29 new 3.1
+    uint32 HolidayWorldStateId;                             // 29 new 3.1
     uint32 minLevel;                                        // 30, min level (sync with PvPDifficulty.dbc content)
     uint32 maxLevel;                                        // 31, max level (sync with PvPDifficulty.dbc content)
 };
diff --git a/src/game/DBCfmt.h b/src/game/DBCfmt.h
index 8c2fc67..cb388d1 100644
--- a/src/game/DBCfmt.h
+++ b/src/game/DBCfmt.h
@@ -27,7 +27,7 @@ const char AreaTriggerEntryfmt[]="niffffffff";
 const char AuctionHouseEntryfmt[]="niiixxxxxxxxxxxxxxxxx";
 const char BankBagSlotPricesEntryfmt[]="ni";
 const char BarberShopStyleEntryfmt[]="nixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiii";
-const char BattlemasterListEntryfmt[]="niiiiiiiiixssssssssssssssssxixii";
+const char BattlemasterListEntryfmt[]="niiiiiiiiixssssssssssssssssxiiii";
 const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 const char CharTitlesEntryfmt[]="nxssssssssssssssssxxxxxxxxxxxxxxxxxxi";
 const char ChatChannelsEntryfmt[]="iixssssssssssssssssxxxxxxxxxxxxxxxxxx";
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 9f99e88..5d0d05a 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -8369,6 +8369,22 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid)
             break;
     }
     GetSession()->SendPacket(&data);
+    SendBGWeekendWorldStates();
+}
+
+void Player::SendBGWeekendWorldStates()
+{
+    for(uint32 i = 1; i < sBattlemasterListStore.GetNumRows(); ++i)
+    {
+        BattlemasterListEntry const * bl = sBattlemasterListStore.LookupEntry(i);
+        if(bl && bl->HolidayWorldStateId)
+        {
+            if(BattleGroundMgr::IsBGWeekend((BattleGroundTypeId)bl->id))
+                SendUpdateWorldState(bl->HolidayWorldStateId,1);
+            else
+                SendUpdateWorldState(bl->HolidayWorldStateId,0);
+        }
+    }
 }
 
 uint32 Player::GetXPRestBonus(uint32 xp)
diff --git a/src/game/Player.h b/src/game/Player.h
index 79188db..eefcdc1 100644
--- a/src/game/Player.h
+++ b/src/game/Player.h
@@ -1989,6 +1989,7 @@ class MANGOS_DLL_SPEC Player : public Unit
         void SendInitWorldStates(uint32 zone, uint32 area);
         void SendUpdateWorldState(uint32 Field, uint32 Value);
         void SendDirectMessage(WorldPacket *data);
+        void SendBGWeekendWorldStates();
 
         void SendAurasForTarget(Unit *target);

Последний раз редактировалось GriffonHeart; 05.05.2010 в 12:17.
 
11 пользователя(ей) сказали cпасибо:
ANTOMA (04.05.2010), Den (03.05.2010), Fear (05.05.2010), Foks (03.05.2010), Mayss (03.05.2010), PSZ (03.05.2010), srv38 (03.05.2010), sven (03.05.2010), Vladimir (12.05.2010)
Старый 04.05.2010, 20:28   #2
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Код:
10>..\..\src\game\Player.cpp(8423) : warning C4018: '<' : signed/unsigned mismatch
Код:
for(int i = 1; i < sSpellStore.GetNumRows(); ++i)
возможное решение
Код:
    for(int i = 1; i < int32(sSpellStore.GetNumRows()); ++i)
Insider42 вне форума  
Старый 04.05.2010, 20:52   #3
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Не нужно тут приведение типов.
Код:
for(uint32 i = 1; i < sSpellStore.GetNumRows(); ++i)
zergtmn вне форума  
Старый 05.05.2010, 02:26   #4
GriffonHeart
Гость
 
Сообщений: n/a
По умолчанию

Ну, пусть будет uint32.
 
Старый 05.05.2010, 06:45   #5
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию

а причем тут for(uint32 i = 1; i < sSpellStore.GetNumRows(); ++i)
sSpellStore если дальше используется sBattlemasterListStore. ?мм ? может быть
for(uint32 i = 1; i < sBattlemasterListStore.GetNumRows(); ++i)?
zhenya вне форума  
5 пользователя(ей) сказали cпасибо:
ANTOMA (05.05.2010), Dereka (05.05.2010), Insider42 (07.05.2010), sven (05.05.2010)
Старый 12.05.2010, 05:24   #6
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Ну, патч до некоторой степени хак как я понимаю по причине посылки не как часть InitWorldState пакета. Но для этого надо изменить путь заполнения основного списка, сейчас он сам как большой хак :/

В предложенном виде добавлено в [9878]. Спасибо

[added]В [9879] добавлено выставдение world state на start/stop соотвевующео gameevent для online играков

В [9880] переписан код подготовки пакета world states init и использование update заменено на добавление состояния нормальным образом в init-пакет.
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 12.05.2010 в 08:33.
Vladimir вне форума  
3 пользователя(ей) сказали cпасибо:
ANTOMA (17.05.2010), Laise (12.05.2010), Limpnau (14.05.2010)
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10641][hack fix] Отображение характеристик heroic предметов. Warlord123 Принятые патчи 6 25.10.2010 15:30
realm в списке показывается offline WildLynx MaNGOSZero (1.12.X) 39 24.10.2010 13:56
Отображение сгруппированных квестов timmit Баг-репорты 7 30.05.2010 12:59
[9878] Set for client battleground weekend event world state. newsbot CMaNGOS Commits 0 12.05.2010 05:30
неправильное отображение Game_event в календаре timmit Баг-репорты 5 08.03.2010 16:46


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


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