Bergi_Bear, так тут все есть, осталось дописать немного. проблема в том, что у человека нет понимания как это работает. как запустить и прочее. я сам не очень то понимаю некоторые моменты.
Fly123, я думаю в режиме луа все гуишные функции пишутся на луа. Весь код конвертируется в lua, можно открыть war3map.lua после сохранялки. war3map.lua заменил наш war3map.j. Можете писать хоть на гуи, хоть возится с lua-кодом. Все переведется в lua. Когда вы lua-режим подключали, вы выбирали в чем сохранится.
Тут с lua кодом сложнее, надо внимательным быть. Бывает одна ошибка вызывает дохера времени на ее поиск/устранение. Долго нужно разбираться. А на гуи наверн попроще вам будет. Можно так и так, как вам удобнее.
вы мне скинули абсолютно пустую карту с отключенным триггером. А где код? Она у меня норм без проблем запустилась.
вам для работы с 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
карта пример прилагается. дело не программе, а в кривых руках)
устанавливаем Java (без нее онлайн поиск не работает. и возможно еще для чего то нужна.)
заметка: чтобы скачать одну из этих программ, пришлось регистрироваться на сайт.
устанавливаем EmmyLua
прописываем путь в соответствии с статьей, закидываем скрипты вроде common blizzard.
перегружаем
эмулятор работает только в файлах формата .lua типа когда вводишь Crea... и тебе сразу выдают CreateUnit и др функции в меню из скриптов
дальше делают так как описывал copy-past. Весь код lua я могу хранить не в карте, а в скрипте. Удобно. Другого применения я не нашел VsCode, типа как запустить или че то такого. Есть еще folder-ы, т.е. архив карты можно перевести в папку, когда у меня ошибка (дебаггер можно закинуть xgm.guru/p/wc3/pcallback в карту - при условии что она у вас запустится), я в редакторе сохраняю в фолдере и открываю и достаю скрипт и нахожу номер строки по дебаггеру
Fly123, попробуйте на чистой карте перевести в режим lua, потом написать че-нибудь простенькое на lua. И запустить. Если запустится, значит в у вас в коде.
Сейчас без кода, и карты говорить не о чем. просто не могу понять, что вы делаете. и что у вас работает/не работает. верхние скрины ничего не говорят по сути мне.
были бы пошаговые действия +скрины, код и карта.
вызов функции происходит так:
onMouseClick()
у тебя вот такого в VSCode никогда не было? Он пишет что мол версия какая-то "переделанная", и что нужно обновить. Я нажимаю на галочку, он удаляет все, что выделено красным и оставляет эту функцию с созданием юнита, после чего карта перестаёт открыватся в редакторе и варкрафт её больше не видит.
такого никогда не было. Надо у умельцев спрашивать. Там нужно EmmyLua установить. И тогда встроенные скрипты common blizzard будет работать в файлах типа lua.
если вы применяете этот способ, то тебе нужно изучить эту статьи. она хукает, то есть заменяет функцию. я так понял, что вы можете много скриптов наделать и инициировать) я плохо понимаю) но суть я понял
Fly123, такое не должно быть. как вы создаете? lua-код куда сохраняете? прямо в карту? я в карту никогда не сохранял. так мне сложно помочь, тк. я не знаю причин.
самый простой вариант это copy-past, т.е. редактируете код в VsCode. Копируете весь код и вставляете в CustomScript. пример В рефорджете можно создать CustomScript, и туда код вставлять. Или кидаете все в шапку, тогда в шапке будет мешанина из разных систем. Запускаете смотрите. А что код в lua в VsCode можете сохранить отдельно.
Второй способ прямо из редактора запускать игру. это надо редактор настроить
на сайте/форуме не содержится объяснения как чего делать (для нубов конечно). я сам догадался из той статьи. До этого меня берги научил пользоваться программой для совместной работы, она запускала игру прямо, просто код вставлял. но она потом перестала работать. И мне уже лень ее снова запускать, настраивать. работаю в VsCode copy-paste
Fly123, тогда все хорошо, никакие программы не нужны. тут у вас ошибка, нужно исправлять ошибки синтаксиса. просто ты в карте выбираешь один язык. Если выбираешь lua, то все пишешь только на lua. Выше скинул учебник примеры. Я примерно в интернете нашел и скомуниздил, что-то сам добавлял. И так далее.
если вы перевели в режим луа карту. то тут ругается либо из-за end - либо тут лишнюю end дописали где-то или не закрыли блок. у меня было очень много блоков в блоков, блоков в цикле. Когда переносил на lua, случайно дописал end. И потом ругался, долго искал. У вас как не знаю)
в режиме луа обычно ругают на всякие jass-вские !=, set, endif, endfunction, loop. А еще типы пример: local real a не пропустит такое, надо local a. Короче невосприимчивы для lua кода синтаксис. Не пропускает. Это хорошо, можно подправить
PT153, не только. если центр изображение находится в пределах видимости камеры, то она отображается. если не находится, то исчезает. короче, я так думаю нет смысла делать огромные изображения. И разбить на части, пиксельно отображать
короче мое предположение мб оказаться ересью. хотя это мб правдой. если смотреть по мини-карте
надо было края рамки в 1 пиксель. Но мне было главнее чекнуть заработает, и я рамку чуть больше сделал. на хайве прочел, что можно края 1 пиксель задать.
кстати вчера замучился создавать image. Пока не прочитал что надо размеры, чтобы соответствовали размерам степени двойки. забыл маленько. записал у себя в doc по интерфейсу =)
размеры картинки тоже не соответствуют размерам. как она считается то?
пример картинка 128x128. размер 2128. в игре она не дотягивает, осталось 1/8 или 1/9
Bergi_Bear, а у вас видел видео, кажется адмирала. Там линия поднималась, и видно было тени. пробовал поднимать, ниче такого не обнаруживал. там наверн вовсе не image? вроде бы классно
я понял. надо было в origin x,y,z вставить size/2
тут ссылка ссылка
Bergi_Bear, кстати, на уступах камера поднимается бывает и изображение image пропадает бывает на сек, или вообще не видно на склонах. если только не на равнине играть
можно догадаться по названию. я даже наработку находил как заменить тень (shadow) или круг выбора (selection), без нужных характеристик ubersplat, уберсплат уже встречали, анимированная картинка задается в slk.
Остальные не понятны для меня. Что это за INVALID, OCCLUSION_MASK, TOPMOST. И почему некоторые типы не отображаются?
» WarCraft 3 / Ошибка в скрипте (Lua)
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
дело не программе, а в кривых руках)» WarCraft 3 / Ошибка в скрипте (Lua)
» WarCraft 3 / Ошибка в скрипте (Lua)
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
Сейчас без кода, и карты говорить не о чем. просто не могу понять, что вы делаете. и что у вас работает/не работает. верхние скрины ничего не говорят по сути мне.
были бы пошаговые действия +скрины, код и карта.
onMouseClick()
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
Второй способ прямо из редактора запускать игру. это надо редактор настроить
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
» WarCraft 3 / Ошибка в скрипте (Lua)
Ред. MpW
» WarCraft 3 / Ошибка в скрипте (Lua)
» WarCraft 3 / у центра image есть какие-то отклонения
» WarCraft 3 / Отслеживание мышки
Ред. MpW
» WarCraft 3 / у центра image есть какие-то отклонения
» WarCraft 3 / у центра image есть какие-то отклонения
Ред. MpW
» WarCraft 3 / у центра image есть какие-то отклонения
Ред. MpW
» WarCraft 3 / у центра image есть какие-то отклонения
» WarCraft 3 / типы image
» WarCraft 3 / у центра image есть какие-то отклонения
пример картинка 128x128. размер 2128. в игре она не дотягивает, осталось 1/8 или 1/9
Ред. MpW
» WarCraft 3 / типы image
Ред. MpW
» WarCraft 3 / у центра image есть какие-то отклонения
тут ссылка
ссылка
Ред. MpW
» WarCraft 3 / типы image
» WarCraft 3 / Отслеживание мышки
Ред. MpW
» WarCraft 3 / типы image