6

» WarCraft 3 / Как вернуть окраску юнита

Проще то, что в итоге уменьшит количество ручной работы в РО.
Не переживай за ро, там и без того придется делать кучу юнитов как для рас с нейтралами, так и свои новые и дублировать способности делая оригинальную как указатель, а ее копию дамкой, к тому же этим мне придется заниматься что я и люблю. К тому же вдруг придется делать триггер в котором нужно отделить солдата от командира или наоборот что бы например применить какой то спелл на тип юнита но не командира или же именно командира, и в таком случае достаточно лишь будет указать тип юнита.

Добавление улучшений тоже придётся между двумя игроками синхронизировать. Ну а попытка запустить карту на рефе привнесёт многие веселья.
Улучшения для союзного цвета легко реализуется в триггерах, или ты в конец хочешь что бы вся система писалась в коде? В таком случае это будет жесть, т к при возникновении каких либо трудностей или возникновения не предвиденных раннее новых задач и идей придется обращаться к хозяину кода. Реф - рефордж? Что с ним не так?
Помимо всего я скинул тебе тестовую карту которую за 10 мин нарисовал до того как тебе ее скинуть, есть первая карта, которая побольше и поинтереснее с ии. Но для нее нужны мои mpq вара, т к в тествовой карте что скинул тебе, я еще не задействовал отряды с нестандартными моделями которые запиханы в MPQ вара.
Я тебе кидану на всякий случай пока что, не заставляю скачивать и смотреть.
6

» WarCraft 3 / Как вернуть окраску юнита

связующий триггер запускает пачку триггеров, пока определена подготовленная, либо же проданная, либо же выбранная боевая единица как TriggeringUnit и если в какой либо из пачки триггеров оня является внесенным юнитом к для которого создается отяд с определенными солдатами и колличеством типов солдат, то создается отряд. Потребление пищи естественно имеют лишь командиры, и ее диапазон от 1 до 2

я просто пишу пока не забыть важное

макс лимит пищи - 12 ед, т е игрок может иметь 12 отрядов с ценой пищи 1 или 6 мощьных отрядов типа рыцарей или огров пищи 2. Рабочие имеют лишь лимит на количество (50), некоторые одиночные юниты типа катапульты или одиночного мага людей из вар2 имеют лишь лимит количества (3 в зависимости какой юнит) и не требуют пищи, герои не требуют пищи. Лимиты на количество какого либо юнита указывалось в триггере инициализации.

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

Советую отталкиваться от 1.26, очень популярный патч. Особенно если ты хочешь, чтоб твоей наработкой другие пользовались.
Может и так, но 1.26 вроде имеет старое дурацкое растянутое разрешение от которого я отвык и возвращаться к изображению 2002г от которого отвык как то уныло, но может быть и нужно. Для 1.28 зинк скрипты не работают? Почему люди не будут пользоваться на 1.28?

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

Дублировать войска другим игроком влечёт за собой дополнительный гемморой со способностями. Лучше в попытаться в рамках одного игрока разруливать.
А вот это уж точно не является проблемой, вот ни сколько, т к все способности отряда, кроме авто способностей, будет лишь командир, но в этом случае создается способность на базе стандартной способности с суффиксом указание цели, например командир используетс полиморф указание цели которое имеет 0.01 время действия, но со стандартными требованиями маны и требованиями изученных технологий или присудствия строений, на юните отряда. . Триггер выбирает всех в отряде юнита цели способности, отсеивает тех кто не мертвый юнит и кто не имеет эффект полиморфа, записывает их в переменную отряда, из них выбирает случайных 6 и для каждого вызывается дамик в позициии переключающий юнит которому добавляется триггерно Dummy полиморф с увеличенным радиусом действия, 0 требованием маны и 0 перезарядки, но с стандартным уровнем силы и пользы способности типа времени действия в случае полиморфа. Тем самым создается эфект что способностью как бы пользуется отряд а не один командир, хотя даже если всего лишь один командир жив в отряде. Но это лучьше чем когда ии в секунду отдает приказы спеллов одновременно всем юнитам 12 отрядов и грузит движ вара.

Так же емеется триггер который будет включать или выключать те или иные автоспособности отряда в зависимости от того какие включает или выключает командир, даже если у него не имеется возможный уровень запаса маны в редакторе юнитов но иметь атоспособности он будет что бы включать или выключать их в нужный момент у членов отряда.

