XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
leorak

offline
Опыт: 825
Активность:
Изменение макс хп. вызванного моба
сабж. т.е. например архимаг 10 уровня вызвал духа воды и у духа воды становится столько хп сколько и у архимага. чтобы это динамически в момент каста делалось
Старый 10.06.2014, 23:35
Tobi123

offline
Опыт: 7,826
Активность:
Эта сама системка не очень, под вторым комментом лучше есть.
Старый 11.06.2014, 00:14
leorak

offline
Опыт: 825
Активность:
а предметные абилки на +хп стакаются между собой одинаковые? напр если 10 раз дать одну и ту же способность на +200 хп, оно все сложится?
Старый 11.06.2014, 01:24
Кет

offline
Опыт: 111,109
Активность:
leorak, это легко выяснить самостоятельно. Выдай герою несколько предметов на + макс. хп и прикажи применить.
Старый 11.06.2014, 06:04
Extremator

offline
Опыт: 39,428
Активность:
просто даёшь разные абилки с разным бонусом хп... степень двойки
+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
DioD

offline
Опыт: 45,134
Активность:
бинарное зачисление самый простой и эффективный метод с точки зрения вычислительной сложности, единственное что иногда есть смысл держать крайний уровень в минус 1-2-512 и минус 1024 так проще делать некоторые вещи
Старый 11.06.2014, 11:54
Extremator

offline
Опыт: 39,428
Активность:
DioD:
бинарное зачисление самый простой и эффективный метод с точки зрения вычислительной сложности, единственное что иногда есть смысл держать крайний уровень в минус 1-2-512 и минус 1024 так проще делать некоторые вещи
имеешь ввиду 1, 2, 4, 8, 16 и -32 ?
для того что бы давать числа не от +1 до +31, а от -32 до +31 (исключая 0)
Старый 12.06.2014, 12:27
DioD

offline
Опыт: 45,134
Активность:
видишь я и говорю что некоторые вещи вроде штрафа делать можно только так, ваш кеп.
Старый 12.06.2014, 13:24
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 11:30.