24

» StarCraft 2 / Надоедливый ИИ: эпизод II

Принятый ответ
То, что мне приходит в голову:
  • дать общий контроль с компьютерным игроком, которому будут принадлежать все войска, которые игрок будет считать своими (возможно придется заморочиться с синхронизацией ресурсов)
  • написать полностью триггерный ИИ
Чисто теоретически запустить ИИ для живого игрока можно, но на практике движок так, скорее всего, не умеет.
24

» WarCraft 3 / Цикл повторяется до трех раз

Darkew, ну мое дело предупредить - еще вспомните об этом когда начнутся странности вроде срабатывания способностей не на ту цель или чего по хуже.
24

» WarCraft 3 / Цикл повторяется до трех раз

Triggering Unit, Attacked Unit и подобные функции гарантированно выдают правильное значение только в момент срабатывания триггера, а если добавить вейты, то за время ожидания уже совсем другие юниты могут стать последним вызвавшим срабатывание триггера или последним атаковавшим юнитом.
Решается через кастом код и локальные переменные.
24

» WarCraft 3 / Что за фигня пытался сделать ИИ со своим героям импортировал в карту и вот что вылезло

Принятый ответ
leha3, одиночные кавычки в варе это не строка, а особая форма представления числа.
В подробности мне вдаваться некогда и объяснять про системы исчисления с основой отличной от 10, тем более все это было в статьях. Просто используй 0 вместо двух одинарных кавычек в той строке, на которую ругается компилятор, а одинарные кавычки только с четырехсимвольными равкодами.
24

» Программирование / Попадание точки в 3д фигуру

darkowlom, можешь немного уточнить задачу? тебе мауспик нужен (точка на экране монитора) или точка в трехмерном пространстве? в зависимости от этого нужны различные алгоритмы.
24

» Программирование / Попадание точки в 3д фигуру

Если обобщить, то выглядит так
  • перебираем все фигуры, в которые может попасть точка
  • отсекаем по баундинг боксам и другим простым критериям столько фигур, сколько получится
  • для оставшихся фигур прогоняем более дорогие детальные проверки, зависящие от того, что именно подразумевается под "попаданием точки в фигуру"
если задача определить, например, клик мышкой по объекту это одно, а если есть координаты точки в трехмерном пространстве и надо понять находится ли она внутри объекта это совсем другое
24

» WarCraft 3 / Фиксированная позиция игрока

А проблема была скорее всего в том, что даммик не видит свою цель.
24

» WarCraft 3 / дать способность на некоторое время

Dragonear, называется параллельные массивы, но для привязки они сами по себе не годятся т.к. таймер в момент срабатывания знает только себя и придется по массиву пройтись линейным поиском чтобы найти номер таймера в массиве, а потом по этому таймеру найти юнита. Вот для расширения кастом данных самое то - вешаем в Custom Data юнита номер его ячейки в массиве и любой, кто знает юнита, может моментально получить доступ ко всем дополнительным кастом данным этого юнита.
24

» WarCraft 3 / дать способность на некоторое время

nvc123:
Если бы ты внимательно читал, то мог бы заметить, что во-первых простого уменьшения времени недостаточно - нужны еще дополнительные проверки на особые случаи, во-вторых использование одного таймера уже обсуждалось и в-третьих у автора пока нет знаний в области работы с jass, а гуишное периодическое событие у него вызывает лаги при большом кол-ве юнитов.
24

» WarCraft 3 / дать способность на некоторое время

Dragonear, увы, не все в варе можно сделать бафами. Сама по себе идея дамми-каста вполне надежна при грамотной реализации и часто используется, но в данном конкретном случае недостаточно просто наложить эффект - нужно еще отследить условия для снятия этого эффекта. И вот тут начинаются проблемы, связанные с ограниченностью движка. Решить их почти всегда можно, но достигается это либо ценой упрощения игровой механики либо ценой написания сложной системы на jass.
P.S. лучше бы второй старкрафт осваивали сразу. А еще лучше - на полноценные языки программирования и существующие движки, благо многие крупные движки в последнее время перешли на бесплатное распространение с оплатой в случае коммерческого использования, не говоря уже о тех, которые изначально полностью бесплатные и с открытым кодом.
24

» XGM Team / Обновление 8.4

alexprey, в таком случае реквестирую возможность отключить эту напоминалку на этапе создания/редактирования задания индивидуально для каждого задания. Чтобы руководитель проекта мог сам решать что ему важнее - скорость выполнения заданий или психологическое здоровье участников.
24

» WarCraft 3 / дать способность на некоторое время

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

никак руки не доходят да и подходящего "учебника" не находил)
24

» WarCraft 3 / дать способность на некоторое время

