Ничего у меня не получалось, пока не добавил Продажа войск.
Возможно и я где-то накосячил с реализацией твоего способа, продажу войск добавлял. Глянешь потом прикреплённую карту, если найдёшь ошибку, то пришли сюда исправленную.
Пиши на 1.26, на нём сейчас многие играют в кастомки, так как это последний патч, что поддерживает гарена. 1.29 доступен только на официальных, а там играют в стандартные сражения.
Зачем для каждого, если можно сделать через переменную? И твоим способом не сработает, я пробовал: герой не удаляется из таверны, потому что не был добавлен в таверну после её постройки.
Вот карта, где я сделал своим способом, отключение идёт для каждого игрока.
UPD: добавил способ 8gabriel8, но он не работает.
Если кому интересно. Вот книга, где доказано, что у хештаблиц, в которых коллизии решены с помощью цепочек, сложность поиска O(1 + a), где а - коэффициент заполнения хештаблицы, a = n / m, n - количество хранимых элементов, m - размер основного массива.
Делаешь новую карту в JNPG. Открываешь Редактор Триггеров -> Melee Initialization. Конвертируешь его в Custom Text. Зажимаешь Ctrl и кликаешь ЛКМ по MeleeStartingHeroLimit. Откроется код этой функции. Там будет цикл с функциями ReducePlayerTechMaxAllowed. Опять жмёшь Ctrl и кликаешь ЛКМ по этому тексту. Там будет функция SetPlayerTechMaxAllowed(whichPlayer, techId, limit). Вот она нам и нужна. Указываешь игрока, которому нужно установить лимит, равкод героя, который будет лимитирован, и сам лимит - в твоём случае это 1.
Аналог в GUI - Player -> Limit Training Of Unit-Type.
Неужели очень сложно просто порыться в GUI? Я ранее часто так выявлял нужные функции в Jass, сейчас уже реже. В GUI даже поиск есть.
Ну так у тебя сложность цикла O(n), а хештаблицы O(1). Очевидно, что хеш тут будет быстрее.
Если же юнит или предмет будет привязан к структуре, то тогда номер структуры можно сохранять в UserData.
ответ - в структурах не должно быть глобальных переменных
Ответ неверен. Внутри структуры не может быть блока globals, потому что это бессмысленно: все поля в структуре уже являются глобальными переменными.
struct MyStruct
unit u // На самом деле будет создан глобальный массив юнитов.
static unit u2 // Будет создана 1 глобальная переменная типа юнит.
endstruct
function GetDistancePoints takes real x1, real y1, real x2, real y2 returns real
return SquareRoot((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))
endfunction
function GetDistanceUnitPoint takes unit u, real x, real y returns real
local real dx = GetUnitX(u) - x
local real dy = GetUnitY(u) - y
return SquareRoot(dx * dx + dy * dy)
endfunction
function GetDistanceUnits takes unit u1, unit u2 returns real
local real dx = GetUnitX(u1) - GetUnitX(u2)
local real dy = GetUnitY(u1) - GetUnitY(u2)
return SquareRoot(dx * dx + dy * dy)
endfunction
Ред. PT153
» WarCraft 3 / Как убрать звуки окружения
» WarCraft 3 / По поводу создания героя только 1 раз...(Помогите)
» WarCraft 3 / Как убрать звуки окружения
» Мир безумного / WarCraft 3 - 1.30 PTR
» WarCraft 3 / Как убрать звуки окружения
» WarCraft 3 / Мапинг 1.26 /1.29
» WarCraft 3 / Событие на вход в воду
Ред. PT153
» WarCraft 3 / Мапинг 1.26 /1.29
» WarCraft 3 / Мапинг 1.26 /1.29
» WarCraft 3 / По поводу кастомных заклинаний...
» WarCraft 3 / Мапинг 1.26 /1.29
» Администрация XGM / Не могу удалить прикреплённый файл
Как же горит от этого бага, уууух.
Ред. PT153
» WarCraft 3 / Как сделать анти сингл?
» CancerCraft / CancerCraft
» Мир безумного / WarCraft 3 - 1.30 PTR
Ред. Msey
» WarCraft 3 / По поводу создания героя только 1 раз...(Помогите)
Вот карта, где я сделал своим способом, отключение идёт для каждого игрока.
UPD: добавил способ 8gabriel8, но он не работает.
» CancerCraft / CancerCraft
То есть это пока тест? Я просто подумал, что наконец нашёл весёлую карту для игры с другом.
» WarCraft 3 / Что быстрее, искать индекс структуры через loop или хештаблицей?
Вот книга, где доказано, что у хештаблиц, в которых коллизии решены с помощью цепочек, сложность поиска O(1 + a), где а - коэффициент заполнения хештаблицы, a = n / m, n - количество хранимых элементов, m - размер основного массива.
Ред. PT153
» WarCraft 3 / По поводу создания героя только 1 раз...(Помогите)
Неужели очень сложно просто порыться в GUI? Я ранее часто так выявлял нужные функции в Jass, сейчас уже реже.
В GUI даже поиск есть.
» WarCraft 3 / Как уменьшить кол-во даваемой exp за юнита
То есть крип первого уровня даст 25 * 0.8 = 20 ед. опыта, а вражеская боевая единица - 25 ед.
Ред. PT153
» WarCraft 3 / Что быстрее, искать индекс структуры через loop или хештаблицей?
Всё равно хеш в Jass быстрее цикла, в котором помимо обращения к ячейкам ещё и постоянный инкремент.
» WarCraft 3 / Что быстрее, искать индекс структуры через loop или хештаблицей?
Если же юнит или предмет будет привязан к структуре, то тогда номер структуры можно сохранять в UserData.
Ред. PT153
» WarCraft 3 / Вопрос по Jass
Skolz: Читай статьи и тестируй сам. Так получишь ответы на многие вопросы.
» WarCraft 3 / Триггерный автокаст?
8gabriel8:
Ред. PT153
» WarCraft 3 / Вопрос по Jass