Как сделать триггер со следующим содержанием.
function IsUnitBack takes unit uF, unit uWhichBack returns boolean
real r1 = bj_RADTODEG * Atan2(GetUnitY(uWhichBack) - GetUnitY(uF), GetUnitX(uWhichBack) - GetUnitX(uF)) + 360.
real r2 = GetUnitFacing(uWhichBack) + 360.
if GetUnitY(uWhichBack) < GetUnitY(uF) then
set r1 = r1 + 360.
endif
return (r1<=(r2+45.) and r1>=(r2-45.))
endfunction
я просто не знаю как правильно сделать текстовый триггер, тупо скопировать вставить выдает ошибку.
Скиньте карту с триггером данного содержания
(данный триггер позволит юнитам наносить доп урон в спину.

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

Filius Dei, так что-то не так делаешь. Функцию нельзя внутри функции копировать, функцию закинь повыше.
знаешь такую находил много раз. атака сзади атака в спину и др. ищи на форуме "заклинание на заказ", там в первых наработках есть похожее. Углы сложно подсчитать?
подробности
Я тебе скинул пример, на событие юнит атакован. Но ты должен знать что "юнит атакован" - событие, при котором юнит начинает замахиваться, а потом пускает снаряды (у милишников без этого), и потом происходит урон. Надо делать систему урона от события "юнит получает урон". Так как при событии "юнит атакован" можно промахнуться.
Когда при событии "получает урон" наносишь дополнительный триггерный урон, смотри, чтобы зацикливания не было.
Загруженные файлы

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
23
7 лет назад
Отредактирован Obelick
1
А вы думали, что просто скопировав одну функцию, все станет работать? Читайте статьи, если хотите изучить джас, а пока вот вам простенький пример на гуи (не такой правда точный)
Загруженные файлы
0
7
7 лет назад
0
у меня триггеры на русском, facing это что?
2
16
7 лет назад
2
Filius Dei:
у меня триггеры на русском, facing это что?
Никто не знает, потому что триггеры на русском неудобны. Facing - смотрящий, повернутый (примерный перевод).
0
7
7 лет назад
0
ну я предположил что это угол поворота
0
27
7 лет назад
0
вот код
просто ты забыл добавить local. Кто-то не полный код кинул. А из-за этого игра не может объявить локальную переменную. Это можно только на vjass, cjass. Там разрешено не дописывать local, в cjass и vjass сокращают записи для удобства
function IsUnitBack takes unit uF, unit uWhichBack returns boolean
local real r1 = bj_RADTODEG * Atan2(GetUnitY(uWhichBack) - GetUnitY(uF), GetUnitX(uWhichBack) - GetUnitX(uF)) + 360.
local real r2 = GetUnitFacing(uWhichBack) + 360.
if GetUnitY(uWhichBack) < GetUnitY(uF) then
set r1 = r1 + 360.
endif
return (r1<=(r2+45.) and r1>=(r2-45.))
endfunction
0
7
7 лет назад
0
так и почему все равно не идет, выдает вот это.
походу я сегодня не получу нормальную систему атаки в спину
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.