27

» WarCraft 3 / Ошибка в скрипте (Lua)

Bergi_Bear, так тут все есть, осталось дописать немного. проблема в том, что у человека нет понимания как это работает. как запустить и прочее. я сам не очень то понимаю некоторые моменты.
27

» WarCraft 3 / Ошибка в скрипте (Lua)

Fly123, я думаю в режиме луа все гуишные функции пишутся на луа. Весь код конвертируется в lua, можно открыть war3map.lua после сохранялки. war3map.lua заменил наш war3map.j. Можете писать хоть на гуи, хоть возится с lua-кодом. Все переведется в lua. Когда вы lua-режим подключали, вы выбирали в чем сохранится.
Тут с lua кодом сложнее, надо внимательным быть. Бывает одна ошибка вызывает дохера времени на ее поиск/устранение. Долго нужно разбираться. А на гуи наверн попроще вам будет. Можно так и так, как вам удобнее.
27

» WarCraft 3 / Ошибка в скрипте (Lua)

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
карта пример прилагается. дело не программе, а в кривых руках)
Загруженные файлы
27

» WarCraft 3 / Ошибка в скрипте (Lua)

Fly123, так нужно в соответствии с этой установкой делать.

  1. устанавливаем VsCode
  2. устанавливаем Java (без нее онлайн поиск не работает. и возможно еще для чего то нужна.)
заметка: чтобы скачать одну из этих программ, пришлось регистрироваться на сайт.
  1. устанавливаем EmmyLua
  1. прописываем путь в соответствии с статьей, закидываем скрипты вроде common blizzard.
  2. перегружаем
  3. эмулятор работает только в файлах формата .lua типа когда вводишь Crea... и тебе сразу выдают CreateUnit и др функции в меню из скриптов
  4. дальше делают так как описывал copy-past. Весь код lua я могу хранить не в карте, а в скрипте. Удобно. Другого применения я не нашел VsCode, типа как запустить или че то такого. Есть еще folder-ы, т.е. архив карты можно перевести в папку, когда у меня ошибка (дебаггер можно закинуть xgm.guru/p/wc3/pcallback в карту - при условии что она у вас запустится), я в редакторе сохраняю в фолдере и открываю и достаю скрипт и нахожу номер строки по дебаггеру
Загруженные файлы
27

» WarCraft 3 / Ошибка в скрипте (Lua)

Fly123, попробуйте на чистой карте перевести в режим lua, потом написать че-нибудь простенькое на lua. И запустить. Если запустится, значит в у вас в коде.
Сейчас без кода, и карты говорить не о чем. просто не могу понять, что вы делаете. и что у вас работает/не работает. верхние скрины ничего не говорят по сути мне.
были бы пошаговые действия +скрины, код и карта.

вызов функции происходит так:
onMouseClick()

у тебя вот такого в VSCode никогда не было? Он пишет что мол версия какая-то "переделанная", и что нужно обновить. Я нажимаю на галочку, он удаляет все, что выделено красным и оставляет эту функцию с созданием юнита, после чего карта перестаёт открыватся в редакторе и варкрафт её больше не видит.
такого никогда не было. Надо у умельцев спрашивать. Там нужно EmmyLua установить. И тогда встроенные скрипты common blizzard будет работать в файлах типа lua.
27

» WarCraft 3 / Ошибка в скрипте (Lua)

Fly123, я тоже не знал долгое время)

если вы применяете этот способ, то тебе нужно изучить эту статьи. она хукает, то есть заменяет функцию. я так понял, что вы можете много скриптов наделать и инициировать) я плохо понимаю) но суть я понял
27

» WarCraft 3 / Ошибка в скрипте (Lua)

Fly123, такое не должно быть. как вы создаете? lua-код куда сохраняете? прямо в карту? я в карту никогда не сохранял. так мне сложно помочь, тк. я не знаю причин.
самый простой вариант это copy-past, т.е. редактируете код в VsCode. Копируете весь код и вставляете в CustomScript. пример В рефорджете можно создать CustomScript, и туда код вставлять. Или кидаете все в шапку, тогда в шапке будет мешанина из разных систем. Запускаете смотрите. А что код в lua в VsCode можете сохранить отдельно.
Второй способ прямо из редактора запускать игру. это надо редактор настроить
на сайте/форуме не содержится объяснения как чего делать (для нубов конечно). я сам догадался из той статьи. До этого меня берги научил пользоваться программой для совместной работы, она запускала игру прямо, просто код вставлял. но она потом перестала работать. И мне уже лень ее снова запускать, настраивать. работаю в VsCode copy-paste
27