И каким образом происходит восполнение юнитов в отряде?
Выше писал, просто редактировал потом и возможно нужное дописал позже
Мертвый юнит dammy при смерти члена отряда не командира появляется следующим образом. Умирает юнит не к, ему на замену создается тип юнита умирающий юнит и определяется в переменную переменную солдата не командира отряда отряда, умирающий удаляется из всех переменных, созданному юниту сразу добавляется способность на базе перевоплощения (Dammy Смерть) в которой вторая форма изменена на Мертвый юнит dammy, первая форма не затрагивается т к это не играет никакую роль, время действия способности 120сек, псоле применения способность удаляется и по мере истечения ее действия dammy мертвый юнит превращается (слава багам и системе вара) не в 1ю ее форму а в юнита созданного после смерти предыдущего и это в случае если командир жив.
Командир же при смерти создается сразу же в любой точке живого случ юнита своего отряда, но в случае если хотя бы 1 юнит его отряда является не dammy мертвым юнитом, в противном же случае если все при его смерти dмю, то триггер не создает при смерти к мгновенно тип мортвего юнита, все юниты отряда юдаляются из своих переменных групп юнитов и удаляются из игры. При смерти командира у меня выбирались все в отряде триггером отряд выбрать всех в группе и все кто являлся не d м ю - записывались в переменную имеющую массив (ssQUnLive) типа отряд отряда умирающего юнита и если количество в группе ssQUnLive больше 0 то естественно командир сразу возраждался со всеми последующими триггерными действиями удаления из переменных отряда умирающего юнита и добавлениями нового созданного его в переменные отряда умирающего юнита. Может и не красиво что командир мгновенно перерождается, но по моим тестам это пока самый актуальный способ в системе т к командир является связующим жизни отряда. Мертвые солдаты прерождаются в отряде если жив их командир.
6

» WarCraft 3 / Как вернуть окраску юнита

в гуи у меня было три важных стартовых триггера от которых появляются отряды.
1 Триггер юнит завершает подготовку боевой единицы, действие определяет последнюю подготовленную ед как переменную боевую единицу TriggeringUnit без массива и запускае связующий триггер запускающий следующий для сканирования переменной на юнита командира что бы создать ему отряд затем переменная TriggeringUnit определяется как нет боевой единицы.
2 Триггер юнит продает боевую единицу, действие определяет проданную боевую ед как переменную боевую единицу TriggeringUnit без массива и запускает связующий триггер запускающий следующий для сканирования переменной на юнита командира что бы создать ему отряд затем переменная TriggeringUnit определяется как нет боевой единицы.
3 Триггер инициализация карты, выбрать всех юнитов на карте и зделать действие - действие определяет выбранную боевую ед как переменную боевую единицу TriggeringUnit без массива и запускает связующий триггер запускающий следующий для сканирования переменной на юнита командира что бы создать ему отряд затем переменная TriggeringUnit определяется как нет боевой единицы.
6

» WarCraft 3 / Как вернуть окраску юнита

По поводу задания возможно лучше будет перенести тему в др раздел или еще куда.
В общем система отрядов такова. Отряд состоит минимум из 2х видов юнитов. Например Пехотинец к (командир) и 11 Пехотинцев (солдат), если в отряде больше видов юнитов как например у мясников нежити у которых 1 мясник к, 2 мясника и оставшиеся 9 вурдалаки (для правильного визуала нежити у которой много гулей), бывает в отряде всего 3 юнита, это с очень мощьными юнитами типа каменных големов - 1 голем к, 2 голема ( в моей версии они мощьнее) или привратников.

