Можно дать спелл на основе канала. Игрок его жмёт, срабатывает триггер, появляется диалог с выбором героя. Нужно событие на такой диалог, в триггере с таким событием условиями определяем нажатую кнопку (можно сделать событие на каждую кнопку, но это непрактично), разблокировываем героя для игрока, алтарю приказываем его тренировать (все герои должны тренироваться в алтаре по умолчанию, но изначально их лимит 0).
Если игрок нажимает Cancel (это можно отследить по приказам), ставим лимит на тренируемого героя 0.
Впрочем, тут много ньюансов, например, если герой уже выбран, игроку не должна показываться его кнопка. Также данный спелл должен блокироваться после найма n героев, если такое нужно.
native UnitAlive takes unit id returns boolean
function UnitDead takes unit u returns boolean
return not UnitAlive(u) // returns true, if unit does not exist.
endfunction
function UnitExists takes unit u returns boolean
return GetUnitTypeId(u) != 0
endfunction
function UnitDoesNotExist takes unit u returns boolean
return GetUnitTypeId(u) == 0
endfunction
function UnitIsAlive takes unit u returns boolean
return not IsUnitType(u, UNIT_TYPE_DEAD)
endfunction
function UnitIsDead takes unit u returns boolean
return IsUnitType(u, UNIT_TYPE_DEAD) // returns false, if unit does not exist.
endfunction
Но я использовал "is alive", а не "is dead". (В гуи)
Они вот так выглядят.
function IsUnitDeadBJ takes unit whichUnit returns boolean
return GetUnitState(whichUnit, UNIT_STATE_LIFE) <= 0
endfunction
function IsUnitAliveBJ takes unit whichUnit returns boolean
return not IsUnitDeadBJ(whichUnit)
endfunction
То есть лучше использовать IsUnitDeadBJ.
Чтобы сделать проверку, что предлагает Steal nerves, нужно делать проверку на тип юнита.
Так ему нужно строку в редакторе объектов увидеть, то есть копирует архив, вносит изменения в файл, открывает карту в редакторе и устанавливает уровень, потом заменяет архив прежней копией.
На лицензии нет архивов. CASC защищён от изменений.
Проэкспортировать настройки способностей из игры.
Открыть CASCView папку WC3, далее там открыть war3.mpq\Units\AbilityData.slk
Отредактировать то, что нужно и по такому же пути импортировать файл в карту.
Можно ещё карту Widgetizer оптимизировать, он сам эти файлы сделает.
Зайди в редактор объектов -> способности -> файл -> экспортировать способности.
Ты сохранишь файл, в котором хранятся способности. Такой же файл есть и в карте.
Переделаны только функции на основе ReturnBug на функции работающие с Хеш-Таблицей.
Вот тут поподробней, ведь у хеша раздельные сохранения для boolean, integer, real, string и handle.
Функции их вопроса.
раскрыть
function CS_H2I takes handle h returns integer
return h
return 0
endfunction
function GetAttachedObject takes handle h,string label returns handle
return GetAttachedInt(h,label)
return null
endfunction
function GameCache2Trigger takes gamecache g returns trigger
return g
return null
endfunction
function H2I takes handle h returns integer
return h
return 0
endfunction
function I2U takes integer i returns unit
return i
return null
endfunction
function I2T takes integer t returns trigger
return t
return null
endfunction
function I2G takes integer g returns group
return g
return null
endfunction
Да и обычный jass выглядит вырвиглазно и неудобен со своим синтаксисом из кучи длинных слов, словами вместо скобок и символов, и лишними словами call, local и set
» WarCraft 3 / Герои, выбранные с помощью окна
Если игрок нажимает Cancel (это можно отследить по приказам), ставим лимит на тренируемого героя 0.
Впрочем, тут много ньюансов, например, если герой уже выбран, игроку не должна показываться его кнопка. Также данный спелл должен блокироваться после найма n героев, если такое нужно.
» WarCraft 3 / Ауры в статусе
P. S.: не Alrl, а AIrl, вторая "и", 4-я "л".
Ред. PT153
» WarCraft 3 / Ошибочная проверка на жизнь
Иначе определяй нативку, и используй её.
Ред. PT153
» WarCraft 3 / Ошибочная проверка на жизнь
Ред. PT153
» WarCraft 3 / Ограничение уровня для печати преисподней
Ред. PT153
» WarCraft 3 / Не работает мемхак
» WarCraft 3 / Ограничение уровня для печати преисподней
» WarCraft 3 / Хранение нестандартных способностей в карте
» WarCraft 3 / Проблема с анимациями
» WarCraft 3 / Ограничение уровня для печати преисподней
Нужно вытащить файл, отредактировать и импортировать в КАРТУ по нужному пути.
» WarCraft 3 / MooMoo 1.5 Reborn
» WarCraft 3 / Проблема с анимациями
» Огонёк Феникса / Список конкурсов от Феникса
» WarCraft 3 / Не работает мемхак
Ред. PT153
» WarCraft 3 / Ограничение уровня для печати преисподней
Открыть CASCView папку WC3, далее там открыть war3.mpq\Units\AbilityData.slk
Отредактировать то, что нужно и по такому же пути импортировать файл в карту.
Можно ещё карту Widgetizer оптимизировать, он сам эти файлы сделает.
» WarCraft 3 / Хранение нестандартных способностей в карте
Ты сохранишь файл, в котором хранятся способности. Такой же файл есть и в карте.
» WarCraft 3 / ZinC: Гнев Деревьев AOE
Ред. PT153
» WarCraft 3 / MooMoo 1.5 Reborn
Функции их вопроса.
» WarCraft 3 / Не работает мемхак
Hate:
» WarCraft 3 / Slark Wars
» WarCraft 3 / Не работает мемхак
» WarCraft 3 / Ауры в статусе
» WarCraft 3 / Не работает мемхак
» WarCraft 3 / Ауры в статусе
» WarCraft 3 / Не работает мемхак