» WarCraft 3 / Ошибка в скрипте (Lua)

Fly123, тогда все хорошо, никакие программы не нужны. тут у вас ошибка, нужно исправлять ошибки синтаксиса. просто ты в карте выбираешь один язык. Если выбираешь lua, то все пишешь только на lua. Выше скинул учебник примеры. Я примерно в интернете нашел и скомуниздил, что-то сам добавлял. И так далее.
27

» WarCraft 3 / Ошибка в скрипте (Lua)

если вы перевели в режим луа карту. то тут ругается либо из-за end - либо тут лишнюю end дописали где-то или не закрыли блок. у меня было очень много блоков в блоков, блоков в цикле. Когда переносил на lua, случайно дописал end. И потом ругался, долго искал. У вас как не знаю)
в режиме луа обычно ругают на всякие jass-вские !=, set, endif, endfunction, loop. А еще типы пример: local real a не пропустит такое, надо local a. Короче невосприимчивы для lua кода синтаксис. Не пропускает. Это хорошо, можно подправить
27

» WarCraft 3 / у центра image есть какие-то отклонения

PT153, как вы это сделали? ну у меня тоже краем отображается, пока совсем. она то появляется, то исчезает. особенно в левой нижний уголок.

пример на моей тестовой карте это заметно
Загруженные файлы
27

» WarCraft 3 / у центра image есть какие-то отклонения

PT153, не только. если центр изображение находится в пределах видимости камеры, то она отображается. если не находится, то исчезает. короче, я так думаю нет смысла делать огромные изображения. И разбить на части, пиксельно отображать

короче мое предположение мб оказаться ересью. хотя это мб правдой. если смотреть по мини-карте
27

» WarCraft 3 / у центра image есть какие-то отклонения

ScopteRectuS, точно. забыл)

надо было края рамки в 1 пиксель. Но мне было главнее чекнуть заработает, и я рамку чуть больше сделал. на хайве прочел, что можно края 1 пиксель задать.
27

» WarCraft 3 / типы image

кстати вчера замучился создавать image. Пока не прочитал что надо размеры, чтобы соответствовали размерам степени двойки. забыл маленько. записал у себя в doc по интерфейсу =)
27

» WarCraft 3 / у центра image есть какие-то отклонения

размеры картинки тоже не соответствуют размерам. как она считается то?
пример картинка 128x128. размер 2128. в игре она не дотягивает, осталось 1/8 или 1/9
придется наверн увеличить еще.
Загруженные файлы
27

» WarCraft 3 / типы image

Bergi_Bear, а у вас видел видео, кажется адмирала. Там линия поднималась, и видно было тени. пробовал поднимать, ниче такого не обнаруживал. там наверн вовсе не image? вроде бы классно
27

» WarCraft 3 / у центра image есть какие-то отклонения

я понял. надо было в origin x,y,z вставить size/2
тут ссылка
ссылка

Bergi_Bear, кстати, на уступах камера поднимается бывает и изображение image пропадает бывает на сек, или вообще не видно на склонах. если только не на равнине играть
27

» WarCraft 3 / типы image

PT153, кстати в наработке как то используется тень и круги выделения, заменяя текстуры

и карта для теста
Загруженные файлы
27

» WarCraft 3 / типы image

PT153, ясно. некоторые типы не отображаются
можно догадаться по названию. я даже наработку находил как заменить тень (shadow) или круг выбора (selection), без нужных характеристик ubersplat, уберсплат уже встречали, анимированная картинка задается в slk.
Остальные не понятны для меня. Что это за INVALID, OCCLUSION_MASK, TOPMOST. И почему некоторые типы не отображаются?

и почему ubersplat стал серым?
Загруженные файлы