Скачал патч 1.31
Переход на луа, как я понял делается через меню сценарий-параметры карты-выподающий список
А что дальше? (не нападайте)
Куда пишется код? Туда же, куда и джасс? через конвертацию триггера в текст? Или для этого нужно качать отдельные программы (вс код и вставлять эти файлы в карту? Каким образом?)
Как пишется сам код? Я прочитал несколько руководст по этому языку, просто стандартные основы как выглядят функции, переменные и тд.
Все обучалки которые нашел, акцентируются на других играх под которые пишутся эти скрипты на луа, но хотелось бы понять как это делается для вк3
С джасс было все просто, создать триггер конвертировать в текс ну и писать код, а с луа как быть? Как выглядит стандартный триггер на луа? Событие, условие, действие? Или это все работает иначе? Используются там теже самые нативки что и в джасс? Или например нативка по созданию юнита теперь выглядит иначе?
Прошу расписать как можно подробнее, если об этом писалось где либо, дайте ссылку пожалуста.

Принятый ответ

Как настроить редактор можете посмотреть в профиле Bergi_Bear. Способности я уже выкладывал посмотрите, они не сложные.
С джасс было все просто, создать триггер конвертировать в текс ну и писать код
В редакторе можно сразу создать блок кода.
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
24
5 лет назад
1
ScopteRectuS, в вашем варианте нельзя, в моем можно.
Если с анонимной функцией непонятно, можно переписать так
local function InitMath()
	local math = {}
	math.pi = 3.14 --паблик
	local secretvar = 42 --приват
	
	function math.abs( a )
	    if a >= 0 then
	        return a
	    else
	        return -a
	    end
	end
	return math
end
math = InitMath()
Есть и другие варианты, но они еще сложнее)
1
29
5 лет назад
1
Если с анонимной функцией непонятно, можно переписать так
А чем do ... end не устраивает?
do
    math = {}
    math.pi = 3.14 --паблик
    local secretvar = 42 --приват

    function math.abs(a)
        if a >= 0 then
            return a
        else
            return -a
        end
    end
end
0
24
5 лет назад
0
NazarPunk, да в принципе ничем, кроме того факта что инициализация через функцию дает чуть больше потенциальных возможностей - например позволяет иметь две версии одной библиотеки и выбирать нужную и двух по какому-то критерию и уже её записывать в глобальную переменную с именем библиотеки.
0
21
5 лет назад
0
NazarPunk, prog, понял, спасибо. А как перезаписать функцию main еще не придумали?
1
24
5 лет назад
Отредактирован prog
1
ScopteRectuS, я пользуюсь vscode для работы с кодом и плагином warcraft-vscode для сборки и запуска тестирования карты. Он берет код карты и код из всех внешних файлов в определенном месте и собирает это все в одну кучу на основе заданых шаблонов. Если убрать все лишнее из шаблонов, то получается что наш код помещается в код карты после оригинального кода и за счет этого я просто делаю вот так
local alpha_main = main
function main()
    alpha_main()
    Locales:Init()
    Libraries:Init()
end
Но есть и другие инструменты, в том числе такие которые копируют синтаксис инжекта в мейн из жассхелпера.
0
21
5 лет назад
0
Но есть и другие инструменты, в том числе такие которые копируют синтаксис инжекта в мейн из жассхелпера.
Про это хотелось бы узнать подробнее.
0
24
5 лет назад
0
ScopteRectuS, сразу скажу - все они работают вне WE, других вариантов нет кроме как дособриать карту внешним инструментом не полагаясь на WE.
0
21
5 лет назад
0
сразу скажу - все они работают вне WE
ай, блин. Тогда уж лучше вручную править war3map.lua
0
24
5 лет назад
Отредактирован prog
0
ScopteRectuS, лучше не выделываться и поставить vscode и плагины к нему - заодно и подсветка синтаксиса Lua будет и все удобства нормальной среды разработки. Запуск тестирования карты чуть менее удобен оттуда, чем просто нажать кнопку в WE, но это стоит тех плюсов которые дает внешний редактор кода.
0
21
5 лет назад
0
prog, я сейчас пишу код в vscode, а затем через ctrl+c и ctrl+v переношу в редактор триггеров.
0
24
5 лет назад
0
ScopteRectuS, я сам так начинал. Потом надоело и я починил jasshelper на PTR и научил его работать с Lua. А потом вышел релиз и жассхелпер убрали из луа режима полностью и я пересел на плагин warcraft-vscode. Теперь у меня запуск карты на тестирование выглядит так - в vscode F1 и выбор кнопки "запустить варкрафт". Надоест нажимать две кнопки - подправлю плагин и назначу на это какой-то хоткей.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.