JNGP Lua Edition

» опубликован
» Предназначение: Работа с редактором
Jass New Gen Pack - расширенный редактор карт для Warcraft 3.
Lua Edition основывается на JNGP 5g (последней версии) и собрана для работы на версии игры 1.31.

» Компоненты
  • Grimoire 1.5 - вмонтированная в WorldEditor утилита, основа остальных плагинов
  • JassHelper 0.A.0.0 - препроцессор и компилятор vJass
  • GrimEx 1.0b - модифицирует интерфейс редактора
  • TESH 2.0 - встроенный текстовый редактор с подсветкой синтаксиса
  • UMSWE 5.0 - вмонтированная утилита, расширяющая возможности редактора

Установка

  • У вас должна быть старая версия игры, где еще есть файлы MPQs (подходящую версию 1.26 скачать можно отсюда)
  • Скачайте по ссылке и разархивируйте в любую директорию файлы (пароль архива: thw, т. к. антивирусы считают этот хак редактора вирусом)
  • Найдите файл findpath.lua и укажите пути к файлам MPQs и файлам с игрой последней версии 1.31 (отредактируйте его при помощи любого текстового редактора)
» пример на картинке
- путь не должен содержать кириллицы
- внимательно следите за слешами в пути: в проводнике русской win 10 один / между директориями, поэтому замените их на \\
  • Запустите NewGen WE.exe

Как использовать Lua

  • Просто оберните код в теги //! lua и //! endlua
» пример
//! lua
function Trig_Basic_Example_Actions()
    TimerStart(CreateTimer(), 1.00, true, function()
        print("Lua!")
    end)
end
//! endlua
  • Если хотите вызвать функцию Lua из JASS, используйте //# +nosemanticerror (для vJass аналогично)
» пример
//! lua
function Trig_Basic_Example_Actions()
    TimerStart(CreateTimer(), 1.00, true, function()
        print("Lua!")
    end)
end
//! endlua

//# +nosemanticerror
function InitTrig_Basic_Example takes nothing returns nothing
    set gg_trg_Basic_Example = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_Basic_Example, 0.00 )
    call TriggerAddAction( gg_trg_Basic_Example, function Trig_Basic_Example_Actions )
endfunction
  • JassHelper иногда ругается на Lua, поэтому можно импортировать скрипт из папки luascripts, чтобы обойти парсер (можно использовать относительные или абсолютные пути)
//! luaimport "luascripts\test.lua"

Полезные ссылки





Просмотров: 2 289

» Лучшие комментарии


