30

» WarCraft 3 / Ограничение для предметов

Cамый простой вариант:
  • выделяете для лимитных предметов категорию, например "Артефакты"
  • уровень предмета = максимальное количество
  • при получении предмета проверяете, если он в нужной категории, по уровню получаете максимальное количество
  • ...
  • Профит))
Плюсы такого подхода, что все настройки в РО находятся, правда и минусы есть.

Немного посложнее:
Заводите хэштаблицу, и по ID предмета устанавливаете лимит, при получении также смотрите в таблицу.
30

» WarCraft 3 / Ограничение для предметов

для КАЖДОГО ПРЕДМЕТА
Для каждого предмета или для каждого типа предмета?
30

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

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

Наверное сделаю волну замедления с баффом, чтоб повторно накладывалось.
30

» WarCraft 3 / Самый производительный Bullet Hell

Без счётчика непонятно количество эффектов. Каждого блэйда по разу прожал.
Я тоже упростил по максимуму))
Загруженные файлы
30

» WarCraft 3 / Самый производительный Bullet Hell

Ошибки в коде шикарные эффекты делают))
https://xgm.guru/files/100/227796/comments/422494/BulletHell.w3x
Загруженные файлы
30

» WarCraft 3 / Самый производительный Bullet Hell

Должно работать)
кстати я не хочу наносить урон через фильтр, как мне наносить урон через
Так же, как я раньше на zinc делал
local e
while true do
	e = FirstOfGroup(perebor)
	if e == nil then breal end
	--наносим урон
	GroupRemoveUnit(perebor,e)
end
Загруженные файлы
30

» WarCraft 3 / Самый производительный Bullet Hell

когда падает таймер, то эффекты продолжают создаваться под ногами героя
Потому что таймеры эффектов не падают
30

» WarCraft 3 / Самый производительный Bullet Hell

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

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

in это непонятная зверушка. Где вы такой for увидели?
Используйте лучше стандартный
for init,max/min value, increment
do
	statement(s)
end

function varName( ) return 0 end
varName = function( ) return 0 end
Это обычный сахар и таки да, вы переобъявили функцию.
Все функции в Lua - переменные?
В lua всё является объектами.
30

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

Также еще заметил, что глобальные переменные можно создавать внутри функции
Глобальные переменные можно создавать откуда угодно. Но лучше так не делать
если переменная может использоваться в замыкающей функции, то она не будет очищена сборщиком мусора
Сборщик мусора очищает всё неиспользуемое. Если не уверены насчёт очистки, всегда есть nil.
Переменная var будет создана 11 раз или 1 раз, а дальше перезаписываться?
Блок do ... end создаёт область видимости и переменная будет создана один раз, потом будет перезаписываться и успешно умрёт вместе с циклом.
30

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

может заменить на девятый вал?
Девятый вал расширяется и выглядит некрасиво, а искать на хайве было лень. Я его вообще для этого вопроса делал)
30

» WarCraft 3 / Самый производительный Bullet Hell

перенести на отдельный таймер по снаряду
Я тоже так думаю.
Bergi_Bear:
какой лимит операций на потоке
Если мне не изменяет память то:
  • 1.26: ~4000
  • 1.30: ~32000
30

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

Если говорить упрощённо, то передавая безымянную функции в TriggerAddAction вы также передаёте копии объектов, из её области видимости, где какраз и находится str.
local str = "one"
function InitDebugTriggers( )
	local trig = CreateTrigger( )
	BlzTriggerRegisterPlayerKeyEvent( trig, Player( 0 ), OSKEY_ESCAPE, 0, true )

	TriggerAddAction( trig, function( )
		print(str) --> two
	end)
end
str = "two"
30

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

локальные переменные в Lua обнулять не нужно?
Нужно уничтожать объекты. Локальные переменные живут внутри своей области видимости и уничтожаются сборщиком мусора. Если хотите побыстрее отправить переменную в мусор, присвойте ей nil.
Переменная str живёт в замыкании от функции InitDebugTriggers( ).
30

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

Каким образом она летит?
По прямой, пока не столкнётся с рельефом.

тогда нужно описание
Описания не моя сильная сторона((
30

» WarCraft 3 / Козырная пешка (RPG)

8gabriel8, мне тут вообще не дали отыграть злобного упыря, так что о переходе во тьму можете не мечтать(
30

» Защитники Хелерии / Обзор героя: Оури - Егерь

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

» WarCraft 3 / Tooltip предмета

Roflan, если сильно нужно, можете также позаменять киррилические буквы сходными по начертанию латинскими.