В поиске по вопросам я нашёл реализацию взаимоисключающих исследований/улучшений. Однако у меня возникает необходимость сделать нечто подобное на тему взаимоисключающих юнитов, то бишь на примере героев, если нанимаешь в алтаре Чародея Крови, то становится недоступным Архимаг.
Возможно ли это как то реализовать?

Принятый ответ

Arkser, смотри карту-дебаг (там можно отслеживать тип, но не юнита. ты же понимаешь, что тренируемого юнита пока не существует. Он создается только в конце обучения. короче можно просто запретить всем остальным брать) твою задумку можно множествами способами сделать. однако, я не знаю, что вам нужно, как делать. Хотел просто примерчиков накидать несколько. Но вижу, что это системно-объемная работа, и поэтому мне просто лень было делать. А улучшения можно получить с помощью морфа темный (см. как у орков сделано) или др способами.
а вот тут я задумался... у Героев есть что-то типа требований класс 2, класс 3... может с этими требованиями поиграться?..
это надо смотреть и разбираться в редакторе. я сам не знаю как там с классами)
пример с лимитом
можно изначально в бараки засунуть множества юнитов 9999к (оригиналы, его копии и др юнитов). а вот этим лимитом в ноль (блок) можно спрятать всех юнитов, и показать станд набор. У вас в бараках будуи забиты овер 999к юнитов, но показана будет лишь маленькая часть (лишь бы места хватило, остальные спрятаны будут).
при выборе героя-мага, подменяй юнитов в бараках (станд набор прячь, другой набор улучшенных юнитов показывай). Или как вариант заменить бараки.
по поводу отслеживания обучения
Заметил кое-чего. Там, событие тренировки распространяет на текущую подготовку. Если в этом момент начать обучать второго юнита (то он не высветится в событии тренировки. Высвечивается позже, когда закачивает обучение первого). Можно отслеживать приказом, кого нанимаешь в очередь. Но это все равно не должно влиять
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
5 лет назад
Отредактирован MpW
0
задать лимит в разделе игрок. можно в ноль поставить, тогда у игрока пропадет иконка (станет недоступной)
0
26
5 лет назад
0
Блокировать доступность юнита для игрока. В категории Игрок действие.
0
27
5 лет назад
Отредактирован MpW
0

