Разработка скриптов в Medieval 2: Total War

Основа для разработки скриптов в Medieval 2: Total War есть определенный набор команд.
 
Для примера разберем простой скрипт пана Maxima Suvorova:
monitor_event FactionTurnStart FactionType hungary
and not FactionIsLocal
and Treasury < 600
and I_NumberOfSettlements hungary < 3

console_command add_money hungary, 3000

end_monitor

Первая строчка - monitor_event FactionTurnStart FactionType hungary - самая главная, она инициализирует работу скрипта. monitor_event - выполнение последующих строк по условию (ивенту) до строки end_monitor. В данном примере условие (ивент) - FactionTurnStart - фракция начала ход и тип фракции (то есть имя) - hungary, и также должно быть выполнено:
and not FactionIsLocal - фрацкия не Есть под управление человека. То есть чтобы проверить управляет ли АИ фракцией нужно написать not FactionIsLocal
and Treasury < 600 и Сокровищница меньше 600
and I_NumberOfSettlements hungary и количество поселений меньше 3
И если ВСЕ условия выполнены, то консольная_команда_дать_денег.

 

А вот 1 часть самого списка команд файла docudemon_commands.txt :
---------------------------------------------------
Команда: ai_gta_plan_set
Параметры: alliance plan
Описание: Задает план битвы GTA
Пример использования: ai_gta_plan_set 0 DO_NOTHING
Класс: AI_GTA_PLAN_SET
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: ai_gta_add_objective
Параметры: alliance objective priority ...
Описание: Добавляет цель GTA
Пример использования: ai_gta_add_objective 1 MOVE_TO_POINT 11 440, -710
Класс: AI_GTA_ADD_OBJECTIVE
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: ai_gta_del_objective
Параметры: alliance objective
Описание: Удаляет цель GTA
Пример использования: ai_gta_del_objective 1 0
Класс: AI_GTA_DEL_OBJECTIVE
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: ai_gta_add_unit
Параметры: alliance objective army unit
Описание: Добавляет юнит к цели GTA
Пример использования: ai_gta_add_unit 1 0 1 0
Класс: AI_GTA_ADD_UNIT
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: ai_gta_add_unit_id
Параметры: alliance objective unit_id
Описание: Добавляет юнит по его id к цели GTA
Пример использования: ai_gta_add_unit_id 1 0 6
Класс: AI_GTA_ADD_UNIT_ID
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: ai_gta_add_unit_label
Параметры: alliance objective unit_label
Описание: Добавляет юнит по его id к цели GTA
Пример использования: ai_gta_add_unit_label 1 0 6
Класс: AI_GTA_ADD_UNIT_LABEL
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: ai_active_set
Параметры: on/off
Описание: Вкл/выкл AI
Пример использования: ai_active_set off
Класс: AI_ACTIVE_SET
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: release_unit
Параметры: unit_label
Описание: Снимает метку с указанного юнита и передает его под контроль игрока или AI
Пример использования: release_unit
Класс: RELEASE_UNIT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: hiding_enabled_set
Параметры: true/false
Описание: Вкл/выкл прятаться для всех юнитов
Пример использования: hiding_enabled_set false
Класс: HIDING_ENABLED_SET
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: swimming_enabled_set
Параметры: true/false
Описание: Вкл/выкл плавание для всех юнитов
Пример использования: swimming_enabled_set false
Класс: SWIMMING_ENABLED_SET
Использование: Да
Автор: Guy
---------------------------------------------------
Команда: terminate_battle
Параметры: win/lose/draw
Описание: Закончить битву
Пример использования: terminate_battle
Класс: TERMINATE_BATTLE
Использование: Да
Автор: IainM
---------------------------------------------------
Команда: pause_battle
Параметры:
Описание: приостановить битву
Пример использования: pause_battle
Класс: PAUSE_BATTLE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: battle_set_speed
Параметры: speed: 0,1,2,3
Описание: скорость битвы
Пример использования: battle_set_speed 1
Класс: BATTLE_SET_SPEED
Использование: Да
Автор: Artem
---------------------------------------------------
Команда: unit_immediate_place
Параметры: unit_label location angle_in_degrees width(optional)
Описание: Немедленно помещает юнит в указанную локацию
Пример использования: unit_immediate_place archers1 big_hill 0 20
Класс: UNIT_IMMEDIATE_PLACE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_halt
Параметры: unit_label
Описание: Отменяет приказы для юнита
Пример использования: unit_order_halt cohort1
Класс: UNIT_ORDER_HALT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_move
Параметры: unit_label x y run(optional)
Описание: приказывает юниту двигаться в указанную позицию
Пример использования: unit_order_move cohort1 100 60 run
Класс: UNIT_ORDER_MOVE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_move_to_orientation
Параметры: unit_label x y width_in_men rotation_in_degrees run (optional)
Описание: приказывает юниту двигаться в указанную позицию с указанной ориентацией и ротацией
Пример использования: unit_order_move_to_orientation cohort1 100 60 20 45 run
Класс: UNIT_ORDER_MOVE_TO_ORIENTATION
Использование: Да
Автор: Scott
---------------------------------------------------
Команда: unit_order_move_relative
Параметры: unit_label x y run(optional)
Описание: приказывает юниту двигаться в указанную позицию
Пример использования: unit_order_move_relative cohort1 0 60 run
Класс: UNIT_ORDER_MOVE_RELATIVE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_attack_unit
Параметры: unit_label target_unit_label run(optional)
Описание: атаковать юнит
Пример использования: unit_order_attack_unit cavalry1 enemy4 run
Класс: UNIT_ORDER_ATTACK_UNIT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_attack_closest_unit
Параметры: unit_label search_arc(in degrees) run(optional)
Описание: Поиск арки перед юнитом и атака ближайшего найденного врага
Пример использования: unit_order_attack_closest_unit 15 run
Класс: UNIT_ORDER_ATTACK_CLOSEST_UNIT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_change_formation
Параметры: unit_label formation_type (square, horde, testudo, phalanx)
Описание: смена формации
Пример использования: unit_order_change_formation legionary_cohort testudo
Класс: UNIT_ORDER_CHANGE_FORMATION
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_move_to_missile_range
Параметры: attacker_unit_label target_unit_label run(optional)
Описание: Приказывает атакующему перейти в область обстрела вражеского юнита
Пример использования: unit_order_move_to_missile_range roman_archers barb_swordsmen run
Класс: UNIT_ORDER_MOVE_TO_MISSILE_RANGE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_order_turn
Параметры: unit_label rotation relative/absolute
Описание: приказывает юниту повернуть на опр. градус или на градус по отношению к его текущей позиции
Пример использования: unit_order_turn roman_archers -20 relative (turns left 20 degrees)
Класс: UNIT_ORDER_TURN
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_morale
Параметры: unit_label morale_level (beserk/impetuous/high/firm/shaken/wavering/routing)
Описание: устанавливает и фиксирует мораль юнита
Пример использования: unit_set_morale carthaginian_peasants wavering
Класс: UNIT_SET_MORALE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_unset_morale
Параметры: unit_label
Описание: разфискирование морали юнита, игра установит контроль и обновит уровень морали
Пример использования: unit_unset_morale peasants4
Класс: UNIT_UNSET_MORALE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_weapon_upgrade
Параметры: unit_label new_level
Описание: устанавливает апгрейд оружия
Пример использования: unit_set_weapon_upgrade spearmen1 3
Класс: UNIT_SET_WEAPON_UPGRADE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_armour_upgrade
Параметры: unit_label new_level
Описание: устанавливает апгрейд брони
Пример использования: unit_set_armour_upgrade spearmen1 3
Класс: UNIT_SET_ARMOUR_UPGRADE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_experience
Параметры: unit_label new_experience_level
Описание: устанавливает опыт для юнита
Пример использования: unit_set_experience roman_general 7
Класс: UNIT_SET_EXPERIENCE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: kill_unit
Параметры: unit_label
Описание: уничтожение юнита
Пример использования: kill_unit carthaginians2
Класс: KILL_UNIT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: reduce_unit_strength
Параметры: unit_label percentage
Описание: Убивает солдат в юните, дабы довести его силу до указанного %
Пример использования: reduce_unit_strength carthaginians2 50
Класс: REDUCE_UNIT_STRENGTH
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_guard_mode
Параметры: unit_label on/off
Описание: устанавливает режим охраны для указанного юнита
Пример использования: unit_set_guard_mode roman_spearmen on
Класс: UNIT_SET_GUARD_MODE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_skirmish_mode
Параметры: unit_label on/off
Описание: устанавливает режим разведки для указанного юнита
Пример использования: unit_set_skirmish_mode velites1 off
Класс: UNIT_SET_SKIRMISH_MODE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_toggle_task_interrupt
Параметры: unit_label melee/skirmish/fire_at_will/rout/berserk on/off
Описание: Вкл/выкл указанное прерывание для юнита
Пример использования: unit_toggle_task_interrupt roman_archers skirmish on
Класс: UNIT_TOGGLE_TASK_INTERRUPT
Использование: Да
Автор: IainM
---------------------------------------------------
Команда: unit_set_fire_at_will_mode
Параметры: unit_label on/off
Описание: устанавливает свободный огонь для указанного юнита
Пример использования: unit_set_fire_at_will_mode roman_archers on
Класс: UNIT_SET_FIRE_AT_WILL_MODE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_set_formation_spacing
Параметры: unit_label loose/tight
Описание: расширяет или суживает формацию юнита
Пример использования: unit_set_formation_spacing roman_archers loose
Класс: UNIT_SET_FORMATION_SPACING
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_taunt
Параметры: unit_label
Описание: вызывает насмешку у юнита
Пример использования: unit_taunt barb_archers
Класс: UNIT_TAUNT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_use_special_ability
Параметры: unit_label
Описание: юнит использует уникальную способность
Пример использования: unit_use_special_ability barb_archers
Класс: UNIT_USE_SPECIAL_ABILITY
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_enable_automation
Параметры: group_label true/false
Описание: Вкл/выкл AI для группы юнитов
Пример использования: unit_group_enable_automation
Класс: UNIT_GROUP_ENABLE_AUTOMATION
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_automate_defend_position
Параметры: group_label location radius
Описание: Приказывает группе юнитов под AI защищать позицию
Пример использования: unit_group_automate_defend_position 106 -56 75
Класс: UNIT_GROUP_AUTOMATE_DEFEND_POSITION
Использование: Да
Автор: Scott
---------------------------------------------------
Команда: unit_group_automate_attack
Параметры: group_label enemy_unit_label
Описание: Instructs an automated unit group to attack a specified enemy unit
Пример использования: unit_group_automate_attack enemy_unit
Класс: UNIT_GROUP_AUTOMATE_ATTACK
Использование: Да
Автор: Scott
---------------------------------------------------
Команда: unit_group_immediate_place
Параметры: group_label location degrees
Описание: orders the unit group to move to the specified location
Пример использования: unit_group_immediate_place group6 100 -60 -20
Класс: UNIT_GROUP_IMMEDIATE_PLACE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_halt
Параметры: group_label
Описание: orders the unit group to stop it's orders
Пример использования: unit_group_order_halt group6
Класс: UNIT_GROUP_ORDER_HALT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_move_formed
Параметры: group_label x y run(optional)
Описание: orders the unit group to move to the specified location
Пример использования: unit_group_order_move_formed group6 100 -60 run
Класс: UNIT_GROUP_ORDER_MOVE_FORMED
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_move_unformed
Параметры: group_label x y run(optional)
Описание: orders the unit group to move to the specified location
Пример использования: unit_group_order_move_unformed group6 100 -60 run
Класс: UNIT_GROUP_ORDER_MOVE_UNFORMED
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_relative_move_formed
Параметры: group_label x y run(optional)
Описание: приказывает группе юнитов двигаться в указанную локацию
Пример использования: unit_group_order_relative_move_formed group6 100 -60 run
Класс: UNIT_GROUP_ORDER_RELATIVE_MOVE_FORMED
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_relative_move_unformed
Параметры: group_label x y run(optional)
Описание: orders the unit group to move to the specified location
Пример использования: unit_group_order_relative_move_unformed group6 100 -60 run
Класс: UNIT_GROUP_ORDER_RELATIVE_MOVE_UNFORMED
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_move_to_missile_range_of_unit
Параметры: group_label target_unit_label
Описание: Передвигает группу юнитов таким образом, чтобы хотя бы один юнит находился в зоне обстрела юнита
Пример использования: unit_group_move_to_missile_range_of_unit archer_group enemy_spearmen3
Класс: UNIT_GROUP_MOVE_TO_MISSILE_RANGE_OF_UNIT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_move_to_missile_range_of_group
Параметры: group_label target_group_label run(optional)
Описание: move the unit group so that at least one unit is in range of at least one unit in the target group
Пример использования: unit_group_move_to_missile_range_of_group archer_group enemy_group
Класс: UNIT_GROUP_MOVE_TO_MISSILE_RANGE_OF_GROUP
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_attack_unit
Параметры: group_label target_unit_label run(optional)
Описание: order the unit group to attack the target unit
Пример использования: unit_group_order_attack_unit group1 enemy_unit4
Класс: UNIT_GROUP_ORDER_ATTACK_UNIT
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_attack_group
Параметры: group_label target_group_label run(optional)
Описание: orders the unit group to attack the target group
Пример использования: unit_group_order_attack_group cavalry_group1 enemy_archer_group
Класс: UNIT_GROUP_ORDER_ATTACK_GROUP
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_change_group_formation
Параметры: group_label formation_name
Описание: устанавливает построение группы из descr_formations.txt
Пример использования: unit_group_order_change_group_formation group2 ordered_triple_line_1
Класс: UNIT_GROUP_ORDER_CHANGE_GROUP_FORMATION
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_order_turn
Параметры: group_label angle relative(optional)
Описание: rotates the unit group to an angle or by a number of degrees relative to it's current angle (see unit_order_turn)
Пример использования: unit_group_order_turn group2 90 (turns the group to 90 degrees)
Класс: UNIT_GROUP_ORDER_TURN
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_set_morale
Параметры: group_label morale_level (beserk/impetuous/high/firm/shaken/wavering/routing)
Описание: sets and locks the morale level for each unit in the group
Пример использования: unit_set_morale infantry_group routing
Класс: UNIT_GROUP_SET_MORALE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_unset_morale
Параметры: group_label
Описание: unlocks the units' morale, the game will retake control and update the morale normally
Пример использования: unit_group_unset_morale infantry_group
Класс: UNIT_GROUP_UNSET_MORALE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_change_unit_formation
Параметры: group_label formation_type (square, horde, testudo, phalanx)
Описание: изменяет построение каждого юнита в указанной группе
Пример использования: unit_group_change_unit_formation hoplite_group phalanx
Класс: UNIT_GROUP_CHANGE_UNIT_FORMATION
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_set_guard_mode
Параметры: group_label on/off
Описание: Sets the guard melee state for all units in the specified group
Пример использования: unit_group_set_guard_mode group2 off
Класс: UNIT_GROUP_SET_GUARD_MODE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_set_skirmish_mode
Параметры: group_label on/off
Описание: Sets the skirmish melee state for all units in the specified group
Пример использования: unit_group_set_skirmish_mode archer_group on
Класс: UNIT_GROUP_SET_SKIRMISH_MODE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_set_fire_at_will_mode
Параметры: group_label on/off
Описание: Sets the guard melee state for all units in the specified group
Пример использования: unit_group_set_fire_at_will_mode group2 off
Класс: UNIT_GROUP_SET_FIRE_AT_WILL_MODE
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_group_set_formation_spacing
Параметры: group_label loose/tight
Описание: Sets the formation spacing, for each unit in the group, to loose or tight
Пример использования: unit_group_set_formation_spacing group1 loose
Класс: UNIT_GROUP_SET_FORMATION_SPACING
Использование: Да
Автор: Robbie
---------------------------------------------------
Команда: unit_deploy_stakes
Параметры: unit_label
Описание: Размещает колья для указанного юнита (игнорируется, если колья уже размещены или у юнита нет такой фичи).
Пример использования: unit_deploy_stakes roman_archers
Класс: UNIT_DEPLOY_STAKES
Использование: Да
Автор: Adam

Добавить комментарий

Ссылки в комментариях не работают. Надоела капча - зарегистрируйся.

Защитный код
Обновить