Рейты сервера (навеяно 689 сборкой)

Теги:
 
+
-
edit
 

Pautina

новичок
А можно ли реализовать рейты так, чтобы...

Короче, украдено с настроек другого сервера:

code text
  1. // Use logarithmic drops? (Note 1)
  2. // Logarithmic drops scale drop rates in a non-linear fashion using the equation
  3. // Droprate(x,y) = x * (5 - log(x)) ^ (ln(y) / ln(5))
  4. // Where x is the original drop rate and y is the drop_rate modifier (the previously mentioned item_rate* variables)
  5. // Use the following table for an idea of how the rate will affect drop rates when logarithmic drops are used:
  6. // Y: Original Drop Rate
  7. // X: Rate drop modifier (eg: item_rate_equip)
  8. //  XY | 0.01 0.02  0.05  0.10  0.20  0.50  1.00  2.00  5.00 10.00 20.00
  9. // -----+---------------------------------------------------------------
  10. //   50 | 0.01 0.01  0.03  0.06  0.11  0.30  0.62  1.30  3.49  7.42 15.92
  11. //  100 | 0.01 0.02  0.05  0.10  0.20  0.50  1.00  2.00  5.00 10.00 20.00
  12. //  200 | 0.02 0.04  0.09  0.18  0.35  0.84  1.61  3.07  7.16 13.48 25.13
  13. //  500 | 0.05 0.09  0.22  0.40  0.74  1.65  3.00  5.40 11.51 20.00 33.98
  14. // 1000 | 0.10 0.18  0.40  0.73  1.30  2.76  4.82  8.28 16.47 26.96 42.69
  15. // 2000 | 0.20 0.36  0.76  1.32  2.28  4.62  7.73 12.70 23.58 36.33 53.64
  16. // 5000 | 0.50 0.86  1.73  2.91  4.81  9.11 14.45 22.34 37.90 53.91 72.53
  17. //10000 | 1.00 1.67  3.25  5.28  8.44 15.24 23.19 34.26 54.57 72.67 91.13
  18. //20000 | 2.00 3.26  6.09  9.59 14.83 25.49 37.21 52.55 77.70 97.95  100%
  19. //50000 | 5.00 7.87 13.98 21.12 31.23 50.31 69.56 92.48  100%  100%  100%


Что это даст думаю объяснять не нужно.

И второе предложение:
Сделать скажем таблицу зависимости дропов от левела. До определенного левела - одна, после - другая и моедт быть третья, четверая...
Если ... то ... иначе ... всё.  
+
-
edit
 

Balancer

администратор
★★★★★
Смысла модификатора не понял :)

А зависимость рейтов от уровня - делается в БД. Понижением Exp/Sp/дропа с мобов в завивимости от их уровня.
 

.net

новичок
Balancer> А зависимость рейтов от уровня - делается в БД. Понижением Exp/Sp/дропа с мобов в завивимости от их уровня.
Напомни пожалуйста какого вида запрос должен быть на изменение.
+
-
edit
 
Что-то в таком роде... Формулу понижения подбирать какая нравится.
UPDATE `npc` SET `exp` = ( `exp` * 10 / `level` ), `sp` = ( `sp` * 10 / `level` ) WHERE `level` BETWEEN '20' AND '40';
UPDATE `npc` SET `exp` = ( `exp` * 5 / `level` ), `sp` = ( `sp` * 5 / `level` ) WHERE `level` > '40';
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Pautina

новичок
Так.
Значит коряво объяснил. Попробую объяснить на пальцах.

Пример.
Вещь1 с дропом 0,01 %
Вещь2 с дропом 20%

Если стоит множитель дропа х10 то у первой будет выпадение 0,1% у второй - 100%.

Я предлагаю сделать логарифмическую зависимость. Чтобы при увеличении рейтов сервера произошло примерно следующее: Вешь1 - 1%, Вещь2 - 42.69%.

Для наших рейтов таблица должна выглядеть так:

Х-множитель
Y-дроп из базы