Castwork, кстати, если юнитов слишком много, их можно разделять в несколько групп на разных таймерах - помогает. Но у меня до этого дошло когда задействованных юнитов было несколько сотен и нужны были довольно тяжелые проверки с кучей математики.
Но учить jass это маст хев если нужно что-то, срабатывающее чаще чем раз в несколько секунд.
24

» Scramble / Scramble

alexprey, что-то мне подсказывает, что это игра на смартфон или планшет, использующая картинку с камеры в качестве фона. Правда как сейчас обстоит дело с привязкой координат объектов по распознаваемому изображению сказать не возьмусь - сравнительно недавно был хороший прорыв, но вышли те технологии в свободный доступ или нет не знаю, да и точность в движении там еще страдала - не хватало стабилизации.
24

» WarCraft 3 / дать способность на некоторое время

Castwork, просто много юнитов или много юнитов под воздействием особых способностей? Какие проверки делаются для каждого юнита в группе?
И главное, как реализован таймер? Через периодическое событие в ГУИ или через нормальный таймер в JASS?
Последний вопрос вызван тем, что у меня бывало так, что периодическое событие вызывало дикие лаги само по себе - без какой-либо начинки внутри, одним фактом своего присутствия. кажется, именно тогда я и начал всерьез учить jass ибо достало
24

» WarCraft 3 / дать способность на некоторое время

По хорошему нужна система расширенных кастом данных (через параллельные массивы или через хештаблицу или через любое другое извращение), позволяющая привязать к юниту таймер и дополнительную информацию вроде того, какие дополнительные способности этому юниту выданы.
При обнаружении применения способности выдаем юниту дополнительную и запускаем таймер с небольшим периодом, который проверяет юнита и при необходимости удаляет дополнительную способность.
Я, кстати, делал такое и без привязки таймера к каждому юниту - через группу, которую перебирал пару раз в секунду. Естественно, в группу добавлялись только юниты, для которых была нужна проверка. работало шустро на очень старом железе. Правда дополнительные данные всеравно хранились в хештаблице - без них больше одной такой способности запаришься делать.
24

» WarCraft 3 / Мгновенное отключение триггера

Хозяин Миров, переделать на таймеры лучший вариант, если честно, особенно если на jass делать - можно написать систему, инкапсулирующую в себе работу с таймерами и прерываниями. Постпроцессор, конечно, намного лучше, но по балансу сложности и полезности проигрывает.
24

» WarCraft 3 / Мгновенное отключение триггера

nvc123, может потому что добавлять проверки для каждого вызова в карте это немного лишнее? define из cjass ведь не дает полноценные фильтры настроить. И да, cjass парсер это тоже "внешняя прога", просто он уже написан и подключен к JNGP.
24

» WarCraft 3 / дать способность на некоторое время

Castwork, проще то проще, но есть проблема... Нет сброса таймера - если на юнита два раза подряд скастовать способность, дающую дополнительную способность, то дополнительная способность пропадет после истечения первого таймера, а не второго.
Dragonear, да хоть до смерти заминусуйся, а описанная проблема сама никуда не денется.
24

» WarCraft 3 / Мгновенное отключение триггера

Dragonear, внешнему парсеру вовсе не обязательно идеально знать jass чтобы выполнять такое простое действие, как добавление кода по шаблону. Предложил бы по копаться в моем коде от проекта xgm.guru/p/fly-data но не уверен что найду его. Что касается понимания варом - сам вар о внешнем модуле ничего знать не должен - все делается на уровне редактора карт, а модуль является плагином к JNGP.
24

» WarCraft 3 / Мгновенное отключение триггера

Dragonear, C/C++, C#, java и так далее. Интересно, как можно было прийти к предположению, что на jass можно написать внешний модуль, который работал бы в момент сохранения карты?
24

» WarCraft 3 / Мгновенное отключение триггера

Dragonear, можно написать на нормальном языке программирования внешний постпроцессор, который будет обрабатывать jass-код при сохранении карты и добавлять условие с командой на завершение триггера, но я бы не сказал что это проще.
24

» WarCraft 3 / Собственное имя

Если я ничего не путаю, кроме списка имен есть еще числовое поле, определяющее сколько имен из этого списка использовать. Нормально ли выдаются имена созданным не через триггер героям? Нормально ли выдаются имена, если героев создать больше одного?
24

» WarCraft 3 / Игровое сообщение

Melissa, если бы я помнил его то сразу бы и сказал - в варе ничего уже много лет как не делаю, спроси у SomeFire.
Nosferoh, вара на машине нет и не будет, так что посмотреть не могу.
24

» WarCraft 3 / Игровое сообщение

Melissa, зачем такой изврат? Если не ошибаюсь, есть способ получить группу выбранных игроком юнитов без полного перебора (было давно, так что могу путать со своей наработкой). Кроме того так выдаст тонну сообщений, если выбрано больше одного юнита.