Может кто-то развёрнуто объяснить, как рассчитывается опыт? Как узнать, сколько нужно опыта герою для перехода на следующий уровень, и на сколько увеличивается значение требуемого опыта для каждого уровня? От чего зависит опыт, получаемый за врагов, есть какие-то формулы?

Принятый ответ

заведи массив = макс опыт за каждый уровень. (если вам нужно знать скока осталось. хотя зачем?)
XP[1] = 200 макс опыт за 1 уровень
XP[2] = 300 макс опыт за 2 уровень
А можно использовать готовую формулу вместо массивов
я не нашел нужной нативки для узнавания макс опыта за уровень. А значит надо самим создать. это не трудно самому подсчитать, но надо знать как.
чтобы подсчитать надо залезать в константы
Максимальный опыт героя - 1200 <= не ясно, 1200 опыта = требования до повышения к следующему уровню. Возможно близарды ввели это, из-за того, что константы могут завести слишком сильное требование очков опыта, и вам придеться очень долго качать. А тут не зря ограничение.
Максимальный уровень боевой единицы - 20
Максимальный уровень героя - Максимально достижимый уровень героя. По умолчанию константа равна 10.
==============
ТРЕБОВАНИЕ ОЧКОВ ОПЫТА ДО СЛЕДУЮЩЕГО УРОВНЯ:
Константы, в которых задано кол-во опыта на новый уровень:
Герою требуется опыт: таблица (NeedHeroXP) = 200.00 <=сюда можно несколько значении задать, ведь эта таблица - обозначим за BASE
Герою требуется опыт: предыдущие значения фактора (NeedHeroXPFormulaA) = 1.00 - обозначим за A
Герою требуется опыт: фактор константы (NeedHeroXPFormulaB) = 0 - обозначим за B
Герою требуется опыт: фактор уровня (NeedHeroXPFormulaC) = 100 - обозначим за C
Следует отметить, что в поле NeedHeroXP может содержаться массив чисел, в этом случае в качестве требований опыта берутся эти числа, в том порядке в котором они записаны. Если этих чисел не хватает, то последнее из них берется в качестве числа BASE и дальнейшие требования высчитываются по описанной ниже формуле. Если поле пустое, то используется одно стандартное значение 200.
Не указанные в таблице NeedHeroXP требования находятся по рекурсивной формуле, то есть требование опыта для текущего уровня находится исходя из требований предыдущего:
Требования(для уровня 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
и так далее

Рекурсивную формулу можно записать в общем виде:
В этой формуле 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 = 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 - уровень убитого крипа или умершего героя
ЗА УБИЙСТВО ГЕРОЯ:
Набранный героем опыт: герой, таблица: 100, 120, 160, 220, 300
Набранный героем опыт: герой, фактор константы: 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.
ЗА УБИЙСТВО КРИПА:
Набранный героем опыт: норма, таблица: 25
Набранный героем опыт: норма, фактор константы: 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.
======================================================================
константа Набранный героем опыт: таблица сокращения монстров - 80, 70, 60, 50, 0
Если убитый героем воин является монстром (нейтральным крипом), в полном объёме опыт вы не получите. Это нормально - ведь герой, допустим, 42 уровня, может убить гнолла за взмах оружия.
Опыт за крипа рассчитывается, как дают за обычного юнита, но с небольшим отличием - помимо всего этого применяется таблица сокращения монстров.
Кратко: по идее игра берет базовый опыт, который указан у юнита в ро, и по формуле выдает новое значение. для примера пусть игра выдаст 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 опыта
Последнее значение таблицы применяется к остальным уровням. Вот, почему после достижения 5 уровня герой опыта не получает. В таблице написано "0".
Чтобы позволить герою прокачку выше 5 уровня, требуется просто изменить его на какое-либо значение выше нуля. Оно определит процент получаемого опыта на других уровнях.
==============
Опыт героя: максимальный уровень героя : 25
Опыт героя: общее распределение = да - опыт за убитого распределяется между героями (тут есть определеннный радиус действия)
Опыт героя: разрушении здании дает опыт = нет

взято из faq форума 4 раздел, формулы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
4 года назад
0
Похожие вопросы:

ответ
Ну что пацаны Datamanager ?
Дам подсказку, смотреть на систему ливов и сыгранный игр, там переменная сама инкрементируется за каждый запуск игры, и сама подгружается, но надо включить локальные файлы и сделать привязку к нику и зашифровать данные, ибо иначе тут всё в открытом виде, можно сбрасывать значение

2
27
4 года назад
Отредактирован MpW
2
заведи массив = макс опыт за каждый уровень. (если вам нужно знать скока осталось. хотя зачем?)
XP[1] = 200 макс опыт за 1 уровень
XP[2] = 300 макс опыт за 2 уровень
А можно использовать готовую формулу вместо массивов
я не нашел нужной нативки для узнавания макс опыта за уровень. А значит надо самим создать. это не трудно самому подсчитать, но надо знать как.
чтобы подсчитать надо залезать в константы
Максимальный опыт героя - 1200 <= не ясно, 1200 опыта = требования до повышения к следующему уровню. Возможно близарды ввели это, из-за того, что константы могут завести слишком сильное требование очков опыта, и вам придеться очень долго качать. А тут не зря ограничение.
Максимальный уровень боевой единицы - 20
Максимальный уровень героя - Максимально достижимый уровень героя. По умолчанию константа равна 10.
==============
ТРЕБОВАНИЕ ОЧКОВ ОПЫТА ДО СЛЕДУЮЩЕГО УРОВНЯ:
Константы, в которых задано кол-во опыта на новый уровень:
Герою требуется опыт: таблица (NeedHeroXP) = 200.00 <=сюда можно несколько значении задать, ведь эта таблица - обозначим за BASE
Герою требуется опыт: предыдущие значения фактора (NeedHeroXPFormulaA) = 1.00 - обозначим за A
Герою требуется опыт: фактор константы (NeedHeroXPFormulaB) = 0 - обозначим за B
Герою требуется опыт: фактор уровня (NeedHeroXPFormulaC) = 100 - обозначим за C
Следует отметить, что в поле NeedHeroXP может содержаться массив чисел, в этом случае в качестве требований опыта берутся эти числа, в том порядке в котором они записаны. Если этих чисел не хватает, то последнее из них берется в качестве числа BASE и дальнейшие требования высчитываются по описанной ниже формуле. Если поле пустое, то используется одно стандартное значение 200.
Не указанные в таблице NeedHeroXP требования находятся по рекурсивной формуле, то есть требование опыта для текущего уровня находится исходя из требований предыдущего:
Требования(для уровня 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
и так далее

Рекурсивную формулу можно записать в общем виде:
В этой формуле 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 = 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 - уровень убитого крипа или умершего героя
ЗА УБИЙСТВО ГЕРОЯ:
Набранный героем опыт: герой, таблица: 100, 120, 160, 220, 300
Набранный героем опыт: герой, фактор константы: 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.
ЗА УБИЙСТВО КРИПА:
Набранный героем опыт: норма, таблица: 25
Набранный героем опыт: норма, фактор константы: 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.
======================================================================
константа Набранный героем опыт: таблица сокращения монстров - 80, 70, 60, 50, 0
Если убитый героем воин является монстром (нейтральным крипом), в полном объёме опыт вы не получите. Это нормально - ведь герой, допустим, 42 уровня, может убить гнолла за взмах оружия.
Опыт за крипа рассчитывается, как дают за обычного юнита, но с небольшим отличием - помимо всего этого применяется таблица сокращения монстров.
Кратко: по идее игра берет базовый опыт, который указан у юнита в ро, и по формуле выдает новое значение. для примера пусть игра выдаст 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 опыта
Последнее значение таблицы применяется к остальным уровням. Вот, почему после достижения 5 уровня герой опыта не получает. В таблице написано "0".
Чтобы позволить герою прокачку выше 5 уровня, требуется просто изменить его на какое-либо значение выше нуля. Оно определит процент получаемого опыта на других уровнях.
==============
Опыт героя: максимальный уровень героя : 25
Опыт героя: общее распределение = да - опыт за убитого распределяется между героями (тут есть определеннный радиус действия)
Опыт героя: разрушении здании дает опыт = нет

взято из faq форума 4 раздел, формулы
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.