code text
  1.   XY | 0.01 0.02  0.05  0.10  0.20  0.50  1.00  2.00  5.00 10.00 20.00
  2.  -----+---------------------------------------------------------------
  3.   0.5 | 0.01 0.01  0.03  0.06  0.11  0.30  0.62  1.30  3.49  7.42 15.92
  4.   1.0 | 0.01 0.02  0.05  0.10  0.20  0.50  1.00  2.00  5.00 10.00 20.00
  5.   2.0 | 0.02 0.04  0.09  0.18  0.35  0.84  1.61  3.07  7.16 13.48 25.13
  6.   5.0 | 0.05 0.09  0.22  0.40  0.74  1.65  3.00  5.40 11.51 20.00 33.98
  7.  10.0 | 0.10 0.18  0.40  0.73  1.30  2.76  4.82  8.28 16.47 26.96 42.69
  8.  20.0 | 0.20 0.36  0.76  1.32  2.28  4.62  7.73 12.70 23.58 36.33 53.64
  9.  50.0 | 0.50 0.86  1.73  2.91  4.81  9.11 14.45 22.34 37.90 53.91 72.53
  10. 100.0 | 1.00 1.67  3.25  5.28  8.44 15.24 23.19 34.26 54.57 72.67 91.13
  11. 200.0 | 2.00 3.26  6.09  9.59 14.83 25.49 37.21 52.55 77.70 97.95  100%
  12. 500.0 | 5.00 7.87 13.98 21.12 31.23 50.31 69.56 92.48  100%  100%  100%


Так более понятно объяснил?
Если ... то ... иначе ... всё.  
+
-
edit
 

Pautina

новичок
Balancer> Смысла модификатора не понял :)
Balancer> А зависимость рейтов от уровня - делается в БД. Понижением Exp/Sp/дропа с мобов в завивимости от их уровня.

И тут меня не поняли...
Я имел в виду Уровень персонажа.
Если ... то ... иначе ... всё.  

Murkt

Pythoneer

Как по мне, то неправильно. ИМХО: если вещь выпадает с шансом 20%, а множитель 10 - то надо, чтобы всегда (100%) выпадало две вещи. Или 4 вещи, но с шансом 50%. Ну вы поняли.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Pautina

новичок
Смысл логарифмического множителя в том что можно значительно (в десятки раз) поднять рейт на редком дропе и незначительно (в полтора-два раза) на обычном (с 20-50%) дропе.
Если ... то ... иначе ... всё.  
+
-
edit
 

Pautina

новичок
А если сделать так чтобы если шанс стал 200 или 400% тогда бы выпадало 2 - 4 вещи тогда мир засрется ненужным высокорейтовым дропом. Зачем такое?
Если ... то ... иначе ... всё.  

Murkt

Pythoneer

дело в том, что на том же множителе х10 получается много кейматов, и мало именно того высокорейтового дропа - varnish, iron ore, leather, coal, charcoal, etc. Например, спойлом на х1 можно вытащить с шансом 1/100 кусок оружия, и с шансом 90/100 mithril ore, к примеру. На х10 - с 10/100 кусок оружия, и с 90/100 всё тот же mithril ore.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Pautina

новичок
Ладно... Это была лишь всего идея. Принимать решение - это дело разработчиков.
Но я всеравно не пойму как может быть дропа с рейтом 100% быть меньше чем с рейтом 0,01%. Это же такая редкость когда выбил что-то рарное, а когда из кажого моба сыпет всякий хлам... это уже не... куда еще больше, одним словом.
Если ... то ... иначе ... всё.  

Murkt

Pythoneer

чтобы собрать топ-Б пушку надо 13 кейматов, и 700+ mithril ore.
[team Їжачки - сумні падлюки]  
+
-
edit
 
В принципе если использовать вместе со случайным дропом материалов то можно... Но только как альт.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
AD Реклама Google — средство выживания форумов :)
+
-
edit
 

Pautina

новичок
А никто и не говорил о коренной смене множителя.
Просто можно ввести параметр и обозвать его скажем AltGameRateFormula (boolean)
или GameRateFormula : Linear, Logariphmic
Если ... то ... иначе ... всё.  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru