Вот решил поделиться патчами. Данные патчи взяты с паблика!!! Почему решил выложить? Просто сейчас устонавливаю патчи в ядро и очень многие патчи необходимые под старые ревизии встречаются( Приходиться подгонять под новую) Данные патчи НЕОБХОДИМО устонавливать ВРУЧНУЮ! Поскольку все патчи устонавливаю вручную, то за номерацией строк я не слежу!!!
// if less then minimum players are in on one side, then start premature finish timer + UpdateBalance(); if (GetStatus() == STATUS_IN_PROGRESS && !isArena() && sBattlegroundMgr.GetPrematureFinishTime() && (GetPlayersCountByTeam(ALLIANCE) < GetMinPlayersPerTeam() || GetPlayersCountByTeam(HORDE) < GetMinPlayersPerTeam())) { if (!m_PrematureCountDown) @@ -1020,8 +1022,8 @@ if (isBattleground() && GetStatus() < STATUS_WAIT_LEAVE) { // a player has left the battleground, so there are free slots -> add to queue - AddToBGFreeSlotQueue(); - sBattlegroundMgr.ScheduleQueueUpdate(0, 0, bgQueueTypeId, bgTypeId, GetBracketId()); + AddToBGFreeSlotQueue(); + sBattlegroundMgr->ScheduleQueueUpdate(0, 0, bgQueueTypeId, bgTypeId, GetBracketId()); } // Let others know WorldPacket data; @@ -1268,6 +1270,8 @@ // returns the number how many players can join battleground to MaxPlayersPerTeam uint32 Battleground::GetFreeSlotsForTeam(uint32 Team) const { + if (HasBalanceTeam(Team)) + return 0; //if BG is starting ... invite anyone if (GetStatus() == STATUS_WAIT_JOIN) return (GetInvitedCount(Team) < GetMaxPlayersPerTeam()) ? GetMaxPlayersPerTeam() - GetInvitedCount(Team) : 0; @@ -1326,6 +1330,28 @@ return GetPlayersSize() < GetMaxPlayers(); }
+void Battleground::UpdateBalance() +{ + if (GetPlayersCountByTeam(ALLIANCE) < GetPlayersCountByTeam(HORDE)) + m_balance = GetPlayersCountByTeam(HORDE) - GetPlayersCountByTeam(ALLIANCE); + else if (GetPlayersCountByTeam(HORDE) < GetPlayersCountByTeam(ALLIANCE)) + m_balance = GetPlayersCountByTeam(ALLIANCE) - GetPlayersCountByTeam(HORDE); + else + m_balance = 0; +} + +bool Battleground::HasBalanceTeam(uint32 TeamId) const +{ + if (sWorld->getIntConfig(CONFIG_BALANCE_MINIMUM) < 0) + return false; + if (m_balance > sWorld->getIntConfig(CONFIG_BALANCE_MINIMUM)) + { + if (GetPlayersCountByTeam(TeamId) > GetPlayersCountByTeam(GetOtherTeam(TeamId))) + return true; + } + return false; +} + void Battleground::UpdatePlayerScore(Player *Source, uint32 type, uint32 value, bool doAddHonor) { //this procedure is called from virtual function implemented in bg subclass diff -r 0e8159958774 src/server/game/Battlegrounds/Battleground.h --- a/src/server/game/Battlegrounds/Battleground.h Sat Dec 18 11:37:43 2010 +0100 +++ b/src/server/game/Battlegrounds/Battleground.h Sat Dec 18 11:42:39 2010 +0100 @@ -417,6 +417,8 @@ return m_InvitedHorde; } bool HasFreeSlots() const; + bool HasBalanceTeam(uint32 TeamId) const; + void UpdateBalance(); uint32 GetFreeSlotsForTeam(uint32 Team) const;
DELETE FROM `trinity_string` WHERE `entry` = 11002; INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc8`) VALUES ('11002', 'not enought honor.', 'недостаточно хонора.');
Code
LFG.patch
# HG changeset patch # User BananaVodka@Valera # Date 1329557811 -14400 # Node ID 14b1cfd493358176e24160d652e4c822b3b8f234 # Parent 37536e6e494d4180e243ddf08bd98e7e3eb1322b LFG all location diff -r 37536e6e494d4180e243ddf08bd98e7e3eb1322b -r 14b1cfd493358176e24160d652e4c822b3b8f234 src/server/game/Entities/Player/Player.cpp --- a/src/server/game/Entities/Player/Player.cpp Sat Feb 18 13:30:49 2012 +0400 +++ b/src/server/game/Entities/Player/Player.cpp Sat Feb 18 13:36:51 2012 +0400 @@ -5554,6 +5554,10 @@
bool Player::CanJoinConstantChannelInZone(ChatChannelsEntry const* channel, AreaTableEntry const* zone) { + // Player can join LFG anywhere + if (channel->flags & CHANNEL_DBC_FLAG_LFG && sWorld->getBoolConfig(CONFIG_LFG_LOCATION_ALL)) + return true; + if (channel->flags & CHANNEL_DBC_FLAG_ZONE_DEP && zone->flags & AREA_FLAG_ARENA_INSTANCE) return false;
diff -r 37536e6e494d4180e243ddf08bd98e7e3eb1322b -r 14b1cfd493358176e24160d652e4c822b3b8f234 src/server/game/World/World.cpp --- a/src/server/game/World/World.cpp Sat Feb 18 13:30:49 2012 +0400 +++ b/src/server/game/World/World.cpp Sat Feb 18 13:36:51 2012 +0400 @@ -1274,6 +1274,8 @@
// MySQL ping time interval m_int_configs[CONFIG_DB_PING_INTERVAL] = ConfigMgr::GetIntDefault("MaxPingTime", 30); + + m_bool_configs[CONFIG_LFG_LOCATION_ALL] = ConfigMgr::GetBoolDefault("LFG.Location.All", true);
// misc m_bool_configs[CONFIG_PDUMP_NO_PATHS] = ConfigMgr::GetBoolDefault("PlayerDump.DisallowPaths", true); diff -r 37536e6e494d4180e243ddf08bd98e7e3eb1322b -r 14b1cfd493358176e24160d652e4c822b3b8f234 src/server/game/World/World.h --- a/src/server/game/World/World.h Sat Feb 18 13:30:49 2012 +0400 +++ b/src/server/game/World/World.h Sat Feb 18 13:36:51 2012 +0400 @@ -156,6 +156,7 @@ CONFIG_DUNGEON_FINDER_ENABLE, CONFIG_AUTOBROADCAST, CONFIG_ALLOW_TICKETS, + CONFIG_LFG_LOCATION_ALL, CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES, CONFIG_PRESERVE_CUSTOM_CHANNELS, CONFIG_PDUMP_NO_PATHS, diff -r 37536e6e494d4180e243ddf08bd98e7e3eb1322b -r 14b1cfd493358176e24160d652e4c822b3b8f234 src/server/worldserver/worldserver.conf.dist --- a/src/server/worldserver/worldserver.conf.dist Sat Feb 18 13:30:49 2012 +0400 +++ b/src/server/worldserver/worldserver.conf.dist Sat Feb 18 13:36:51 2012 +0400 @@ -2846,6 +2846,13 @@
PlayerDump.DisallowOverwrite = 1
+# +# Includes satellite to search for work elsewhere LFG +# Default: 0 - Disable +# 1 - Enable + +LFG.Location.All = 0 + #
Code
15>------ Пропуск построения: проект: INSTALL, Конфигурация: Release Win32 ------ 15>Проект не выбран для построения в данной конфигурации решения ========== Построение: успешно: 14, с ошибками: 0, без изменений: 0, пропущено: 1
Ближе к вечеру наверное выложу еще ИЧ, Яму Сарона под новую ревизию)
Так же предлогаю Всем желающим так же вылаживать патчи под новую ревизию у кого есть) Будет всем проще)
Quote (Just_Max)
balance.patch
Позволяет сбалансировать БГ, чтобы всех было поровну)
Quote (Just_Max)
CostLfg.patch
Платные сообщения в Поиск спутников! По умолчанию стоит 5 чести) Отключить поставить просто 0
Quote (Just_Max)
LFG.patch
Поиск спутников вне города) Настройка в конфиге
Человек не может жить без сердца, без печени, без почек. Зато, сука, без мозгов спокойно живут целыми поколениями.
Сообщение # 1 отредактировано Just_Max - Воскресенье, 30.09.2012, 13:57