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

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

Ответ
 
Архимонд
Silenced by Q
offline
Опыт: 1,367
Активность:
Убавить здоровье у юнита
Есть ли функция для уменьшения здоровья у юнита?
Или придется использовать следующий код:
Код:
call SetUnitLifeBJ( юнит, ( GetUnitStateSwap(UNIT_STATE_LIFE, юнит) - здоровье которое убавить ) )
Старый 06.08.2007, 21:44
J
expert
offline
Опыт: 48,447
Активность:
нет

Отредактировано Jon, 06.08.2007 в 21:56.
Старый 06.08.2007, 21:46
Архимонд
Silenced by Q
offline
Опыт: 1,367
Активность:
Jon, то есть придется использовать указанный мной выше код?
Старый 06.08.2007, 21:55
J
expert
offline
Опыт: 48,447
Активность:
да =/

Jon добавил:
хотя нет, делай лучше так:
Код:
call SetUnitState( юнит, UNIT_STATE_LIFE, GetUnitState(юнит, UNIT_STATE_LIFE) - То что надо отнять)
Старый 06.08.2007, 21:58
Архимонд
Silenced by Q
offline
Опыт: 1,367
Активность:
А почему так лучше?
_________

Еще один вопрос по jass, а именно по триггеру pick every unit aka ForGroupBJ:
Можно ли в функцию, которую я вызываю функцией ForGroupBJ, передать переменную?

Я думаю, модераторы меня сильно не убьют за нарушение правил раздела
Старый 06.08.2007, 22:00
J
expert
offline
Опыт: 48,447
Активность:
потому что лучше, я раскрыл просто функции
нельзя, можно правдо через SCV, но ты не осилиш, можно использовать луп по групе, тогда переменую передавать неприйдется.
Старый 06.08.2007, 22:04
Архимонд
Silenced by Q
offline
Опыт: 1,367
Активность:
Цитата:
луп

То есть loop, цикл?
И как это все реализовать?
У меня в ForGroupBJ написано так:
Код:
call ForGroupBJ( GetUnitsInRangeOfLocAll(250.00, GetUnitLoc(myUnit)), function MyFunc )
Старый 06.08.2007, 22:07
J
expert
offline
Опыт: 48,447
Активность:
так:
Код:
local group gr = CreateGroup()
    local unit u
    call GroupEnumUnitsInRange(gr, GetUnitX(myUnit), GetUnitY(myUnit), 250, null)
    loop
        set u = FirstOfGroup(gr)
        exitwhen u == null
        // Действия с юнитом u
        call GroupRemoveUnit (gr, u)
    endloop
    call DestroyGroup(gr)
    set gr = null
Старый 06.08.2007, 22:07
Архимонд
Silenced by Q
offline
Опыт: 1,367
Активность:
Jon, спасибо за код
Вроде все понятно, только что означает exitwhen?
Старый 06.08.2007, 22:15
J
expert
offline
Опыт: 48,447
Активность:
выход из цикла если взятый из группы юнит несуществует (т.е. группа пуста)
Старый 06.08.2007, 22:17
Архимонд
Silenced by Q
offline
Опыт: 1,367
Активность:
Ммм... понятно. Еще раз спасибо.
Старый 06.08.2007, 23:06
Ответ

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

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

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

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



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