NazarPunk #1 - 4 месяца назад 3
А он подсвечивает lua и позволяет делать вложенные папки в редакторе триггеров?
прикреплены файлы
ivanbakavan #2 - 4 месяца назад 3
NazarPunk, к сожалению, пока что нет. Пока это просто JNGP с возможностью писать на Lua без подсветки (и вложенных папок).
NazarPunk #3 - 4 месяца назад 0
Пока это просто JNGP с возможностью писать на Lua без подсветки
Он сразу собирает war3map.lua что-ли? Не пойму как в нём уживается jass и lua.
ScorpioT1000 #4 - 4 месяца назад (отредактировано ) 6
Не уверен, что он нужен с учетом того, что всё сто раз поменяется. Лучше пилить модули на луа с wlpm-подсосом <3
zogorlol #5 - 4 месяца назад 3
Круто, спасибо. Теперь можно не прощатся с UMSWE.
Это сообщение удалено
PornoMishka #7 - 4 месяца назад 0
Извините если туплю, но где сам архив в закрепе?
ivanbakavan #8 - 4 месяца назад 2
Скачайте и разархивируйте в любую директорию файлы (пароль архива: thw, т. к. антивирусы считают этот хак редактора вирусом)
исправил
DopaMine #9 - 2 месяца назад 0
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
DopaMine:
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
Вот так выглядит у меня
DopaMine:
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
DopaMine:
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
Всё, нашёл! Не знаю, как удалить сообщение(
прикреплены файлы
Это сообщение удалено
ChugunovRoman #11 - 2 месяца назад 0
Yo народ, писать на Lua круто, разбивая все на отдельные фалы и потом собирать их все в один бандл. прям как Gulp. Но потом я наткнулся на такую дичь.
Короч, сбандлил war3map.lua поместил его в папку с картой, открыл карту в WE, итог: в редакторе триггеров структура файлов и каталогов конечно же не создалась, что вполне очевидно, и при сохранении карты файл war3map.lua перезаписывается на стандарный (почти пустой) скрипт (когда в редакторе триггеров ничего нет).
Как это обойти? Можно ли как-то импортировать все файлы в WE?
Ручками не варик - с ума сойдешь.
prog #12 - 2 месяца назад -1
ChugunovRoman, обычно это обходят через сборку и запуск карты на проверку из среды разработки для кода.
Т.е. код генерируемый WE используется как часть бандла и обратно war3map.lua не импортируется, вместо этого вместе с бандлом собирается отдельная карта, которая не открывается в WE, а только запускается в игре.
Из минусов - проверка карты из редактора запускает карту без внешнего кода. Естественно, запуск карты на тестирование автоматизируется, чтобы можно было сделать это одним нажатием кнопки в среде разработки, а не вручную, но всеравно приходится сохранять карту в WE, потом переключаться во внешнюю среду разработки и запускать проверку карты оттуда.
Более того, есть готовые решения и для сборки кода и для сборки карты.
ChugunovRoman #13 - 2 месяца назад (отредактировано ) 0
prog, Я юзаю VSCode и пока настроил таску по сборе lua. А как запустить карту через среду разработки?
И можно подробнее про готовые решения? :)
Ну код я собираю через WLPM, А вот как карту сохранить одним файлом со своими скриптами - я хз
Где можно найти какие-нибудь наработки на Lua или различные примеры кода?
prog #14 - 2 месяца назад (отредактировано ) -1
ChugunovRoman, например, свою собственную систему сборки под вскод я делал на основе warcraft-vscode от Dencer. По началу я пользовался этим плагином как есть, а потом автор начал творить дичь с кодом и пришлось писать свой плагин, а с нуля писать времени и желания не было.
По факту - карта просто пакуется внешним mpq-упаковщиком после сборки кода и потом отправляется в игру через параметр командной строки.
Где можно найти какие-нибудь наработки на Lua или различные примеры кода?
Небольшое количество есть в статьях прямо тут на сайте, но мало и в основном не очень качественно т.к. мало кто этим пока занимается.
P.S. свой сборщик я допилю и тоже когда-нибудь выложу, но пока не до этого.
ChugunovRoman #15 - 2 месяца назад (отредактировано ) 0
prog, поделишься своей системой сборки?)
По факту - карта просто пакуется внешним mpq-упаковщиком
Паковать через MPQEditor можно?
P.S. свой сборщик я допилю и тоже когда-нибудь выложу, но пока не до этого.
Свой сборщик Lua? Есть репа на гитхабе? Скинешь ссыль? может помогу
prog, В общем, поставил я warcraft-vscode и вроде пока все норм. Спасибо)
prog #16 - 2 месяца назад (отредактировано ) 0
Паковать через MPQEditor можно?
Не пробовал, но скорее всего можно, если там есть поддержка запаковки из командной строки. Я честно спионерил внешний mpq-упаковщик у автора warcraft-vscode, одна из его особенностей в том, что ему можно передать файл со списком файлов которые надо запаковать, что очень удобно когда файлов много и не все файлы из папки надо паковать.
Свой сборщик Lua? Есть репа на гитхабе? Скинешь ссыль? может помогу
Репы на гитхабе пока нет, будет после первого релиза. Тогда и поговорим о помощи, если еще будет желание.
На данный момент проект состоит из трех частей:
  • внешний mpq-упаковщик, пока берется оригинальный из warcraft-vscode.
  • плагин изначально запиленый на основе warcraft-vscode, но без лишнего функционала, фактически это обертка внутри вскода над внешними сборщиками, также выполняет отправку карты на тестирование в игру. Требует значительной доработки и вполне может быть заменен чем-то другим.
  • псевдо-компилятор на c++, который выполняет две задачи - сборку исходников в один файл и препроцессинг кода для добавления небольших, но приятных фич вроде макроса RAW('A000'), в результате парсинга которого в итоговый код попадет числовое значение равкода (для сравнения, сейчас в луа версии карты используется функция FourCC, которая конвертирует строку равкода в число на этапе выполнения кода, автоматической конверсии равкода в число нет, в отличии от того как это работало в JASS).
