8

» WarCraft 3 / Region comparison?

PT153:
Редактор никак не влияет на совместимость, влияет только версия игры.
Помню в далеком 2012 году была проблема совместимости (много времени конечно прошло 6 лет не заходил), но помню, как карта не запустилась и пришлось изворачиваться, чтобы ее запустить. Поэтому это осталось в памяти.

а нажатие OK ничего не сломает. Главное не делать наоборот.
Это говорит о том, что если делаешь карту на версии 1.24, то можно потом будет запустить на:
1.24, 1.26, 1.27 и тд - а обратно не получится.

На какой версии карту делаешь?
На версии 1.24е (Еще с 2012 осталась), примерно в том же году вышла 1.26а. Классные времена были, Гарена была переполнена картами из варика.

Кстати вариант со сравнением юнита в регионе мне помог
Картинка с рабочим кодом
Буду думать на счет решения моей проблемы с глобальными переменными.
Всем спасибо!
Загруженные файлы
8

» WarCraft 3 / Region comparison?

quq_CCCP:
только на jass, 2 массива, в одном ректы в другом регионы, номера ячеек для пар регион-рект одинаковы, ну а далее перебором по GetTriggeringRegion()
Я тоже сразу об этом подумал, что нужно так сделать, но проблема в том, что я не могу объявить глобальные переменные с регионами, потому что они должны быть перед кодом объявлены, поэтому затея с созданием коллекции регионов у меня провалилась.
PT153:
У него странный редактор, возможно, что у него либо нет JassHelper, либо он отключён.
Стандартный близардовский (работаю с ним, чтобы быть уверенным, что не будет проблем с совместимостью карт и тд).
Не хочу работать месяц над картой, а потом узнать, что навороченный редактор не дал мне запустить ее в варике. В общем такие опасения. Когда один раз врубал WE U, то мне сообщило, что карта типа устарела и предложил обновить ее для этого редактора, вот тогда я отказался и вернулся на стандартный редактор.
Никак. Регионы и области не сравниваются параметрически
Ему нужно выяснить, какая ячейка массива содержит сработанный регион (если ему это действительно нужно). А это как раз и делается параметрически, ведь нужно сравнить ссылки.
Все верно, это мне и нужно, пока регионы у меня не пересекаются, а значит можно проверять находится ли юнит в обоих регионах, как написал:
GetLocalPlayer:
То есть, в твоем примере, проверить, находится ли юнит одновременно и в tempReg и в tempReg2.
А вообще в идеале, нужно делать на будущее с учетом, что они могут пересечься, поэтому тогда лучше всего вариант: quq_CCCP - но я написал выше в чем у меня проблема с этим вариантам.
Пошел пробовать ваши идеи
8

» WarCraft 3 / Region comparison?

ScopteRectuS:
По идее, карта вообще не должна сохранятся. Потому что вы сравниваете rect ==region.
Как привести один тип к другому?
Это тоже не работает
Ущербно, что на гуи регион это ректангл, в результате путаница такая..
Загруженные файлы
8

» WarCraft 3 / [Мемхак] Можно ли заменить "Нет расходов"?

JMCode:
pAxsIs, я убрал связанные текст нет расходов с едой хоть 100 еда не будет менять текст...
Сделай в Игровых константах расход 0, 100, 300 (например)
Смотри картинку
Потом замени в Игровом интерфейсе поля для расхода пищи, на текст с этажами
Смотри картинку
После этого триггерно увеличивай количество потребляемой пищи игроком (на 0, 100, 300) и увидишь, как будет меняться название этажа.
Загруженные файлы
8

» WarCraft 3 / [Мемхак] Можно ли заменить "Нет расходов"?

Допустим если механику которая привязана к количеству еды перенесешь на поле Point value (тоже в РО настраивается), то можно будет тригерно менять эту фразу "Нет расходов" на другие (повышение и понижением пищи)
8

» WarCraft 3 / Возможно ли использовать переменные в событиях в JASS?

