Добавлен Sheec
только въезжаю в 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-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
ответ
prog:
Ответ выше - для стандартного редактора WE. Однако, рекомендуется использовать с Lua внешний редактор кода и внешний же сборщик карты. Это чревато маленьким неудобством в виде необходимости запускать карту на проверку только из внешней программы т.к. запуск из WE будет без значительной части кода в карте, но дает огромное преимущество в виде несравнимо более удобной работы с кодом.К сожалению, пока слишком мало информации об этом на сайте.Вариант NazarPunk, пока без сборки карты, код придется копировать в карту вручную.
Мой вариант, пока не рабочий т.к. перед релизом нужно исправить несколько багов, но включает в себя и работу с кодом и сборку карты, не нужно вручную копировать код в карту.Даже здесь на сайте есть еще пара вариантов, но мне лень их искатьИ немного саморекламы, как выглядели бы ответы на вопрос выше при использовании моего тулсета
- Использовать макрос RAW('A0E5'), который превратит равкод в число при сборке карты.
- Инжект в функцию main, с заменой оригинальной функции main на свою и вызовом оригинальной функции изнутри нашей.
- Аналогично ответу на этот вопрос для чистого 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
XGM Bot
2 года назад
0
Похожие вопросы:
- Простой вопрос по JASS
ответ
Кет:
- Создание и удаление спецэффекта на Jass
ответ
Ige:
- Вопросы по Lua
ответ
prog:
- Вопрос по адаптации структур в lua
ответ
NazarPunk:
- Вопрос по ИИ. Траблы с кодом
ответ
Bergi:
Поиск по всем ресурсам на сайте
Принятый ответ
0
Sheec
2 года назад
0
прошу прощения поторопился
Чтобы оставить комментарий, пожалуйста, войдите на сайт.