По поводу поделиться системой сборки в текущем состоянии - там еще слишком много багов для этого, иначе я бы уже выложил первую версию в релиз.

В общем, поставил я warcraft-vscode и вроде пока все норм.
Все норм, если не смотреть на тот ужас, который он делает с кодом в итоговой карте.
ChugunovRoman #17 - 2 месяца назад 0
prog, Ну код можно выкладывать на любой стадии разработки ПО. Все желающие смогут подтянуться к разработке.
Все норм, если не смотреть на тот ужас, который он делает с кодом в итоговой карте.
Ну я глянул... и чет да, там какое-то мракобесие
prog, А есть какие-нибудь сборщики для JASS'а и его диалектов? По типу как WLPM?
prog #18 - 2 месяца назад (отредактировано ) 0
А есть какие-нибудь сборщики для JASS'а и его диалектов? По типу как WLPM?
Понятия не имею, если честно - когда я с жассом работал мне хватало того что умеет жассхелпер. Но, например, тот же warcraft-vscode собирает код скриптом внутри плагина к вскоду - запилить свой форк и научить его собирать жасс в теории не очень сложно. Хотя я уверен что есть готовые плагины к вскоду рассчитанные именно на сборку карты в жасс версии.

Ну я глянул... и чет да, там какое-то мракобесие
Самый треш там в отладочном режиме. В "релизном" чуть по лучше, но для релизного надо явно указывать все связи между файлами или заносить их в список, чтобы он включил их в сборку.

Ну код можно выкладывать на любой стадии разработки ПО. Все желающие смогут подтянуться к разработке.
Я до первого релиза код не выкладываю, если проект изначально не начинался с расчетом на совместную разработку.
ChugunovRoman #19 - 2 месяца назад 0
но для релизного надо явно указывать все связи между файлами или заносить их в список, чтобы он включил их в сборку
Т.е. этот плагин может и не все файлы подтянуть?
prog #20 - 2 месяца назад 0
ChugunovRoman, на момент когда я последний раз трогал оригинал руками - в зависимости от выбраного режима. В отладочном режиме творится муть с заворачиванием кода в строки и всякое такое, но он подтягивает все файлы какие найдет. В релизном выполняется минификация кода и вроде нет заворачивания в строки, но нужно явно указывать что подтягивать.
ChugunovRoman #21 - 2 месяца назад 0
prog, Спасибо за разъяснения :)
Obelick #22 - 1 месяц назад 0
и собрана для работы на версии игры 1.31.
Сделал все по инструкции, архив скачал, пути проставил. Жнгп открывается, но нифига не 1.31 версии: новые функции отсутствуют и карты 126+ не открывает.
Мой косяк или?
WriteCoin #23 - 4 недели назад (отредактировано ) 0
Запускается редактор, который называется "...Unlimited 1.20". Нет новых функций от 1.31, похож на 1.26а редактор, причем все на английском языке, а я на русском привык. И еще ошибки Trigger Database выскакивают. Качать " iccup_war3.." архивы 1.26 не хочется, свои есть.
Еще при включенном Lua выдает ошибку "Failed to execute script luahelper", вообщем луа не работает и писать на нем не могу.
Поставил ссылку на iccup_war3_en. Перестало выдавать ошибки триггеров, но с Lua все та же проблема.
Дырявая сборка, не работает. Директивы не работают. То не может запуститься, то запускается, но ничего нет. Все сделано слишком криво, через жопу. Не нужна такая сборка, надо переделывать.
3 пункта от : 1.1 (ненормативная лексика) Что мешает предложить автору сотрудничество и сделать полноценный редактор?
PT153 #24 - 4 недели назад (отредактировано ) 2
Lua Edition основывается на JNGP 5g (последней версии) и собрана для работы на версии игры 1.31.
WriteCoin:
Поставил ссылку на iccup_war3_en
Айкап работает на 1.26, а не на 1.31, так что вина не на авторе.
Да и в принципе зачем для редактора использовать сборки ICCUP?