Может кто-то развёрнуто объяснить, как рассчитывается опыт? Как узнать, сколько нужно опыта герою для перехода на следующий уровень, и на сколько увеличивается значение требуемого опыта для каждого уровня? От чего зависит опыт, получаемый за врагов, есть какие-то формулы?
Принятый ответ
заведи массив = макс опыт за каждый уровень. (если вам нужно знать скока осталось. хотя зачем?)
XP[1] = 200 макс опыт за 1 уровень
XP[2] = 300 макс опыт за 2 уровень
А можно использовать готовую формулу вместо массивов
я не нашел нужной нативки для узнавания макс опыта за уровень. А значит надо самим создать. это не трудно самому подсчитать, но надо знать как.
XP[1] = 200 макс опыт за 1 уровень
XP[2] = 300 макс опыт за 2 уровень
А можно использовать готовую формулу вместо массивов
я не нашел нужной нативки для узнавания макс опыта за уровень. А значит надо самим создать. это не трудно самому подсчитать, но надо знать как.
чтобы подсчитать надо залезать в константы
Максимальный опыт героя - 1200 <= не ясно, 1200 опыта = требования до повышения к следующему уровню. Возможно близарды ввели это, из-за того, что константы могут завести слишком сильное требование очков опыта, и вам придеться очень долго качать. А тут не зря ограничение.
Максимальный уровень боевой единицы - 20
Максимальный уровень героя - Максимально достижимый уровень героя. По умолчанию константа равна 10.
Максимальный уровень боевой единицы - 20
Максимальный уровень героя - Максимально достижимый уровень героя. По умолчанию константа равна 10.
==============
ТРЕБОВАНИЕ ОЧКОВ ОПЫТА ДО СЛЕДУЮЩЕГО УРОВНЯ:
ТРЕБОВАНИЕ ОЧКОВ ОПЫТА ДО СЛЕДУЮЩЕГО УРОВНЯ:
Константы, в которых задано кол-во опыта на новый уровень:
Герою требуется опыт: таблица (NeedHeroXP) = 200.00 <=сюда можно несколько значении задать, ведь эта таблица - обозначим за BASE
Герою требуется опыт: предыдущие значения фактора (NeedHeroXPFormulaA) = 1.00 - обозначим за A
Герою требуется опыт: фактор константы (NeedHeroXPFormulaB) = 0 - обозначим за B
Герою требуется опыт: фактор уровня (NeedHeroXPFormulaC) = 100 - обозначим за C
Герою требуется опыт: таблица (NeedHeroXP) = 200.00 <=сюда можно несколько значении задать, ведь эта таблица - обозначим за BASE
Герою требуется опыт: предыдущие значения фактора (NeedHeroXPFormulaA) = 1.00 - обозначим за A
Герою требуется опыт: фактор константы (NeedHeroXPFormulaB) = 0 - обозначим за B
Герою требуется опыт: фактор уровня (NeedHeroXPFormulaC) = 100 - обозначим за C
Следует отметить, что в поле NeedHeroXP может содержаться массив чисел, в этом случае в качестве требований опыта берутся эти числа, в том порядке в котором они записаны. Если этих чисел не хватает, то последнее из них берется в качестве числа BASE и дальнейшие требования высчитываются по описанной ниже формуле. Если поле пустое, то используется одно стандартное значение 200.
Не указанные в таблице NeedHeroXP требования находятся по рекурсивной формуле, то есть требование опыта для текущего уровня находится исходя из требований предыдущего:
Требования(для уровня N) = Требования(для уровня N-1) * A + B * N + С
Требования(для уровня N) = Требования(для уровня N-1) * A + B * N + С
Тогда таблица требований опыта будет выстраиваться следующим образом:
2 уровень 200
3 уровень 200*1+0*200+100=300
4 уровень 300*1+0*200+100=400
5 уровень 400*1+0*200+100=500
6 уровень 500*1+0*200+100=600
и так далее
2 уровень 200
3 уровень 200*1+0*200+100=300
4 уровень 300*1+0*200+100=400
5 уровень 400*1+0*200+100=500
6 уровень 500*1+0*200+100=600
и так далее
Рекурсивную формулу можно записать в общем виде:
В этой формуле L - это уровень, для которого мы считаем требования опыта(то есть не текущий уровень юнита, а следующий), а S - это последний уровень, для которого задано табличное значение, а BASE - это как раз это последнее заданное табличное значение.
Хотя она не так проста для понимания как рекурсивная она работает не хуже =)
Хотя она не так проста для понимания как рекурсивная она работает не хуже =)
Пример:
Пусть заданы значения
BASE = 100
A = 2
B = 50
C = 9
Тогда таблица требований опыта будет выстраиваться следующим образом:
2 уровень 100
3 уровень 359 = 100 * 2 + 50 * 3 + 9
4 уровень 927 = 359 * 2 + 50 * 4 + 9
5 уровень 2113 = 927 * 2 + 50 * 5 + 9
6 уровень 4535 = 2113 * 2 + 50 * 6 + 9
...
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 100.
Пусть заданы значения
BASE = 100
A = 2
B = 50
C = 9
Тогда таблица требований опыта будет выстраиваться следующим образом:
2 уровень 100
3 уровень 359 = 100 * 2 + 50 * 3 + 9
4 уровень 927 = 359 * 2 + 50 * 4 + 9
5 уровень 2113 = 927 * 2 + 50 * 5 + 9
6 уровень 4535 = 2113 * 2 + 50 * 6 + 9
...
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 100.
Стандартная таблица опыта имеет параметры:
BASE = 200
A = 1
B = 100
C = 0
и выглядит следующим образом:
2 уровень 200
3 уровень 500 = 200 * 1 + 100 * 3
4 уровень 900 = 500 * 1 + 100 * 4
5 уровень 1400 = 900 * 1 + 100 * 5
6 уровень 2000 = 1400 * 1 + 100 * 6
7 уровень 2700 = 2000 * 1 + 100 * 7
8 уровень 3500 = 2700 * 1 + 100 * 8
9 уровень 4400 = 3500 * 1 + 100 * 9
10 уровень 5400 = 4400 * 1 + 100 * 10
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 200.
BASE = 200
A = 1
B = 100
C = 0
и выглядит следующим образом:
2 уровень 200
3 уровень 500 = 200 * 1 + 100 * 3
4 уровень 900 = 500 * 1 + 100 * 4
5 уровень 1400 = 900 * 1 + 100 * 5
6 уровень 2000 = 1400 * 1 + 100 * 6
7 уровень 2700 = 2000 * 1 + 100 * 7
8 уровень 3500 = 2700 * 1 + 100 * 8
9 уровень 4400 = 3500 * 1 + 100 * 9
10 уровень 5400 = 4400 * 1 + 100 * 10
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 200.
Почему я так много внимания уделил этой формуле? Потому что она широко используется в этой игре.
НО не все так просто. Если это был крип то тут вмешивается другая константа "Набранный героем опыт: таблица сокращения монстров: баз. значение:80%, 70%, 60%, 50%, 0%." и сокращает эти 25 на величину из этой константы (пример: убил ты крипа 1-го лвл и получаешь не 25 а 20 (80% от 25 = 20). Формула вступает в силу со второго лвл, т.к насчет первого все прописано. За убийство героев, опыт рассчитывает тоже отдельно, точных данных пока не знаю. На форуме все давно есть.
=============
СКОЛЬКО ДАЮТ ОПЫТА ЗА УБИЙСТВА:
СКОЛЬКО ДАЮТ ОПЫТА ЗА УБИЙСТВА:
Опыт указать можно не только у юнита (напомню, у юнита можно указать награды), но и в константах.
Опыт по формуле:
Опыт = Опыт(для уровня N-1) * A + B * N + С , где N - уровень убитого крипа или умершего героя
Опыт = Опыт(для уровня N-1) * A + B * N + С , где N - уровень убитого крипа или умершего героя
ЗА УБИЙСТВО ГЕРОЯ:
Набранный героем опыт: герой, таблица: 100, 120, 160, 220, 300
Набранный героем опыт: герой, фактор константы: 100
Набранный героем опыт: герой, фактор предыдущего значения: 1.00
Набранный героем опыт: герой, фактор уровня = 0
Набранный героем опыт: герой, фактор константы: 100
Набранный героем опыт: герой, фактор предыдущего значения: 1.00
Набранный героем опыт: герой, фактор уровня = 0
Набранный героем опыт: дополнительные факторы класса 1-9 (думаю за каждое развитие ратуши противника вам начисляют доп опыт, тут точнее зависимость от героев. Тк чем развита ратуша, тем больше героев можно нанять)
Таблица наград опыта за убийство героев рассчитывается по той же формуле, по умолчанию имеет параметры:
BASE(GrantHeroXP) = 100,120,160,220,300
A(GrantHeroXPFormulaA) = 1
B(GrantHeroXPFormulaB) = 0
C(GrantHeroXPFormulaC) = 100
Тогда стандартная таблица наград опыта имеет вид:
1 уровень 100
2 уровень 120
3 уровень 160
4 уровень 220
5 уровень 300
6 уровень 400 = 300 * 1 + 100
7 уровень 500 = 400 * 1 + 100
8 уровень 600 = 500 * 1 + 100
9 уровень 700 = 600 * 1 + 100
10 уровень 800 = 700 * 1 + 100
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 5, а в качестве параметра BASE использовать последнее заданное в таблице значение 300.
BASE(GrantHeroXP) = 100,120,160,220,300
A(GrantHeroXPFormulaA) = 1
B(GrantHeroXPFormulaB) = 0
C(GrantHeroXPFormulaC) = 100
Тогда стандартная таблица наград опыта имеет вид:
1 уровень 100
2 уровень 120
3 уровень 160
4 уровень 220
5 уровень 300
6 уровень 400 = 300 * 1 + 100
7 уровень 500 = 400 * 1 + 100
8 уровень 600 = 500 * 1 + 100
9 уровень 700 = 600 * 1 + 100
10 уровень 800 = 700 * 1 + 100
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 5, а в качестве параметра BASE использовать последнее заданное в таблице значение 300.
ЗА УБИЙСТВО КРИПА:
Набранный героем опыт: норма, таблица: 25
Набранный героем опыт: норма, фактор константы: 5
Набранный героем опыт: норма, фактор предыдущего значения: 1.00
Набранный героем опыт: норма, фактор уровня = 5
Набранный героем опыт: норма, фактор константы: 5
Набранный героем опыт: норма, фактор предыдущего значения: 1.00
Набранный героем опыт: норма, фактор уровня = 5
Набранный героем опыт: фактор вызываемой боевой единицы: 0.5 за вызываемую боевую единицу получаете меньше опыта
Таблица наград опыта за убийство крипа рассчитывается по той же формуле, по умолчанию имеет параметры:
BASE(GrantNormalXP) = 25
A(GrantNormalXPFormulaA) = 1
B(GrantNormalFormulaB) = 5
C(GrantNormalXPFormulaC) = 5
Тогда стандартная таблица наград опыта имеет вид:
1 уровень 25
2 уровень 40 = 25 * 1 + 5 * 2 + 5
3 уровень 60 = 40 * 1 + 5 * 3 + 5
4 уровень 85 = 60 * 1 + 5 * 4 + 5
5 уровень 115 = 85 * 1 + 5 * 5 + 5
6 уровень 150 = 115 * 1 + 5 * 6 + 5
7 уровень 190 = 150 * 1 + 5 * 7 + 5
8 уровень 235 = 190 * 1 + 5 * 8 + 5
9 уровень 285 = 235 * 1 + 5 * 9 + 5
10 уровень 340 = 285 * 1 + 5 * 10 + 5
...
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 1, а в качестве параметра BASE использовать последнее заданное в таблице значение 25.
BASE(GrantNormalXP) = 25
A(GrantNormalXPFormulaA) = 1
B(GrantNormalFormulaB) = 5
C(GrantNormalXPFormulaC) = 5
Тогда стандартная таблица наград опыта имеет вид:
1 уровень 25
2 уровень 40 = 25 * 1 + 5 * 2 + 5
3 уровень 60 = 40 * 1 + 5 * 3 + 5
4 уровень 85 = 60 * 1 + 5 * 4 + 5
5 уровень 115 = 85 * 1 + 5 * 5 + 5
6 уровень 150 = 115 * 1 + 5 * 6 + 5
7 уровень 190 = 150 * 1 + 5 * 7 + 5
8 уровень 235 = 190 * 1 + 5 * 8 + 5
9 уровень 285 = 235 * 1 + 5 * 9 + 5
10 уровень 340 = 285 * 1 + 5 * 10 + 5
...
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 1, а в качестве параметра BASE использовать последнее заданное в таблице значение 25.
======================================================================
константа Набранный героем опыт: таблица сокращения монстров - 80, 70, 60, 50, 0
константа Набранный героем опыт: таблица сокращения монстров - 80, 70, 60, 50, 0
Если убитый героем воин является монстром (нейтральным крипом), в полном объёме опыт вы не получите. Это нормально - ведь герой, допустим, 42 уровня, может убить гнолла за взмах оружия.
Опыт за крипа рассчитывается, как дают за обычного юнита, но с небольшим отличием - помимо всего этого применяется таблица сокращения монстров.
Кратко: по идее игра берет базовый опыт, который указан у юнита в ро, и по формуле выдает новое значение. для примера пусть игра выдаст 25 опыта. От крипов еще меньше получаем, тк от константы сокращается опыт. Пример от убийства воина герой 1-го уровня получает не 25 опыта, а 20 опыта
Опыт за крипа рассчитывается, как дают за обычного юнита, но с небольшим отличием - помимо всего этого применяется таблица сокращения монстров.
Кратко: по идее игра берет базовый опыт, который указан у юнита в ро, и по формуле выдает новое значение. для примера пусть игра выдаст 25 опыта. От крипов еще меньше получаем, тк от константы сокращается опыт. Пример от убийства воина герой 1-го уровня получает не 25 опыта, а 20 опыта
От убийства крипа герой 1 уровня получит 80% от 25. 20 опыта
От убийства крипа герой 2 уровня получит 70% от 25. 17,5 опыта
От убийства крипа герой 3 уровня получит 60% от 25. 15 опыта
От убийства крипа герой 4 уровня получит 50% от 25. 12,5 опыта
От убийства крипа герой 5 уровня получит 0% от 25. 0 опыта
От убийства крипа герой 2 уровня получит 70% от 25. 17,5 опыта
От убийства крипа герой 3 уровня получит 60% от 25. 15 опыта
От убийства крипа герой 4 уровня получит 50% от 25. 12,5 опыта
От убийства крипа герой 5 уровня получит 0% от 25. 0 опыта
Последнее значение таблицы применяется к остальным уровням. Вот, почему после достижения 5 уровня герой опыта не получает. В таблице написано "0".
Чтобы позволить герою прокачку выше 5 уровня, требуется просто изменить его на какое-либо значение выше нуля. Оно определит процент получаемого опыта на других уровнях.
Чтобы позволить герою прокачку выше 5 уровня, требуется просто изменить его на какое-либо значение выше нуля. Оно определит процент получаемого опыта на других уровнях.
==============
Опыт героя: максимальный уровень героя : 25
Опыт героя: общее распределение = да - опыт за убитого распределяется между героями (тут есть определеннный радиус действия)
Опыт героя: разрушении здании дает опыт = нет
Опыт героя: общее распределение = да - опыт за убитого распределяется между героями (тут есть определеннный радиус действия)
Опыт героя: разрушении здании дает опыт = нет
взято из faq форума 4 раздел, формулы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
XP[1] = 200 макс опыт за 1 уровень
XP[2] = 300 макс опыт за 2 уровень
А можно использовать готовую формулу вместо массивов
я не нашел нужной нативки для узнавания макс опыта за уровень. А значит надо самим создать. это не трудно самому подсчитать, но надо знать как.
Максимальный уровень боевой единицы - 20
Максимальный уровень героя - Максимально достижимый уровень героя. По умолчанию константа равна 10.
ТРЕБОВАНИЕ ОЧКОВ ОПЫТА ДО СЛЕДУЮЩЕГО УРОВНЯ:
Герою требуется опыт: таблица (NeedHeroXP) = 200.00 <=сюда можно несколько значении задать, ведь эта таблица - обозначим за BASE
Герою требуется опыт: предыдущие значения фактора (NeedHeroXPFormulaA) = 1.00 - обозначим за A
Герою требуется опыт: фактор константы (NeedHeroXPFormulaB) = 0 - обозначим за B
Герою требуется опыт: фактор уровня (NeedHeroXPFormulaC) = 100 - обозначим за C
Требования(для уровня N) = Требования(для уровня N-1) * A + B * N + С
2 уровень 200
3 уровень 200*1+0*200+100=300
4 уровень 300*1+0*200+100=400
5 уровень 400*1+0*200+100=500
6 уровень 500*1+0*200+100=600
и так далее
Хотя она не так проста для понимания как рекурсивная она работает не хуже =)
Пусть заданы значения
BASE = 100
A = 2
B = 50
C = 9
Тогда таблица требований опыта будет выстраиваться следующим образом:
2 уровень 100
3 уровень 359 = 100 * 2 + 50 * 3 + 9
4 уровень 927 = 359 * 2 + 50 * 4 + 9
5 уровень 2113 = 927 * 2 + 50 * 5 + 9
6 уровень 4535 = 2113 * 2 + 50 * 6 + 9
...
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 100.
BASE = 200
A = 1
B = 100
C = 0
и выглядит следующим образом:
2 уровень 200
3 уровень 500 = 200 * 1 + 100 * 3
4 уровень 900 = 500 * 1 + 100 * 4
5 уровень 1400 = 900 * 1 + 100 * 5
6 уровень 2000 = 1400 * 1 + 100 * 6
7 уровень 2700 = 2000 * 1 + 100 * 7
8 уровень 3500 = 2700 * 1 + 100 * 8
9 уровень 4400 = 3500 * 1 + 100 * 9
10 уровень 5400 = 4400 * 1 + 100 * 10
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 200.
СКОЛЬКО ДАЮТ ОПЫТА ЗА УБИЙСТВА:
Опыт = Опыт(для уровня N-1) * A + B * N + С , где N - уровень убитого крипа или умершего героя
Набранный героем опыт: герой, фактор константы: 100
Набранный героем опыт: герой, фактор предыдущего значения: 1.00
Набранный героем опыт: герой, фактор уровня = 0
BASE(GrantHeroXP) = 100,120,160,220,300
A(GrantHeroXPFormulaA) = 1
B(GrantHeroXPFormulaB) = 0
C(GrantHeroXPFormulaC) = 100
Тогда стандартная таблица наград опыта имеет вид:
1 уровень 100
2 уровень 120
3 уровень 160
4 уровень 220
5 уровень 300
6 уровень 400 = 300 * 1 + 100
7 уровень 500 = 400 * 1 + 100
8 уровень 600 = 500 * 1 + 100
9 уровень 700 = 600 * 1 + 100
10 уровень 800 = 700 * 1 + 100
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 5, а в качестве параметра BASE использовать последнее заданное в таблице значение 300.
Набранный героем опыт: норма, фактор константы: 5
Набранный героем опыт: норма, фактор предыдущего значения: 1.00
Набранный героем опыт: норма, фактор уровня = 5
BASE(GrantNormalXP) = 25
A(GrantNormalXPFormulaA) = 1
B(GrantNormalFormulaB) = 5
C(GrantNormalXPFormulaC) = 5
Тогда стандартная таблица наград опыта имеет вид:
1 уровень 25
2 уровень 40 = 25 * 1 + 5 * 2 + 5
3 уровень 60 = 40 * 1 + 5 * 3 + 5
4 уровень 85 = 60 * 1 + 5 * 4 + 5
5 уровень 115 = 85 * 1 + 5 * 5 + 5
6 уровень 150 = 115 * 1 + 5 * 6 + 5
7 уровень 190 = 150 * 1 + 5 * 7 + 5
8 уровень 235 = 190 * 1 + 5 * 8 + 5
9 уровень 285 = 235 * 1 + 5 * 9 + 5
10 уровень 340 = 285 * 1 + 5 * 10 + 5
...
Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 1, а в качестве параметра BASE использовать последнее заданное в таблице значение 25.
константа Набранный героем опыт: таблица сокращения монстров - 80, 70, 60, 50, 0
Опыт за крипа рассчитывается, как дают за обычного юнита, но с небольшим отличием - помимо всего этого применяется таблица сокращения монстров.
Кратко: по идее игра берет базовый опыт, который указан у юнита в ро, и по формуле выдает новое значение. для примера пусть игра выдаст 25 опыта. От крипов еще меньше получаем, тк от константы сокращается опыт. Пример от убийства воина герой 1-го уровня получает не 25 опыта, а 20 опыта
От убийства крипа герой 2 уровня получит 70% от 25. 17,5 опыта
От убийства крипа герой 3 уровня получит 60% от 25. 15 опыта
От убийства крипа герой 4 уровня получит 50% от 25. 12,5 опыта
От убийства крипа герой 5 уровня получит 0% от 25. 0 опыта
Чтобы позволить герою прокачку выше 5 уровня, требуется просто изменить его на какое-либо значение выше нуля. Оно определит процент получаемого опыта на других уровнях.
Опыт героя: общее распределение = да - опыт за убитого распределяется между героями (тут есть определеннный радиус действия)
Опыт героя: разрушении здании дает опыт = нет