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

Как настроить редактор можете посмотреть в профиле Bergi_Bear. Способности я уже выкладывал посмотрите, они не сложные.
С джасс было все просто, создать триггер конвертировать в текс ну и писать код
В редакторе можно сразу создать блок кода.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
24
ScopteRectuS, сойдет.
Еще можно как-то так - завернуть в вызов анонимной функции:
math = function()
  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 ()
Это позволит использовать локальные переменные уровня библиотеки, недоступные внешнему миру
21
prog, не совсем понял, что вы написали. Но возник другой вопрос, можно ли здесь переменную math.pi сделать приватной?
math = { }

math.pi = 3.14

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