Написал скрипт, который должен вызывать футмена при кликании мышкой на карту (знаю, что можно на GUI, но не суть). При попытке сохранить карту выдаёт ошибку (на скрине). Скрины кода и ошибки прилагаю. Сам код также прилагаю. Хочу узнать, почему WE быкует на меня в данной ситуации и не принимает завершение функции.
код
function onMouseClick()
CreateUnitByName(
GetLocalPlayer(),
'Footman',
BlzGetTriggerPlayerMouseX(),
BlzGetTriggerPlayerMouseY(),
120
)
end
Скрины -
Только прошу не кричать "У нас за такой код *подставить_способ_экзекуции* устраивали!"

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

Fly123, эх ладно. вы все не правильно делаете.
  1. вы мне скинули абсолютно пустую карту с отключенным триггером. А где код? Она у меня норм без проблем запустилась.
  2. вам для работы с lua лучше отказаться от гуи. Вы лишаетесь большого инструмента.
  3. Пример Назарова смотрите с движением снарядов ссылка. там показывают. Ну он же есть. Берете пример prog с хуком, и вставляете триггеры
  4. неправильное событие у вас стоит, тк координаты мыши не получить
это какой то простой код, видимо вы пытаетесь понять как запустить. два показательных примера покажу:
первый - вставляете код
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
карта пример прилагается. дело не программе, а в кривых руках)
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
27
3 года назад
3
Bergi_Bear, так тут все есть, осталось дописать немного. проблема в том, что у человека нет понимания как это работает. как запустить и прочее. я сам не очень то понимаю некоторые моменты.
0
14
3 года назад
Отредактирован Fly123
0
МрачныйВорон:
Bergi_Bear, так тут все есть, осталось дописать немного. проблема в том, что у человека нет понимания как это работает. как запустить и прочее.
Ну да, ни черта не ясно, на самом деле. Оказалось, что "моя" функция не работала, работала только твоя. Попробовал заменить footman на doomguard в скриптах - всё-равно спаунятся футманы. Это какой-то кошмар. Ладно, в любом случае, спасибо тебе большое за помощь, с тем, что помог VSCode настроить и пытался объяснить.

Bergi_Bear:
МрачныйВорон, Пили гайд луа для новичков в варкарфте.
Nazar же хорошо в Lua разбирается, разве нет? Может ему было бы проще его написать? (если его не затруднит, конечно)
0
32
3 года назад
0
От Назара последний ресурс на сайте, больше года назад
0
28
3 года назад
0
Что у вас тут вообще происходит? Беды с башкой?
0
27
3 года назад
Отредактирован MpW
0
Fly123,
Ну да, ни черта не ясно, на самом деле. Оказалось, что "моя" функция не работала, работала только твоя. Попробовал заменить footman на doomguard в скриптах - всё-равно спаунятся футманы. Это какой-то кошмар.
мб потому что функция выкл? я ее под коммент. тк именная функция никогда не находила применения для меня. поэтому я ее выключил. надо снять коммент. в луа комментят не / /, а --
--CreateUnitByName(GetLocalPlayer(),'footman',BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY(​),0)
CreateUnit(Player(0),FourCC('hfoo'),BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY(),0)
0
14
3 года назад
0
МрачныйВорон:
Fly123,
--CreateUnitByName(GetLocalPlayer(),'footman',BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY(​),0)
CreateUnit(Player(0),FourCC('hfoo'),BlzGetTriggerPlayerMouseX(),BlzGetTriggerPlayerMouseY(),0)
))
Я убрал эти палочки, теперь триггер вообще не работает, лол.
0
27
3 года назад
0
Fly123, значит с этой строчкой что то не так. аргументы ввели неправильные или что там.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.