Добавлен Fly123
Написал скрипт, который должен вызывать футмена при кликании мышкой на карту (знаю, что можно на GUI, но не суть). При попытке сохранить карту выдаёт ошибку (на скрине). Скрины кода и ошибки прилагаю. Сам код также прилагаю. Хочу узнать, почему WE быкует на меня в данной ситуации и не принимает завершение функции.
код
function onMouseClick()
CreateUnitByName(
GetLocalPlayer(),
'Footman',
BlzGetTriggerPlayerMouseX(),
BlzGetTriggerPlayerMouseY(),
120
)
end
CreateUnitByName(
GetLocalPlayer(),
'Footman',
BlzGetTriggerPlayerMouseX(),
BlzGetTriggerPlayerMouseY(),
120
)
end
Скрины -
Только прошу не кричать "У нас за такой код *подставить_способ_экзекуции* устраивали!"
Принятый ответ
Fly123, эх ладно. вы все не правильно делаете.
- вы мне скинули абсолютно пустую карту с отключенным триггером. А где код? Она у меня норм без проблем запустилась.
- вам для работы с lua лучше отказаться от гуи. Вы лишаетесь большого инструмента.
- Пример Назарова смотрите с движением снарядов ссылка. там показывают. Ну он же есть. Берете пример prog с хуком, и вставляете триггеры
- неправильное событие у вас стоит, тк координаты мыши не получить
это какой то простой код, видимо вы пытаетесь понять как запустить. два показательных примера покажу:
первый - вставляете код
do -- создаём область видимости, чтоб не конфликтовать с другим кодом
local InitGlobalsOrigin = InitGlobals -- хукаем функцию InitGlobals
function InitGlobals()
InitGlobalsOrigin()
-- в этом моменте прошла инициализация карты и можно смело работать
FogEnableOff()
FogMaskEnableOff()
--создаем триггеры
local MouseMove = CreateTrigger( )
TriggerRegisterPlayerMouseEventBJ( MouseMove, Player(0), bj_MOUSEEVENTTYPE_MOVE )
TriggerAddAction( MouseMove, function()
--CreateUnitByName(GetLocalPlayer(),'footman',BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY())
print("координаты: "..BlzGetTriggerPlayerMouseX()..","..BlzGetTriggerPlayerMouseY())
CreateUnit(Player(0),FourCC('hfoo'),BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY(),0)
end)
--end
end
end
второй - с использованием гуи
function onMouseClick()
--CreateUnitByName(GetLocalPlayer(),'footman',BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY())
print("координаты: "..BlzGetTriggerPlayerMouseX()..","..BlzGetTriggerPlayerMouseY())
CreateUnit(Player(0),FourCC('hfoo'),BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY(),0)
end
карта пример прилагается. дело не программе, а в кривых руках)
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. Fly123
прошу не бить меня палками по пяткам, если мои вопросы кажутся глупыми и раздражающимиРед. MpW
Ред. Fly123
Ред. MpW