rsfghd, а разве не будет десинка? Ведь у одного игрока объект создастся, а у другого нет, и игра воспримет это как читерство. Разве не так написано в статье про get local player?
Нельзя для локального игрока создавать обьекты, типа Create Text Tag или Create Force и прочие handle обьекты, правда, на гуи это будет тяжело отслеживать, потому что придется проверять гуишные функции на предмет создания обьектов.
Так ведь есть же открытая Дота, где можно код этой абилки посмотреть. По крайней мере ту доту, что на хгм залили, я открывал через mpq master, код находится в папке war3 map imported.
Если уж прямо совсем нужна область, хотя и не обязательно, то
1 создай массив область - rect array
2 в коде присваивай юниту user data, случайным числом от 1 до 700, например
3 создавай область и записывай её в массив, где индекс массива равно user data юнита
4 поиск области в массиве проводи через user data юнита.
У меня была похожая проблема - нужно было создать книгу заклинаний и магазин заклинаний со случайной генерацией. А также инвентарь на 300 предметов, в виде рюкзака с несколькими отделениями. Пришлось создать базу данных.
Для этого хватит и обычного джасса.
Создай массив интегер
Создай набор интегер констант, отвечающих за столбцы (чтобы создать условно двумерный массив, то есть таблицу)
Допустим у тебя 150 предметов
Первая константа- ид предметов, второй столбец, равно 200 (чтобы с запасом)
Вторая константа- кастомные данные предметов, равно 400
И так далее
Поиск и работа с такой таблицей делай по принципу:
По циклу перемотать первый столбец, пока ид не совпадёт, используя обращение к массив по типу имя_массива[константа_столбца+индекс]
Текущий индекс массива в случае совпадения будет искомым
Его запоминаем
Затем берём другие данные из базы по типу имя_массива[константа_второго_столбца+текущий_индекс]
Готово.
Не нужны хеш таблицы, лишние функции итд. Столбцов можно сколько хочешь написать, в пределах массива, хотя можно создать и ещё массивы, например массив юнитов, и тогда получится подобие трёхмерного (!) Массива. Ориентироваться по нему можно с помощью тех же констант.
А, и чтобы самому иметь наглядное представление о своей базе, рекомендую сначала нарисовать её в Excel.
quq_CCCP, А как же способность у дриад/виверн на яд, например? Ведь чтобы их разблокировать, надо исследования качать. Или способность Тёмный, для танков, которая срабатывает только после исследования? Или те же авиабомбы у вертолётов?
quq_CCCP, я имел в виду, что странно, что способность от предмета, если её привязать к улучшению, всё равно работает. Ведь другие то не работают до прокачки улучшения.
JackFastGame, А вот это плохо, недоработка игры. Не должна по идее. Тогда надо как то триггерно добавлять, при прокачке улучшения, выделяя юнитов в группу по всей карте по условиям, и по циклу раздавая им абилки. И ещё ту же штуку проворачивать для всех нанимаемых в казарме.
Скорее костыль в виде дополнительной абилки от предмета, которая добавляет ману, дать её юниту в РО, и в ней прописать технологии - требования - улучшение, и требование- уровни - 3, чтобы она разблокировалась только после прокачки третьего уровня улучшения. Естественно, кастомную абилку переделать в абилку для юнита. У себя не проверял, это в теории.
TeX13, это не альтернативные, это оболочки, состоящие из нормальных функций. 90% из оболочек - бестолковые буквально. Как написал тебе rsfghd, их можно в common.j , blizzard.j глянуть. А по поводу подсветки - скачай старый компилятор JassCraft и запихни туда common.j , blizzard.j и будет норм подсветка, настраиваемая через запуск программы от имени администратора.
Хм. Без мемхака можно попробовать что то типа
Триггер Юнит атакован
Если юнит атакующий имеет абилку огненная стрела
Определить количество маны у героя, сохранить его в переменную
Подождать 1 секунду
Опять Определить количество маны (если огненная стрела съедает ману, количество
маны будет меньше
Если кол-во маны 2 меньше чем кол-во маны 1 (детект использования огненной стрелы)
То сделать нужный эффект абилки, нанести доп урон, итд
Как то так попробуй примерно) Ну и отполируй, чтобы по таймингам синхронно было.
Подскажите плиз, а какие файлы игры проверяет хост бот? К примеру, если карта -- кастомка для мода, в моде изменённые файлы игры, мод установлен у всех игроков, желающих сыграть, то смогут ли они сыграть? Или такое работает только через локальную сеть/Radmin/Hamachi?
Отдельному юниту можно сделать счётчик через UnitUserData, а добавлять триггерно, через локальные переменные, реализуемо на custom script, jass итд. На гуи будет геморрой. Что касаемо отображения зарядов, тут можно попробовать абилку с 15 уровнями, где на каждый заряд свой уровень, с разным описанием, и динамически менять уровень абилки
Посмотрите на изломе, в углу, нет ли там случайно 2х вершин вместо одной. Или лишнего треугольника, невидимого, сплющенного в одну линию. И попробуйте сбросить векторА нормалей у ближайших граней и настроить заново.
» WarCraft 3 / Совмещение TextTag и GetlocalPlayer. Десинхронизация.
» WarCraft 3 / Совмещение TextTag и GetlocalPlayer. Десинхронизация.
» WarCraft 3 / Помогите сделать способность
» Модели из World Of WarCraft / Лорд Поганище из WOW:SHADOWLANDS
» WarCraft 3 / Пак моделей Heroes III (Замок)
» XGM Конкурсы / Результаты конкурса Моделей 2022
» XGM Конкурсы / Результаты конкурса Моделей 2022
» WarCraft 3 / Как прикрепить область к юниту?
1 создай массив область - rect array
2 в коде присваивай юниту user data, случайным числом от 1 до 700, например
3 создавай область и записывай её в массив, где индекс массива равно user data юнита
4 поиск области в массиве проводи через user data юнита.
Ред. EugeAl
» WarCraft 3 / Как правильно создать магазин? UI+vJass (reforged)
Для этого хватит и обычного джасса.
Создай массив интегер
Создай набор интегер констант, отвечающих за столбцы (чтобы создать условно двумерный массив, то есть таблицу)
Допустим у тебя 150 предметов
Первая константа- ид предметов, второй столбец, равно 200 (чтобы с запасом)
Вторая константа- кастомные данные предметов, равно 400
И так далее
Поиск и работа с такой таблицей делай по принципу:
По циклу перемотать первый столбец, пока ид не совпадёт, используя обращение к массив по типу имя_массива[константа_столбца+индекс]
Текущий индекс массива в случае совпадения будет искомым
Его запоминаем
Затем берём другие данные из базы по типу имя_массива[константа_второго_столбца+текущий_индекс]
Готово.
» Модели из World Of WarCraft / Лорд Поганище из WOW:SHADOWLANDS
Ред. EugeAl
» WarCraft 3 / Экспоненциальный рост статы в улучшении
» WarCraft 3 / Экспоненциальный рост статы в улучшении
» WarCraft 3 / Экспоненциальный рост статы в улучшении
» WarCraft 3 / Экспоненциальный рост статы в улучшении
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
» WarCraft 3 / Странные функции в jass
» WarCraft 3 / Странные функции в jass
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
Ред. EugeAl
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
Триггер Юнит атакован
Если юнит атакующий имеет абилку огненная стрела
Определить количество маны у героя, сохранить его в переменную
Подождать 1 секунду
Опять Определить количество маны (если огненная стрела съедает ману, количество
маны будет меньше
Если кол-во маны 2 меньше чем кол-во маны 1 (детект использования огненной стрелы)
То сделать нужный эффект абилки, нанести доп урон, итд
» WarCraft 3 / Бесплатный AutoHost Bot на IrInA для вашего проекта
» WarCraft 3 / Способность с бафом блокирующая урон
Ред. EugeAl
» WarCraft 3 / Проблема нормалей
» WarCraft 3 / Не выдавать опыт
» WarCraft 3 / Memory hack API v1.4