Все команды отданные командиру естественно передаются членам отряда не командирам, кроме тех которые в стадии смерти (мертвый юнит Dammy), не знаю правильно или нет определять подобное как dammy, но мне так удобнее. Дамки же при приказах перейти нападая на противников, просто перейти или атаковать, просто следуют за командиром правой кнопкой мыши, но приказ патрулирования повторяют, это для того что бы дамки не отправлялись в гущу врагов не имея показателя атаки, а в момент перехода в стадию изначальной формы (пополнения отряда типа новым юнитом) не оказались в в этой самой гуще врагов опять отхватив люлей за 3 сек. дамки не имеют физ масштаба что бы об них не толпились живые и имеют нулевую модель - bugger. Мертвый юнит dammy при смерти члена отряда не командира появляется следующим образом. Умирает юнит не к, ему на замену создается тип юнита умирающий юнит и определяется в переменную переменную солдата не командира отряда отряда, умирающий удаляется из всех переменных, созданному юниту сразу добавляется способность на базе перевоплощения (Dammy Смерть) в которой вторая форма изменена на Мертвый юнит dammy, первая форма не затрагивается т к это не играет никакую роль, время действия способности 120сек, псоле применения способность удаляется и по мере истечения ее действия dammy мертвый юнит превращается (слава багам и системе вара) не в 1ю ее форму а в юнита созданного после смерти предыдущего и это в случае если командир жив.
Командир же при смерти создается сразу же в любой точке живого случ юнита своего отряда, но в случае если хотя бы 1 юнит его отряда является не dammy мертвым юнитом, в противном же случае если все при его смерти dмю, то триггер не создает при смерти к мгновенно тип мортвего юнита, все юниты отряда юдаляются из своих переменных групп юнитов и удаляются из игры. При смерти командира у меня выбирались все в отряде триггером отряд выбрать всех в группе и все кто являлся не d м ю - записывались в переменную имеющую массив (ssQUnLive) типа отряд отряда умирающего юнита и если количество в группе ssQUnLive больше 0 то естественно командир сразу возраждался со всеми последующими триггерными действиями удаления из переменных отряда умирающего юнита и добавлениями нового созданного его в переменные отряда умирающего юнита. Может и не красиво что командир мгновенно перерождается, но по моим тестам это пока самый актуальный способ в системе т к командир является связующим жизни отряда. Мертвые солдаты прерождаются в отряде если жив их командир.
Так же все это осуществлялось на минимальной версии вара (1.28) где появилось нормальное разрешение и, что крайне важно, обязательные дополнительные 12 цветов игрока и они в системе как дублеры первых 12 цветов игрока т к все отрядные юниты солдаты не командиры (не те что одиночные, такие тоже есть типа горного великана или катапульты) солдаты не командиры определяются дублерным новым цветом определенным как союзные игроки и имеющие такое же имя как игрок которого они союзники, например у красного игрока солдаты не командиры принадлежат багровому игроку который имеет еще и имя красного, у синего солдаты не командиры к темно синему и т к у всех 12 стандартных цветов. Это зделанно для того что бы ни игрок человек, ни тем более игрок компьютер ни в коем случае не мог отдавать приказы юнитам не командирам, т к если это будет ии, то катастрофически сильно будет нагружаться движок.
Может я пишу много лишнего, как возможно тебе покажется, но я пишу это для того что бы было понятно как у меня все работало и выглядело, и т к я не могу наверняка знать что из сказанного будет для тебя необязательным.
Я пока думаю что еще очень важное добавить.
6

» WarCraft 3 / Как вернуть окраску юнита

Буду от души благодарен за код с системой отрядов. Он в джассе будет? От меня точно расписанное задание?

тебе ещё не продложили сделать БД с юнитами и рессетить цвета оттуда?
БД это что? Мне предлагали какой то способ с хэндл таблицей и ключом, но я в этом вообще не разбираюсь.
Помимо этого, в общении с nazarpunk, выявилась новая крайне опасная угроза - это куча утечек при отдаче приказов отрядам и скорее всего еще чем то, более 8000 за полторы минуты игры, а значит уютная и комфортная игра пока не возможна, и я ищу человека который поможет выявить причины и устранить их, моих скудных знаний на это к сожалению не хватило.
6

» WarCraft 3 / Как вернуть окраску юнита

Если ты имеешь виду именно простые текстовые файлы, то ясен пень. А не подскажешь куда выложить мою систему на обнаружение источников утечек и устранения их, а то чувствую если отлажу нужный вар и Ujapi под него, то не известно когда, да и не факт что устраню их, согласно моим знаниям из статей утечки возникают из за своевременно не удаленных триггерами указанных точек локация, спецэффектов и еще чего то, забыл. Но возможно это не единственные возможные источники. Ты говорил что возникает куча утечек из за отдачи приказа отрядам, в триггерах указывается команда 12 юнитам отряда перейти в определенную точку при отдаче приказа командиру, я установил эту точку как переменную и сразу ее удаление после перехода, патрулирования, либо же перехода нападая к этой точке отряда, но утечки все еще есть судя по твоему ролику. По этому тут скорее всего у меня возникнут большие проблемы в поиске причин их. Остальные триггеры там ерундовые, инициализация и создание самих отрядов при обучении, найме либо же при инициализации карты на установленных на карте единиц командиров которые должны быть с отрядом.
Ты тз за бабос делаешь?
6