советую еще с требованием поиграться, можно добавить в требование юнита (пример башни альянса не могут построиться без наличия лесопилки, стрелки невозможно обучить без кузницы). Если играешь с классом, то удобнее было бы задать требования.
суть
Можно заранее добавить юнитов на карту, а в случае покупки классового юнита удалить. Можно добавить три dummy-юнита (воин, стрелок, маг), и если покупаешь мага, то удаляешь куклу "маг". Единственная проблема, это нужно под каждого игрока плодить по 3 даймика. Ну вообще подумал это не очень удобно, добавлять лишних dummy на карту. Но это тоже рабочий вариант
пример_2 делал карту с наглядным примером, там требования добавлял
0
5
5 лет назад
0
Steal nerves:
задать лимит в разделе игрок. можно в ноль поставить, тогда у игрока пропадет иконка (станет недоступной)
Предыстория. У меня карта на развитие, привязанная к типу юнитов, которые обучаются. То бишь при найме определённого Героя меняется само развитие фракции в дальнейшем. В Алтаре будет большое количество героев, технически в зависимости от нанятых Героев будет меняться структура армии.
При обучении Архимага игрок получит в своё распоряжение более продвинутых магов, при обучении Чародея Крови - стандартных Целителя/Ведьмака/Волшебницу. Чёрный Рыцарь разблокирует собственно рыцарей и несколько других юнитов, к Паладину привязаны другие юниты, Король Гномов приводит в армию собственно гномов (стрелков/вертолёты/танки), плюс будут ещё нестандартные герои со своими фракциями.
В ходе развития можно будет собрать 3-ёх героев, по стандарту, которые и определят ту армию, что будет в распоряжении игрока. Уменьшать лимит Героев ниже этого смысла нет.
Даже если использовать триггер "Юнит входит в область (вся карта)" с которым в итоге ставить запрет на противоположного героя, возникает проблема. Если заранее развить Ратушу до Замка, и построить два Алтаря, и в них обоих параллельно начать подготовку взаимоисключающих юнитов - они оба будут наняты.
Steal nerves:
советую еще с требованием поиграться, можно добавить в требование юнита (пример башни альянса не могут построиться без наличия лесопилки, стрелки невозможно обучить без кузницы). Если играешь с классом, то удобнее было бы задать требования.
а вот тут я задумался... у Героев есть что-то типа требований класс 2, класс 3... может с этими требованиями поиграться?..
0
26
5 лет назад
0
Даже если использовать триггер "Юнит входит в область (вся карта)" с которым в итоге ставить запрет на противоположного героя, возникает проблема. Если заранее развить Ратушу до Замка, и построить два Алтаря, и в них обоих параллельно начать подготовку взаимоисключающих юнитов - они оба будут наняты.
Надо делать систему триггеров, что юнит начинает тренировку юнита, юнит отменяет тренировку, юнит завершает тренировку.
0
5
5 лет назад
0
8gabriel8:
Надо делать систему триггеров, что юнит начинает тренировку юнита, юнит отменяет тренировку, юнит завершает тренировку.
Этот триггер отлавливает Здание, в котором идёт подготовка, а не тип подготавливаемого юнита
0
26
5 лет назад
Отредактирован 8gabriel8
0
Там можно определить тип тренируемого юнита, вроде бы в unit-type comparison надо искать.
0
5
5 лет назад
0
8gabriel8:
Там можно определить тип тренируемого юнита, вроде бы в unit-type comparison надо искать.
Это действует на событие "завершает подготовку", а "начинает" и "прерывает" - действует на здание, которое производит юнитов. Я уже с этим игрался, но если не верите - можете сами проверить)
1
27
5 лет назад
Отредактирован MpW
1
Arkser, плохо значит игрался). ты дебагом проверял? там в триггере в гуи окне даже написано, что "начинает/завершает/прерывает тренировку" работает
можно дебагом вывести имя объекта GetObjectName(GetTrainedUnitType())
Загруженные файлы
0
5
5 лет назад
0
примечание.
Здание тоже считается юнитом, и когда делаешь триггер с событием "Начинает подготовку" или "Прерывает подготовку" через unit-type comparison отлавливается Юнит/Здание, которое производит подготовку новой боевой единицы. То бишь даже прописав Чародея Крови, триггер будет считать что у Чародея Крови есть способность обучения боевых единиц.
0
26
5 лет назад
0
Спасибо, Steal nerves!
0
5
5 лет назад
0
Steal nerves, ну как говорится - пробуйте сами использовать то, что написали. Будете удивлены)
На англоязычных источниках уже задавали такой вопрос.
0
26
5 лет назад
0
Тебе не кажется, что раз тебе надо, то и пробуй. Выше уже много чуши накалякал.
0
27
5 лет назад
Отредактирован MpW
0
Arkser, смотри карту-дебаг (там можно отслеживать тип, но не юнита. ты же понимаешь, что тренируемого юнита пока не существует. Он создается только в конце обучения. короче можно просто запретить всем остальным брать) твою задумку можно множествами способами сделать. однако, я не знаю, что вам нужно, как делать. Хотел просто примерчиков накидать несколько. Но вижу, что это системно-объемная работа, и поэтому мне просто лень было делать. А улучшения можно получить с помощью морфа темный (см. как у орков сделано) или др способами.
а вот тут я задумался... у Героев есть что-то типа требований класс 2, класс 3... может с этими требованиями поиграться?..
это надо смотреть и разбираться в редакторе. я сам не знаю как там с классами)
пример с лимитом
можно изначально в бараки засунуть множества юнитов 9999к (оригиналы, его копии и др юнитов). а вот этим лимитом в ноль (блок) можно спрятать всех юнитов, и показать станд набор. У вас в бараках будуи забиты овер 999к юнитов, но показана будет лишь маленькая часть (лишь бы места хватило, остальные спрятаны будут).
при выборе героя-мага, подменяй юнитов в бараках (станд набор прячь, другой набор улучшенных юнитов показывай). Или как вариант заменить бараки.
по поводу отслеживания обучения
Заметил кое-чего. Там, событие тренировки распространяет на текущую подготовку. Если в этом момент начать обучать второго юнита (то он не высветится в событии тренировки. Высвечивается позже, когда закачивает обучение первого). Можно отслеживать приказом, кого нанимаешь в очередь. Но это все равно не должно влиять
Загруженные файлы
Принятый ответ
3
5
5 лет назад
3
Steal nerves, так, сразу уточню, я допустил ошибку с функциями, перепутал Trained unit type c Unit Type of Training Unit, в связи с чем мои прошлые замечания просьба считать бредом. Извиняюсь, если высказался резко.
...
Steal nerves, так, смотрю Ваш пример... по какой-то причине открыть в редактор не получается, выбивает ошибку "Функция триггера отсутствует в базе триггеров".
Склоняюсь уже к мысли, что мне нужно перезакачать все файлы, начиная с самого варкрафта, поскольку ошибки постоянно выскакивают и с другими программами. Ну да ладно, не в этом суть.
Из того, что заметил по Вашему примеру в самой игре, при смерти Чародея Крови, юниты вновь становятся недоступными, с тем же требованием. Но тут соглашусь, эту проблему можно решить заменой юнитов в бараках.
Заметил кое-чего. Там, событие тренировки распространяет на текущую подготовку. Если в этом момент начать обучать второго юнита (то он не высветится в событии тренировки. Высвечивается позже, когда закачивает обучение первого). Можно отслеживать приказом, кого нанимаешь в очередь. Но это все равно не должно влиять
Ага, заметил тоже. Но по задумке это не столь важно уже, поскольку тут вопрос в лимите нанимаемых юнитов/героев.
0
26
5 лет назад
0
выбивает ошибку "Функция триггера отсутствует в базе триггеров"
Открывай карту JNGP
0
5
5 лет назад
0
8gabriel8:
Открывай карту JNGP
У меня он и стоял. Только что перезакачал отсюда , ошибка не изменилась. Всё таки перезакачаю я все основные файлы лучше.
Привязал редактор к другой версии скачанного варкрафта, карту открыл.
1
27
5 лет назад
1
Arkser, ты включил ums-плагин? как пример см тут
0
5
5 лет назад
0
ты включил ums-плагин? как пример см тут
Да, может быть и была проблема в том, на что Вы указали, но я уже успел перепривязать редактор к другой версии ВарКрафта, и теперь работает нормально. В общем проблемы уже нет, спасибо.
Но ссылку взял на заметку.
1
27
5 лет назад
Отредактирован MpW
1
Arkser, смотри вот пример с двойным меню строительством в принципе тоже самое, но вместо здании указываешь пехоту, что в бараках. ну об этом уже писал выше в 14 комменте под катом "пример с лимитом". ты систему придумываешь, там массивы. забиваешь базу данных.
пример базы данных бд
A[0] = Паладин
A[1] = Чародей
примерно на каждого героя 6 видов войск. Не знаю, у вас мб и больше видов войск. там 10-15 видов и так далее. 6 - это для примера.
B[0-5] = рыцари, пехота и др для паладина
B[6-11] = лекари, маги и др для чародея
B[0]=футман, B[1]=наемник, B[2]=рыцарь, B[3]=капитан и так далее
потом циклом это проверяешь что за тип героя A вам выпал. Достаешь номер массива. Затем включаешь набор B.
Из того, что заметил по Вашему примеру в самой игре, при смерти Чародея Крови, юниты вновь становятся недоступными, с тем же требованием.
ну так и есть. не проверял это. вроде странно, что герой по сути мертв, но еще и не мертв. Он существует в игре. Но требование это не засчитывает. значит, можно попробовать в требование даймика запихать. При первом появлении героя создаешь даймика, и тебе в требование зачитают. Ну не знаю. решать вам
0
5
5 лет назад
0
Steal nerves, последний вариант любопытный, но пожалуй остановлюсь всё же на примере с лимитом.
В принципе на вопрос я ответ получил, мне осталось только разобраться, как это внешне оформить в самой игре.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.