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
7
5 лет назад
0
Извините если туплю, но где сам архив в закрепе?
2
30
5 лет назад
2
Скачайте и разархивируйте в любую директорию файлы (пароль архива: thw, т. к. антивирусы считают этот хак редактора вирусом)
исправил
0
11
5 лет назад
0
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
DopaMine:
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
Вот так выглядит у меня
DopaMine:
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
DopaMine:
Сделал всё, как написано в инструкции, запустился редактор. Как мне писать на JASS-е а не на триггерах? Куда нажать?) И может, есть русификатор редактора?:D Помогите плз)
Всё, нашёл! Не знаю, как удалить сообщение(
Загруженные файлы
Этот комментарий удален
0
1
5 лет назад
0
Yo народ, писать на Lua круто, разбивая все на отдельные фалы и потом собирать их все в один бандл. прям как Gulp. Но потом я наткнулся на такую дичь.
Короч, сбандлил war3map.lua поместил его в папку с картой, открыл карту в WE, итог: в редакторе триггеров структура файлов и каталогов конечно же не создалась, что вполне очевидно, и при сохранении карты файл war3map.lua перезаписывается на стандарный (почти пустой) скрипт (когда в редакторе триггеров ничего нет).
Как это обойти? Можно ли как-то импортировать все файлы в WE?
Ручками не варик - с ума сойдешь.
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 и вроде пока все норм.
Все норм, если не смотреть на тот ужас, который он делает с кодом в итоговой карте.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.