Помогите пожалуйста, мне очень нужна ваша помощь. Всё перерыл, ни где нету достоверной информации, а если юзать jass то эта морокка, не совсем его понимаю

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

Кирилл4, на jass есть, вот пример
Для начала тебе хватит, есть более продвинутые системы.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
16
6 лет назад
Отредактирован Naadir
0
Первый триггер:
Событие: Юнит вошёл на карту.
Действие: Добавить событие "юнит атакован" во второй триггер.

Второй триггер:
Действие: Если DamageTaken>0
То Написать DamageTaken в чат.



Ну как-то так в двух словах.
0
32
6 лет назад
Отредактирован Raised
0
Кирилл4, так то они уже созданы, но пока не выучил что к чему - забудь, кода много он сложный и ресусоёмкий.
1
32
6 лет назад
1
Вопроса понял нихрена.
Уточнитесь.
0
17
6 лет назад
Отредактирован N1ghtSiren
0
Naadir:
Первый триггер:
Событие: Юнит вошёл на карту.
Действие: Добавить событие "юнит атакован" во второй триггер.

Второй триггер:
Действие: Если DamageTaken>0
То Написать DamageTaken в чат.



Ну как-то так в двух словах.
Событие - Конкретный юнит получает урон.( НЕ атакован! - ибо отлавливается в момент отдачи приказа атаковать, и может быть забагано простым застопыванием )
Дальше конвертируешь это в текст, и заменяешь Конкретного юнита на глобалку, или на юнита, стоящего на карте (если это даммик, и нужна инфа по всему урону)
Вот мой отлавлятор:
function t2a takes nothing returns nothing
    local unit u = GetEventDamageSource() // Кто нанёс урон (имя)
    local real r = GetEventDamage() // Сколько урона
    call BJDebugMsg(GetUnitName(u)+" = Attacker") // Отображение игроку
    call BJDebugMsg(R2S(r)+" = Damage") // Отображение игроку
endfunction

//===========================================================================
function InitTrig_t2 takes nothing returns nothing
    local unit u = gg_unit_H000_0000 // Вот наш юнит, можешь заменить на глобалку
    set gg_trg_t2 = CreateTrigger()
    call TriggerRegisterUnitEvent(gg_trg_t2,u,EVENT_UNIT_DAMAGED) //Юнит продамажен
    call TriggerAddAction( gg_trg_t2, function t2a )
endfunction
Можешь добавить по типу атакованного юнита (Отображать только боссов/хероев/крипов), или по имеющейся у Атакующего конкретной абилки
...
Пропала кнопочка "Редактировать"
Случайно удалил кусок оптимизации:
function t2a takes nothing returns nothing
    local unit u = GetEventDamageSource() // Кто нанёс урон (имя)
    local real r = GetEventDamage() // Сколько урона
    call BJDebugMsg(GetUnitName(u)+" = Attacker") // Отображение игроку
    call BJDebugMsg(R2S(r)+" = Damage") // Отображение игроку
	set u = null  // Это вот должно быть тут
endfunction

//===========================================================================
function InitTrig_t2 takes nothing returns nothing
    local unit u = gg_unit_H000_0000 // Вот наш юнит, можешь заменить на глобалку
    set gg_trg_t2 = CreateTrigger()
    call TriggerRegisterUnitEvent(gg_trg_t2,u,EVENT_UNIT_DAMAGED) //Юнит продамажен
    call TriggerAddAction( gg_trg_t2, function t2a )
endfunction
0
16
6 лет назад
0
PyCCKuu_4eJl, там чувак написал, что не может в jass. Я описал на GUI алгоритм. Застапывание -- как бы фиг с ним. На достойном уровне на GUI его не обойти.
0
21
6 лет назад
0
Событие: инициализация карты
Действие:
Цикл: выбрать всех юнитов в пределах игровой карты и для каждого совершите действие:
Действие в цикле: добавить в триггер [твой триггер] событие "выбранный юнит получил урон"
Ну а дальше в [твоем триггере] пишешь условия и действия. Но это не будет работать на саммонов и триггерно созданных юнитов, потому нужен еще один триггер:
Событие: юнит вошел в область игровой карты
Действие: добавить в триггер [твой триггер] событие "входящий юнит юнит получил урон"
0
21
6 лет назад
0
PyCCKuu_4eJl, set u = null и внизу тогда лучше поставить
хотя, учитывая, что инициализация один раз, не так важно
0
2
6 лет назад
0
PyCCKuu_4eJl, Спасибо за код, но вот казус. Когда я заменяю сет в локалке (local unit u = gg_unit_H000_0000) на (local unit u = GetAttackedUnitBJ() ) ничего не работает...
0
26
6 лет назад
0
Кирилл4, пользуйтесь поиском, наработки есть. Например xgm.guru/p/wc3/catch-dmg
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.