Sergey35
offline
Опыт:
100Активность: |
Опыт за убийство мобов
Здравствуйте, я пытаюсь сделать карту в стиле Hero Defense, где игрокам нужно защищать портал от волн мобов. Вот. Не пойму, как сделать так, чтоб за убийство каждого моба волны были индивидуальные опыт и серебро, например: за мобов 1 волны по 10 золота и 20 опыта, за волны 20 золота и 40 опыта и.т.д. Подскажите. |
11.08.2014, 21:17 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
в гуи ориентируетесь? |
11.08.2014, 21:36 | #2
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey35
offline
Опыт:
100Активность: |
Hate:
Да |
11.08.2014, 21:38 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
ну так собственно в чем затруднения? как вы пытались сделать? |
11.08.2014, 21:40 | #4
+0/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey35
offline
Опыт:
100Активность: |
Я посмотрел, как написано здесь - xgm.guru/p/wc3/gui-examples-awards , пытался найти, как привязать это к определенным видам врагов, но ничего не нашел. Получается ещё, что от мобов герой получает уже какой-то опыт, который через редактор объектов изменить не получилось. Отредактировано Sergey35, 11.08.2014 в 22:00. |
11.08.2014, 21:48 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
он получает опыт по определенной формуле
» много текста
>
4.3 Формулы для подсчета требований опыта для следующего уровня, наград опыта за убийство героя и наград опыта за убийство крипа: В таблице констант относительно требований опыта для получения уровня встречаются следующие константы:
Герою требуется опыта: таблица (NeedHeroXP) - обозначим за BASE Герою требуется опыта: предыдущее значение фактора (NeedHeroXPFormulaA) - обозначим за A Герою требуется опыта: фактор уровня (NeedHeroXPFormulaB) - обозначим за B Герою требуется опыта: фактор константы (NeedHeroXPFormulaC) - обозначим за C Следует отметить, что в поле NeedHeroXP может содержаться массив чисел, в этом случае в качестве требований опыта берутся эти числа, в том порядке в котором они записаны. Если этих чисел не хватает, то последнее из них берется в качестве числа BASE и дальнейшие требования высчитываются по описанной ниже формуле. Если поле пустое, то используется одно стандартное значение 200.
Не указанные в таблице NeedHeroXP требования находятся по рекурсивной формуле, то есть требование опыта для текущего уровня находится исходя из требований предыдущего:
Требования(для уровня N) = Требования(для уровня N-1) * A + B * N + С Рекурсивную формулу можно записать в общем виде:
В этой формуле 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. Почему я так много внимания уделил этой формуле? Потому что она широко используется в этой игре.
Таблица наград опыта за убийство героев рассчитывается по той же формуле, по умолчанию имеет параметры:
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) = 25 A(GrantHeroXPFormulaA) = 1 B(GrantHeroXPFormulaB) = 5 C(GrantHeroXPFormulaC) = 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. > faq вы видимо даже не читали, а зря |
11.08.2014, 22:27 | #6
+2/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey35
offline
Опыт:
100Активность: |
что касается опыта, сделал как в факе, что касается золота, решил по своему. можно закрыть тему. |
14.08.2014, 23:55 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|