» WarCraft 3 / Как вернуть окраску юнита

Ты можешь написать код с системой отрядов, что бы человек, как я например, мог легко дополнить нужные пункты для создания новых отрядов из созданных своих боевых единиц? Этот код будет очень сложный и большой?
6

» WarCraft 3 / Как вернуть окраску юнита

Спасибо. Мдэ... по поводу теста, ситуация ужасна. У тебя какая версия вара на которой тестил?
А как ты предлагал систему отрядов самому написать? С помощью кода? Мне нужно было что бы люди, как я например, могли в этой системе сами создавать свои отряды, в триггерах достаточно по шаблону скопировать нужный триггер и заменить боевые единицы на свои, а человек не знающий код как это зделает?
6

» WarCraft 3 / Как вернуть окраску юнита

zinc, я даже на знал про его существование, не говоря о том что это.
Я почистил указал удаление целевых точек приказа после отдачи приказа. Можешь еще раз затестить не в падлу? Хз, обновлял лаунчер и скачивал проги, не запускается система утечек.

Для Handle Counter оказывается нужен еще War lua, он поддерживает максимальную версию 1.28f, а у меня 1.29

Читаю как установить uJPI и War lua, в инструкциях захлебнулся, как помещать в корень карты и как в файл War3_lua.dll вписывать какие то строчки, жесть. Не проще ли было бы видос им выложить сколько всего нужно скачать, как это все совместить что бы заработало и настроить.
Загруженные файлы
6

» WarCraft 3 / Как вернуть окраску юнита

как понять утекает по хэндлу?
Я подозреваю дело вот в чем, если бы ты не сказал, то сам бы не додумался, во всяком случае долго бы к этому шел.
Когда указываешь в триггерах определенную точку в приказах для чего либо - спела или передвижения, то система ставит эту точку на карту и не удаляет что является утечкой, нужно просто указывать переменную точкой, указывать переменную в точке действия приказа и затем удалять ее функцией call Remove. Или могут быть еще причины возникновения утечек в приказах помимо того что точки приказов не удаляются функцией call Remove, как считаешь? Может когда указываешь в приказах не только точку, но и боевую единицу, то ее тоже нужно указывать переменной и удалять call Remove что бы не было утечки или на единицы не распространяется? Только в этом случае не знаю удалится метка на единице или сама единица, не полностью разбираюсь.
Там разбираться то нечего. Триггеры приказов - это папка Squads и начиная с третьего верхнего Point, Object, Work Resourses, No Target - это от прежнего хозяина изначальной сырой системы но и в них я некоторое дорабатывал т к в изначальном виде было реализовано не все. Далее это Magic уже мое.
6

» WarCraft 3 / Как вернуть окраску юнита

Не запускается счетчик, C++ Redistributables 2012 и NET Framework 4.7.2. устанавливал.
6

» WarCraft 3 / Как вернуть окраску юнита

В общем не работает у меня система утечек, импортировал, путь удалил, сохранил, все равно таблички нет. Версия 1.29.
6

» WarCraft 3 / Как вернуть окраску юнита

ты карту не смотрел?
Посмотри на количество утечек, благо недавно нормальный счётчик подвезли.
Спасибо. Я кстати умею избегать утечек, может не всех, посмотрим. Но то что анимация взрыва трупа грузит движ - это точно, проверял на тормоза в катке против ИИ когда у него 12 12юнитовых отрядов все орудийные расчеты и у меня тоже, и когда перестрелка начинается с кровавыми взрывами, вот там слайды начинаются, когда заменял им тип атаки что бы не было взрывов юнитов, то тормоза сильно спали, но анимациа атаки ракети оруд расчета тоже немного тормозит движ когда ее еспользует за 200 юнитов на экране.
6

» WarCraft 3 / Как вернуть окраску юнита

Так система отрядов итак у меня готова, она была модифицирована давно еще из уже той что была выложена то ли тут, то ли на др ресурсе, так же добавлена функция восполнения потерь и много чего еще, или ты хочешь лишние костыли удалить и сделать все менее гружено для движка?

что 3 значения? их не нужно никак подчищать, это не хэндлы, удалить структуру достаточно.
Какую структуру удалить? Можно на более понятном языке для меня человека не шарящего так сильно в джассе и движке вара?

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

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

