MOD Dynamic reassignment and reequipment
Скачать с родной страницы(там также есть мануал по этому моду)
Список изменений v2.3.
1) Fix. Оседлавшие коня агенты, если не могут использовать его верхом получают оружие. Меч, или копье рыцаря, если сила 15 и уровень 35.
2) Fix. Герои, которые спавняться без коня, теперь не будут ловить коня и ездить верхом во время битвы.
3) Fix. Некоторые лучники в осаде не переназначались.
4) Если у агента сломается щит он возьмет другой при наличии.
Список изменений v2.2.
1) Фикс: приказ тупое оружия. Полеакс (длинный топор) не менялся.
----------------------
Список изменений v2.1.
1) Добавлено переназначение стрелков дивизии 9, в которую попадают по команде "Nearby Soldiers!" клавишей [-]
2) Дивизия для переназначения стрелков выбирается через опции
3) Тактическое меню отображает дивизии динамически, а не фиксировано как в предыдущей версии
4) Передача боеприпасов союзником учитывает большие сумки, клавиша изменена на [V] - удобнее
5) Добавлено в переназначение пистоли
6) Переделана команда тупое оружие. Теперь оружие заменяется у всех на тупое. При команде любое оружие все возвращается обратно. Вызов через тактическое меню тоже работает. Всем у кого нет тупого оружия в инвентаре труупса раздается Булава https://pop3.fandom.com/wiki/Mace. Если левел не ниже 35 и сила не ниже 12, то Боевой молот https://pop3.fandom.com/wiki/Battle_Hammer
Возможности:
------------------------------------------------------------------------
В скобках указаны дивизии, для которых будет работать переназначение. Исключаются из переназначения три дивизии с 6 по 8 (на клавишах 7-9). Их можно использовать для элиты или компаньонов.
(0) Пехота
(1) Стрелки
(2) Кавалерия
(3-5) - дивизии с 3 по 5,
(9) - дивизия, в которую попадают по команде "Nearby Soldiers!" клавишей [-]
-------------------------------------------------------------------------
1) Конница(0-5) потеряв коня переназначается в пехоту(0) или в стрелков(1), если осталось 3 снаряда и более.
2) При спешивании конницы (или убийстве коня) рыцарские копья (с атрибутом lance) заменяются, если нет другого оружия ближнего боя. Обычные копья остаются, так как у них более высокая скорость и выше урон. Оружие берется рандомно из инвентаря. Если не нашлось ничего, то берется моргенштерн (утренняя звезда) при силе 13 и выше, или обычный меч.
3) Стрелки (0-5, 9) при иссякании боеприпасов переназначаются в пехоту(0) или дивизию на выбор (опции мода). Сюда входят лучники, арбалетчики, мушкетеры и копьеметатели.
4) Стрелки при передаче игроку всех имеющихся боеприпасов переназначаться в пехоту. В обороне при осаде таким способом можно переводить лишних стрелков в пехоту. Чтобы брать боеприпасы нужно взять в руки подходящий тип оружия. Можно брать боеприпасы у союзников, у конницы. Радиус действия увеличен в два раза. Раннее не всегда удавалось взять боеприпасы из-за маленького радиуса действия.
5) Переназначение в осаде всех агентов(0-5) на пехоту(0) и стрелков(1). Рыцарские копья тоже заменяются. Также срабатывает в пешей битве в деревне при ограблении лордом.
6) Пехота(0), которая заспавнилась со стрелковым оружием или с конем, переводится в соответствующую дивизию(1 или 2).
7) Оседлавшие коня агенты (0-5) переназначаются в кавалерию (2). Для этого нужно приказать дивизиям передвигаться верхом на коне. Из-за ограничений движка оседлать могут только те, для которых стоит флаг принудительной верховой езды, т.е. это СКО рыцари и сержанты, и те, которые потеряли коня в бою.
8) Все это также работает для ИИ союзника и ИИ противника.
Установка - открывайте текстовые файлы по порядку.
Возможны баги.
1) Когда включены сокращеные сообщения о потерях. Выскакивает сообщение что кого-то убил меч или другое оружие, динамически одетое. Баг движка.
Эти все коды отдельно находятся в мануале на родной странице
1) Файл: scripts.txt
2) Счетчик скриптов: +1
3) Добавить: в конец файла скрипт
switch_weapon -1
34 23 2 1224979098644774912 1 1718 2 1224979098644774913 1224979098644774912 2172 3 1224979098644774914 1224979098644774913 0 2133 2 72057594037927936 288230376151712934 4 0 30 2 1224979098644774914 13 2133 2 72057594037927936 288230376151713048 3 0 4 0 1507 1 1224979098644774913 5 0 1540 2 1224979098644774915 1224979098644774913 2133 2 1224979098644774916 0 6 3 1224979098644774917 0 1224979098644774915 1541 3 1224979098644774918 1224979098644774913 1224979098644774917 32 2 1224979098644774918 -1 1570 2 1224979098644774919 1224979098644774918 2133 2 1224979098644774920 0 4 0 1073741855 2 1224979098644774919 2 31 2 1224979098644774919 3 2133 2 1224979098644774920 1 5 0 31 2 1224979098644774919 4 2147486371 2 1224979098644774918 2147483648 2133 2 1224979098644774920 1 3 0 31 2 1224979098644774920 1 500 3 360287970189639683 1224979098644774916 1224979098644774918 2105 2 1224979098644774916 1 3 0 2136 3 1224979098644774921 0 1224979098644774916 520 3 72057594037927936 360287970189639683 1224979098644774921 3 0
4) Подсчитать число скрипта (в коде это число нужно будет заменять 936748722493063922) ## CODE ##############
# script_switch_weapon
# This script is called to get the proper item_id from troop inventory to switch lance
# INPUT: ":agent"
# OUTPUT: reg0
("switch_weapon", [
(store_script_param, ":agent", 1),
(agent_get_troop_id, ":troop", ":agent"),
(store_attribute_level, ":strength", ":troop", ca_strength),
(assign, reg0, itm_sword_medieval_a),
(try_begin),
(ge, ":strength", 13),
(assign, reg0, itm_morningstar),
(try_end),
(try_begin),
(troop_is_hero, ":troop"),
(else_try),
(troop_get_inventory_capacity, ":cap", ":troop"),
(assign, ":troop_slot", 0),
(try_for_range, ":slot", 0, ":cap"),
(troop_get_inventory_slot, ":item", ":troop", ":slot"),
(gt, ":item", -1),
(item_get_type, ":type", ":item"),
(assign, ":continue", 0),
(try_begin),
(this_or_next|eq, ":type", itp_type_one_handed_wpn),
(eq, ":type", itp_type_two_handed_wpn),
(assign, ":continue", 1),
(else_try),
(eq, ":type", itp_type_polearm),
(neg|item_has_property, ":item", itp_couchable),
(assign, ":continue", 1),
(try_end),
(eq, ":continue", 1),
(troop_set_slot, "trp_temp_troop", ":troop_slot", ":item"),
(val_add, ":troop_slot", 1),
(try_end),
(store_random_in_range, ":rand", 0, ":troop_slot"),
(troop_get_slot, reg0, "trp_temp_troop", ":rand"),
(try_end),
]),
При любой команде группе приходится заново переназначать солдат, особенность движка warband.
1) Файл: mission_templates.txt
2) Миссии:
mst_village_attack_bandits
mst_village_raid
mst_castle_attack_walls_defenders_sally
mst_castle_attack_walls_belfry
mst_castle_attack_walls_ladder
3) Добавить в эти миссии по 1 триггеру (счетчики увеличить на +1). Это общий триггер для динамического переназначения дивизий. 1.000000 0.000000 0.000000 0 9 12 1 1224979098644774912 1712 1 1224979098644774912 565 3 1224979098644774912 46 0 1702 1 1224979098644774912 1773 2 1224979098644774913 1224979098644774912 2147484193 3 1224979098644774912 46 1224979098644774913 525 3 1224979098644774914 1224979098644774912 46 1783 2 1224979098644774912 1224979098644774914 3 0
4) Примечание: в mst_lead_charge - триггер уже есть, туда не добавляем (1, 0, 0, [],
[
(try_for_agents, ":agent"),
(agent_is_active, ":agent"),
(agent_slot_ge, ":agent", slot_agent_new_division, 0),
(agent_is_alive, ":agent"),
(agent_get_division, ":division", ":agent"),
(neg|agent_slot_eq, ":agent", slot_agent_new_division, ":division"),
(agent_get_slot, ":new_div", ":agent", slot_agent_new_division),
(agent_set_division, ":agent", ":new_div"),
(try_end),
]),
1) Файл: mission_templates.txt
2) Миссии:
mst_castle_attack_walls_defenders_sally = вылазка защитников при атаке на любой замок/город
mst_castle_attack_walls_belfry = осада замков, для которых нужно строить осадную башню
mst_castle_attack_walls_ladder = осада замков/городов, для которых нужно строить лестницы
mst_village_raid = нападение игроком на крестьян во время грабежа или попыток отнять припасы
3) Число 936748722493063922 в триггере в следующем пункте нужно заменить на номер скрипта из файла под номером 1. 4) Добавляется по триггеру в каждую миссию, (к каждому счетчику +1)
---Версия 2.2---
-25.000000 0.000000 0.000000 5 2071 1 1224979098644774912 1700 1 1224979098644774913 30 2 1224979098644774913 0 2147483679 2 1224979098644774912 1224979098644774913 1704 1 1224979098644774912 43 2071 1 1224979098644774912 2133 2 1224979098644774913 0 2133 2 1224979098644774914 1 505 3 1224979098644774912 46 -1 6 3 1224979098644774915 0 4 1804 3 1224979098644774916 1224979098644774912 1224979098644774915 30 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 1073741855 2 1224979098644774917 8 1073741855 2 1224979098644774917 9 1073741855 2 1224979098644774917 16 31 2 1224979098644774917 17 2133 2 1224979098644774913 1 5 0 31 2 1224979098644774917 4 2723 2 1224979098644774916 2147483648 2133 2 1224979098644774918 1224979098644774916 5 0 1073741855 2 1224979098644774917 2 1073741855 2 1224979098644774917 3 31 2 1224979098644774917 4 2133 2 1224979098644774914 0 3 0 3 0 1773 2 1224979098644774919 1224979098644774912 4 0 2147483678 2 1224979098644774919 6 4 0 31 2 1224979098644774913 1 2147483679 2 1224979098644774919 1 1783 2 1224979098644774912 1 505 3 1224979098644774912 46 1 5 0 2147483679 2 1224979098644774919 0 1783 2 1224979098644774912 0 505 3 1224979098644774912 46 0 3 0 3 0 31 2 1224979098644774914 1 1774 2 1224979098644774912 1224979098644774918 1 2 936748722493063922 1224979098644774912 1779 2 1224979098644774912 72057594037927936
--- Версия 2.3--- -25.000000 0.000000 0.000000 5 2071 1 1224979098644774912 1700 1 1224979098644774913 30 2 1224979098644774913 0 2147483679 2 1224979098644774912 1224979098644774913 1704 1 1224979098644774912 44 2071 1 1224979098644774912 2133 2 1224979098644774913 0 2133 2 1224979098644774914 1 505 3 1224979098644774912 46 -1 6 3 1224979098644774915 0 4 1804 3 1224979098644774916 1224979098644774912 1224979098644774915 30 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 1073741855 2 1224979098644774917 8 1073741855 2 1224979098644774917 9 1073741855 2 1224979098644774917 16 31 2 1224979098644774917 17 2133 2 1224979098644774913 1 5 0 31 2 1224979098644774917 4 2723 2 1224979098644774916 2147483648 2133 2 1224979098644774918 1224979098644774916 5 0 1073741855 2 1224979098644774917 2 1073741855 2 1224979098644774917 3 31 2 1224979098644774917 4 2133 2 1224979098644774914 0 3 0 3 0 1773 2 1224979098644774919 1224979098644774912 4 0 2147483678 2 1224979098644774919 6 4 0 31 2 1224979098644774913 1 2147483679 2 1224979098644774919 1 1783 2 1224979098644774912 1 505 3 1224979098644774912 46 1 5 0 2147483679 2 1224979098644774913 1 2147483679 2 1224979098644774919 0 1783 2 1224979098644774912 0 505 3 1224979098644774912 46 0 3 0 3 0 31 2 1224979098644774914 1 1774 2 1224979098644774912 1224979098644774918 1 2 936748722493063922 1224979098644774912 1779 2 1224979098644774912 72057594037927936
################## CODE ###########################
(ti_on_agent_spawn, 0, 0,
[
(store_trigger_param_1, ":agent"),
(get_player_agent_no, ":player"),
(ge, ":player", 0),
(neq, ":agent", ":player"),
(agent_is_human, ":agent"),
],
[
(store_trigger_param_1, ":agent"),
(assign, ":archer", 0),
(assign, ":switch_lance", 1),
(agent_set_slot, ":agent", slot_agent_new_division, -1),
(try_for_range, ":cur_item_slot", 0, 4),
(agent_get_item_slot, ":cur_item", ":agent", ":cur_item_slot"),
(ge, ":cur_item", 0),
(item_get_type, ":type", ":cur_item"),
(try_begin),
(this_or_next|eq, ":type", itp_type_bow),
(this_or_next|eq, ":type", itp_type_crossbow),
(this_or_next|eq, ":type", itp_type_pistol),
(eq, ":type", itp_type_musket),
(assign, ":archer", 1),
(else_try),
(eq, ":type", itp_type_polearm),
(item_has_property, ":cur_item", itp_couchable),
(assign, ":lance", ":cur_item"),
(else_try),
(this_or_next|eq, ":type", itp_type_one_handed_wpn),
(this_or_next|eq, ":type", itp_type_two_handed_wpn),
(eq, ":type", itp_type_polearm),
(assign, ":switch_lance", 0),
(end_try),
(end_try),
(agent_get_division, ":division", ":agent"),
(try_begin),
(lt, ":division", 6),
(try_begin),
(eq, ":archer", 1),
(neq, ":division", grc_archers),
(agent_set_division, ":agent", grc_archers),
(agent_set_slot, ":agent", slot_agent_new_division, grc_archers),
(else_try),
(neq, ":archer", 1), # V2.3 fix
(neq, ":division", grc_infantry),
(agent_set_division, ":agent", grc_infantry),
(agent_set_slot, ":agent", slot_agent_new_division, grc_infantry),
(end_try),
(end_try),
(eq, ":switch_lance", 1),
(agent_unequip_item, ":agent", ":lance"),
(call_script, "script_switch_weapon", ":agent"),
(agent_equip_item, ":agent", reg0),
]),
Пехота, которая спавниться на коне, переназначается в кавалерию(2).
Пехота, которая спавниться с луком или арбалетом, переназначается в стрелки(1).
1) Файл: mission_templates.txt
2) Добавить в миссии lead_charge и village_attack_bandits по одному триггеру (счетчики +1)
-25.000000 0.000000 0.000000 2 2071 1 1224979098644774912 1707 1 1224979098644774912 31 2071 1 1224979098644774912 4 0 1704 1 1224979098644774912 1773 2 1224979098644774913 1224979098644774912 505 3 1224979098644774912 46 -1 31 2 1224979098644774913 0 2133 2 1224979098644774914 0 6 3 1224979098644774915 0 4 1804 3 1224979098644774916 1224979098644774912 1224979098644774915 30 2 1224979098644774916 1 1570 2 1224979098644774917 1224979098644774916 1073741855 2 1224979098644774917 8 1073741855 2 1224979098644774917 9 1073741855 2 1224979098644774917 16 31 2 1224979098644774917 17 2133 2 1224979098644774914 1 3 0 31 2 1224979098644774914 1 1783 2 1224979098644774912 1 505 3 1224979098644774912 46 1 3 0 4 0 2147485352 1 1224979098644774912 1715 2 1224979098644774918 1224979098644774912 30 2 1224979098644774918 0 1773 2 1224979098644774913 1224979098644774918 1073741855 2 1224979098644774913 0 31 2 1224979098644774913 1 1783 2 1224979098644774918 2 505 3 1224979098644774918 46 2 3 0
######### CODE #####################
(ti_on_agent_spawn, 0, 0,
[
(store_trigger_param_1, ":agent"),
(agent_is_non_player, ":agent"),
],
[
(store_trigger_param_1, ":agent"),
(try_begin),
(agent_is_human, ":agent"),
(agent_get_division, ":division", ":agent"),
(agent_set_slot, ":agent", slot_agent_new_division, -1),
(eq, ":division", 0),
(assign, ":archer", 0),
(try_for_range, ":item_slot", 0, 4),
(agent_get_item_slot, ":item", ":agent", ":item_slot"),
(ge, ":item", 1),
(item_get_type, ":item_type", ":item"),
(this_or_next|eq, ":item_type", itp_type_bow),
(this_or_next|eq, ":item_type", itp_type_crossbow),
(this_or_next|eq, ":item_type", itp_type_pistol),
(eq, ":item_type", itp_type_musket),
(assign, ":archer", 1),
(end_try),
(eq, ":archer", 1),
(agent_set_division, ":agent", grc_archers),
(agent_set_slot, ":agent", slot_agent_new_division, grc_archers),
(end_try),
(try_begin),
(neg|agent_is_human, ":agent"),
(agent_get_rider, ":rider", ":agent"), # Humans spawns before horses
(ge, ":rider", 0),
(agent_get_division, ":division", ":rider"),
(this_or_next|eq, ":division", grc_infantry),
(eq, ":division", grc_archers),
(agent_set_division, ":rider", grc_cavalry),
(agent_set_slot, ":rider", slot_agent_new_division, grc_cavalry),
(end_try),
]),
1) Файл: mission_templates.txt
2) Миссия:
mst_lead_charge = битва в поле
3) Счетчик: -2 (3 триггера удалить, 1 добавить) 4) Удалить из lead_charge три триггера (можно одним куском)
-25.000000 0.000000 0.000000 0 2 2071 1 1224979098644774912 505 3 1224979098644774912 46 -1
-25.000000 0.000000 0.000000 0 12 2071 1 1224979098644774912 4 0 2147485352 1 1224979098644774912 1715 2 1224979098644774913 1224979098644774912 30 2 1224979098644774913 0 1712 1 1224979098644774913 1702 1 1224979098644774913 1707 1 1224979098644774913 5 0 2133 2 1224979098644774913 -1 3 0 505 3 1224979098644774912 45 1224979098644774913
-26.000000 0.000000 0.000000 0 13 2071 1 1224979098644774912 2147485352 1 1224979098644774912 525 3 1224979098644774913 1224979098644774912 45 30 2 1224979098644774913 0 1712 1 1224979098644774913 1702 1 1224979098644774913 1707 1 1224979098644774913 1745 3 1224979098644774913 -2 1 1746 3 1224979098644774913 -2 1 1735 1 1224979098644774913 1732 1 1224979098644774913 1783 2 1224979098644774913 0 505 3 1224979098644774913 46 0
5) В следующем пункте число 936748722493063922 заменить на номер скрипта из файла 1. 6) Вставить в lead_charge триггер
-56.000000 0.000000 0.000000 7 2071 1 1224979098644774912 1707 1 1224979098644774912 1704 1 1224979098644774912 1745 3 1224979098644774912 -2 1 1746 3 1224979098644774912 -2 1 1735 1 1224979098644774912 1732 1 1224979098644774912 43 2071 1 1224979098644774912 2133 2 1224979098644774913 0 2133 2 1224979098644774914 1 6 3 1224979098644774915 0 4 1804 3 1224979098644774916 1224979098644774912 1224979098644774915 30 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 1073741855 2 1224979098644774917 8 1073741855 2 1224979098644774917 9 1073741855 2 1224979098644774917 16 31 2 1224979098644774917 17 1727 3 1224979098644774918 1224979098644774912 0 30 2 1224979098644774918 3 2133 2 1224979098644774913 1 5 0 31 2 1224979098644774917 4 2723 2 1224979098644774916 2147483648 2133 2 1224979098644774919 1224979098644774916 5 0 1073741855 2 1224979098644774917 2 1073741855 2 1224979098644774917 3 31 2 1224979098644774917 4 2133 2 1224979098644774914 0 3 0 3 0 1773 2 1224979098644774920 1224979098644774912 4 0 2147483678 2 1224979098644774920 6 4 0 31 2 1224979098644774913 1 1783 2 1224979098644774912 1 505 3 1224979098644774912 46 1 5 0 1783 2 1224979098644774912 0 505 3 1224979098644774912 46 0 3 0 3 0 31 2 1224979098644774914 1 1774 2 1224979098644774912 1224979098644774919 1 2 936748722493063922 1224979098644774912 1779 2 1224979098644774912 72057594037927936 1747 2 1224979098644774912 72057594037927936
7) Этот же триггер из пункта 6 вставить в миссию mst_village_attack_bandits = битва с бандитами в деревне, счетчик увеличить +1. ########### CODE ##################### lancer_dismount_trigger = ( ti_on_agent_dismount, 0, 0, [ (store_trigger_param_1, ":agent"), (agent_is_non_player, ":agent"), (agent_is_human, ":agent"), (agent_set_attack_action, ":agent", -2, 1), (agent_set_defend_action, ":agent", -2, 1), (agent_clear_scripted_mode, ":agent"), (agent_force_rethink, ":agent"), ], [ (store_trigger_param_1, ":agent"), (assign, ":archer", 0), (assign, ":switch_lance", 1), (try_for_range, ":cur_item_slot", 0, 4), (agent_get_item_slot, ":cur_item", ":agent", ":cur_item_slot"), (ge, ":cur_item", 0), (item_get_type, ":type", ":cur_item"), (try_begin), (this_or_next|eq, ":type", itp_type_bow), (this_or_next|eq, ":type", itp_type_crossbow), (this_or_next|eq, ":type", itp_type_pistol), (eq, ":type", itp_type_musket), (agent_get_ammo, ":ammo", ":agent", 0), (ge, ":ammo", 3), (assign, ":archer", 1), (else_try), (eq, ":type", itp_type_polearm), (item_has_property, ":cur_item", itp_couchable), (assign, ":lance", ":cur_item"), (else_try), (this_or_next|eq, ":type", itp_type_one_handed_wpn), (this_or_next|eq, ":type", itp_type_two_handed_wpn), (eq, ":type", itp_type_polearm), (assign, ":switch_lance", 0), (try_end), (try_end), (agent_get_division, ":division", ":agent"), (try_begin), (lt, ":division", 6), (try_begin), (eq, ":archer", 1), (agent_set_division, ":agent", grc_archers), (agent_set_slot, ":agent", slot_agent_new_division, grc_archers), (else_try), (agent_set_division, ":agent", grc_infantry), (agent_set_slot, ":agent", slot_agent_new_division, grc_infantry), (try_end), (try_end), (eq, ":switch_lance", 1), (agent_unequip_item, ":agent", ":lance"), (call_script, "script_switch_weapon", ":agent"), (agent_equip_item, ":agent", reg0), (agent_set_wielded_item, ":agent", reg0), ]),
Агенты нашедшие коня переназначаться в кавалерию.
1) Файл mission_templates.txt
2) Миссии:
lead_charge
3) Счетчик +3 4) Вставить три триггера
-55.000000 0.000000 0.000000 0 36 2071 1 1224979098644774912 1704 1 1224979098644774912 1707 1 1224979098644774912 1773 2 1224979098644774913 1224979098644774912 33 3 1224979098644774913 0 6 1783 2 1224979098644774912 2 505 3 1224979098644774912 46 2 2133 2 1224979098644774914 0 2133 2 1224979098644774915 4 6 3 1224979098644774916 0 1224979098644774915 1804 3 1224979098644774917 1224979098644774912 1224979098644774916 32 2 1224979098644774917 0 1570 2 1224979098644774918 1224979098644774917 1073741855 2 1224979098644774918 2 1073741855 2 1224979098644774918 3 31 2 1224979098644774918 4 2147486371 2 1224979098644774917 268435456 2133 2 1224979098644774914 1 2133 2 1224979098644774915 0 3 0 4 0 31 2 1224979098644774914 0 1718 2 1224979098644774919 1224979098644774912 2171 2 1224979098644774920 1224979098644774919 2172 3 1224979098644774921 1224979098644774919 0 2133 2 1224979098644774922 288230376151712934 4 0 30 2 1224979098644774921 15 30 2 1224979098644774920 35 2133 2 1224979098644774922 288230376151713113 3 0 1726 3 1224979098644774923 1224979098644774912 0 1774 2 1224979098644774912 1224979098644774923 1779 2 1224979098644774912 1224979098644774922 1747 2 1224979098644774912 1224979098644774922 3 0
2.000000 0.000000 100000000.000000 0 5 6 3 1224979098644774912 0 4 6 3 1224979098644774913 0 8 1790 3 1224979098644774912 1224979098644774913 3 3 0 3 0
-25.000000 0.000000 0.000000 0 12 2071 1 1224979098644774912 1704 1 1224979098644774912 1707 1 1224979098644774912 1718 2 1224979098644774913 1224979098644774912 1507 1 1224979098644774913 1541 3 1224979098644774914 1224979098644774913 8 2147483680 2 1224979098644774914 0 2170 3 1224979098644774915 1369094286720630808 1224979098644774913 32 2 1224979098644774915 0 500 3 1224979098644774913 501 1224979098644774915 2107 2 1224979098644774915 -1 1521 3 1224979098644774913 1369094286720630808 1224979098644774915
5) Открыть файл menus.txt 6) Найти
menu_battle_debrief 4608 {s11}^^Your_casualties:{s8}{s10}^^Enemy_casualties:{s9}^^Kill_count:{s12} none 157
7) Счетчик 157 увеличить +6 8) За счетчиком сразу вставить
6 3 1224979098644774912 360287970189639680 360287970189640882 520 3 1224979098644774913 1224979098644774912 501 32 2 1224979098644774913 0 1521 3 1224979098644774912 1369094286720630808 1224979098644774913 500 3 1224979098644774912 501 0 3 0
####### CODE ##################
mount_agent_to_cav = (
ti_on_agent_mount, 0, 0, [ # -55.0
], [
(store_trigger_param_1, ":agent"),
(agent_is_human, ":agent"),
(agent_is_non_player, ":agent"),
(agent_get_division, ":division", ":agent"),
(is_between, ":division", 0, 6),
(agent_set_division, ":agent", grc_cavalry),
(agent_set_slot, ":agent", slot_agent_new_division, grc_cavalry),
# New v2.3
# Change weapon if can't be used on horseback
(assign, ":item_on_horseback", 0),
(assign, ":end_cond", 4),
(try_for_range, ":item_slot", 0, ":end_cond"),
(agent_get_item_slot, ":item", ":agent", ":item_slot"),
(gt, ":item", 0),
(item_get_type, ":type", ":item"),
(this_or_next|eq, ":type", itp_type_one_handed_wpn),
(this_or_next|eq, ":type", itp_type_two_handed_wpn),
(eq, ":type", itp_type_polearm),
(neg|item_has_property, ":item", itp_cant_use_on_horseback),
(assign, ":item_on_horseback", 1),
(assign, ":end_cond", 0),
(try_end),
(try_begin),
(eq, ":item_on_horseback", 0),
(agent_get_troop_id, ":troop", ":agent"),
(store_character_level, ":level", ":troop"),
(store_attribute_level, ":strength", ":troop", ca_strength),
(assign, ":new_item", "itm_sword_medieval_a"),
(try_begin),
(ge, ":strength", 15),
(ge, ":level", 35),
(assign, ":new_item", "itm_long_knight_lance2"),
(try_end),
(agent_get_wielded_item, ":wielded_item", ":agent", 0),
(agent_unequip_item, ":agent", ":wielded_item"),
(agent_equip_item, ":agent", ":new_item"),
(agent_set_wielded_item, ":agent", ":new_item"),
(try_end),
]),
(2, 0, ti_once, [],
[
(try_for_range, ":team", 0, 4),
(try_for_range, ":division", 0, 8),
(team_give_order, ":team", ":division", mordr_mount),
(try_end),
(try_end),
]),
(ti_on_agent_spawn, 0, 0, [],
[
(store_trigger_param_1, ":agent"),
(agent_is_human, ":agent"),
(agent_is_non_player, ":agent"),
(agent_get_troop_id, ":troop", ":agent"),
(troop_is_hero, ":troop"),
(troop_get_inventory_slot, ":horse", ":troop", 8),
(le, ":horse", 0),
(store_skill_level, ":riding", skl_riding, ":troop"),
(gt, ":riding", 0),
(troop_set_slot, ":troop", slot_backup_riding, ":riding"),
(val_mul, ":riding", -1),
(troop_raise_skill, ":troop", skl_riding, ":riding"),
]),
File game_menu: mnu_battle_debrief добавить в начало или конец
(try_for_range, ":troop", "trp_player", "trp_elacrai_loot"),
(troop_get_slot, ":riding", ":troop", slot_backup_riding),
(gt, ":riding", 0),
(troop_raise_skill, ":troop", skl_riding, ":riding"),
(troop_set_slot, ":troop", slot_backup_riding, 0),
(try_end),
1) Файл: mission_templates.txt
2) Миссии:
lead_charge
mst_village_attack_bandits
mst_village_raid
mst_castle_attack_walls_defenders_sally
mst_castle_attack_walls_belfry
mst_castle_attack_walls_ladder
3) Добавить глобальную переменную, и заменить в следующем пункте $archer_reassign_division 144115188075857320
4) Вставить триггер, и увеличить счетчик +1 -58.000000 0.000000 0.000000 0 33 2072 1 1224979098644774912 30 2 1224979098644774912 0 1570 2 1224979098644774913 1224979098644774912 1073741855 2 1224979098644774913 8 1073741855 2 1224979098644774913 16 1073741855 2 1224979098644774913 17 1073741855 2 1224979098644774913 10 31 2 1224979098644774913 9 2071 1 1224979098644774914 1712 1 1224979098644774914 1702 1 1224979098644774914 1707 1 1224979098644774914 1727 3 1224979098644774915 1224979098644774914 0 2147483680 2 1224979098644774915 0 1714 2 1224979098644774916 1224979098644774914 31 2 1224979098644774916 -1 2133 2 1224979098644774917 1 4 0 1073742365 3 144115188075856280 0 3 541 3 144115188075856280 0 2 1770 2 1224979098644774918 1224979098644774914 1073741855 2 1224979098644774918 144115188075856381 31 2 1224979098644774918 144115188075856383 2133 2 1224979098644774917 0 3 0 31 2 1224979098644774917 1 1773 2 1224979098644774919 1224979098644774914 4 0 1073741855 2 1224979098644774919 9 2147483678 2 1224979098644774919 6 1783 2 1224979098644774914 144115188075857320 505 3 1224979098644774914 46 144115188075857320 3 0
################ CODE ########################
reassign_archers_to_division = [
(ti_on_item_unwielded, 0, 0, [], #Out of Ammo Trigger
[
(store_trigger_param_2, ":weapon"),
(ge, ":weapon", 0),
(item_get_type, ":type", ":weapon"),
(this_or_next|eq, ":type", itp_type_bow),
(this_or_next|eq, ":type", itp_type_pistol),
(this_or_next|eq, ":type", itp_type_musket),
(this_or_next|eq, ":type", itp_type_thrown), #= 10
(eq, ":type", itp_type_crossbow),
(store_trigger_param_1, ":agent"),
(agent_is_active, ":agent"),
(agent_is_alive, ":agent"),
(agent_is_non_player, ":agent"),
(agent_get_ammo, ":ammo", ":agent", 0),
(le, ":ammo", 0),
(agent_get_horse, ":horse", ":agent"),
(eq, ":horse", -1),
(assign, ":continue", 1),
(try_begin),
(this_or_next|party_slot_eq, "$g_encountered_party", slot_party_type, spt_town), #Sieges
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_castle),
(agent_get_team, ":team", ":agent"),
(this_or_next|eq, ":team", "$defender_team"),
(eq, ":team", "$defender_team_2"),
(assign, ":continue", 0), #To not reassign units that will get their ammo refilled.
(try_end),
(eq, ":continue", 1),
(agent_get_division, ":division", ":agent"),
(try_begin),
(this_or_next|eq, ":division", 9),
(lt, ":division", 6),
(agent_set_division, ":agent", "$archer_reassign_division"),
(agent_set_slot, ":agent", slot_agent_new_division, "$archer_reassign_division"),
(try_end),
]),
]
1) Файл: mission_templates.txt
2) Миссии:
mst_lead_charge
mst_castle_attack_walls_ladder
mst_castle_attack_walls_belfry
3) Нужно заменить старый триггер (Notepad++ не может всю строку заменить автоматом) 0.000000 0.000000 0.000000 1 71 1 24 116 1700 1 1224979098644774912 1726 3 1224979098644774913 1224979098644774912 0 1570 2 1224979098644774914 1224979098644774913 1073741855 2 1224979098644774914 8 31 2 1224979098644774914 9 1710 2 5 1224979098644774912 2133 2 1224979098644774915 -1 12 1 1224979098644774916 2147483679 2 1224979098644774916 1224979098644774912 1702 1 1224979098644774916 1704 1 1224979098644774916 1716 2 1224979098644774917 1224979098644774916 31 2 1224979098644774917 648518346341351424 1726 3 1224979098644774918 1224979098644774916 0 32 2 1224979098644774918 0 1570 2 1224979098644774919 1224979098644774918 31 2 1224979098644774919 1224979098644774914 4 0 31 2 1224979098644774915 -1 2133 2 1224979098644774915 1224979098644774916 1710 2 1 1224979098644774916 710 3 1224979098644774920 1 5 5 0 1710 2 2 1224979098644774916 710 3 1224979098644774921 2 5 2147483678 2 1224979098644774921 1224979098644774920 2133 2 1224979098644774915 1224979098644774916 2133 2 1224979098644774920 1224979098644774921 3 0 3 0 32 2 1224979098644774915 -1 2147483678 2 1224979098644774920 100 4 0 31 2 1224979098644774914 8 2133 2 1224979098644774922 5 5 0 2133 2 1224979098644774922 6 3 0 2133 2 1224979098644774923 0 6 3 1224979098644774924 0 4 1804 3 1224979098644774925 1224979098644774912 1224979098644774924 30 2 1224979098644774925 1 1570 2 1224979098644774926 1224979098644774925 31 2 1224979098644774926 1224979098644774922 2710 2 1224979098644774927 1224979098644774925 1977 3 1224979098644774928 1224979098644774912 1224979098644774924 2121 3 1224979098644774929 1224979098644774927 1224979098644774928 2105 2 1224979098644774923 1224979098644774929 3 0 2133 2 1224979098644774930 0 6 3 1224979098644774924 0 4 1804 3 1224979098644774925 1224979098644774915 1224979098644774924 30 2 1224979098644774925 1 1570 2 1224979098644774926 1224979098644774925 31 2 1224979098644774926 1224979098644774922 1977 3 1224979098644774928 1224979098644774915 1224979098644774924 2105 2 1224979098644774930 1224979098644774928 3 0 4 0 30 2 1224979098644774923 1224979098644774930 6 3 1224979098644774924 0 4 1804 3 1224979098644774925 1224979098644774915 1224979098644774924 30 2 1224979098644774925 1 1570 2 1224979098644774926 1224979098644774925 4 0 31 2 1224979098644774926 1224979098644774922 1776 3 1224979098644774915 1224979098644774925 0 5 0 31 2 1224979098644774926 1224979098644774914 1774 3 1224979098644774915 1224979098644774925 1224979098644774924 3 0 3 0 6 3 1224979098644774924 0 4 1804 3 1224979098644774925 1224979098644774912 1224979098644774924 30 2 1224979098644774925 1 1570 2 1224979098644774926 1224979098644774925 31 2 1224979098644774926 1224979098644774922 2710 2 1224979098644774927 1224979098644774925 1977 3 1224979098644774928 1224979098644774912 1224979098644774924 2121 3 1224979098644774929 1224979098644774927 1224979098644774928 4 0 30 2 1224979098644774930 1224979098644774929 1776 3 1224979098644774912 1224979098644774925 1224979098644774927 2106 2 1224979098644774930 1224979098644774929 5 0 2105 2 1224979098644774928 1224979098644774930 1776 3 1224979098644774912 1224979098644774925 1224979098644774928 3 0 3 0 5 0 6 3 1224979098644774924 0 4 1804 3 1224979098644774925 1224979098644774912 1224979098644774924 30 2 1224979098644774925 1 1570 2 1224979098644774926 1224979098644774925 31 2 1224979098644774926 1224979098644774922 2710 2 1224979098644774927 1224979098644774925 1977 3 1224979098644774928 1224979098644774912 1224979098644774924 2121 3 1224979098644774929 1224979098644774927 1224979098644774928 1776 3 1224979098644774912 1224979098644774925 1224979098644774927 3 0 6 3 1224979098644774924 0 4 1804 3 1224979098644774925 1224979098644774915 1224979098644774924 30 2 1224979098644774925 1 1570 2 1224979098644774926 1224979098644774925 31 2 1224979098644774926 1224979098644774922 1977 3 1224979098644774928 1224979098644774915 1224979098644774924 4 0 30 2 1224979098644774923 1224979098644774928 1776 3 1224979098644774915 1224979098644774925 0 2106 2 1224979098644774923 1224979098644774928 5 0 2106 2 1224979098644774928 1224979098644774923 1776 3 1224979098644774915 1224979098644774925 1224979098644774928 3 0 3 0 3 0
4) На новый 0.000000 0.000000 0.000000 1 71 1 47 176 1700 1 1224979098644774912 1726 3 1224979098644774913 1224979098644774912 0 1570 2 1224979098644774914 1224979098644774913 1073741855 2 1224979098644774914 8 1073741855 2 1224979098644774914 9 1073741855 2 1224979098644774914 16 31 2 1224979098644774914 17 1710 2 5 1224979098644774912 2133 2 1224979098644774915 -1 12 1 1224979098644774916 2147483679 2 1224979098644774916 1224979098644774912 1702 1 1224979098644774916 1704 1 1224979098644774916 1706 1 1224979098644774916 1726 3 1224979098644774917 1224979098644774916 0 32 2 1224979098644774917 0 1570 2 1224979098644774918 1224979098644774917 31 2 1224979098644774918 1224979098644774914 4 0 31 2 1224979098644774915 -1 2133 2 1224979098644774915 1224979098644774916 1710 2 1 1224979098644774916 710 3 1224979098644774919 1 5 5 0 1710 2 2 1224979098644774916 710 3 1224979098644774920 2 5 2147483678 2 1224979098644774920 1224979098644774919 2133 2 1224979098644774915 1224979098644774916 2133 2 1224979098644774919 1224979098644774920 3 0 3 0 32 2 1224979098644774915 -1 2147483678 2 1224979098644774919 200 4 0 1073741855 2 1224979098644774914 16 31 2 1224979098644774914 17 2133 2 1224979098644774921 18 5 0 31 2 1224979098644774914 8 2133 2 1224979098644774921 5 5 0 2133 2 1224979098644774921 6 3 0 1977 3 1224979098644774922 1224979098644774912 0 1977 3 1224979098644774923 1224979098644774912 1 1977 3 1224979098644774924 1224979098644774912 2 1977 3 1224979098644774925 1224979098644774912 3 1728 1 1224979098644774912 1977 3 1224979098644774926 1224979098644774912 0 1977 3 1224979098644774927 1224979098644774912 1 1977 3 1224979098644774928 1224979098644774912 2 1977 3 1224979098644774929 1224979098644774912 3 2133 2 1224979098644774930 0 6 3 1224979098644774931 0 4 1804 3 1224979098644774913 1224979098644774912 1224979098644774931 30 2 1224979098644774913 1 1570 2 1224979098644774914 1224979098644774913 31 2 1224979098644774914 1224979098644774921 4 0 31 2 1224979098644774931 0 2133 2 1224979098644774932 1224979098644774922 2133 2 1224979098644774933 1224979098644774926 5 0 31 2 1224979098644774931 1 2133 2 1224979098644774932 1224979098644774923 2133 2 1224979098644774933 1224979098644774927 5 0 31 2 1224979098644774931 2 2133 2 1224979098644774932 1224979098644774924 2133 2 1224979098644774933 1224979098644774928 5 0 2133 2 1224979098644774932 1224979098644774925 2133 2 1224979098644774933 1224979098644774929 3 0 2121 3 1224979098644774934 1224979098644774933 1224979098644774932 2105 2 1224979098644774930 1224979098644774934 3 0 2133 2 1224979098644774935 0 6 3 1224979098644774931 0 4 1804 3 1224979098644774917 1224979098644774915 1224979098644774931 30 2 1224979098644774917 1 1570 2 1224979098644774918 1224979098644774917 31 2 1224979098644774918 1224979098644774921 1977 3 1224979098644774936 1224979098644774915 1224979098644774931 2105 2 1224979098644774935 1224979098644774936 3 0 4 0 30 2 1224979098644774930 1224979098644774935 6 3 1224979098644774931 0 4 1804 3 1224979098644774917 1224979098644774915 1224979098644774931 30 2 1224979098644774917 1 1570 2 1224979098644774918 1224979098644774917 4 0 31 2 1224979098644774918 1224979098644774921 1776 3 1224979098644774915 1224979098644774917 0 5 0 31 2 1224979098644774918 1224979098644774914 1774 3 1224979098644774915 1224979098644774917 1224979098644774931 3 0 3 0 6 3 1224979098644774937 0 4 1804 3 1224979098644774913 1224979098644774912 1224979098644774937 30 2 1224979098644774913 1 1570 2 1224979098644774914 1224979098644774913 31 2 1224979098644774914 1224979098644774921 4 0 31 2 1224979098644774937 0 2133 2 1224979098644774932 1224979098644774922 2133 2 1224979098644774933 1224979098644774926 5 0 31 2 1224979098644774937 1 2133 2 1224979098644774932 1224979098644774923 2133 2 1224979098644774933 1224979098644774927 5 0 31 2 1224979098644774937 2 2133 2 1224979098644774932 1224979098644774924 2133 2 1224979098644774933 1224979098644774928 5 0 2133 2 1224979098644774932 1224979098644774925 2133 2 1224979098644774933 1224979098644774929 3 0 2121 3 1224979098644774938 1224979098644774933 1224979098644774932 4 0 30 2 1224979098644774935 1224979098644774938 1776 3 1224979098644774912 1224979098644774913 1224979098644774933 2106 2 1224979098644774935 1224979098644774938 5 0 2105 2 1224979098644774932 1224979098644774935 1776 3 1224979098644774912 1224979098644774913 1224979098644774932 3 0 3 0 1773 2 1224979098644774939 1224979098644774915 31 2 1224979098644774939 1 1783 2 1224979098644774915 144115188075857206 505 3 1224979098644774915 46 144115188075857207 5 0 6 3 1224979098644774937 0 4 1804 3 1224979098644774913 1224979098644774912 1224979098644774937 30 2 1224979098644774913 1 1570 2 1224979098644774914 1224979098644774913 31 2 1224979098644774914 1224979098644774921 4 0 31 2 1224979098644774937 0 2133 2 1224979098644774932 1224979098644774922 2133 2 1224979098644774933 1224979098644774926 5 0 31 2 1224979098644774937 1 2133 2 1224979098644774932 1224979098644774923 2133 2 1224979098644774933 1224979098644774927 5 0 31 2 1224979098644774937 2 2133 2 1224979098644774932 1224979098644774924 2133 2 1224979098644774933 1224979098644774928 5 0 2133 2 1224979098644774932 1224979098644774925 2133 2 1224979098644774933 1224979098644774929 3 0 2121 3 1224979098644774934 1224979098644774933 1224979098644774932 1776 3 1224979098644774912 1224979098644774913 1224979098644774933 3 0 6 3 1224979098644774931 0 4 1804 3 1224979098644774917 1224979098644774915 1224979098644774931 30 2 1224979098644774917 1 1570 2 1224979098644774918 1224979098644774917 31 2 1224979098644774918 1224979098644774921 1977 3 1224979098644774936 1224979098644774915 1224979098644774931 4 0 30 2 1224979098644774930 1224979098644774936 1776 3 1224979098644774915 1224979098644774917 0 2106 2 1224979098644774930 1224979098644774936 5 0 2106 2 1224979098644774936 1224979098644774930 1776 3 1224979098644774915 1224979098644774917 1224979098644774936 3 0 3 0 3 0
################# CODE ################
(0, 0, 0,
[
(key_clicked, key_v),
],
[
(get_player_agent_no, ":player"),
(agent_get_wielded_item, ":player_item", ":player", 0),
(item_get_type, ":player_item_type", ":player_item"),
(this_or_next|eq, ":player_item_type", itp_type_bow),
(this_or_next|eq, ":player_item_type", itp_type_crossbow),
(this_or_next|eq, ":player_item_type", itp_type_pistol),
(eq, ":player_item_type", itp_type_musket),
(agent_get_position, pos5, ":player"),
(assign, ":closest_agent", -1),
(try_for_agents, ":cur_agent"),
(neq, ":cur_agent", ":player"),
(agent_is_alive, ":cur_agent"),
(agent_is_human, ":cur_agent"),
(agent_is_ally, ":cur_agent"),
(agent_get_wielded_item, ":agent_item", ":cur_agent", 0),
(gt, ":agent_item", 0),
(item_get_type, ":agent_item_type", ":agent_item"),
(eq, ":agent_item_type", ":player_item_type"),
(try_begin),
(eq, ":closest_agent", -1),
(assign, ":closest_agent", ":cur_agent"),
(agent_get_position, pos1, ":cur_agent"),
(get_distance_between_positions, ":distance", pos1, pos5),
(else_try),
(agent_get_position, pos2, ":cur_agent"),
(get_distance_between_positions, ":distance_next", pos2, pos5),
(lt, ":distance_next", ":distance"),
(assign, ":closest_agent", ":cur_agent"),
(assign, ":distance", ":distance_next"),
(try_end),
(try_end),
(gt, ":closest_agent", -1),
(lt, ":distance", 200),
(try_begin),
(this_or_next|eq, ":player_item_type", itp_type_pistol),
(eq, ":player_item_type", itp_type_musket),
(assign, ":missile_type",itp_type_bullets),
(else_try),
(eq, ":player_item_type", itp_type_bow),
(assign, ":missile_type", itp_type_arrows),
(else_try),
(assign, ":missile_type", itp_type_bolts),
(try_end),
# Get cur_ammo and max_ammo with large_bag modifier for each slot
(agent_get_item_cur_ammo, ":slot0_cur_ammo", ":player", 0),
(agent_get_item_cur_ammo, ":slot1_cur_ammo", ":player", 1),
(agent_get_item_cur_ammo, ":slot2_cur_ammo", ":player", 2),
(agent_get_item_cur_ammo, ":slot3_cur_ammo", ":player", 3),
(agent_refill_ammo, ":player"),
(agent_get_item_cur_ammo, ":slot0_max_ammo", ":player", 0),
(agent_get_item_cur_ammo, ":slot1_max_ammo", ":player", 1),
(agent_get_item_cur_ammo, ":slot2_max_ammo", ":player", 2),
(agent_get_item_cur_ammo, ":slot3_max_ammo", ":player", 3),
# Find player empty ammo
(assign, ":player_total_empty_ammo", 0), #PLAYER
(try_for_range, ":agent_item_slot", 0, 4),
(agent_get_item_slot, ":player_item", ":player", ":agent_item_slot"),
(ge, ":player_item", 1),
(item_get_type, ":player_item_type", ":player_item"),
(eq, ":player_item_type", ":missile_type"),
(try_begin),
(eq, ":agent_item_slot", 0),
(assign, ":player_item_cur_ammo", ":slot0_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot0_max_ammo"),
(else_try),
(eq, ":agent_item_slot", 1),
(assign, ":player_item_cur_ammo", ":slot1_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot1_max_ammo"),
(else_try),
(eq, ":agent_item_slot", 2),
(assign, ":player_item_cur_ammo", ":slot2_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot2_max_ammo"),
(else_try),
(assign, ":player_item_cur_ammo", ":slot3_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot3_max_ammo"),
(try_end),
(store_sub, ":agent_empty_ammo", ":player_item_max_ammo", ":player_item_cur_ammo"),
(val_add, ":player_total_empty_ammo", ":agent_empty_ammo"),
(try_end),
# Find agent total ammo
(assign, ":agent_total_ammo", 0), #AGENT
(try_for_range, ":agent_item_slot", 0, 4),
(agent_get_item_slot, ":agent_item", ":closest_agent", ":agent_item_slot"),
(ge, ":agent_item", 1),
(item_get_type, ":agent_item_type", ":agent_item"),
(eq, ":agent_item_type", ":missile_type"),
(agent_get_item_cur_ammo, ":agent_item_cur_ammo", ":closest_agent", ":agent_item_slot"),
(val_add, ":agent_total_ammo", ":agent_item_cur_ammo"),
(try_end),
(try_begin),
(ge, ":player_total_empty_ammo", ":agent_total_ammo"), #Give all ammo to player
(try_for_range, ":agent_item_slot", 0, 4), #empty agent ammo
(agent_get_item_slot, ":agent_item", ":closest_agent", ":agent_item_slot"),
(ge, ":agent_item", 1),
(item_get_type, ":agent_item_type", ":agent_item"),
(try_begin),
(eq, ":agent_item_type", ":missile_type"),
(agent_set_ammo, ":closest_agent", ":agent_item", 0),
(else_try),
(eq, ":agent_item_type", ":player_item_type"),
(agent_unequip_item, ":closest_agent", ":agent_item", ":agent_item_slot"),
(try_end),
(try_end),
(try_for_range, ":player_item_slot", 0, 4), #player
(agent_get_item_slot, ":player_item", ":player", ":player_item_slot"),
(ge, ":player_item", 1),
(item_get_type, ":player_item_type", ":player_item"),
(eq, ":player_item_type", ":missile_type"),
(try_begin),
(eq, ":player_item_slot", 0),
(assign, ":player_item_cur_ammo", ":slot0_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot0_max_ammo"),
(else_try),
(eq, ":player_item_slot", 1),
(assign, ":player_item_cur_ammo", ":slot1_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot1_max_ammo"),
(else_try),
(eq, ":player_item_slot", 2),
(assign, ":player_item_cur_ammo", ":slot2_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot2_max_ammo"),
(else_try),
(assign, ":player_item_cur_ammo", ":slot3_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot3_max_ammo"),
(try_end),
(store_sub, ":player_empty_ammo", ":player_item_max_ammo", ":player_item_cur_ammo"),
(try_begin),
(ge, ":agent_total_ammo", ":player_empty_ammo"), #max ammo to player and sub from agent
(agent_set_ammo, ":player", ":player_item", ":player_item_max_ammo"),
(val_sub, ":agent_total_ammo", ":player_empty_ammo"),
(else_try),
(val_add, ":player_item_cur_ammo", ":agent_total_ammo"),
(agent_set_ammo, ":player", ":player_item", ":player_item_cur_ammo"),
(try_end),
(try_end),
(agent_get_division, ":division", ":closest_agent"),
(eq, ":division", grc_archers),
(agent_set_division, ":closest_agent", "$archer_reassign_division"),
(agent_set_slot, ":closest_agent", slot_agent_new_division, "$archer_reassign_division"),
(else_try),
(try_for_range, ":player_item_slot", 0, 4), #player
(agent_get_item_slot, ":player_item", ":player", ":player_item_slot"),
(ge, ":player_item", 1),
(item_get_type, ":player_item_type", ":player_item"),
(eq, ":player_item_type", ":missile_type"),
(try_begin),
(eq, ":player_item_slot", 0),
(assign, ":player_item_cur_ammo", ":slot0_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot0_max_ammo"),
(else_try),
(eq, ":player_item_slot", 1),
(assign, ":player_item_cur_ammo", ":slot1_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot1_max_ammo"),
(else_try),
(eq, ":player_item_slot", 2),
(assign, ":player_item_cur_ammo", ":slot2_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot2_max_ammo"),
(else_try),
(assign, ":player_item_cur_ammo", ":slot3_cur_ammo"),
(assign, ":player_item_max_ammo", ":slot3_max_ammo"),
(try_end),
(store_sub, ":agent_empty_ammo", ":player_item_max_ammo", ":player_item_cur_ammo"),
(agent_set_ammo, ":player", ":player_item", ":player_item_max_ammo"),
(try_end),
(try_for_range, ":agent_item_slot", 0, 4), #agent
(agent_get_item_slot, ":agent_item", ":closest_agent", ":agent_item_slot"),
(ge, ":agent_item", 1),
(item_get_type, ":agent_item_type", ":agent_item"),
(eq, ":agent_item_type", ":missile_type"),
(agent_get_item_cur_ammo, ":agent_item_cur_ammo", ":closest_agent", ":agent_item_slot"),
(try_begin),
(ge, ":player_total_empty_ammo", ":agent_item_cur_ammo"),
(agent_set_ammo, ":closest_agent", ":agent_item", 0),
(val_sub, ":player_total_empty_ammo", ":agent_item_cur_ammo"),
(else_try),
(val_sub, ":agent_item_cur_ammo", ":player_total_empty_ammo"),
(agent_set_ammo, ":closest_agent", ":agent_item", ":agent_item_cur_ammo"),
(try_end),
(try_end),
(try_end),
]),
1) Добавить в quick_strings строку
Счетчик +1
qstr_Reassign_archers_wit Reassign_archers_with_empty_ammo_to_division_
2) Найти номер строки. В чистом оригинале это 1585267068834417731 Добавление в опции мода
1) выбор дивизии, в которую переназначаться стрелки без боеприпасов
2) могут ли солдаты сам оседлывать коней
1) Файл presentations.txt
2) Найти mod_options
3) В первом триггере счетчик +41
4) Заменить в коде ниже глобальную переменную
$archer_reassign_division 144115188075857320
$mount_order_on_start
Добавить глобальную переменную, и заменить в коде ниже $form_options_overlay_26 144115188075857321
5) Найти код
910 3 72057594037927937 1585267068834414767 8
Перед ним вставить 910 3 72057594037927937 1585267068834417731 8 729 2 1 900 730 2 1 900 925 2 72057594037927937 1 730 2 0 1224979098644774912 926 2 72057594037927937 0 916 1 144115188075857321 729 2 2 700 730 2 2 700 925 2 144115188075857321 2 2133 2 72057594037927937 9 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 1 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 1 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 1 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 1 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 1 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 2 931 2 144115188075857321 216172782113783817 2106 2 72057594037927937 1 931 2 144115188075857321 216172782113783817 700 2 1 0 2120 3 72057594037927938 1224979098644774912 0 730 2 1 72057594037927938 726 2 1224979098644774913 1 2105 2 1224979098644774913 91 729 2 1 1224979098644774913 926 2 144115188075857321 1 2133 2 72057594037927937 8 2106 2 72057594037927937 144115188075857320 4 0 2147483680 2 144115188075857320 1 2106 2 72057594037927937 1 3 0 927 2 144115188075857321 72057594037927937 2106 2 1224979098644774912 31
6) В последнем триггере (-62.000000) счетчик +8 7) Находим с конца код
5 0
8) Перед ним вставляем 5 0 31 2 1224979098644774912 144115188075857321 2121 3 1224979098644774913 8 1224979098644774913 4 0 2147483680 2 1224979098644774913 1 2106 2 1224979098644774913 1 3 0 2133 2 144115188075857320 1224979098644774913
#################### CODE 1 BEGIN ###########################
(create_text_overlay, reg1, "@Reassign archers with empty ammo to division ", tf_right_align),
(position_set_x, pos1, 900),
(position_set_y, pos1, 900),
(overlay_set_size, reg1, pos1),
(position_set_y, pos0, ":var0"),
(overlay_set_position, reg1, pos0),
(create_combo_button_overlay, "$form_options_overlay_26"),
(position_set_x, pos2, 700),
(position_set_y, pos2, 700),
(overlay_set_size, "$form_options_overlay_26", pos2),
(assign, reg1, 9),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 1),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 1),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 1),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 1),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 1),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 2),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(val_sub, reg1, 1),
(overlay_add_item, "$form_options_overlay_26", "str_reg1"),
(copy_position, pos1, pos0),
(store_add, reg2, ":var0", 0),
(position_set_y, pos1, reg2),
(position_get_x, ":var1", pos1),
(val_add, ":var1", 91),
(position_set_x, pos1, ":var1"),
(overlay_set_position, "$form_options_overlay_26", pos1),
(assign, reg1, 8),
(val_sub, reg1, $archer_reassign_division),
(try_begin),
(le,"$archer_reassign_division", 1),
(val_sub, reg1, 1),
(try_end),
(overlay_set_val, "$form_options_overlay_26", reg1),
(val_sub, ":var0", 31),
################ CODE 1 END #######################
################## CODE 2 BEGIN ###################
(else_try),
(eq, ":var0", "$form_options_overlay_26"),
(store_sub, ":var1", 8, ":var1"),
(try_begin),
(le, ":var1", 1),
(val_sub, ":var1", 1),
(try_end),
(assign, "$archer_reassign_division", ":var1"),
################## CODE 2 END ###################
Ошибку создает операнд agent_get_class. Движок сам решает какому классу принадлежит агент. Он смотрит на флаги, а не на реальную экипировку агента. Поэтому автор добавил обработку этого операнда во все места, где он вызывается.
Файл: scripts.txt
--I--.Скрипт: team_get_class_percentages
1) Счетчик +5
2) Найти
1772 2 1224979098644774921 1224979098644774918
Вставить после 4 0 2147484193 3 1224979098644774918 46 -1 2147484193 3 1224979098644774918 46 1224979098644774921 525 3 1224979098644774921 1224979098644774918 46 3 0
--II--. Скрипт: simulate_battle_with_agents_aux 1) Счетчик +10
2) Найти
1772 2 1224979098644774922 1224979098644774915
Вставить после 4 0 2147484193 3 1224979098644774915 46 -1 2147484193 3 1224979098644774915 46 1224979098644774922 525 3 1224979098644774922 1224979098644774915 46 3 0
3) Найти 1772 2 1224979098644774922 1224979098644774917
Вставить после 4 0 2147484193 3 1224979098644774917 46 -1 2147484193 3 1224979098644774917 46 1224979098644774922 525 3 1224979098644774922 1224979098644774917 46 3 0
--III--. Скрипт: cf_siege_assign_men_to_belfry 1) Счетчик: +5
2) Найти
1772 2 1224979098644774928 1224979098644774922
Вставить после 4 0 2147484193 3 1224979098644774922 46 -1 2147484193 3 1224979098644774922 46 1224979098644774928 525 3 1224979098644774928 1224979098644774922 46 3 0
--IV--. Скрипт: siege_move_archers_to_archer_positions 1) Счетчик: +10
2) Найти
1772 2 1224979098644774914 1224979098644774912
Вставить после 4 0 2147484193 3 1224979098644774912 46 -1 2147484193 3 1224979098644774912 46 1224979098644774914 525 3 1224979098644774914 1224979098644774912 46 3 0
3) Найти 1772 2 1224979098644774917 1224979098644774916
Вставить после 4 0 2147484193 3 1224979098644774916 46 -1 2147484193 3 1224979098644774916 46 1224979098644774917 525 3 1224979098644774917 1224979098644774916 46 3 0
--V--. Скрипт: classify_agent 1) Счетчик: +10
2) Найти
1773 2 72057594037927936 1224979098644774912
Вставить после 4 0 2147484193 3 1224979098644774912 46 -1 2147484193 3 1224979098644774912 46 72057594037927936 525 3 72057594037927936 1224979098644774912 46 3 0
3) Найти 1772 2 72057594037927936 1224979098644774912
Вставить после 4 0 2147484193 3 1224979098644774912 46 -1 2147484193 3 1224979098644774912 46 72057594037927936 525 3 72057594037927936 1224979098644774912 46 3 0
--VI--. Скрипт: team_field_melee_tactics 1) Счетчик: +15
2) Найти
1772 2 1224979098644774929 1224979098644774927
Вставить после 4 0 2147484193 3 1224979098644774927 46 -1 2147484193 3 1224979098644774927 46 1224979098644774929 525 3 1224979098644774929 1224979098644774927 46 3 0
3) Найти 1772 2 1224979098644774937 1224979098644774935
Вставить после 4 0 2147484193 3 1224979098644774935 46 -1 2147484193 3 1224979098644774935 46 1224979098644774937 525 3 1224979098644774937 1224979098644774935 46 3 0
4) Найти 1772 2 1224979098644774963 1224979098644774940
Вставить после 4 0 2147484193 3 1224979098644774940 46 -1 2147484193 3 1224979098644774940 46 1224979098644774963 525 3 1224979098644774963 1224979098644774940 46 3 0
############### CODE ##############
Находим
(agent_get_class, ":class", ":agent"),
После вставляем
(try_begin),
(neg|agent_slot_eq, ":agent", 46, -1),
(neg|agent_slot_eq, ":agent", 46, ":class"),
(agent_get_slot, ":class", ":agent", 46),
(end_try),
Переделать код для совместимости с бодислайдингом!
Чтобы тактическое меню отображало все дивизии динамически нужно заменить код в презентации prsnt_battle файл presentations.txt
prsnt_battle
1) В начале первого триггера (-60.0) счетчик увеличить +1
2) Заменить код
1650 2 1224979098644774915 648518346341351424 2133 2 144115188075856809 0 6 3 1224979098644774916 0 1224979098644774915 1652 3 1224979098644774917 648518346341351424 1224979098644774916 1516 2 1224979098644774918 1224979098644774917 2147483679 2 1224979098644774914 1224979098644774917 4 0 31 2 1224979098644774918 0 4 0 2147483679 2 144115188075856800 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856800 1 5 0 31 2 1224979098644774918 1 4 0 2147483679 2 144115188075856801 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856801 1 5 0 31 2 1224979098644774918 2 4 0 2147483679 2 144115188075856802 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856802 1 5 0 31 2 1224979098644774918 3 4 0 2147483679 2 144115188075856803 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856803 1 5 0 31 2 1224979098644774918 4 4 0 2147483679 2 144115188075856804 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856804 1 5 0 31 2 1224979098644774918 5 4 0 2147483679 2 144115188075856805 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856805 1 5 0 31 2 1224979098644774918 6 4 0 2147483679 2 144115188075856806 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856806 1 5 0 31 2 1224979098644774918 7 4 0 2147483679 2 144115188075856807 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856807 1 5 0 31 2 1224979098644774918 8 4 0 2147483679 2 144115188075856808 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856808 1 3 0 3 0
На следующий 2133 2 144115188075856809 0 12 1 1224979098644774915 1707 1 1224979098644774915 1702 1 1224979098644774915 1704 1 1224979098644774915 1706 1 1224979098644774915 1773 2 1224979098644774916 1224979098644774915 4 0 31 2 1224979098644774916 0 4 0 2147483679 2 144115188075856800 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856800 1 5 0 31 2 1224979098644774916 1 4 0 2147483679 2 144115188075856801 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856801 1 5 0 31 2 1224979098644774916 2 4 0 2147483679 2 144115188075856802 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856802 1 5 0 31 2 1224979098644774916 3 4 0 2147483679 2 144115188075856803 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856803 1 5 0 31 2 1224979098644774916 4 4 0 2147483679 2 144115188075856804 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856804 1 5 0 31 2 1224979098644774916 5 4 0 2147483679 2 144115188075856805 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856805 1 5 0 31 2 1224979098644774916 6 4 0 2147483679 2 144115188075856806 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856806 1 5 0 31 2 1224979098644774916 7 4 0 2147483679 2 144115188075856807 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856807 1 5 0 31 2 1224979098644774916 8 4 0 2147483679 2 144115188075856808 1 2105 2 144115188075856809 1 3 0 2133 2 144115188075856808 1 3 0 3 0
################# CODE ##########################
(assign, "$num_classes", 0),
(try_for_agents, ":agent_no"),
(agent_is_non_player, ":agent_no"),
(agent_is_alive, ":agent_no"),
(agent_is_human, ":agent_no"),
#(agent_is_ally, ":agent_no"),
(agent_get_team, ":agent_team", ":agent_no"),
(agent_get_team, ":player_team", ":player_agent"),
(eq, ":agent_team", ":player_team"),
(agent_get_division, ":division", ":agent_no"),
(try_begin),
(eq, ":division", 0),
(try_begin),
(neq, "$group0_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group0_has_troops", 1),
(else_try),
(eq, ":division", 1),
(try_begin),
(neq, "$group1_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group1_has_troops", 1),
(else_try),
(eq, ":division", 2),
(try_begin),
(neq, "$group2_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group2_has_troops", 1),
(else_try),
(eq, ":division", 3),
(try_begin),
(neq, "$group3_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group3_has_troops", 1),
(else_try),
(eq, ":division", 4),
(try_begin),
(neq, "$group4_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group4_has_troops", 1),
(else_try),
(eq, ":division", 5),
(try_begin),
(neq, "$group5_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group5_has_troops", 1),
(else_try),
(eq, ":division", 6),
(try_begin),
(neq, "$group6_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group6_has_troops", 1),
(else_try),
(eq, ":division", 7),
(try_begin),
(neq, "$group7_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group7_has_troops", 1),
(else_try),
(eq, ":division", 8),
(try_begin),
(neq, "$group8_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group8_has_troops", 1),
(try_end),
(try_end),
Оригинальный код для замены (party_get_num_companion_stacks, ":num_stacks", "p_main_party"),
(assign, "$num_classes", 0),
(try_for_range, ":troop_iterator", 0, ":num_stacks"),
(party_stack_get_troop_id, ":cur_troop_id", "p_main_party", ":troop_iterator"),
(troop_get_class, ":troop_class", ":cur_troop_id"),
(neq, ":player_troop_id", ":cur_troop_id"),
(try_begin),
(eq, ":troop_class", 0),
(try_begin),
(neq, "$group0_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group0_has_troops", 1),
(else_try),
(eq, ":troop_class", 1),
(try_begin),
(neq, "$group1_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group1_has_troops", 1),
(else_try),
(eq, ":troop_class", 2),
(try_begin),
(neq, "$group2_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group2_has_troops", 1),
(else_try),
(eq, ":troop_class", 3),
(try_begin),
(neq, "$group3_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group3_has_troops", 1),
(else_try),
(eq, ":troop_class", 4),
(try_begin),
(neq, "$group4_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group4_has_troops", 1),
(else_try),
(eq, ":troop_class", 5),
(try_begin),
(neq, "$group5_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group5_has_troops", 1),
(else_try),
(eq, ":troop_class", 6),
(try_begin),
(neq, "$group6_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group6_has_troops", 1),
(else_try),
(eq, ":troop_class", 7),
(try_begin),
(neq, "$group7_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group7_has_troops", 1),
(else_try),
(eq, ":troop_class", 8),
(try_begin),
(neq, "$group8_has_troops", 1),
(val_add, "$num_classes", 1),
(try_end),
(assign, "$group8_has_troops", 1),
(try_end),
(try_end),
1) Добавить глобальную переменную
$weapon_order = 144115188075857322 (для замены в коде ниже)
2) Вернуть назад Открыть ui.csv in languages\en папке и заменить
ui_order_button_use_blunt_weapons|Prefer blunt weapons
ui_use_blunt_weapons_e_|%s, prefer blunt weapons!
на
ui_order_button_use_blunt_weapons|Use only blunt weapons
ui_use_blunt_weapons_e_|%s, use only blunt weapons!
3) Добавить скрипт, который будет вызываться из триггера и тактического меню blunt_weapons_order -1
107 1700 1 1224979098644774912 1770 2 1224979098644774913 1224979098644774912 4 0 31 2 144115188075857322 9 12 1 1224979098644774914 1702 1 1224979098644774914 1704 1 1224979098644774914 1706 1 1224979098644774914 1707 1 1224979098644774914 1773 2 1224979098644774915 1224979098644774914 1775 2 1224979098644774913 1224979098644774915 2147484193 3 1224979098644774914 15 1 2133 2 1224979098644774916 4 6 3 1224979098644774917 0 1224979098644774916 1804 3 1224979098644774918 1224979098644774914 1224979098644774917 32 2 1224979098644774918 0 1570 2 1224979098644774919 1224979098644774918 2133 2 1224979098644774920 -1 4 0 1073741855 2 1224979098644774919 2 1073741855 2 1224979098644774919 3 31 2 1224979098644774919 4 2719 2 1224979098644774921 1224979098644774918 1073741855 2 1224979098644774921 -1 31 2 1224979098644774921 2 2721 2 1224979098644774922 1224979098644774918 1073741855 2 1224979098644774922 -1 31 2 1224979098644774922 2 2133 2 1224979098644774920 2 3 0 31 2 1224979098644774920 2 2133 2 1224979098644774916 -1 3 0 4 0 31 2 1224979098644774916 4 1726 3 1224979098644774923 1224979098644774914 0 4 0 32 2 1224979098644774923 -1 1774 2 1224979098644774914 1224979098644774923 3 0 505 3 1224979098644774914 107 1224979098644774923 1718 2 1224979098644774924 1224979098644774914 2172 3 1224979098644774925 1224979098644774924 0 2171 2 1224979098644774926 1224979098644774924 2133 2 1224979098644774927 288230376151712986 4 0 30 2 1224979098644774925 12 30 2 1224979098644774926 35 2133 2 1224979098644774927 288230376151713049 3 0 4 0 1507 1 1224979098644774924 5 0 1540 2 1224979098644774928 1224979098644774924 2133 2 1224979098644774929 0 2133 2 1224979098644774930 0 6 3 1224979098644774917 0 1224979098644774928 1541 3 1224979098644774918 1224979098644774924 1224979098644774917 32 2 1224979098644774918 -1 1570 2 1224979098644774919 1224979098644774918 2133 2 1224979098644774920 -1 4 0 1073741855 2 1224979098644774919 2 1073741855 2 1224979098644774919 3 31 2 1224979098644774919 4 2719 2 1224979098644774921 1224979098644774918 1073741855 2 1224979098644774921 -1 31 2 1224979098644774921 2 2721 2 1224979098644774922 1224979098644774918 1073741855 2 1224979098644774922 -1 31 2 1224979098644774922 2 2133 2 1224979098644774920 2 3 0 31 2 1224979098644774920 2 500 3 360287970189639683 1224979098644774929 1224979098644774918 2105 2 1224979098644774929 1 3 0 31 2 1224979098644774930 1 2136 3 1224979098644774931 0 1224979098644774929 520 3 1224979098644774927 360287970189639683 1224979098644774931 3 0 1779 2 1224979098644774914 1224979098644774927 1747 2 1224979098644774914 1224979098644774927 3 0 3 0 5 0 31 2 144115188075857322 10 12 1 1224979098644774914 1702 1 1224979098644774914 1704 1 1224979098644774914 1706 1 1224979098644774914 1707 1 1224979098644774914 1773 2 1224979098644774915 1224979098644774914 1775 2 1224979098644774913 1224979098644774915 2147484193 3 1224979098644774914 15 1 525 3 1224979098644774927 1224979098644774914 107 32 2 1224979098644774927 0 1726 3 1224979098644774923 1224979098644774914 0 4 0 32 2 1224979098644774923 -1 1774 2 1224979098644774914 1224979098644774923 3 0 1779 2 1224979098644774914 1224979098644774927 1747 2 1224979098644774914 1224979098644774927 505 3 1224979098644774914 107 0 3 0 3 0
4) Найти номер скрипта и сделать замену в коде ниже blunt_weapons_order = 936748722493063923
5) Заменить 2 триггера (10 замен) -71.000000 0.000000 0.000000 16 2071 1 1224979098644774912 4 0 31 2 1224979098644774912 9 2133 2 144115188075857290 1 5 0 1073741855 2 1224979098644774912 10 1073741855 2 1224979098644774912 13 1073741855 2 1224979098644774912 15 1073741855 2 1224979098644774912 16 1073741855 2 1224979098644774912 17 1073741855 2 1224979098644774912 18 1073741855 2 1224979098644774912 19 1073741855 2 1224979098644774912 20 31 2 1224979098644774912 21 2133 2 144115188075857290 0 3 0 0
3.000000 3.000000 0.000000 15 31 2 144115188075857290 1 1107 1 0 12 1 1224979098644774912 1702 1 1224979098644774912 1704 1 1224979098644774912 1706 1 1224979098644774912 1707 1 1224979098644774912 2147484193 3 1224979098644774912 15 1 1726 3 1224979098644774913 1224979098644774912 0 2147483680 2 1224979098644774913 -1 1770 2 1224979098644774914 1224979098644774912 1773 2 1224979098644774915 1224979098644774912 1790 3 1224979098644774914 1224979098644774915 10 3 0 1107 1 1 16 12 1 1224979098644774912 1702 1 1224979098644774912 1704 1 1224979098644774912 1706 1 1224979098644774912 1707 1 1224979098644774912 2147484193 3 1224979098644774912 15 1 2133 2 1224979098644774913 4 6 3 1224979098644774914 0 1224979098644774913 1804 3 1224979098644774915 1224979098644774912 1224979098644774914 32 2 1224979098644774915 0 2721 2 1224979098644774916 1224979098644774915 31 2 1224979098644774916 2 1747 2 1224979098644774912 1224979098644774915 2133 2 1224979098644774913 -1 3 0 3 0
заменить на -71.000000 0.000000 0.000000 0 5 2071 1 1224979098644774912 1073741855 2 1224979098644774912 10 31 2 1224979098644774912 9 2133 2 144115188075857322 1224979098644774912 1 1 936748722493063923
6) Уменьшить счетчики в миссиях на -1 mst_lead_charge
mst_village_attack_bandits
mst_village_raid
mst_besiege_inner_battle_castle
mst_besiege_inner_battle_town_center
mst_castle_attack_walls_defenders_sally
mst_castle_attack_walls_belfry
mst_castle_attack_walls_ladder
mst_camp_review_soldiers
mst_quick_battle_siege
7) Тактическое меню Файл presentations.txt
Найти prsnt_battle
Во втором триггере (-62.000000) - Счетчик +4
После
1 3 936748722493063537 1224979098644774914 10
Добавить 2133 2 144115188075857322 10 1 1 936748722493063923
После
1 3 936748722493063537 1224979098644774914 9
Добавить 2133 2 144115188075857322 9 1 1 936748722493063923
######################## CODE ##################################
slot_agent_wielded_item = 107
(ti_on_order_issued, 0, 0,
[],[
(store_trigger_param_1, ":order"),
(this_or_next|eq, ":order", mordr_use_any_weapon),
(eq, ":order", mordr_use_blunt_weapons),
(assign, "$weapon_order", ":order"),
(call_script, "script_blunt_weapons_order"),
]),
# script_blunt_weapons_order
# This script is called from mission_templates trigger and from battle tactics menu
# INPUT: ":order"
# cut = 0
# pierce = 1
# blunt = 2
("blunt_weapons_order",
[
(get_player_agent_no, ":player"),
(agent_get_team, ":player_team", ":player"),
(try_begin),
(eq, "$weapon_order", mordr_use_blunt_weapons),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"), # Agents within try_for_agents loop are always active, no need to check for it
(agent_is_human, ":agent"),
(agent_is_ally, ":agent"),
(agent_is_non_player, ":agent"),
(agent_get_division, ":division", ":agent"),
(class_is_listening_order, ":player_team", ":division"),
(neg|agent_slot_eq, ":agent", slot_agent_is_running_away, 1),
(assign, ":end", 4),
(try_for_range, ":slot", 0, ":end"),
(agent_get_item_slot, ":item", ":agent", ":slot"),
(gt, ":item", 0),
(item_get_type, ":type", ":item"),
(assign, ":damage_type", -1),
(try_begin),
(this_or_next|eq, ":type", itp_type_one_handed_wpn),
(this_or_next|eq, ":type", itp_type_two_handed_wpn),
(eq, ":type", itp_type_polearm),
(item_get_thrust_damage_type, ":thrust_damage_type", ":item"),
(this_or_next|eq, ":thrust_damage_type", -1),
(eq, ":thrust_damage_type", 2),
(item_get_swing_damage_type, ":swing_damage_type", ":item"),
(this_or_next|eq, ":swing_damage_type", -1),
(eq, ":swing_damage_type", 2),
(assign, ":damage_type", 2),
(try_end),
(eq, ":damage_type", 2),
(assign, ":end", -1),
(end_try),
(try_begin),
(eq, ":end", 4),
(agent_get_wielded_item, ":wielded_item", ":agent", 0),
(try_begin),
(gt, ":wielded_item", -1),
(agent_unequip_item, ":agent", ":wielded_item"),
(try_end),
(agent_set_slot, ":agent", slot_agent_wielded_item, ":wielded_item"),
(agent_get_troop_id, ":troop", ":agent"),
(store_attribute_level, ":strength", ":troop", ca_strength),
(store_character_level, ":level", ":troop"),
(assign, ":new_item", "itm_mace_2"),
(try_begin),
(ge, ":strength", 12),
(ge, ":level", 35),
(assign, ":new_item", "itm_battle_hammer"),
(try_end),
(try_begin),
(troop_is_hero, ":troop"),
(else_try),
(troop_get_inventory_capacity, ":cap", ":troop"),
(assign, ":troop_slot", 0),
(assign, ":continue", 0),
(try_for_range, ":slot", 0, ":cap"),
(troop_get_inventory_slot, ":item", ":troop", ":slot"),
(gt, ":item", -1),
(item_get_type, ":type", ":item"),
(assign, ":damage_type", -1),
(try_begin),
(this_or_next|eq, ":type", itp_type_one_handed_wpn),
(this_or_next|eq, ":type", itp_type_two_handed_wpn),
(eq, ":type", itp_type_polearm),
(item_get_thrust_damage_type, ":thrust_damage_type", ":item"),
(this_or_next|eq, ":thrust_damage_type", -1),
(eq, ":thrust_damage_type", 2),
(item_get_swing_damage_type, ":swing_damage_type", ":item"),
(this_or_next|eq, ":swing_damage_type", -1),
(eq, ":swing_damage_type", 2),
(assign, ":damage_type", 2),
(try_end),
(eq, ":damage_type", 2),
(troop_set_slot, "trp_temp_troop", ":troop_slot", ":item"),
(val_add, ":troop_slot", 1),
(try_end),
(eq, ":continue", 1),
(store_random_in_range, ":rand", 0, ":troop_slot"),
(troop_get_slot, ":new_item", "trp_temp_troop", ":rand"),
(try_end),
(agent_equip_item, ":agent", ":new_item"),
(agent_set_wielded_item, ":agent", ":new_item"),
(try_end),
(try_end),
(else_try),
(eq, "$weapon_order", mordr_use_any_weapon),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"), # Agents within try_for_agents loop are always active, no need to check for it
(agent_is_human, ":agent"),
(agent_is_ally, ":agent"),
(agent_is_non_player, ":agent"),
(agent_get_division, ":division", ":agent"),
(class_is_listening_order, ":player_team", ":division"),
(neg|agent_slot_eq, ":agent", slot_agent_is_running_away, 1),
(agent_get_slot, ":new_item", ":agent", slot_agent_wielded_item),
(gt, ":new_item", 0),
(agent_get_wielded_item, ":wielded_item", ":agent", 0),
(try_begin),
(gt, ":wielded_item", -1),
(agent_unequip_item, ":agent", ":wielded_item"),
(try_end),
(agent_equip_item, ":agent", ":new_item"),
(agent_set_wielded_item, ":agent", ":new_item"),
(agent_set_slot, ":agent", slot_agent_wielded_item, 0),
(try_end),
(try_end),
]),
Когда у агента разбивается щит от ударов или стрел, он возьмет второй. Этот триггер универсальный. Подойдет для любого мода. Не нуждается в адаптации. Можно увеличить время как часто происходит проверка, чтобы увеличить производительность.
Установка в файл mission_templates.txt добавить в миссии 1 триггер.
mst_lead_charge
mst_village_attack_bandits
mst_village_raid
mst_castle_attack_walls_defenders_sally
mst_castle_attack_walls_belfry
mst_castle_attack_walls_ladder
0.300000 0.000000 0.000000 0 36 12 1 1224979098644774912 1704 1 1224979098644774912 1702 1 1224979098644774912 1707 1 1224979098644774912 1726 3 1224979098644774913 1224979098644774912 0 32 2 1224979098644774913 -1 1570 2 1224979098644774914 1224979098644774913 2133 2 1224979098644774915 0 4 0 31 2 1224979098644774914 3 1073744548 2 1224979098644774913 1 1073744548 2 1224979098644774913 2 1073744548 2 1224979098644774913 4 2724 2 1224979098644774913 8 2133 2 1224979098644774915 1 5 0 31 2 1224979098644774914 4 2147486371 2 1224979098644774913 2097152 2133 2 1224979098644774915 1 5 0 31 2 1224979098644774914 2 2133 2 1224979098644774915 1 3 0 31 2 1224979098644774915 1 1726 3 1224979098644774913 1224979098644774912 1 31 2 1224979098644774913 -1 2133 2 1224979098644774916 4 6 3 1224979098644774917 0 1224979098644774916 1804 3 1224979098644774913 1224979098644774912 1224979098644774917 32 2 1224979098644774913 -1 1570 2 1224979098644774914 1224979098644774913 31 2 1224979098644774914 7 1747 2 1224979098644774912 1224979098644774913 2133 2 1224979098644774916 0 3 0 3 0
(0.3, 0, 0, [],
[
(try_for_agents, ":agent_no"),
(agent_is_human, ":agent_no"),
(agent_is_alive, ":agent_no"),
(agent_is_non_player, ":agent_no"),
(agent_get_wielded_item, ":item", ":agent_no", 0),
(gt, ":item", -1),
(item_get_type, ":type", ":item"),
(assign, ":can_use_shield", 0),
(try_begin),
(eq, ":type", itp_type_two_handed_wpn),
(this_or_next|item_has_capability, ":item", itcf_thrust_onehanded),
(this_or_next|item_has_capability, ":item", itcf_overswing_onehanded),
(this_or_next|item_has_capability, ":item", itcf_slashright_onehanded),
(item_has_capability, ":item", itcf_slashleft_onehanded),
(assign, ":can_use_shield", 1),
(else_try),
(eq, ":type", itp_type_polearm),
(neg|item_has_property, ":item", itp_two_handed),
(assign, ":can_use_shield", 1),
(else_try),
(eq, ":type", itp_type_one_handed_wpn),
(assign, ":can_use_shield", 1),
(try_end),
(eq, ":can_use_shield", 1),
(agent_get_wielded_item, ":item", ":agent_no", 1),
(eq, ":item", -1),
(assign, ":end_cond", 4),
(try_for_range, ":slot", 0, ":end_cond"),
(agent_get_item_slot, ":item", ":agent_no", ":slot"),
(gt, ":item", -1),
(item_get_type, ":type", ":item"),
(eq, ":type", itp_type_shield),
(agent_set_wielded_item, ":agent_no", ":item"),
(assign, ":end_cond", 0),
(try_end),
(try_end),
]),
Комментариев 1
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.