30

» WarCraft 3 / JNGP Lua Edition

Пока это просто JNGP с возможностью писать на Lua без подсветки
Он сразу собирает war3map.lua что-ли? Не пойму как в нём уживается jass и lua.
30

» WarCraft 3 / Lua: функции в таблице

А как еще получить название функции?
На код внимательно посмотреть))
Загруженные файлы
30

» WarCraft 3 / JNGP Lua Edition

А он подсвечивает lua и позволяет делать вложенные папки в редакторе триггеров?
Загруженные файлы
30

» WarCraft 3 / Lua: функции в таблице

Принятый ответ
ScopteRectuS:
Предполагаю, что делается через какой-то цикл перебором всех элементов таблицы, если элемент является функцией, то запустить.
Правильно предполагаете, но мануалы же никому неинтересны, проже же вопрос задать.
test   = { }
test.a = 123
test.b = true
function test.func0()
	print(0)
end
function test.func1()
	print(1)
end
function test.qab()
	print(2)
end

for k, v in pairs(test) do
	if type(v) == 'function' then
		print(k, ':')
		v()
	end
end
30

» WarCraft 3 / Cмертельный союз на противника

Проще сделать триггерно, тем более, есть куча статей.
Можно взять похожее и немного подправить.
30

» WarCraft 3 / math.ease

Никто не отрицает данных преимуществ. Проблема в трудозатратах.
Так написание lua намного снижает трудозатраты, по сравнению с GUI. Особенно на больших проэктах.
То же касается программистов - ты молодец, что можешь написать эффективный и эффектный код, но на голом пустыре он игрока не впечатлит.
На пустом месте GUI тоже никого не впечатлит. А так у меня будет красивый и рабочий код, который кто-то может использовать в своём проэкте и впечатлить людей)
30

» WarCraft 3 / math.ease

не все англ знают
Есть много хороших мап на ГУИ, в которые играет множество людей и у них даже есть собственное большое комьюнити.
Я за них искренне рад. Только вот написать хорошую карту и написать хороший код это две большие разницы.
Не всем хочется писать код, не всем это интересно.
Мне вот интересно, я и пишу. Кому не интересно, того никто не заставляет.
Интерфейс был дан чтобы его использовали и большинство это делают.
Ну так и пусть используют, а я вот нехочу его ипользовать и тратить своё время на то, чтоб его поддерживать.
ГУИшники такая же значимая часть комьюнити, как и ты.
Моделлеры тоже важная часть комьюнити и что с этого? Я что-то не припомню, чтоб я комьюнити по значимости сортировал.
30

» WarCraft 3 / Способности и алгоритмы на заказ

просто описание способности нужно?
Да. Желательно в стиле стандартных заклинаний.
30

» WarCraft 3 / Заклинание: Волна Воды

А ты проверил в итоге, не делает ли то же самое автоматический сборщик?
Подскажи как 100% отловить срабатывание сборщика, затестю.
сборщик мусора ел анонимные таймеры на анонимных функциях в анонимных триггерах.
С полностью именоваными так же падал. Когда запускал четыре безымянных таймера, то падали не все.
30

» WarCraft 3 / Способности и алгоритмы на заказ

Есть у меня заклинание, решил переписать/улучшить код и заодно сделать красивое описание заклинания в игре. Но вот со словами у меня не очень складывается, поэтому решил попросить с этим помощи.
30

» WarCraft 3 / Заклинание: Волна Воды

а если подробнее?
Если просто, тов lua, как и в js объекты сразу не уничтожаются, а ждут своего часа до прихода сборщика мусора который удаляет объекты, на которые нет ссылок. Но как недавно выяснилось, ручной запуск сборщика может прибить таймеры и события триггеров.
30

» WarCraft 3 / Изменение количества урона

Пре хил по событию урона довольно старое, простое, работоспособное решение.
Ну не такое и простое
  • запомнить хп до нанесения урона
  • дать абилку на макс хп
  • вернуть хп обратно
  • перенанести нужный урон
30

» WarCraft 3 / math.ease

она ничего не объясняет.
Каюсь, описание на скорую руку слепил, на днях реализую cubic-bezier и распишу как этим пользоваться.
30

» WarCraft 3 / Заклинание: Волна Воды

Является ли безымянная функция утечкой?
Она умрёт вместе с таймером.
30

» WarCraft 3 / math.ease

