|
Моды Неофициальная модификация ядра MaNGOS, собственные наработки, расширение функционала |
|
Опции темы | Поиск в этой теме | Опции просмотра |
09.03.2010, 13:30 | #1 |
Новичок
Регистрация: 07.03.2010
Сообщений: 17
Сказал(а) спасибо: 10
Поблагодарили 14 раз(а) в 4 сообщениях
|
[mod] PvP Ranks & Titles
Патч добавляет поддержку титульных рангов за убийства, приносящие честь. По достижении нового титула, старый удаляется и присваивается новый.
Оригинальный автор мне не известен, Mr.Grom на гетмангос.ком выложил код, который послужил основой для моего скрипта. Тема на гетмангосе - http://getmangos.com/community/showt...p-Ranks-Titles Сам патч: Код:
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index f8ececd..df26f92 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6140,6 +6140,44 @@ void Player::UpdateHonorFields() } m_lastHonorUpdateTime = now; + + uint32 HonorKills = GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORBALE_KILLS); + uint32 victim_rank = 0; + + if (HonorKills == 0) + return; + + if (HonorKills >= 100 && HonorKills < 200) + victim_rank = 1; + else if (HonorKills >= 200 && HonorKills < 500) + victim_rank = 2; + else if (HonorKills >= 500 && HonorKills < 1000) + victim_rank = 3; + else if (HonorKills >= 1000 && HonorKills < 1500) + victim_rank = 4; + else if (HonorKills >= 1500 && HonorKills < 2000) + victim_rank = 5; + else if (HonorKills >= 2000 && HonorKills < 2500) + victim_rank = 6; + else if (HonorKills >= 2500 && HonorKills < 3000) + victim_rank = 7; + else if (HonorKills >= 3000 && HonorKills < 3500) + victim_rank = 8; + else if (HonorKills >= 3500 && HonorKills < 4000) + victim_rank = 9; + else if (HonorKills >= 4000 && HonorKills < 4500) + victim_rank = 10; + else if (HonorKills >= 4500 && HonorKills < 5000) + victim_rank = 11; + else if (HonorKills >= 5000 && HonorKills < 5500) + victim_rank = 12; + else if (HonorKills >= 5500 && HonorKills < 8000) + victim_rank = 13; + else if (HonorKills >= 8000) + victim_rank = 14; + + if (victim_rank == 0) + return; + + if (GetTeam() == HORDE && victim_rank != 0) + victim_rank += 14; + + CharTitlesEntry const* titleEntry = sCharTitlesStore.LookupEntry(victim_rank); + if (!HasTitle(titleEntry)) + SetTitle(titleEntry); + else + return; + + SetUInt32Value(PLAYER_CHOSEN_TITLE,victim_rank); + + uint32 startid = 1; + if (GetTeam() == HORDE) + startid = 15; + + for(int i = startid; i < victim_rank; ++i) + { + if (i == victim_rank) + break; + else + { + if (!HasTitle(titleEntry)) + continue; + else + { + CharTitlesEntry const* titleEntry = sCharTitlesStore.LookupEntry(i); + SetTitle(titleEntry,true); + } + } + } } ///Calculate the amount of honor gained based on the victim |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10476] Fix 31228 and ranks | newsbot | CMaNGOS Commits | 0 | 12.09.2010 19:00 |
Implement 49220 and ranks | newsbot | CMaNGOS Commits | 0 | 15.06.2010 15:30 |
[9834] Fix damage bonus applying from 49471 and ranks to 49143 and ranks | newsbot | CMaNGOS Commits | 0 | 04.05.2010 17:20 |
[9646] Really restore titles from data_backup table. | newsbot | CMaNGOS Commits | 0 | 31.03.2010 01:22 |
[9632] Restore load/save known titles. | newsbot | CMaNGOS Commits | 0 | 28.03.2010 00:12 |