не вижу смысла сохранять двумерные массивы в хеш-таблицу.
Делал заклинание и хотел сделать множественное применение, но возникла проблема хранения всех целей на кастере и всех кастеров на цели. Плюс ещё кучу всего, чтоб равномерно распределять хп между всеми применившими заклинание. Притом хотел ещё учесть такой вариант, что если два кастера применяют заклинание у одной цели, то первый применивший дамажил второго. Тут то мне таблиц и нехватило.
Как сможете без лишних сущностей сохранить n двумерных массивов на хэндл юнита, тогда я вам поверю. За сохранение в хэштаблице безымянной функции я вообще молчу.
// Выводим сообщения
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 предметов
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)
// дальше сами...
Я Save Handle of (Last created unit) as 0 of (а дальше я не нашёл, как добавть "Key(Constructed structure))" in Hash
и соответсвенно любое другое действие, где прописанно Key
Если у вас 1.26, то Key не работает из GUI, так что переходите на последний патч с lua, там геммороя намного меньше.
-- 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
в его вопросе указано, что возникают только 3 юнита.
Возникают три, а затем ещё могут создаваться, добавляться и удаляться. Группа более эластичное решение и поэтому лучше создать её, чем заставлять автора париться с ключами, потом создавать новый вопрос и переделывать всё заново.
» WarCraft 3 / Нужно ли собирать триггеры с одинаковым условием в один
» Наследие Альянса / Релиз кампании "Последний Страж Лордерона"
» WarCraft 3 / Нужно ли собирать триггеры с одинаковым условием в один
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
Ред. nazarpunk
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
Ред. nazarpunk
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
» WarCraft 3 / Конвертация в строку
» WarCraft 3 / Конвертация в строку
» WarCraft 3 / отлов момента урона\доступ к значению урона.
» WarCraft 3 / Очередная проблема рывка
Ред. nazarpunk
» WarCraft 3 / Очередная проблема рывка
» WarCraft 3 / Проблема с переменной типа group
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
Ред. nazarpunk
» WarCraft 3 / Проблема с переменной типа group
» World of WarCraft / Настольная игра Warcraft
» WarCraft 3 / Передвижение юнитов через спел на Хеш-таблице
Ред. nazarpunk
» WarCraft 3 / Конвертация в строку
Ред. nazarpunk
» WarCraft 3 / Хеш-таблица
» WarCraft 3 / Хеш-таблица
» WarCraft 3 / Хеш-таблица
» WarCraft 3 / Проблема в триггере рывка
» WarCraft 3 / Как триггерно призвать иллюзию героя?