Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Модификации ядра > Моды

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

Моды Неофициальная модификация ядра MaNGOS, собственные наработки, расширение функционала

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.03.2010, 13:30   #1
Dimitrius
Новичок
 
Регистрация: 07.03.2010
Сообщений: 17
Сказал(а) спасибо: 10
Поблагодарили 14 раз(а) в 4 сообщениях
Dimitrius На верном пути
По умолчанию [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
Dimitrius вне форума   Ответить с цитированием
10 пользователя(ей) сказали cпасибо:
Hantet (10.03.2010), PSZ (09.03.2010), rootor (09.03.2010), StinK (11.03.2010)
 


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

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


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


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


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