дескать, "хотите - доделывайте, но мне лень"
Недоработанные наработки я как-бы не публикую и настройки всегда вынесены для удобства. За комментариями в них я слежу и исправляю ошибки, если таковые имеются. Но что-то никто не спрашивал о том, как привязать их к GUI, значит как-то сами разобрались и делать лишнюю работу мне не нужно.
Но ты ведь сделал упор на какую-то "особенную одаренность", то есть выделил отдельную категорию посетителей ресурса по какому-то признаку как недостойных твоего внимания.
Не делал я никакого упора, это вы на этой фразе внимание акцентируете.
Кто-то помоложе и поглупее, посмотрев на твою позицию и взяв с тебя пример, придумает свой повод отделиться в отдельную группу, но уже, скажем, по национальности.
Сначала ты для GUI не пишешь, а потом Родину продашь?))
Другая проблема может заключаться в том, что человек, который сможет обращаться с этой наработкой, скорее всего, напишет такую самостоятельно.
Зачем писать, если можно взять готовое? Судя по количеству наработок, брать пока нечего, но я пытаюсь это исправить. Даже github для нработок завёл))
Но судить мне сложно, так как я не понимаю Луа
А жаль, он намного удобней чем jass
30

» WarCraft 3 / math.ease

Как минимум странное отношение для ресурса, который вроде позиционирует себя как точку сбора и взаимопомощи, где технари, например, могут помочь гуманитариям.
Судя по Q\A помогают тут всем. Но мне например лень возиться с GUI ради тех, кому лень подправить под свои нужды несколько строчек в коде.
30

» WarCraft 3 / Изменение количества урона

На последнем патче вообще всё просто
do
	local DamageTrigger = CreateTrigger()
	for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
		TriggerRegisterPlayerUnitEvent(DamageTrigger, Player(i), EVENT_PLAYER_UNIT_DAMAGING) -- До вычета брони
		--TriggerRegisterPlayerUnitEvent(DamageTrigger, Player(i), EVENT_PLAYER_UNIT_DAMAGED) -- После вычета брони
	end
	TriggerAddAction(DamageTrigger, function()
		local damage = GetEventDamage() -- число урона
		if damage < 1 then return end
		local target = GetTriggerUnit() -- тот кто получил урон
		local caster = GetEventDamageSource() -- тот кто нанёс урон
		
		if GetHandleId(target) == FourCC('Глыба') then
			-- Что-то делаем
		end
	
	end)
end
30

» WarCraft 3 / math.ease

продвинутых связок GUI + скрипты
Не вижу смысла связываться с GUI из-за особой одарённости большинства гуишников.
При Lua таких проблем как с библиотеками на жасс для гуишников нету
Что-то не заметил я проблем с библиотеками на GUI.
30

» WarCraft 3 / math.ease

если хочется расширить аудиторию, придется расписать как можно проще.
Для большой аудитории нужно пилить наработки в стиле "Находим 10% от любого числа на GUI без утечек".
30

» WarCraft 3 / math.ease

а чего он с разной скоростью летит, казалось бы
Потому что в описании написано:
Надоело запускать снаряды с линейной скоростью
было бы прикольно сделать систему атаки с снарядом для ренжей, и чтобы от атаки можно было уклонятся (можно было подвинуть триггером на чуть-чуть вбок или проиграть анимацию уклонения. это уклонение не только в дальнем, но и ближнем бою) или блокировать щитами (взрыв об щит). и конусную систему снарядов по нескольким целям.
Мне такие недосистемы предлагают писать каждую неделю. Вот как оформите к такой системе полноценное ТЗ, так вот сразу напишу.
30

» WarCraft 3 / Кампания: Другая Сторона (Альянс)

делать альтернативные ветки сюжета и менять его
А потом запутаться во всех ветках и бросить это дело. Некоторые в прямом как рельсы сюжете умудряются несостыковок налепить.
30

» WarCraft 3 / Хэш на Lua ?

Матрица в которой можно даже функции хранить.
В lua нет массивов в привычном понимании, там всё реализовано на таблицах.
30

» WarCraft 3 / Хэш на Lua ?

Принятый ответ
Хэштаблицы это костыльнй пережиток jass.
На lua можно же и так
a = {
	b = {
		c = {
			d = function()
				print('work')
			end
		}
	}
}
a.b.c.d()