30

» WarCraft 3 / Нужно ли собирать триггеры с одинаковым условием в один

При этом, если сделать для двух диалогов переменные Skip1 и Skip2, то всё исправно работает.
После завершения первого диалога Skip возвращается в false?
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

Я пока вижу только проблему, когда в одну цель несколько похищений.
И ещё одна проблема, если делать лимит целей: нужно обрывать drain, которому меньше всего жить осталось.
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

Это можно сделать через сохранение групп в хеш-таблицу.
К сожалению молнии нельзя сохранять в группы.
В смысле, равномерно? А изначально там неравномерное распределение?
Если одну цель сосут два кастера, то урон/хп происходят только от самой сильной абилки и хп распределяется между кастерами.
Можно записывать кастера в хеш-таблицу с хэндлом цели.
Представьте пять кастеров, каждый из которых применил заклинание один на другого. Притом между двумя кастерами не должно отрисовываться двух молний.
хватит всем сувать Lua, проще всего GUI
Хватит всем набирать код руками, ноги выбор мастеров.
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

не вижу смысла сохранять двумерные массивы в хеш-таблицу.
Делал заклинание и хотел сделать множественное применение, но возникла проблема хранения всех целей на кастере и всех кастеров на цели. Плюс ещё кучу всего, чтоб равномерно распределять хп между всеми применившими заклинание. Притом хотел ещё учесть такой вариант, что если два кастера применяют заклинание у одной цели, то первый применивший дамажил второго. Тут то мне таблиц и нехватило.
Функции? Их разве можно вообще куда-либо сохранять?
В lua их даже возвращать можно)
function sum(a)
	return function(b)
		return a + b
	end
end
print(sum(2)(3)) --> 5

Ещё можно удобно сохранять данные
Загруженные файлы
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

Хеш-таблица — универсальный хранитель информации.
Как сможете без лишних сущностей сохранить n двумерных массивов на хэндл юнита, тогда я вам поверю. За сохранение в хэштаблице безымянной функции я вообще молчу.
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

но хеш-таблицы очень легко освоить
Хэштаблицы это неповоротливый костыль, который можно использовать только для хранения this структуры по хэндлу таймера.
30

» WarCraft 3 / Конвертация в строку

trim обычно убирает символы отступа вначале и конце.
Так передайте в found пробел, он и уберёт. Я его для комманд чата писал и посему перевод строки не предусматривал.
30

» WarCraft 3 / Конвертация в строку

PT153, я целую библиотеку хороших функций накатал)
// Выводим сообщения
MessageTimed(string str, real time)
Message(string str)
MessageForPlayerTimed(player p, string str, real time)
MessageForPlayer(player p, string str)

// Очищаем строку сообщения
ClearTextMessagesForPlayer(player p)

// Получаем имя игрока
GetPlayerColorString(player p) -> string
GetPlayerNameColored(player p)  -> string

// Обрезаем крайние символы
LTrim(string str, string found) -> string
RTrim(string str, string found) -> string
Trim(string str, string found) -> string
// Примеры
LTrim("---T-r-i-m---", "-"); // T-r-i-m---
RTrim("---T-r-i-m---", "-"); // ---T-r-i-m
Trim("---T-r-i-m---", "-"); // T-r-i-m

// Конвертируем boolean в строку
B2S(boolean b) -> string
// Примеры
B2S(true); // true
B2S(!true); // false

// Превращаем строку в равкод
S2RAW(string ObjectId) -> integer
// Пример
S2RAW("hfoo"); // 1751543663
    
// Превращаем равкод в строку
RAW2S(integer ObjectId) -> string
// Пример
RAW2S(1751543663); // hfoo

// Заменяем подстроку
StringReplaceCounted(string str, string found, string replace, integer count) -> string
StringReplace(string str, string found, string replace) -> string
// Примеры
StringReplaceCounted("old old old old old", "new", 2); // new new old old old
StringReplaceCounted("old old old old old", "new", -2); // old old old new new
StringReplace("old old old old old", "new"); // new new new new new

// Склоняем строку в зависимости от числа
Declension(integer number, string dec1, string dec4, string dec5);
/* Описание
number - число, от которого склонять
dec1 - вариант склонения для числа 1, например "предмет"
dec4 - вариант склонения для числа 4, например "предмета"
dec5 - вариант склонения для числа 5, например "предметов"
*/
// Пример
Declension(100500, "предмет", "предмета", "предметов") // предметов

