Система рангов в ПвП
Привожу свой вольный перевод статьи Formulas - Honor System. Переводил самое основное, часть на английском.
Ну что же, поехали.
Переменные:
HK К-во ваших почетных убийство.
DK К-во непочетных убийств.
CP Количество полученной чести.
WS Недельный рейтинг, положение вашей чести относительно чести других игроков. Пересчитывается каждую неделю отдельно для каждой фракции.
NR Количество игроков, получивших ранг на предыдущей неделе (Также наибольшее значение WS)
RP Количество очков ранга, получених за всю игру.
HS Рейтинг рангов, тоже самое что и WS для RP
Rank 0 - 14. Ваш ранг определяет титул.
BHU Дополнительные единицы чести, бонус к чести который дается на батлграундах. Каждое задание на бг дает 1 или больше BHU.
Картинка где подписано что есть что:
Честь, хонор, CP
- Ваш хонор обнуляется раз в неделю
Хонор за почётные убийства
За убийство каждого игрока вам дают хонор, его количество зависит от ранга убитого, а так же от уровня (про уровень хз скоко дают, формулы нет).
Вот табличка Rank Alliance Title Horde Title CP for Kill (1.8+)
1 Private Scout 198
2 Corporal Grunt 210
3 Sergeant Sergeant 221
4 Master Sergeant Senior Sergeant 233
5 Sergeant Major First Sergeant 246
6 Knight Stone Guard 260
7 Knight-Lieutenant Blood Guard 274
8 Knight-Captain Legionnaire 289
9 Knight-Champion Centurion 305
10 Lieutenant Commander Champion 321
11 Commander Lieutenant General 339
12 Marshal General 357
13 Field Marshal Warlord 377
14 Grand Marshal High Warlord 398
- хонор распределяется между всеми игроками группы
- если вы убиваете одного и того же игрока в течении 24 часов, то с каждым убийством вы будете получать меньше хонора:
* 1st kill = 100% CP
* 2nd kill = 90% CP
* 3rd kill = 80% CP
* 4th kill = 70% CP
* 5th kill = 60% CP
* 6th kill = 50% CP
* 7th kill = 40% CP
* 8th kill = 30% CP
* 9th kill = 20% CP
* 10th kill = 10% CP
* 11th и дальше kills = 0 CP
- непочетные убийства не влияют на хонор, они уменьшают количество RP.
- количество хонора, который вы получили, вы сможете узнать на след день.
Так же хонор дается за НПС (лидеры фракций и альтерак) и за определенные действия на БГ( там же и BHU)
Про бг ничего пока писать не буду, там много и не особо интересно. Скажу только что на праздниках можно получить до 3к хонора за действия на бг, без учёта убийств.
В сумме мы имеем:
хонор = хонор за убийства + хонор за бг + хонор за НПС
Недельный рейтинг
Как ясно из названия, WS считается раз в неделю, вместе со всем-всем-всем. Игрок, у которого больше всего хонора будет 1 в этом рейтинге, и так далее. Чтобы попасть в рейтинг, необходимо иметь как минимум 25 почётных убийств.
Это была самая простая для понимания часть статьи, сейчас будет самое веселье, и то, что обычно при чтении статьи на англ вводит в ступор.
Очки рангов, RP
RP пересчитываются раз в неделю, ваш RP = RP до пересчета + RP заработано - RP потеряно.
увеличение RP или то что мы заработали
Количество полученых RP за неделю зависит от полученного хонора (CP), количества игроков(NR) и вашего рейтинга (WS). Функция по пересчёту хонора в RP меняется каждую неделю, и она представляет из себя ломанную линию. NR и WS используются для того, чтобы определить сегменты этой ломанной. Её точки - это ранги, которые имеют 2 характеристики(или координаты, если так угодно). Они и показывают соответствие между хонором и ранг поинтами.
Последний узел ломанной - СР максмальное, 13000. Иными словами, игрок который получил больше всего хонора получит 13000 RP (кроме маленьких серверов, смотри ниже). Нижний узел - 0, 0. Другими словами не получил хонора, не получишь и RP. Остальные точки определяются с помощью брейкпоинтов. Что такое брейкпоинт - это процент игроков, достойных получить определенный ранг, и этот процент - константа:
Ранг BreakPt
14 0.003
13 0.008
12 0.020
11 0.035
10 0.060
9 0.100
8 0.159
7 0.228
6 0.327
5 0.436
4 0.566
3 0.697
2 0.845
1 1.000
Чтобы лучше усвоить что такое брейкпоинт, пример - у нас 2045 игроков в рейтинге, итого имеем
WS(14) = 0.002 * 2045 = 4.09 = 4 хай варлорда
WS(13) = 0.007 * 2045 = 14.32 = 14 варлорда
WS(12) = 0.017 * 2045 = 34.76 = 35 генеролов
WS(11) = 0.037 * 2045 = 75.66 = 76
WS(10) = 0.077 * 2045 = 157.46 = 157
WS( 9) = 0.137 * 2045 = 280.17 = 280
и т.д.
Чтобы получить точки нашей ломанной кривой, есть формула -
CP (ранг) = ( CP(WS) + CP(WS+1) ) / 2
СР(ранг) - количество хонора чтоб перешагнуть точку ломанной или другими словами получить новый ранг.
СР(WS) = хонор последнего игрока с нашим рангом
CP(WS+1) = хонор первого игрока рангом, на 1 менше.
Как узнать номера этих игроков - пример выше.
Приведу пример.
Итак 14 точка нашей ломанной, тобишь 12000 очков ранга и СР (14), или хонор для получения хай варлорда.
CP(14) = (CP(WS=4) + CP(WS=5)) / 2
= (323844 + 306394) / 2
= 315119
CP(13) = (CP(WS=14) + CP(WS=15)) / 2
= (227956 + 225061) / 2
= 226508
И так для каждого ранга. Данные хонора брались с оффа, одной зимней недели 2006 года.
В итоге получаем все узлы ломанной
(431492, 13000) # top CP score gets top RP score
(315119, 12000) # breakpoint 14
(226508, 11000)
(164960, 10000)
(120420, 9000)
( 76316, 8000)
( 54408, 7000) # breakpoint 9
( 36958, 6000)
( 23369, 5000)
( 15491, 4000)
( 9221, 3000)
( 5231, 2000) # breakpoint 4
( 2539, 1000)
( 910, 400)
( 0, 0) # bottom end point
После всего этого имеем нашу ломанную
Напоминаю, что её сегменты прямые, и они используются для подсчета ранк поинтов. Пример
# Greenman получил CP=61353 за неделю.
# Верхний узел: ( 76316, 8000)
# Нижний узел: ( 54408, 7000)
RP = (CP - CPlo) / (CPup - CPlo) * (RPup - RPlo) + RPlo
RP = (61353 - 54408) / (76316 - 54408) * (8000 - 7000) + 7000
RP = 6945 / 21908 * 1000 + 7000
RP = 7317 # Вот столько мы и получили RP
Всё, самое сложное позади.
Примечание... На маленьких серверах где игроков в рейтинге меньше 250, количество хай варлордов будет равно 0. Думаю это ясно. Если у нас меньше 71 игроков, то и обычных варлордов не будет.
Уменьшение RP
Каждую неделю ваши ранг поинты будут уменшаться на 20%.
Введем некоторую дельту, это разница полученных RP и уменьшения на 20%. Если дельта отрицательна, то её уменьшают в 2 раза. Так же нижняя граница дельты -2500 RP. Для наглядности формулы:
Earning = подсчёт выше
Decay = round(0.2 * RP);
Delta = Earning - Decay;
if (Delta < 0) {
Delta = Delta / 2;
}
if (Delta < -2500) {
Delta = -2500;
}
RP = RP + Delta; #вот столько RP мы и будем иметь во время еженедельного подсчета.
Пропущу 2 незначительных раздела, и приступим к рассмотрению непочётных убийств. Тут всё просто, если убиваешь гражданскую цель - мгновенно теряешь RP, в зависимости от уровня убитой цели. Вот таблица с этой зависимостью
Level RP/DK
<29 10.0
29 10.0
30 11.5
31 13.0
32 14.5
33 16.0
34 17.5
35 19.0
36 21.0
37 23.0
38 25.0
Level RP/DK
39 27.0
40 29.0
41 31.0
42 34.2
43 37.4
44 40.7
45 43.9
46 47.1
47 50.3
48 53.6
49 56.8
Level RP/DK
50 60.0
51 64.0
52 68.0
53 72.0
54 76.0
55 80.0
56 84.0
57 88.0
58 92.0
59 96.0
60 100.0
Ранги
Ваш ранг зависит от вашего RP, которые подсчитались выше.
Вот таблица, думаю здесь всё понятно.
Rank RP Req'd Min Level Alliance Title Horde Title
1 25 HK 1 Private Scout
2 2000 1 Corporal Grunt
3 5000 1 Sergeant Sergeant
4 10000 33 Master Sergeant Senior Sergeant
5 15000 38 Sergeant Major First Sergeant
6 20000 41 Knight Stone Guard
7 25000 44 Knight-Lieutenant Blood Guard
8 30000 46 Knight-Captain Legionnaire
9 35000 48 Knight-Champion Centurion
10 40000 51 Lieutenant Commander Champion
11 45000 53 Commander Lieutenant General
12 50000 55 Marshal General
13 55000 57 Field Marshal Warlord
14 60000 59 Grand Marshal High Warlord
Так же при получении ранга идет проверка на ваш уроветь, на 1 лвл вы не сможете получить 14 ранг, даже если у вас 1000000000000000000000 CP. Парадокс, но что поделать. Просто при переводе в RP вашего хонора есть верхний предел для каждого уровня.
Вот и всё.
Примеры
Я их не переводил, думаю всё и так понятно, если внимательно читали выше.
Сколько RP я получу?
# week of Dec 7, Greenman didn't quite make the top 1000, which cut off at 11640 RP.
# his estimated RP for that week is RP=11500.
# week of Dec 14, Greenman was WS=299 on his server, and made the total top 1000 with RP=15498.
Decay = 0.2 * 11500 = 2300.
Delta = 15498 - 11500 = 3998.
# Delta = Earning - Decay gives
Earning = 3998 + 2300 = 6298
# so WS=299 earned RS = 6298 for that week.
----
# week of Dec 21, Greenman was WS=310 on his server, and made the total top 1000 with RP=18870.
Decay = 0.2 * 15498 = 3100
Delta = 18870 - 15498 = 3372
Earning = 3372 + 3100 = 6472
# so WS=310 earned RS = 6472 for that week.
# higher score for a lower standing? More ranked players the second week?
Какой максимальный ранг я смогу получить?
# Max RP is reached when Decay = Earning
0.2 * MaxRP = Earning
MaxRP = 5 * Earning
----
# If Greenman keeps up a consistent 6300 pts/week earning
MaxRP = 5 * 6300 = 31500
Max Rank = 8
Как быстро я его получу?
# Greenman starting at week 0 with RP=18870, Rank=5:
Week 1: RP = 18870 + 6300 - 3774 = 21396, Rank = 6
Week 2: RP = 21396 + 6300 - 4279 = 23417, Rank = 6
Week 3: RP = 23417 + 6300 - 4683 = 25034, Rank = 7
Week 4: RP = 25034 + 6300 - 5007 = 26327, Rank = 7
Week 5: RP = 26327 + 6300 - 5265 = 27362, Rank = 7
Week 6: RP = 27362 + 6300 - 5472 = 28190, Rank = 7
Week 7: RP = 28190 + 6300 - 5638 = 28852, Rank = 7
Week 8: RP = 28852 + 6300 - 5770 = 29382, Rank = 7
Week 9: RP = 29382 + 6300 - 5876 = 29806, Rank = 7
Week 10: RP = 29806 + 6300 - 5961 = 30145, Rank = 8
Как мне получить 14 ранг?
# How long to progress from Rank = 13 to Rank = 14 earning 12500 RP per week?
Week 1: RP = 55000 + 12500 - 11000 = 56500, Rank = 13
Week 2: RP = 56500 + 12500 - 11300 = 57700, Rank = 13
Week 3: RP = 57700 + 12500 - 11540 = 58660, Rank = 13
Week 4: RP = 58660 + 12500 - 11732 = 59428, Rank = 13
Week 5: RP = 59428 + 12500 - 11886 = 60042, Rank = 14
Как быстро я буду терять RP?
# If Greenman gives up on PVP for 3 months:
Week 1: RP = 18870 - 1887 = 16983, Rank = 5
Week 2: RP = 16983 - 1698 = 15285, Rank = 5
Week 3: RP = 15285 - 1529 = 13756, Rank = 4
Week 4: RP = 13756 - 1376 = 12380, Rank = 4
Week 5: RP = 12380 - 1238 = 11142, Rank = 4
Week 6: RP = 11142 - 1114 = 10028, Rank = 4
Week 7: RP = 10028 - 1003 = 9025, Rank = 3
Week 8: RP = 9025 - 903 = 8122, Rank = 3
Week 9: RP = 8122 - 812 = 7310, Rank = 3
Week 10: RP = 7310 - 731 = 6579, Rank = 3
Week 11: RP = 6579 - 658 = 5921, Rank = 3
Week 12: RP = 5921 - 592 = 5329, Rank = 3
Week 13: RP = 5329 - 533 = 4796, Rank = 2