PT153:
У меня вот так вот, но сейчас вопрос не про это
Либо у тебя стандартный редактор, либо у тебя удалён TESH, либо отключён.
У меня стандартный редактор
Да, можно, но нужно понимать, что событие будет работать только для того значения, что было в переменной в момент регистрации события.
А что раньше происходит действия в триггерах, который срабатывают (во время события инициализация) или регистрация события? Подозреваю, что второе.
Если регистрация событий раньше, чем срабатывает код из триггеров, где события инициализация, то как можно прописать в массив регионов - существующие регионы (можно даже как константы), главное, чтобы потом можно было их использовать из ячеек в событиях.
8

» WarCraft 3 / Возможно ли использовать переменные в событиях в JASS?

GetLocalPlayer:
А что конкретно не позволяет тебе использовать переменные в событиях GUI?
Их просто нет в выборе в событиях, так что я не могу выбрать переменную в событии
Юнит входит в регион.
Картинки
PT153:
У тебя TESH удалили?
У меня вот так вот, но сейчас вопрос не про это
Картинки
PyCCKuu_4eJl:
Насчёт региона - как-то так:
В общем, на мой вопрос ответ: "На JASS возможно использовать массивы и переменные в событиях" - верно?
8

» WarCraft 3 / Как заменить данные в правом верхнем углу? (золото\дерево\пища)

8gabriel8:
Время вместо пищи предложил, не подходит? Что конкретно хочешь вместо пищи?
Не суть что отображать, важно, чтобы реальные расходы пищи не отображались.
Пусть будет время, главное, чтобы это время никак не влияло на реальную пищу.
P.S. На расходе пищи завязана логика игры, а пользователю это не нужно видеть.
8

» WarCraft 3 / Как заменить данные в правом верхнем углу? (золото\дерево\пища)

Чтобы там отображалась не пища, а что-нибудь другое, такое возможно?
У пищи отдельная логика (зачем она нужна в игре), поэтому нужно, чтобы она не отображалась там.
8

» WarCraft 3 / Десинхронизация при выборе персонажа

Сделай, чтобы вначале были вражеский таверны и свои (тогда пикает каждый свое). А если мод -ap, меняй владельца на всех тавернах на нейтральных, чтобы закупаться мог любой.
8

» WarCraft 3 / Убрать заряды из магазина

Bergi_Bear:
думаю не надо рассказывать почему bj
Конечно я понимаю в чем суть, bj не все такие ужасные
Буду пробовать с вариантом со спелбуком, первое опасение, которое пришло в голову, это что игрок может выйти из спел бука на главную, куда ему не следует переходить.
8

» WarCraft 3 / Убрать заряды из магазина

Bergi_Bear:
способности в спеллбуках
Форсить триггерно переход в спел бук юнита при выборе этого юнита возможно? Чтобы тогда не видеть главную страницу.
8

» WarCraft 3 / Убрать заряды из магазина

Bergi_Bear:
Типов юнитов воинов -магазинов то много, а вот дамми магазинов всего лишь 1.
А как вы будете видеть портрет персонажа (даммика, который должен быть как оригинальный) + его атаку и все другие характеристики? В данном случае это принципиально важный момент, потому что игрок как бы выбирает из множества юнитов то, что ему может понравится, поэтому он должен видеть каждого юнита и его возможности.
Maniac_91:
А если заменить продажу на способности обмена дерева и золота? Хотя нет, способности с одинаковыми id..
Сейчас попробую с этим пошаманить, возможно это решит проблему.
8

» WarCraft 3 / Убрать заряды из магазина

Bergi_Bear:
pAxsIs, а чем клик то плох?
Синхронизация круга выбора лучше чтобы была, чтобы это было незаметно для пользователя, а значит нужно событие с малыми периодом, к чему я стараюсь прибегать в последнюю очередь, ведь это доп нагрузка, + типов юнитов тоже очень прилично (более 100 видов точно), а значит на каждого свой даммик нужен, чтобы унаследовать все его данные.
Хорошо бы для такого скила иметь базовый интерфейс, чтобы он подходил под любого получаемого юнита.
Такая тривиальная задача с убиранием цифры порождает столько проблем
8