// Склоняем строку в зависимости от числа с заменой подстроки и учётом нуля
Declenser(integer number, string found, string dec0, string dec1, string dec4, string dec5) -> string
/* Описание
number - число, от которого склонять
found - подстрока, которая будет заменена на number
dec0 - вариант строки для number == 0, например "Рюкзак пуст"
dec1 - вариант склонения для числа 1, например "В рюкзаке %count% предмет"
dec4 - вариант склонения для числа 4, например "В рюкзаке %count% предмета"
dec5 - вариант склонения для числа 5, например "В рюкзаке %count% предметов"
*/
// Пример
Declenser(
	100500,
	"%count%",
	"Рюкзак пуст", 
	"В рюкзаке %count% предмет",
	"В рюкзаке %count% предмета",
	"В рюкзаке %count% предметов"
); // В рюкзаке 100500 предметов
30

» WarCraft 3 / отлов момента урона\доступ к значению урона.

Снеси его и поставь EN версию игры, если собираешься заниматься только созданием карт.
Судя по
на тригерах стоял эта строчка тупо пробелом была
скорей всего просто стояли "криворуские триггеры", тогда на выбор JNGP или последний патч.
30

» WarCraft 3 / Очередная проблема рывка

Принятый ответ
У вас там проблем целый ворох, а именно эта возникает из-за:
Которая вызывает SetUnitPosition(), которая сбивает приказ и учитывает коллизии юнитов. Вам нужно использовать SetUnitXY, примеры чего есть в статьях.

На досуге прочитайте Правила создания вопросов, а то мало ли...
Загруженные файлы
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

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

» WarCraft 3 / Проблема с переменной типа group

Принятый ответ
Вы хотя бы BJ разворачивали.
local unit q                       			  //Юнит, который добавляется в группу
local unit w = GetTriggerUnit()      //Юнит, который триггерит триггер
local group g = CreateGroup()                      			  //Группа, в которую все юниты входят
local integer j = GetHandleId(w)    //Узнаём ID юнита, который триггерит триггер

set q = CreateUnit(GetOwningPlayer(w), 'h00C', GetUnitX(w), GetUnitY(w), bj_UNIT_FACING)
GroupAddUnit(g, q)

// дальше сами...
30

» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице

Я Save Handle of (Last created unit) as 0 of (а дальше я не нашёл, как добавть "Key(Constructed structure))" in Hash
и соответсвенно любое другое действие, где прописанно Key
Если у вас 1.26, то Key не работает из GUI, так что переходите на последний патч с lua, там геммороя намного меньше.
30

» WarCraft 3 / Конвертация в строку

Принятый ответ
common.j
-- String Utility API

---@param i integer
---@return real
function I2R(i) end

---@param r real
---@return integer
function R2I(r) end

---@param i integer
---@return string
function I2S(i) end

---@param r real
---@return string
function R2S(r) end

---@param r real
---@param width integer
---@param precision integer
---@return string
function R2SW(r, width, precision) end

---@param s string
---@return integer
function S2I(s) end

---@param s string
---@return real
function S2R(s) end

---@param h handle
---@return integer
function GetHandleId(h) end

---@param source string
---@param start integer
---@param ending integer
---@return string
function SubString(source, start, ending) end

---@param s string
---@return integer
function StringLength(s) end

---@param source string
---@param upper boolean
---@return string
function StringCase(source, upper) end

---@param s string
---@return integer
function StringHash(s) end


---@param source string
---@return string
function GetLocalizedString(source) end

---@param source string
---@return integer
function GetLocalizedHotkey(source) end
30

» WarCraft 3 / Хеш-таблица

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

Да и в вопросах как-то уместней давать более гибкие решения, чтоб люди не парились.
30

» WarCraft 3 / Хеш-таблица

в его вопросе указано, что возникают только 3 юнита.
Возникают три, а затем ещё могут создаваться, добавляться и удаляться. Группа более эластичное решение и поэтому лучше создать её, чем заставлять автора париться с ключами, потом создавать новый вопрос и переделывать всё заново.
30

» WarCraft 3 / Хеш-таблица

Black Soul, выше два человека написали, что нужно создавать группу. Если здание будет создавать юнитов, то человек задолбётся ключи указывать.
30

» WarCraft 3 / Как триггерно призвать иллюзию героя?

Решил вопрос сам.
Смотрю создать вопрос намного легче чем тупо загуглить.