leorak
offline
Опыт:
825Активность: |
Изменение макс хп. вызванного моба
сабж. т.е. например архимаг 10 уровня вызвал духа воды и у духа воды становится столько хп сколько и у архимага. чтобы это динамически в момент каста делалось
|
10.06.2014, 23:35 | #1
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Tobi123
offline
Опыт:
7,826Активность: |
Эта сама системка не очень, под вторым комментом лучше есть. |
11.06.2014, 00:14 | #2
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
leorak
offline
Опыт:
825Активность: |
а предметные абилки на +хп стакаются между собой одинаковые? напр если 10 раз дать одну и ту же способность на +200 хп, оно все сложится?
|
11.06.2014, 01:24 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Кет
offline
Опыт:
111,234Активность: |
leorak, это легко выяснить самостоятельно. Выдай герою несколько предметов на + макс. хп и прикажи применить. |
11.06.2014, 06:04 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,226Активность: |
просто даёшь разные абилки с разным бонусом хп... степень двойки
+1, +2, +4, +8, +16, +32, +64, +128, + 256, +512, +1024, +2048, +4096, +8192 и т.д. задаёшь переменной нужное значение... например set N = (макс.хп юнита U)
оно например будет равно 1355 далее циклом в обратном порядке вычитаешь значения
если 1355 больше или равно 8192 ... нет, ничего не делать (либо удалить абилку на +8192хп) если 1355 больше или равно 4096 ... нет, ничего не делать... если 1355 больше или равно 2048 ... нет, ничего не делать... если 1355 больше или равно 1024 ... да, дать абилку на +1024хп... set N = N - 1024 ... 1355 - 1024 = 331 если 331 больше или равно 512 ... нет, ничего не делать... если 331 больше или равно 256 ... да, дать абилку на +256хп... set N = N - 256 ... 331 - 256 = 75 если 75 больше или равно 128... нет, ничего не делать... если 75 больше или равно 64... да, дать абилку на +64хп... set N = N - 64... 75 - 64 = 9 если 9 больше или равно 32... нет, ничего не делать... если 9 больше или равно 16... нет, ничего не делать... если 9 больше или равно 8... да, дать абилку на +8хп... set N = N - 8 ... 9 - 8 = 1 если 1 больше или равно 4... нет, ничего не делать... если 1 больше или равно 2... нет, ничего не делать... если 1 больше или равно 1... да, дать абилку на +1хп... set N = N - 1 ... 1 - 1 = 0 можно вставить exitwhen N == 0
|
11.06.2014, 11:13 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
бинарное зачисление самый простой и эффективный метод с точки зрения вычислительной сложности, единственное что иногда есть смысл держать крайний уровень в минус 1-2-512 и минус 1024 так проще делать некоторые вещи |
11.06.2014, 11:54 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,226Активность: |
DioD:
имеешь ввиду 1, 2, 4, 8, 16 и -32 ? для того что бы давать числа не от +1 до +31, а от -32 до +31 (исключая 0) |
12.06.2014, 12:27 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
видишь я и говорю что некоторые вещи вроде штрафа делать можно только так, ваш кеп. |
12.06.2014, 13:24 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|