😆😆😆 Еще решил, как самый умник, реализовать период смерти солдата не через перевоплощение, а через добавления способности 'темный' с
новой формой Мертвого юнита и удалением этой способности через 120сек, но юнит в свою форму так и не вернулся😆😆😆
6

» WarCraft 3 / Как вернуть окраску юнита

вот если интересно, тут два отряда нейтралов, в каждом есть юнит с нестандартной окраской, но когда юнит перерождается, пройдя триггерный путь описанный выше, его показатели цвета меняются на те что были у второй формы перевоплощения (Dammy Смерть).

Пахнет лютыми костылями - типа можно было все это провернуть проще и менее загружено для движка?

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

» WarCraft 3 / Как вернуть окраску юнита

У тебя морф через убийство юнита идёт? Он же херит всю информацию по юниту.
У меня если умирает юнит, то возрождается новый такой же прикрепленный к отряду, если жив командир отряда (система отрядов у меня), затем мгновенно добавляется способность перевоплощение в котором он на 120 сек превращается в мертвого не видимого юнита без модели и физического масштаба но следует всегда за командиром, после превращения способность моментально удаляется, и если в течении 120 сек отряд не был уничтожен то по истечению способности он возвращается в изначальною форму т. е. создается как бы эффект добавления нового рекрута. Очень повезло что эта способность дает нужный результат в том плане что это работает с абсолютно любым юнитом, и при ее удалении после применения он превращается не в изначальную форму демонхантера( которая в способности не изменена, а в изначальную форму юнита которому способность добавилась. Большая проблема только в том что эта способность уравниваетс все три значения каждого из цветов юнита в стандарт на 250 т е в те что указанны у второй формы перевоплощения (мертвого юнита), что создает большую проблему юнитам у которых изначально нестандартные показатели цвета, скажем не 250, 250, 250, а 160, 160, 250. Не знаю как это решить, как во время убиства сохранить бы показатели цвета юнита и передать их второй форме юнита способности перевоплощение (Dammy Смерть) после его применения юнитом.

Капался в триггерах, и никак не смог решить эту ужасную задачу.

или все же есть др более актуальные и менее ресурсозатратные для движка способы решения (не джасс).
6

» WarCraft 3 / Как вернуть окраску юнита

Распиши как, пожалуйста. В ключах и хэндл таблице много раз пытался разобраться, ни как не смог.

я подозреваю что можно 3 значения цвета умирающего юнита сохранить что бы перенести их новому такому же созданному на замену умирающему, верно? Но как это зделать?

юзанул .destroy( ), очистил ячейку и всё - или этот способ проще и менее тяжек для движка?

главное что бы не на джассе т к я пишу все триггерами, что бы более приземленно и остальным понятно, если вдруг кто то вскрыть посмотреть захочет.
6

» WarCraft 3 / Как вернуть окраску юнита

который проще и менее тяжек для движка вара

я указывал на каждый цвет в триггере "Изменить окраску верха" на "Преобразовать целое в вещественное" и указывал "умирающий юнит" либо "последний созданный юнит" т к он умирал, а потом создавался такой же с "обычное значение юнита" на "умирающий юнит" и ему давался сразу метамарфоз, затем триггерное применение метамарфоза и сразу же его удаление. Так вот когда действие метамарфоза кончалось то все три значения цвета юнита устанавливаются на стандарт - 250, а юнит может иметь не стандартные значения этих цветов. По этому мне необходимо что бы после заканчивания перевоплощения к юнито возвращался его изначальный цвет. В общем мой вариант не сработал.
6

» WarCraft 3 / Атака феникса но с эффектом молнии

Понятно, это уже спелл который нужно активировать на определенное время, а нужно что бы постоянно была автоматическая способность типа атаки феникса, только с грозовой атакой, как турель которая независимо ведет атаку по врагам.
6

» WarCraft 3 / Атака феникса но с эффектом молнии

((цитата
Хочешь что бы оно работало как ульт Разора?
Разор это кто? Я хочу создать способность на базе атаки феникса которая атакует всех вокруг даже при перемещении хозяина способности, только что бы атака была грозовой как у ящерицы или химеры. Указать эффект молнии, как всем понятно, не вариант.
Периодический урон обжигания врагов убирается путем указания длительности воздействия на 0.01.