только въезжаю в jass и чот не могу понять в чом ошибка
set udg_g_squad[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]=GetUnitsOfPlayerMatching(GetOwningPlayer(GetTriggerUnit()), Condition(IsUnitType(GetFilterUnit(), UNIT_TYPE_RANGED_ATTACKER) == true))

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

Похожие вопросы:

ответ
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
ответ
Ответ выше - для стандартного редактора WE. Однако, рекомендуется использовать с Lua внешний редактор кода и внешний же сборщик карты. Это чревато маленьким неудобством в виде необходимости запускать карту на проверку только из внешней программы т.к. запуск из WE будет без значительной части кода в карте, но дает огромное преимущество в виде несравнимо более удобной работы с кодом.
К сожалению, пока слишком мало информации об этом на сайте.
Вариант NazarPunk, пока без сборки карты, код придется копировать в карту вручную.

Мой вариант, пока не рабочий т.к. перед релизом нужно исправить несколько багов, но включает в себя и работу с кодом и сборку карты, не нужно вручную копировать код в карту.
Даже здесь на сайте есть еще пара вариантов, но мне лень их искать
И немного саморекламы, как выглядели бы ответы на вопрос выше при использовании моего тулсета
  1. Использовать макрос RAW('A0E5'), который превратит равкод в число при сборке карты.
  2. Инжект в функцию main, с заменой оригинальной функции main на свою и вызовом оригинальной функции изнутри нашей.
  3. Аналогично ответу на этот вопрос для чистого WE, но без объявления переменных в WE т.к. то уже не так удобно становится когда код во внешнем редакторе.

Теперь о точках входа и инжекте.
Луа позволяет делать такой финт ушами
do
  local f = FunctionName -- записываем функцию в переменную
  function FunctionName() -- заменяем оригинальную функцию своей
   f() -- вызываем оригинальную функцию из переменной
   -- здесь могла быть ваша реклама или ваш код
  end
end
Это позволит нам сохранить оригинальную функцию в переменную, заменить оригинал своей функцией и вызвать оригинал из переменной. Применимо к любой функции, которая была объявлена раньше, не работает если функция объявлена после выполнения этого кода. Для создания точки входа отлично подходит InitGlobals, она всегда объявляется раньше кастомного кода в WE и вызывается из main.

У себя в коде я пользуюсь немного более сложным способом, этот код не будет работать в WE т.к. цепляет main, а не InitGlobals и не дает серьеных преимуществ перед описаным выше, привожу просто для расширения кругозора
local function InjectMain()
    local alpha_main = main
    return function()
        local alpha_init = RunInitializationTriggers
        RunInitializationTriggers = function() end
        alpha_main()
        InitLibraries() --моя функция, которая должна быть выполнена после всего, но до триггеров инициализации карты
        alpha_init()
    end
end
main = InjectMain()
ответ
например как быть с ситуацией когда this или объект используется как число?
this часто используется как число, например для сохранения на хэндл таймера.

ИМХО, структуры вообще лучше переписать изначально на lua.
ответ
Делаем своий ии через человеческий редактор с нуля
что там не получается допиливаем напильником через триггеры
а лучше на луа
а лучше нейронку

`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
2 года назад
0
Похожие вопросы:

ответ
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
ответ
Ответ выше - для стандартного редактора WE. Однако, рекомендуется использовать с Lua внешний редактор кода и внешний же сборщик карты. Это чревато маленьким неудобством в виде необходимости запускать карту на проверку только из внешней программы т.к. запуск из WE будет без значительной части кода в карте, но дает огромное преимущество в виде несравнимо более удобной работы с кодом.
К сожалению, пока слишком мало информации об этом на сайте.
Вариант NazarPunk, пока без сборки карты, код придется копировать в карту вручную.

Мой вариант, пока не рабочий т.к. перед релизом нужно исправить несколько багов, но включает в себя и работу с кодом и сборку карты, не нужно вручную копировать код в карту.
Даже здесь на сайте есть еще пара вариантов, но мне лень их искать
И немного саморекламы, как выглядели бы ответы на вопрос выше при использовании моего тулсета
  1. Использовать макрос RAW('A0E5'), который превратит равкод в число при сборке карты.
  2. Инжект в функцию main, с заменой оригинальной функции main на свою и вызовом оригинальной функции изнутри нашей.
  3. Аналогично ответу на этот вопрос для чистого WE, но без объявления переменных в WE т.к. то уже не так удобно становится когда код во внешнем редакторе.

Теперь о точках входа и инжекте.
Луа позволяет делать такой финт ушами
do
  local f = FunctionName -- записываем функцию в переменную
  function FunctionName() -- заменяем оригинальную функцию своей
   f() -- вызываем оригинальную функцию из переменной
   -- здесь могла быть ваша реклама или ваш код
  end
end
Это позволит нам сохранить оригинальную функцию в переменную, заменить оригинал своей функцией и вызвать оригинал из переменной. Применимо к любой функции, которая была объявлена раньше, не работает если функция объявлена после выполнения этого кода. Для создания точки входа отлично подходит InitGlobals, она всегда объявляется раньше кастомного кода в WE и вызывается из main.

У себя в коде я пользуюсь немного более сложным способом, этот код не будет работать в WE т.к. цепляет main, а не InitGlobals и не дает серьеных преимуществ перед описаным выше, привожу просто для расширения кругозора
local function InjectMain()
    local alpha_main = main
    return function()
        local alpha_init = RunInitializationTriggers
        RunInitializationTriggers = function() end
        alpha_main()
        InitLibraries() --моя функция, которая должна быть выполнена после всего, но до триггеров инициализации карты
        alpha_init()
    end
end
main = InjectMain()
ответ
например как быть с ситуацией когда this или объект используется как число?
this часто используется как число, например для сохранения на хэндл таймера.

ИМХО, структуры вообще лучше переписать изначально на lua.
ответ
Делаем своий ии через человеческий редактор с нуля
что там не получается допиливаем напильником через триггеры
а лучше на луа
а лучше нейронку

Принятый ответ
0
6
2 года назад
0
прошу прощения поторопился
Чтобы оставить комментарий, пожалуйста, войдите на сайт.