В карте нестандартная система ресурсов. Если ресурсов недостаточно, то нужно отменить тренировку юнита. Но вот проблема: в условиях есть "Unit type of TrainED Unit", которое ловит уже натренированного юнита.
А нужно ловить именно начало тренировки. Как это сделать?

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

Maniac_91, вообще-то приказ работает норм. выводится не сам приказ, а id-юнита. короче см. карту, там пехотинца купи и смотри
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
2
7 лет назад
1
Проще поставить в условиях тренировки юнита наличие определенного ресурса.
Без ресурса юнит не сможет быть нанят.
Ресурс можешь привязать к "Предмету" который стакается (24 дерева = 24 дерева(предмет в постройке))
пропишешь мол если в здании есть предмет, кол-во зарядов =24 то юнита построить можно.
вот и все
1
18
7 лет назад
Отредактирован Maniac_91
1
HillDemon, я через доступность юнитов (названных, к примеру, Доска х4, Камень х3 и т. д.) делаю доступность создания построек. С одной стороны, удобно. Но есть минусы: занимает место на карте (текстура пути 2х2 у каждого такого здания), и каждого юнита нужно редактировать в РО.
Сейчас тренировка занимает 1 секунду, и только после этого идёт проверка предметов в здании (если не хватает ресурсов - пишется сообщение), после чего создаётся предмет. Неудобно, и выглядит некрасиво. Хотелось бы попроще систему.
1
2
7 лет назад
1
Maniac_91, Если у тебя не много ресурсов всего, то можно сделать так. Клепаешь постройку типа "магазин". Предметы в магазине = ресурсы игрока, которые выведены на мультиборд. По 1 магазину на каждого игрока. Привязать все проверки на потребность в ресурсах будь то постройка зданий или наём юнитов через наличие этих самых предматов в магазине.
Все просто, понятно, не вижу не удобств )
во всяком случае как "отловить начало тренировки" я не знаю)
2
16
7 лет назад
2
там приказ часом не отдается зданию?
0
18
7 лет назад
0
HillDemon, интересная идея! Надо попробовать.
DracoL1ch, приказ тренировки?
Я пытался вывести на экран сообщение, ничего не выдало.
2
16
7 лет назад
2
а эти
constant playerunitevent EVENT_PLAYER_UNIT_TRAIN_START
constant unitevent EVENT_UNIT_TRAIN_START
?
1
27
7 лет назад
1
Maniac_91, вообще-то приказ работает норм. выводится не сам приказ, а id-юнита. короче см. карту, там пехотинца купи и смотри
Загруженные файлы
Принятый ответ
0
18
7 лет назад
Отредактирован Maniac_91
0
DracoL1ch, это события в JASS? Не знаю, как это в Custom script написать.
Steal nerves, id приказа, точно. А я просто приказ отслеживал, поэтому не показывало ничего. Спасибо за пример)
0
27
7 лет назад
Отредактирован MpW
0
Maniac_91, вариант драколича лучше
мой просто приказ отслеживает, а у драколича отслеживает юнита которого начинают тренировать (а следующих, которых в очередь ставят, не отображает)
Загруженные файлы
0
18
7 лет назад
Отредактирован Maniac_91
0
Steal nerves, главное - тип юнита отследить, тренируемый юнит - пустышка, он удаляется.
На скрине - TrainED Unit-type, это не подходит, я этот вариант изначально проверял. Он срабатывает, когда тренировка завершена.
0
27
7 лет назад
0
Maniac_91, смотри
Загруженные файлы
0
18
7 лет назад
0
Steal nerves, работает. А проверка на тип юнита почему-то не работает. Я так проверял:
Значит, буду через сравнение строки делать проверку)
Загруженные файлы
0
27
7 лет назад
Отредактирован MpW
0
Maniac_91, скорее всего из-за переменной Trained unit. В гуи написано, выбери переменную Trained unit и там пишут когда работает эта переменная.
0
18
7 лет назад
Отредактирован Maniac_91
0
Steal nerves, вот-вот. Там написано, что это реакция на событие "Завершает подготовку...", а в твоей карте пишет реакцию на все события.
То есть вроде как одна вещь, но работает по-разному в разных условиях.
Загруженные файлы
1
27
7 лет назад
1
Maniac_91, мб Trained unit еще не создан в игре. Сначала начинают подготовку, затем завершают. При завершении Trained unit полноценно созданным можно считать. За то время, что он обучался, его можно отменить.
xgm.guru/forum/showthread.php?t=59164 вот ссылка на похожую тему, заменяю сегодняшнего бота
1
18
7 лет назад
1
Для тех, кто столкнётся с подобной проблемой, добавлю. Отмена через приказ "stop" почему-то не срабатывает. Зато есть приказ по ID.
В Custom script это выглядит так: call IssueImmediateOrderById( GetTriggerUnit(), 851976 )
Найдено здесь
0
20
7 лет назад
0
некоторые гуи команды криво реализованы =\ увы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.