В предмет можно всунуть геройскую способность (которую сделать способностью под предмет) на повышение характеристик. В предмет можно вместить 4 различные способности.
Периодический таймер, который будет выбирать всех юнитов в радиусе относительно точки каста. Для реализации еще понадобится хэш-таблица. С помощью таймера двигать юнитов (можно, конечно, и в 3д сделать) с помощью полярных координат с определенной скоростью к центру (скоростью будет смещение за такт таймера).
Приватные функции различных библиотек не конфликтуют между собой, так как для таких функций компилятор устанавливает название НазваниеБиблиотеки__Название функции (после компиляции).
Ничто не мешает событию быть зарегистрированным (функция его регистрации для триггера работает ровно также, как и в любом другом месте кода).
static - общий объект для разных экземпляров структур (то есть, можно создать структуру Unit с публичными параметрами (то есть доступными для изменения извне, то есть не только структурными методами, а и функциями, не относящимися к ней, и статический счетчик кол-ва - целочисленную переменную, к которой каждая структура будет обращаться, чтобы увеличить или уменьшить счетчик при создании или удалении).
constant - переменная, которой присваивается значение лишь один раз без возможности его перезаписи.
method - функция внутри структуры, которая имеет право работать со структурными переменными (а если точнее - полями, если брать во внимание ООП), причем даже приватными, так как находится непосредственно внутри нее.
this - ссылка на структуру внутри метода (this.Mass = 80 - установит для данной структуры "массу" равной 80; это удобно, потому что так приходилось бы писать каждый раз myStruct.Mass = 80; myStruct.Height = 10, когда можно просто myStruct.SetParams (где уже обращение к ее переменным будет происходить через this)).
PT153, перед вызовом самой функции еще необходимо бы добавить сохранение некоторых данных в хэш-таблицу, которые понадобятся при работе. Странно, что идет упоминание GetEnumUnit(), хотя указанная функция сама по себе не является Enum'мной (так сказать). Если уж наносить урон, то либо перебором юнитов с помощью функции определения первого юнита через цикл, либо вызовом этой функции, но передачу значений осуществлять с помощью глобальных переменных, так как callback'и аргументов не берут (если, конечно, не брать во внимание извращения с мемхаком).
Прикрутить сюда систему отлова урона (на каждого нового мага, который будет обладать этой способностью нужно добавить событие на отлов урона). При отлове урона использовать хэш-таблицу или массивы. При ударе юнита в id хэндла атакующего записывать в какую-то ячейку (ее номер не имеет значения, главное, чтобы она не совпадала с номерами ячеек различных систем) количество урона, который должен нанестись и запускать таймер, по истечению которого значение данной ячейки зачистится (главное еще сохранять ссылку на таймер в атакующего юнита; если нет таймера, то создать, а если уже есть, то обновить время в третей ячейки (с учетом того, что в первой - урон, во второй таймер)).
ClotPh, а сама функция прелоада не рубится потоком при этом (возможно, прописано слишком много и оно требует разбития на отдельные потоки прелоада через ExecuteFunc)?
Первая функция нужна для определения версии игры (ROC или TFT). Вторая - вызывает проверку условий триггера, при этом добавляя в специальный счетчик к кол-ву вызовов проверок условий +1.
DracoL1ch, а что за руна такая?) Виндвок? pro100master, Тоадкоп делал систему, если не ошибаюсь (там такие шарики зеленые были, которые скатывались с горок и толкались). Сейчас найду.
Посмотрел карту, вспомнилась моя проблема с циклами. Возможно, по мере увеличения количества объектов на карте (звездолистов и самих крестьян) цикл убивает поток выполнения.
Bergi_Bear, думал, пошутить, но ладно) В GUI есть событие: Unit Within Range (JASS: TriggerRegisterUnitInRange). Можно добавлять это событие на юнита-"рабочего", чтобы дать тому возможность ответить мимопроходящему противнику.
uranus, или же взять событие - "юнит вторгся в личное пространство" -> действие: отомстить супостату (ну, там заставить нападать или применить заклинание) ))
Дистанция получения приказа не сыграет роли, поскольку юнит не захочет кого-то атаковать, так как является рабочим (главное, ему поле зрение хорошее обеспечить, чтобы он хотя бы мог видеть противника в радиусе, на которых по триггеру будет нападать).
После завершения улучшения ратуши повышать уровень ее способности до второго уровня (или же в редакторе объектов просто дать зданию Т2 более мощную способность - без триггеров, но так придется делать несколько способностей на каждый уровень).
Если рассматривать защиту от магии у горных великанов, то урон от ульт не снижается как и от обычных заклинаний + некоторые обычные заклинания блокируются (например, полиморф волшебниц). Что странно, так это то, что магический урон через защиту проходит такой же, как и без защиты.
» WarCraft 3 / I2R
» WarCraft 3 / 2 условия одной функции
» WarCraft 3 / Можноли так написать
Ред. Пушистый
» WarCraft 3 / Можноли так написать
» WarCraft 3 / Scope и глобалки
Ред. Пушистый
» WarCraft 3 / Как сделать чёрную дыру в варкрафт 3 ?
» WarCraft 3 / vJass
Ничто не мешает событию быть зарегистрированным (функция его регистрации для триггера работает ровно также, как и в любом другом месте кода).
static - общий объект для разных экземпляров структур (то есть, можно создать структуру Unit с публичными параметрами (то есть доступными для изменения извне, то есть не только структурными методами, а и функциями, не относящимися к ней, и статический счетчик кол-ва - целочисленную переменную, к которой каждая структура будет обращаться, чтобы увеличить или уменьшить счетчик при создании или удалении).
constant - переменная, которой присваивается значение лишь один раз без возможности его перезаписи.
method - функция внутри структуры, которая имеет право работать со структурными переменными (а если точнее - полями, если брать во внимание ООП), причем даже приватными, так как находится непосредственно внутри нее.
this - ссылка на структуру внутри метода (this.Mass = 80 - установит для данной структуры "массу" равной 80; это удобно, потому что так приходилось бы писать каждый раз myStruct.Mass = 80; myStruct.Height = 10, когда можно просто myStruct.SetParams (где уже обращение к ее переменным будет происходить через this)).
» WarCraft 3 / Функцыя вызова
» WarCraft 3 / Как сделать триггерную возвратку физ урона?
» WarCraft 3 / И снова по прелоадам
» WarCraft 3 / Как создать способность с постепенным уроном от статов?
» WarCraft 3 / Как создать способность с постепенным уроном от статов?
Ред. Пушистый
» WarCraft 3 / Удаление трупов
Скрин в файлах.
» WarCraft 3 / Функция Atan2
» Администрация XGM / Как сделать фон скрина прозрачным?
» WarCraft 3 / Можно ли локально отдать приказ юниту?
» WarCraft 3 / Функции
Ред. Пушистый
» WarCraft 3 / Как сделать, чтобы большие юниты рассталкивали маленьких
pro100master, Тоадкоп делал систему, если не ошибаюсь (там такие шарики зеленые были, которые скатывались с горок и толкались). Сейчас найду.
» WarCraft 3 / Повышение уровня способности триггерно
» WarCraft 3 / Проблемы с ордером
» WarCraft 3 / Автоатака у работника
» WarCraft 3 / Автоатака у работника
Дистанция получения приказа не сыграет роли, поскольку юнит не захочет кого-то атаковать, так как является рабочим (главное, ему поле зрение хорошее обеспечить, чтобы он хотя бы мог видеть противника в радиусе, на которых по триггеру будет нападать).
» WarCraft 3 / Автоатака у работника
» WarCraft 3 / Повышение уровня способности триггерно
Ред. Пушистый
» WarCraft 3 / Как работает "Защита от магии"?