» WarCraft 3 / Убрать заряды из магазина

Может возможно через версию 1.29 отловить того, кто использовал способность?
С помощью отслеживания мыши на экране GetTriggerPlayerMouseX / Y. среди тех, кто выбрал этого юнита?
8

» WarCraft 3 / Убрать заряды из магазина

Bergi_Bear:
создавать дамми магазин (дамми двигать вместе с выбранным разумеется), переключать выбор на только что созданный дамми магазин
Круг выбора под начальным юнитом не пропадет? Если мы делаем, чтобы даммик шел вместе с ним, чтобы круг оставался под начальным юнитом, то как синхронизировать их положения тогда?
Неужто событие с малым периодом на move instantly?
8

» WarCraft 3 / Убрать заряды из магазина

Bergi_Bear:
не думаю что можно убрать, можно сделать заряд 1 с интервалом пополнения 0
На данный момент так и стоит, но магазин не магазин, а полноценная боевая единица, поэтому для юнита делать способность с цифрой не ахти, так что ищу пути без цифры (для отлова того, кто нажал способность).
8

» WarCraft 3 / Округление чисел до определённого знака после запятой

PT153:
Нет, она округляет (математический метод), проверял несколько раз.
Например, R2SW(1. / 1024., 0, 9) вернёт 0.000976563.
Да, действительно. Что-то ответ 8gabriel8 сбил меня с толку.
Перепутал R2SW с принципом работы I2R(R2I(A)), где нужно (умножать на 10^N, чтобы получить N количество знаков после запятой) и как раз добавлять 0.5 или 1.0
8

» WarCraft 3 / Округление чисел до определённого знака после запятой

8gabriel8:
Если не путаю, то она не округляет, а отбрасывает цифры после указанного места. Для реального округления, например, дроби до целого, надо ещё 0.5 прибавить.
Все верно, отбрасывает. Находит в строке символ '.', и отбрасывает символы после заданного пользователем количества символов.
По сути то, что я описал, работает как функция ceil, а ваш вариант работает как round. Также можно еще добавлять не 0.5, а 1.0, тогда будет работать как floor.
8

» WarCraft 3 / Узнать игрока, который отдал приказ.

Что не спрошу, все невозможно, очень жаль :(
Будем дальше фантазировать, как можно это обойти и сделать иначе.
Спасибо всем за ответы!
8

» WarCraft 3 / Timer expired условия

quq_CCCP:
Не последний который закончился, а тот что запустил поток триггера или таймера. GetExpiredTimer (), в кастом скрипте используй.
Я вас понял, спасибо.
Сейчас пока делал другие триггеры, работал с "Real comparison" и случайно обнаружил, что сравнение таймеров находится именно там.
Так что нашел ответ на вопрос. Response на Expiring Timer находится в Real comparison.
Загруженные файлы
8

» WarCraft 3 / Округление чисел до определённого знака после запятой

Poma:
pAxsIs:
Если на GUI, то используй кастомный скрипт.
Пусть твое число это "A", тогда:
set A = R2SW(A, 0, 1)
На jass; эта функция стандартная? Просто я использую автоподсказку при нажатии, и ни разу не видел этой функции
Да, стандартная, описанная в common.j.
Загруженные файлы
8

» WarCraft 3 / Округление чисел до определённого знака после запятой

Если на GUI, то используй кастомный скрипт.
Пусть твое число это "A", тогда:
set A = R2SW(A, 0, 1)
8

» WarCraft 3 / Timer expired условия

quq_CCCP:
В гуях вроде можно, ну на JASS переходи, и все это дерьмо не потребуется.
GetEexpiredTimer() ищи в гуях, или кастом скриптом юзай.
К сожалению, там нет "Timer comparison" в условиях.
Я так понимаю эта функция возвращает последний таймер, который закончился?