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"

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



`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
24
5 лет назад
0
ChugunovRoman, обычно это обходят через сборку и запуск карты на проверку из среды разработки для кода.
Т.е. код генерируемый WE используется как часть бандла и обратно war3map.lua не импортируется, вместо этого вместе с бандлом собирается отдельная карта, которая не открывается в WE, а только запускается в игре.
Из минусов - проверка карты из редактора запускает карту без внешнего кода. Естественно, запуск карты на тестирование автоматизируется, чтобы можно было сделать это одним нажатием кнопки в среде разработки, а не вручную, но всеравно приходится сохранять карту в WE, потом переключаться во внешнюю среду разработки и запускать проверку карты оттуда.
Более того, есть готовые решения и для сборки кода и для сборки карты.
0
1
5 лет назад
Отредактирован ChugunovRoman
0
prog, Я юзаю VSCode и пока настроил таску по сборе lua. А как запустить карту через среду разработки?
И можно подробнее про готовые решения? :)
Ну код я собираю через WLPM, А вот как карту сохранить одним файлом со своими скриптами - я хз
Где можно найти какие-нибудь наработки на Lua или различные примеры кода?
0
24
5 лет назад
Отредактирован prog
0
ChugunovRoman, например, свою собственную систему сборки под вскод я делал на основе warcraft-vscode от Dencer. По началу я пользовался этим плагином как есть, а потом автор начал творить дичь с кодом и пришлось писать свой плагин, а с нуля писать времени и желания не было.
По факту - карта просто пакуется внешним mpq-упаковщиком после сборки кода и потом отправляется в игру через параметр командной строки.
Где можно найти какие-нибудь наработки на Lua или различные примеры кода?
Небольшое количество есть в статьях прямо тут на сайте, но мало и в основном не очень качественно т.к. мало кто этим пока занимается.
P.S. свой сборщик я допилю и тоже когда-нибудь выложу, но пока не до этого.
0
1
5 лет назад
Отредактирован ChugunovRoman
0
prog, поделишься своей системой сборки?)
По факту - карта просто пакуется внешним mpq-упаковщиком
Паковать через MPQEditor можно?
P.S. свой сборщик я допилю и тоже когда-нибудь выложу, но пока не до этого.
Свой сборщик Lua? Есть репа на гитхабе? Скинешь ссыль? может помогу
prog, В общем, поставил я warcraft-vscode и вроде пока все норм. Спасибо)
1
24
5 лет назад
Отредактирован prog
1
Паковать через MPQEditor можно?
Не пробовал, но скорее всего можно, если там есть поддержка запаковки из командной строки. Я честно спионерил внешний mpq-упаковщик у автора warcraft-vscode, одна из его особенностей в том, что ему можно передать файл со списком файлов которые надо запаковать, что очень удобно когда файлов много и не все файлы из папки надо паковать.
Свой сборщик Lua? Есть репа на гитхабе? Скинешь ссыль? может помогу
Репы на гитхабе пока нет, будет после первого релиза. Тогда и поговорим о помощи, если еще будет желание.
На данный момент проект состоит из трех частей:
  • внешний mpq-упаковщик, пока берется оригинальный из warcraft-vscode.
  • плагин изначально запиленый на основе warcraft-vscode, но без лишнего функционала, фактически это обертка внутри вскода над внешними сборщиками, также выполняет отправку карты на тестирование в игру. Требует значительной доработки и вполне может быть заменен чем-то другим.
  • псевдо-компилятор на c++, который выполняет две задачи - сборку исходников в один файл и препроцессинг кода для добавления небольших, но приятных фич вроде макроса RAW('A000'), в результате парсинга которого в итоговый код попадет числовое значение равкода (для сравнения, сейчас в луа версии карты используется функция FourCC, которая конвертирует строку равкода в число на этапе выполнения кода, автоматической конверсии равкода в число нет, в отличии от того как это работало в JASS).
По поводу поделиться системой сборки в текущем состоянии - там еще слишком много багов для этого, иначе я бы уже выложил первую версию в релиз.

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

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

Ну код можно выкладывать на любой стадии разработки ПО. Все желающие смогут подтянуться к разработке.
Я до первого релиза код не выкладываю, если проект изначально не начинался с расчетом на совместную разработку.
0
1
5 лет назад
0
но для релизного надо явно указывать все связи между файлами или заносить их в список, чтобы он включил их в сборку
Т.е. этот плагин может и не все файлы подтянуть?
1
24
5 лет назад
1
ChugunovRoman, на момент когда я последний раз трогал оригинал руками - в зависимости от выбраного режима. В отладочном режиме творится муть с заворачиванием кода в строки и всякое такое, но он подтягивает все файлы какие найдет. В релизном выполняется минификация кода и вроде нет заворачивания в строки, но нужно явно указывать что подтягивать.
0
1
5 лет назад
0
prog, Спасибо за разъяснения :)
0
23
4 года назад
0
и собрана для работы на версии игры 1.31.
Сделал все по инструкции, архив скачал, пути проставил. Жнгп открывается, но нифига не 1.31 версии: новые функции отсутствуют и карты 126+ не открывает.
Мой косяк или?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.