Mount and Blade. Средневековая Сага

Объявление

Уважаемые гости и зарегестрированные пользователи, перейдите пожалуйста по ссылке и зарегестрируйтесь http://peredovaya.ru/?ref=2rc7og6d

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Mount and Blade. Средневековая Сага » Обмен опытом » доработка на токарном станке


доработка на токарном станке

Сообщений 1 страница 8 из 8

1

Приветствую вас собратья по форуму!
Твики весч безспорно хорошая, да вот только неудобный ляп подкрался незаметно!
А именно, вот наделал ты себе твиков и потом те надо вновь покопатся в модульке. Покопался и откомпилил. всё пучком. Тока твики все слетели в бухгалтерию и побежали лесом.Во досада кака.
И посему нафиг нам нужен этот каменный век, нафиг доработка напильником. Наш мод мы будем дорабатывать
вна токарном станке, а тоесть в модульной систиме.
К примеру:
Твик на изменение ставок за побкду на турнире.
Открываем module_game_menus и ищем этот блок:

("bet_100_denars", [(store_troop_gold, ":gold", "trp_player"),
                          (ge, ":gold", 100)
                          ],
       "100 denars.",
       [
         (assign, "$temp", 100),
         (jump_to_menu, "mnu_tournament_bet_confirm"),
        ]),
      ("bet_50_denars", [(store_troop_gold, ":gold", "trp_player"),
                         (ge, ":gold", 50)
                         ],
       "50 denars.",
       [
         (assign, "$temp", 50),
         (jump_to_menu, "mnu_tournament_bet_confirm"),
        ]),
      ("bet_20_denars", [(store_troop_gold, ":gold", "trp_player"),
                         (ge, ":gold", 20)
                         ],
       "20 denars.",
       [
         (assign, "$temp", 20),
         (jump_to_menu, "mnu_tournament_bet_confirm"),
        ]),
      ("bet_10_denars", [(store_troop_gold, ":gold", "trp_player"),
                         (ge, ":gold", 10)
                         ],
       "10 denars.",
       [
         (assign, "$temp", 10),
         (jump_to_menu, "mnu_tournament_bet_confirm"),
        ]),
      ("bet_5_denars", [(store_troop_gold, ":gold", "trp_player"),
                        (ge, ":gold", 5)
                        ],
       "5 denars.",
       [
         (assign, "$temp", 5),
         (jump_to_menu, "mnu_tournament_bet_confirm"),
        ]),
      ("go_back_dot", [], "Go back.",
       [
         (jump_to_menu, "mnu_town_tournament"),
        ]),

Вот они наши драгоценные ставочки , узнаёте. Меняем как надо к примеру

("bet_100_denars", [(store_troop_gold, ":gold", "trp_player"),
                          (ge, ":gold", 100)
                          ],
       "100 denars.",
меняем на

("bet_10000_denars", [(store_troop_gold, ":gold", "trp_player"),
                          (ge, ":gold", 10000)
                          ],
       "10000 denars.",
тоесть в трёх пунктах на ставку.
запускаем сборку и включаем игру, наслаждаемся выигранными деньгами в турнире.
Проверено работает

Твик на изменение размера войска и морали.
открываем module_scripts и ищем данный блок

  ("game_get_party_companion_limit",
    [
      (assign, ":troop_no", "trp_player"),

      (assign, ":limit", 10),
      (store_skill_level, ":skill", "skl_leadership", ":troop_no"),
      (store_attribute_level, ":charisma", ":troop_no", ca_charisma),
      (val_mul, ":skill", 5),
      (val_add, ":limit", ":skill"),
      (val_add, ":limit", ":charisma"),

      (troop_get_slot, ":troop_renown", ":troop_no", slot_troop_renown),
      (store_div, ":renown_bonus", ":troop_renown", 25),
      (val_add, ":limit", ":renown_bonus"),

      (assign, reg0, ":limit"),
      (set_trigger_result, reg0),
  ]),

Первое (по умолчанке - 10) - это базовый размер партии. Второе число по умолчанке 5 это прибавление юнитов за единицу навыка лидерства. Третье (по умолчанке - 25) это число известности, необходимое для прибавки одного юнита. Можете ставить любые значения (но без фанатизма!)
и мораль армии , ищем блок

  ("get_player_party_morale_values",
    [
      (party_get_num_companion_stacks, ":num_stacks","p_main_party"),
      (assign, ":num_men", 0),
      (try_for_range, ":i_stack", 1, ":num_stacks"),
        (party_stack_get_troop_id, ":stack_troop","p_main_party",":i_stack"),
        (try_begin),
          (troop_is_hero, ":stack_troop"),
          (val_add, ":num_men", 3),
        (else_try),
          (party_stack_get_size, ":stack_size","p_main_party",":i_stack"),
          (val_add, ":num_men", ":stack_size"),
        (try_end),
      (try_end),
      (assign, "$g_player_party_morale_modifier_party_size", ":num_men"),
   
      (store_skill_level, ":player_leadership", "skl_leadership", "trp_player"),
      (store_mul, "$g_player_party_morale_modifier_leadership", ":player_leadership", 7),

Итак, 2  числа - это то, что нас интересует. 3 - это количество морали, которое снижается вашими компаньонами (помимо вас). Можно поставить 0, чтобы герой с компаньонами не снижали мораль. Второе число (по умолчанке - 7) это прирост морали от навыка лидерства. Ставьте любое. Например при лидерстве=10, и значение второго параметра=30, бонус будет составлять 10*30=300.

Изменение этих параметров вызывает кое-какие странности, не слишком влияющие на игровой процесс. Не стОит играться со слишком большими значениями. Хотя как всегда действует золотое правило: НЕ УВЕРЕН - НЕ ДЕЛАЙ!

0

2

Изменение числа пленных, которых можно держать через умение Prisoner management
открываем module_scripts и ищем блок

  ("game_get_party_prisoner_limit",
    [
#      (store_script_param_1, ":party_no"),
      (assign, ":troop_no", "trp_player"),

      (assign, ":limit", 0),
      (store_skill_level, ":skill", "skl_prisoner_management", ":troop_no"),
      (store_mul, ":limit", ":skill", 5),
      (assign, reg0, ":limit"),
      (set_trigger_result, reg0),
  ]),
Итак, если изменить число множителя с 5 до 20, то при навыке=10, лимит пленных будет составлять 20Х10=200 человек.

Твик на изменение даты.

Открываем module_scripts и ищем строчку.

game_get_date_text

Это как раз то что нам нужно. Ниже идёт целый блок с установками. ищем там.

(store_add, ":cur_day", ":num_days", 23)    -это число дня с которого начинается игра
(assign, ":cur_month", 3),                         -это номер месяца с которого начинается игра
(assign, ":cur_year", 1257),                      -это как вы понимаете год

Все остальные настройки трогать необязательно. Но настроить можно и количество дней в месяце, и количество цасов в сутки, и количество месяцев в году так что хелуин можно празновать хоть каждый день.
И конец света забабахать можно!

0

3

И так лето красное пропело и снова продолжаем работать на станке!

Твик на изменение валюты расчёта.
ищем строчку в module_scripts.

game_get_money_text   - этот блок совсем маленьки поэтому в нём мы ищем значение

        (str_store_string, s1, "str_1_denar"),
      (else_try),
        (assign, reg1, ":amount"),
        (str_store_string, s1, "str_reg1_denars"),

узнаёте это наши динары в двух срочках, меняем их хот ь на рубли хоть надолары.
потом берём файл module_dialogs ищем все диалоги где есть указания на валюту denar или denars и меняем на свою валюту мы ведь не хотим чтобы  персонажи в разговорах упоминали денары. далее берём файл module_game_menus и повторяем предидущую процедуру дабы старая волюта не проскакивала в меню разного рода.потом переработке подлежит файл module_presentations и файлы module_quests, module_scripts, module_strings, ID_strings.

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

Твик позволяющий командовать всеми войсками даже если вы не воевода.
открываем module_scripts и ищем строку
("agent_reassign_team",
изменяем все еденицы в блоке на нули и всё.

Твик на изменение извесности за победу на турнире.
Открываем module_game_menus и ищем строку
"town_tournament_won",mnf_disable_all_keys,
в найденном блоке ищем
call_script, "script_change_troop_renown", "trp_player", 20),
20 это колличество извесности, меняем как хотим, но будет глупо если после первого турнира наш герой будет извеснее любого короля.

Твик на изменение периода времени между попытками завербовать пленных.
Открываем module_game_menus и ищем строку

("camp_recruit_prisoners",
рассмотрим этот подблок
       [(troops_can_join, 1),
        (store_current_hours, ":cur_time"),
        (val_sub, ":cur_time", 24),
        (gt, ":cur_time", "$g_prisoner_recruit_last_time"),
        (try_begin),
24 это колличество часов между попытками вербовки, меняем на что угодно хоть на 0.
И тогда попытки будут доступны хоть через каждый шаг.

Твик на изменение числа наёмников в городах.
Открываем module_scripts и ищем
  ("update_mercenary_units_of_towns",
    [(try_for_range, ":town_no", towns_begin, towns_end),
      (store_random_in_range, ":troop_no", mercenary_troops_begin, mercenary_troops_end),
      (party_set_slot, ":town_no", slot_center_mercenary_troop_type, ":troop_no"),
      (store_random_in_range, ":amount", 3, 8),
      (party_set_slot, ":town_no", slot_center_mercenary_troop_amount, ":amount"),
    (try_end),
     ]),
3 и 8 это диапазон численности наёмников,тоесть 3 это минимум 8 это максимум.
меняем как хотим.

Твик на вероятность пленения лордов.
Открываем module_scripts и ищем
  ("cf_check_hero_can_escape_from_player",
    [
        (store_script_param_1, ":troop_no"),
        (assign, ":quest_target", 0),
        (try_begin),
          (check_quest_active, "qst_persuade_lords_to_make_peace"),
          (this_or_next|quest_slot_eq, "qst_persuade_lords_to_make_peace", slot_quest_target_troop, ":troop_no"),
          (quest_slot_eq, "qst_persuade_lords_to_make_peace", slot_quest_object_troop, ":troop_no"),
          (assign, ":quest_target", 1),
        (try_end),
        (eq, ":quest_target", 0),
        (store_random_in_range, ":rand", 0, 100),
        (lt, ":rand", hero_escape_after_defeat_chance),
  ]),

0 это значение вероятности попадания в плен, а 100 это значение вероятности побега.
Если 0 поменять на 100 то лорды будут схвачены в плен всегда.Если 100 поменять на 0 то лорды некогда не попадут в плен.

Продолжение следует!

0

4

хорошо! добавлю!

И так.

Твик на изменение оружия в боях на арене.

Открываем module_mission_templates и ищем строку "arena_melee_fight",mtf_arena_fight,-1,

рассмотрим весь блок под ней

"arena_melee_fight",mtf_arena_fight,-1,
    "You enter a melee fight in the arena.",
    [
      (0,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_red, itm_red_tourney_helmet]),
      (1,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword, itm_arena_tunic_red]),
      (2,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_red, itm_red_tourney_helmet]),
      (3,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_red, itm_red_tourney_helmet]),
      (4,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows, itm_arena_tunic_red]),
      (5,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_practice_sword,itm_practice_shield,itm_arena_tunic_red]),
      (6,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_red]),
      (7,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_red, itm_red_tourney_helmet]),

      (8,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_arena_tunic_blue]),
      (9,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_blue,itm_blue_tourney_helmet]),
      (10,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_arena_tunic_blue]),
      (11,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_sword,itm_practice_shield,itm_arena_tunic_blue, itm_blue_tourney_helmet]),
      (12,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_blue]),
      (13,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_blue,itm_blue_tourney_helmet]),
      (14,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_arena_tunic_blue]),
      (15,mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_sword,itm_practice_shield,itm_arena_tunic_blue]),

      (16,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_green, itm_green_tourney_helmet]),
      (17,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_arena_tunic_green, itm_green_tourney_helmet]),
      (18,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_green, itm_green_tourney_helmet]),
      (19,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_green, itm_green_tourney_helmet]),
      (20,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_arena_tunic_green, itm_green_tourney_helmet]),
      (21,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_sword,itm_practice_shield,itm_arena_tunic_green]),
      (22,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_green]),
      (23,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_green, itm_green_tourney_helmet]),

      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (25,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (26,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (27,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (28,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (29,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_sword,itm_practice_shield,itm_arena_tunic_yellow]),
      (30,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_yellow]),
      (31,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
#32
      (32, mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword]),
      (33,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_staff]),
      (34,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_sword, itm_practice_shield]),
      (35,mtef_visitor_source|mtef_team_4,af_override_all,aif_start_alarmed,1,[itm_practice_staff]),
      (36, mtef_visitor_source|mtef_team_1,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows]),
      (37,mtef_visitor_source|mtef_team_2,af_override_all,aif_start_alarmed,1,[itm_practice_sword, itm_practice_shield]),
      (38,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword]),
      (39,mtef_visitor_source|mtef_team_4,af_override_all,aif_start_alarmed,1,[itm_practice_staff]),
#40-49 not used yet
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_sword,itm_practice_shield,itm_arena_tunic_yellow]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_heavy_practice_sword,itm_practice_horse,itm_arena_tunic_yellow]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_lance,itm_practice_shield,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),
      (24,mtef_visitor_source|mtef_team_3,af_override_all,aif_start_alarmed,1,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_yellow, itm_gold_tourney_helmet]),

      (50, mtef_scene_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
      (51, mtef_visitor_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
      (52, mtef_scene_source,af_override_horse,0,1,[]),
#not used yet:
      (53, mtef_scene_source,af_override_horse,0,1,[]),(54, mtef_scene_source,af_override_horse,0,1,[]),(55, mtef_scene_source,af_override_horse,0,1,[]),
#used for torunament master scene

      (56, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, [itm_practice_sword, itm_practice_shield, itm_padded_cloth, itm_segmented_helmet]),
      (57, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, [itm_practice_sword, itm_practice_shield, itm_padded_cloth, itm_segmented_helmet]),
    ],
    tournament_triggers
  ),

здесь оружие идёт после артикула itm_  .
к примеру itm_practice_sword
И если мы хотим заменить оружие то в названии его здесь нам надо удолить только идентификатор предмета. к примеру itm_practice_sword удаляем идентификатор и оставляем артикул itm_      . Берём
["sword_two_handed_a","Great Sword", [("sword_two_handed_a",0)], itp_type_two_handed_wpn|itp_merchandise|itp_always_loot|itp_two_handed|itp_primary, itc_greatsword|itcf_carry_sword_back, 1123 , weight(2.75)|difficulty(10)|spd_rtng(89) | weapon_length(120)|swing_damage(42 , cut) | thrust_damage(28 ,  pierce),imodbits_sword_high ],

и копируем идентификатор , а именно sword_two_handed_a
подставляем его к артикулу и получаем itm_sword_two_handed_a
Вот и фсё, один вид оружия заменён.

0

5

Особенности национальной охоты
нам понадобятся модели зверушек
Да слишком мало на кальрадийской земле источников дохода, поэтому было бы совсем не лишним поохотится на славу и здать мясо купцам.
Для примера нам понадобятся две модели касули и кабана.
открываем module_items и вставляем туда блок

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
["deer","Deer",[("deer",0)],itp_type_animal,0,1411,abundance(40)|hit_points(40)|body_armor(0)|difficulty(11)|horse_speed(40)|horse_maneuver(32)|horse_charge(20),imodbits_horse_basic],
["boar","Boar",[("boar",0)],itp_type_animal,0,1411,abundance(40)|hit_points(100)|body_armor(0)|difficulty(11)|horse_speed(40)|horse_maneuver(20)|horse_charge(100),imodbits_horse_basic],

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

deer это как известно алень, он же касуля
boar эт кабан
Затем открываем module_factions
и после строк
  ("culture_1",  "culture_1", 0, 0.9, [], []),
  ("culture_2",  "culture_2", 0, 0.9, [], []),
  ("culture_3",  "culture_3", 0, 0.9, [], []),
  ("culture_4",  "culture_4", 0, 0.9, [], []),
  ("culture_5",  "culture_5", 0, 0.9, [], []),
  ("culture_6",  "culture_6", 0, 0.9, [], []),

вставляем
  #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
  ("wild_animals","Wild Animals",0, 0.1,[("player_faction",-0.15)], [],0xFFFFFF),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
затем открываем module_game_menus
и где то после блока
("castle_lead_attack",
       [
         (neg|troop_is_wounded, "trp_player"),
         (ge, "$g_siege_method", 1),
         (gt, "$g_friend_fit_for_battle", 3),
         (store_current_hours, ":cur_hours"),
         (ge, ":cur_hours", "$g_siege_method_finish_hours"),
         ],
       "Lead your soldiers in an assault.", [
           (try_begin),
             (party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
             (party_get_slot, ":battle_scene", "$g_encountered_party", slot_town_walls),
           (else_try),
             (party_get_slot, ":battle_scene", "$g_encountered_party", slot_castle_exterior),
           (try_end),
           (call_script, "script_calculate_battle_advantage"),
           (assign, ":battle_advantage", reg0),
           (val_mul, ":battle_advantage", 2),
           (val_div, ":battle_advantage", 3), #scale down the advantage a bit in sieges.
           (set_battle_advantage, ":battle_advantage"),
           (set_party_battle_mode),
           (assign, "$g_siege_battle_state", 1),
           (assign, ":siege_sally", 0),
           (try_begin),
             (le, ":battle_advantage", -4), #we are outnumbered, defenders sally out
             (eq, "$g_siege_sallied_out_once", 0),
             (set_jump_mission,"mt_castle_attack_walls_defenders_sally"),
             (assign, "$g_siege_battle_state", 0),
             (assign, ":siege_sally", 1),
           (else_try),
             (party_slot_eq, "$current_town", slot_center_siege_with_belfry, 1),
             (set_jump_mission,"mt_castle_attack_walls_belfry"),
           (else_try),
             (set_jump_mission,"mt_castle_attack_walls_ladder"),
           (try_end),
           (assign, "$cant_talk_to_enemy", 0),           
           (assign, "$g_siege_final_menu", "mnu_castle_besiege"),
           (assign, "$g_next_menu", "mnu_castle_besiege_inner_battle"),
           (assign, "$g_siege_method", 0), #reset siege timer
           (jump_to_scene,":battle_scene"),
           (try_begin),
             (eq, ":siege_sally", 1),
             (jump_to_menu, "mnu_siege_attack_meets_sally"),
           (else_try),
#           (jump_to_menu,"mnu_castle_outside"),
##           (assign, "$g_next_menu", "mnu_castle_besiege"),
             (jump_to_menu, "mnu_battle_debrief"),
             (change_screen_mission),
           (try_end),
       ]),
      ("attack_stay_back",
       [
         (ge, "$g_siege_method", 1),
         (gt, "$g_friend_fit_for_battle", 3),
         (store_current_hours, ":cur_hours"),
         (ge, ":cur_hours",  "$g_siege_method_finish_hours"),
         ],
       "Order your soldiers to attack while you stay back...", [(assign, "$cant_talk_to_enemy", 0),(jump_to_menu,"mnu_castle_attack_walls_simulate")]),

      ("build_ladders",[(party_slot_eq, "$current_town", slot_center_siege_with_belfry, 0),(eq, "$g_siege_method", 0)],
       "Prepare ladders to attack the walls.", [(jump_to_menu,"mnu_construct_ladders")]),

      ("build_siege_tower",[(party_slot_eq, "$current_town", slot_center_siege_with_belfry, 1),(eq, "$g_siege_method", 0)],
       "Build a siege tower.", [(jump_to_menu,"mnu_construct_siege_tower")]),

      ("cheat_castle_lead_attack",[(eq, "$cheat_mode", 1),
                                   (eq, "$g_siege_method", 0)],
       "CHEAT: Instant build equipments.",
       [
         (assign, "$g_siege_method", 1),
         (assign, "$g_siege_method_finish_hours", 0),
         (jump_to_menu, "mnu_castle_besiege"),
       ]),

     
      ("lift_siege",[],"Abandon the siege.",
       [
         (call_script, "script_lift_siege", "$g_player_besiege_town", 0),
         (assign,"$g_player_besiege_town", -1),
         (change_screen_return)]),
    ]
  ),
вставляем блок
   #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
  ("deer_herd",mnf_scale_picture,
   "You encounter a herd of deers.",
   "none",
   [
   (try_begin),
      (gt, "$num_deers_killed",0),
      (troop_clear_inventory, "trp_temp_troop"),
      (troop_add_items, "trp_temp_troop", "itm_horse_meat", "$num_deers_killed"),

      (party_get_num_companions, ":num_deers", "$g_encountered_party"),
      (try_begin),
        (ge, "$num_deers_killed", ":num_deers"),
        (remove_party, "$g_encountered_party"),
      (else_try),
        (party_remove_members, "$g_encountered_party", "trp_deer", "$num_deers_killed"),
      (try_end),
      (assign,"$num_deers_killed",0),
          (troop_sort_inventory, "trp_temp_troop"),
  (change_screen_loot,"trp_temp_troop"),
    (try_end),
    (set_background_mesh, "mesh_pic_cattle"),
   ],
    [
      ("deer_kill",
      [
      (party_get_num_companions, ":num_deers", "$g_encountered_party"),
      (try_begin),
        (le,":num_deers",0),
(disable_menu_option),
      (try_end),
      ]
      ,"Hunt some of the animals.",
       [
       (set_jump_mission,"mt_deer_hunting"),
       (jump_to_scene,"scn_random_scene_plain_forest"),
       (change_screen_mission),
        ]
       ),
      ("leave",[],"Leave.",
       [(change_screen_return),
        ]
       ),
      ]
  ),
  ("deer_herd_kill_end",0,
   "You shouldn't be reading this.",
   "none",
   [(change_screen_return)],
    [
      ]
  ),
  ("boar_herd",mnf_scale_picture,
   "You encounter a herd of boars.",
   "none",
   [
   (try_begin),
      (gt, "$num_boars_killed",0),
      (troop_clear_inventory, "trp_temp_troop"),
      (troop_add_items, "trp_temp_troop", "itm_horse_meat", "$num_boars_killed"),

      (party_get_num_companions, ":num_deers", "$g_encountered_party"),
      (try_begin),
        (ge, "$num_boars_killed", ":num_deers"),
        (remove_party, "$g_encountered_party"),
      (else_try),
        (party_remove_members, "$g_encountered_party", "trp_boar", "$num_boars_killed"),
      (try_end),
      (assign,"$num_boars_killed",0),
          (troop_sort_inventory, "trp_temp_troop"),
  (change_screen_loot,"trp_temp_troop"),
    (try_end),
    (set_background_mesh, "mesh_pic_cattle"),
   ],
    [
      ("boar_kill",[
      (party_get_num_companions, ":num_deers", "$g_encountered_party"),
      (try_begin),
        (le,":num_deers",0),
(disable_menu_option),
      (try_end),     
      ],"Hunt some of the animals.",
       [
       (set_jump_mission,"mt_boar_hunting"),
       (jump_to_scene,"scn_random_scene_plain_forest"),
       (change_screen_mission),
        ]
       ),
      ("leave",[],"Leave.",
       [(change_screen_return),
        ]
       ),
      ]
  ),

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
теперь дошла очередь до module_party_templates, открываем его
и после блока

("forager_party","Foraging Party",icon_gray_knight|carries_goods(5)|pf_show_faction,0,fac_commoners,merchant_personality,[]),
("scout_party","Scouts",icon_gray_knight|carries_goods(1)|pf_show_faction,0,fac_commoners,bandit_personality,[]),
("patrol_party","Patrol",icon_gray_knight|carries_goods(2)|pf_show_faction,0,fac_commoners,soldier_personality,[]),
#  ("war_party", "War Party",icon_gray_knight|carries_goods(3),0,fac_commoners,soldier_personality,[]),
("messenger_party","Messenger",icon_gray_knight|pf_show_faction,0,fac_commoners,merchant_personality,[]),
("raider_party","Raiders",icon_gray_knight|carries_goods(16)|pf_quest_party,0,fac_commoners,bandit_personality,[]),
("raider_captives","Raider Captives",0,0,fac_commoners,0,[(trp_peasant_woman,6,30,pmf_is_prisoner)]),
("kingdom_caravan_party","Caravan",icon_mule|carries_goods(25)|pf_show_faction,0,fac_commoners,merchant_personality,[(trp_caravan_master,1,1),(trp_caravan_guard,12,40)]),
("prisoner_train_party","Prisoner Train",icon_gray_knight|carries_goods(5)|pf_show_faction,0,fac_commoners,merchant_personality,[]),
("default_prisoners","Default Prisoners",0,0,fac_commoners,0,[(trp_bandit,5,10,pmf_is_prisoner)]),
##  ("merchant_party","Merchant",icon_mule|carries_goods(25)|pf_show_faction,0,fac_merchants,merchant_personality,[(trp_caravan_guard,12,40)]),
##  ("merchant_party_reinforcement","Merchant Party Reinforcement",icon_mule|carries_goods(25),0,fac_merchants,merchant_personality,[(trp_caravan_guard,6,20)]),
вставляем блок

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

("deer_herd", "Deer Herd", icon_cattle|carries_goods(10), 0, fac_wild_animals, merchant_personality, [(trp_deer,8,15)] ),
("boar_herd", "Boar Herd", icon_cattle|carries_goods(10), 0, fac_wild_animals, merchant_personality, [(trp_boar,2,4)] ),

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
потом открываем module_scripts и в нём ищем

      (item_set_slot, "itm_wine", slot_item_food_bonus, 5),
      (item_set_slot, "itm_ale", slot_item_food_bonus, 4),

после сего вставляем.
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
      (item_set_slot, "itm_horse_meat", slot_item_food_bonus, 2),
      (item_set_slot, "itm_horse_meat", slot_item_food_bonus, 5),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

это как вам известно конина, но мы можем заменить itm_horse_meat на itm_deer_meat или itm_boar_meat. это будит оленье или кабанье мясо
потом ищем "mnu_cattle_herd" и после (jump_to_menu, "mnu_cattle_herd"), вставляем

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
         (else_try),
           (party_get_template_id, ":party_template","$g_encountered_party"),
   (eq,":party_template","pt_deer_herd"),
           (jump_to_menu, "mnu_deer_herd"),
         (else_try),
           (party_get_template_id, ":party_template","$g_encountered_party"),
   (eq,":party_template","pt_boar_herd"),
           (jump_to_menu, "mnu_boar_herd"),
                (else_try),
           (party_get_template_id, ":party_template","$g_encountered_party"),
   (eq,":party_template","pt_buffalo_herd"),
           (jump_to_menu, "mnu_buffalo_herd"),
                       (else_try),
           (party_get_template_id, ":party_template","$g_encountered_party"),
   (eq,":party_template","pt_wolf_herd"),
           (jump_to_menu, "mnu_wolf_herd"),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
потом ищем
       (spawn_around_party,":spawn_point","pt_forest_bandits"),
     (try_end),
и после сего вписываем

  #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
     (try_begin),
       (store_num_parties_of_template, ":num_parties", "pt_deer_herd"),
       (lt,":num_parties",5),
       (store_random,":spawn_point",num_mountain_bandit_spawn_points),
       (val_add,":spawn_point","p_forest_bandit_spawn_point"),
       (spawn_around_party,":spawn_point","pt_deer_herd"),
     (try_end),
     (try_begin),
       (store_num_parties_of_template, ":num_parties", "pt_boar_herd"),
       (lt,":num_parties",2),
       (store_random,":spawn_point",num_mountain_bandit_spawn_points),
       (val_add,":spawn_point","p_forest_bandit_spawn_point"),
       (spawn_around_party,":spawn_point","pt_boar_herd"),
     (try_end),

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
открываем последний файл module_troops и ищем
["log_array_faction_object", "Local Merchant", "Local Merchant", tf_guarantee_boots|tf_guarantee_armor, no_scene, reserved, fac_commoners, [itm_leather_apron,itm_leather_boots,itm_pikei], def_attrib|level(5), wp(40), knows_power_strike_1, merchant_face_1, merchant_face_2 ],
и вставляем после этого

#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
["deer","Deer","Deer",0,no_scene,reserved,fac_neutral, [], def_attrib|level(0),wp(60),0,swadian_face_younger_1, swadian_face_younger_1],
["boar","Boar","Boar",0,no_scene,reserved,fac_neutral, [], def_attrib|level(0),wp(60),0,swadian_face_younger_1, swadian_face_younger_1],
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
ой нет не последний, открываем module_mission_templates и в самый конец вписываем
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

  (
    "deer_hunting",mtf_arena_fight,-1,
    "You lead your deers to battle.",
    [
     (1,mtef_team_0|mtef_leader_only,0,aif_start_alarmed,12,[]),
     (4,mtef_visitor_source,0,aif_start_alarmed,0,[]),
     ],
    [
      (ti_tab_pressed, 0, 0, [
      (set_trigger_result,1)], []), #leaving area
      (0, 0, ti_once, [ #spawing deers
         (party_count_members_of_type,":num_deers","$g_encountered_party","trp_deer"),
         (val_sub,":num_deers",1),
         (ge,":num_deers",0),
                     (assign,"$num_deers_killed",0),
                     (get_scene_boundaries, pos10,pos11),
                     (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
         (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
         (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                     (init_position, pos1),
         (position_set_x,pos1,":x_pos"),
         (position_set_y,pos1,":y_pos"),
         (position_set_z,pos1,10000),
         (position_set_z_to_ground_level,pos1),
                     (set_spawn_position, pos1),
                     (spawn_horse, "itm_deer"),
         (assign,"$leading_deer",reg0),
         (try_for_range,":unused",0,":num_deers"),
                       (init_position, pos1),
           (store_random_in_range,":x_pos_add",0,1000),
           (store_random_in_range,":y_pos_add",0,1000),
           (val_add,":x_pos_add",":x_pos"),
           (val_add,":y_pos_add",":y_pos"),
           (position_set_x,pos1,":x_pos_add"),
           (position_set_y,pos1,":y_pos_add"),
           (position_set_z,pos1,10000),
           (position_set_z_to_ground_level,pos1),
           (set_spawn_position, pos1),
                       (spawn_horse, "itm_deer"),
         (try_end),
                 ], []),
      (1,0,0,[], #wounded deers move slower
      [(try_for_agents,reg(1)),
       (agent_get_item_id,reg(2),reg(1)),
       (eq,reg(2),"itm_deer"),
       (store_agent_hit_points,reg(2),reg(1)),
       (store_mul,reg(3),20,reg(2)),
       (val_div,reg(3),40),
       (agent_set_speed_limit,reg(1),reg(3)),
       (try_end),
      ]),
      (5,0,0,
      [
      (neg|agent_is_alive,"$leading_deer"),
      ],
      [
      (try_for_agents,reg(1)),
      (agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(assign,"$leading_deer",reg(1)),
      (try_end),
      ]),
      (1,0,0,[],
      [
              (assign,":num_kills",0),
      (try_for_agents,reg(1)),
        (agent_get_item_id,reg(2),reg(1)),
        (eq,reg(2),"itm_deer"),
                (store_agent_hit_points,reg(2),reg(1)),
    (eq,reg(2),0),
    (val_add,":num_kills",1),
      (try_end),   
      (gt,":num_kills","$num_deers_killed"),      
                     (get_scene_boundaries, pos10,pos11),
                     (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
         (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
         (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                     (init_position, pos1),
         (position_set_x,pos1,":x_pos"),
         (position_set_y,pos1,":y_pos"),
         (position_set_z,pos1,10000),
         (position_set_z_to_ground_level,pos1),
                     (agent_set_scripted_destination,"$leading_deer",pos1),
             (assign,"$num_deers_killed",":num_kills"),
      ]),
      (5,0,0,[],
      [
      (agent_get_position,pos1,"$leading_deer"),
      (position_get_x,":x_pos",pos1),
      (position_get_y,":y_pos",pos1),
      (this_or_next|le,":x_pos",5000),
      (this_or_next|le,":y_pos",5000),
      (this_or_next|ge,":x_pos",38000),
      (ge,":y_pos",38000),
                     (get_scene_boundaries, pos10,pos11),
                     (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
         (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
         (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                     (init_position, pos1),
         (position_set_x,pos1,":x_pos"),
         (position_set_y,pos1,":y_pos"),
         (position_set_z,pos1,10000),
         (position_set_z_to_ground_level,pos1),
                     (agent_set_scripted_destination,"$leading_deer",pos1),
      ]),
      (1,0,0,[],
      [
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(store_agent_hit_points,":health",reg(1)),
(store_sub,":damage",100,":health"),
(agent_get_slot,":prev_damage",reg(1),1),
(neq,":prev_damage",":damage"),
(agent_set_slot,reg(1),1,":damage"),
        (agent_get_position,pos1,reg(1)),
        (position_get_x,":x_pos",pos1),
(position_get_y,":y_pos",pos1),
        (store_random_in_range,":x_pos_add",0,1000),
        (store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos",":x_pos_add"),
(val_add,":y_pos",":y_pos_add"),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
        (agent_set_scripted_destination,reg(1),pos1),
      (try_end),
      ]),
      (0.5,0,0, #deer travelling
      [],
      [
      (get_player_agent_no,reg(1)),
      (agent_get_position,pos1,reg(1)),
      (agent_get_position,pos4,"$leading_deer"),
      (position_get_x,":x_pos",pos4),
      (position_get_y,":y_pos",pos4),
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
        (agent_get_position,pos2,reg(1)),
(get_distance_between_positions,reg(3),pos1,pos2),
(try_begin),
        (position_get_x,":pos_x",pos2),
        (position_get_x,":pos_y",pos2),
         (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
    (this_or_next|gt,":pos_x",":scene_max_x"),
    (this_or_next|lt,":pos_x",":scene_min_x"),
    (this_or_next|gt,":pos_y",":scene_max_y"),
    (lt,":pos_y",":scene_min_y"),
    (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                (init_position, pos1),
    (position_set_x,pos1,":x_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                (agent_set_scripted_destination,reg(1),pos1),
(else_try),
    (le,reg(3),2500),
    (position_get_x,reg(4),pos1),
    (position_get_x,reg(5),pos2),
    (store_sub,":x_dist",reg(5),reg(4)),
    (val_mul,":x_dist",10),
    (position_get_y,reg(6),pos1),
    (position_get_y,reg(7),pos2),
    (store_sub,":y_dist",reg(7),reg(6)),
    (val_mul,":y_dist",10),
    (init_position,pos3),
    (val_add,":x_dist",reg(5)),
    (val_add,":y_dist",reg(7)),
    (position_set_x,pos3,":x_dist"),
    (position_set_y,pos3,":y_dist"),
        (position_set_z,pos3,10000),
        (position_set_z_to_ground_level,pos3),
    (agent_set_scripted_destination,reg(1),pos3),
(else_try),
    (get_distance_between_positions,reg(3),pos4,pos2),
    (ge,reg(3),2000),
                       (init_position, pos6),
           (store_random_in_range,":x_pos_add",0,1000),
           (store_random_in_range,":y_pos_add",0,1000),
           (val_add,":x_pos_add",":x_pos"),
           (val_add,":y_pos_add",":y_pos"),
           (position_set_x,pos6,":x_pos_add"),
           (position_set_y,pos6,":y_pos_add"),
           (position_set_z,pos6,10000),
           (position_set_z_to_ground_level,pos6),
           (agent_set_scripted_destination,reg(1),pos6),
(try_end),
      (try_end),
      ]),
    ]),

   
  (
    "boar_hunting",mtf_arena_fight,-1,
    "You lead your boars to battle.",
    [
     (1,mtef_team_0|mtef_leader_only,0,aif_start_alarmed,12,[]),
     (4,mtef_visitor_source,0,aif_start_alarmed,0,[]),
     ],
    [
      (ti_tab_pressed, 0, 0, [ (set_trigger_result,1)], []), #leaving area
      (0, 0, ti_once, [ #spawing boars
         (party_count_members_of_type,":num_boars","$g_encountered_party","trp_boar"),
         (val_sub,":num_boars",1),
         (ge,":num_boars",0),
                     (assign,"$num_boars_killed",0),
                     (get_scene_boundaries, pos10,pos11),
                     (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
         (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
         (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                     (init_position, pos1),
         (position_set_x,pos1,":x_pos"),
         (position_set_y,pos1,":y_pos"),
         (position_set_z,pos1,10000),
         (position_set_z_to_ground_level,pos1),
                     (set_spawn_position, pos1),
                     (spawn_horse, "itm_boar"),
         (assign,"$leading_boar",reg0),
         (try_for_range,":unused",0,":num_boars"),
                       (init_position, pos1),
           (store_random_in_range,":x_pos_add",0,1000),
           (store_random_in_range,":y_pos_add",0,1000),
           (val_add,":x_pos_add",":x_pos"),
           (val_add,":y_pos_add",":y_pos"),
           (position_set_x,pos1,":x_pos_add"),
           (position_set_y,pos1,":y_pos_add"),
           (position_set_z,pos1,10000),
           (position_set_z_to_ground_level,pos1),
           (set_spawn_position, pos1),
                       (spawn_horse, "itm_boar"),
         (try_end),
                 ], []),
      (1,0,0,[], #wounded boars move slower
      [(try_for_agents,reg(1)),
       (agent_get_item_id,reg(2),reg(1)),
       (eq,reg(2),"itm_boar"),
       (store_agent_hit_points,reg(2),reg(1)),
       (store_mul,reg(3),20,reg(2)),
       (val_div,reg(3),100),
       (agent_set_speed_limit,reg(1),reg(3)),
       (try_end),
      ]),
      (5,0,0,
      [
      (neg|agent_is_alive,"$leading_boar"),
      ],
      [
      (try_for_agents,reg(1)),
      (agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(assign,"$leading_boar",reg(1)),
      (try_end),
      ]),
      (1,0,0,[],
      [
              (assign,":num_kills",0),
      (try_for_agents,reg(1)),
        (agent_get_item_id,reg(2),reg(1)),
        (eq,reg(2),"itm_boar"),
                (store_agent_hit_points,reg(2),reg(1)),
    (eq,reg(2),0),
    (val_add,":num_kills",1),
      (try_end),   
      (gt,":num_kills","$num_boars_killed"),      
                     (get_scene_boundaries, pos10,pos11),
                     (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
         (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
         (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                     (init_position, pos1),
         (position_set_x,pos1,":x_pos"),
         (position_set_y,pos1,":y_pos"),
         (position_set_z,pos1,10000),
         (position_set_z_to_ground_level,pos1),
                     (agent_set_scripted_destination,"$leading_boar",pos1),
             (assign,"$num_boars_killed",":num_kills"),
      ]),
      (5,0,0,[],
      [
      (agent_get_position,pos1,"$leading_boar"),
      (position_get_x,":x_pos",pos1),
      (position_get_y,":y_pos",pos1),
      (this_or_next|le,":x_pos",5000),
      (this_or_next|le,":y_pos",5000),
      (this_or_next|ge,":x_pos",38000),
      (ge,":y_pos",38000),
                     (get_scene_boundaries, pos10,pos11),
                     (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
         (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
         (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                     (init_position, pos1),
         (position_set_x,pos1,":x_pos"),
         (position_set_y,pos1,":y_pos"),
         (position_set_z,pos1,10000),
         (position_set_z_to_ground_level,pos1),
                     (agent_set_scripted_destination,"$leading_boar",pos1),
      ]),
      (1,0,0,[],
      [
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(store_agent_hit_points,":health",reg(1)),
(store_sub,":damage",100,":health"),
(agent_get_slot,":prev_damage",reg(1),1),
(neq,":prev_damage",":damage"),
(agent_set_slot,reg(1),1,":damage"),
        (agent_get_position,pos1,reg(1)),
        (position_get_x,":x_pos",pos1),
(position_get_y,":y_pos",pos1),
        (store_random_in_range,":x_pos_add",0,1000),
        (store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos",":x_pos_add"),
(val_add,":y_pos",":y_pos_add"),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
        (agent_set_scripted_destination,reg(1),pos1),
      (try_end),
      ]),
      (0.5,0,0, #boar travelling
      [],
      [
      (get_player_agent_no,reg(1)),
      (agent_get_position,pos1,reg(1)),
      (agent_get_position,pos4,"$leading_boar"),
      (position_get_x,":x_pos",pos4),
      (position_get_y,":y_pos",pos4),
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
        (agent_get_position,pos2,reg(1)),
(get_distance_between_positions,reg(3),pos1,pos2),
(try_begin),
        (position_get_x,":pos_x",pos2),
        (position_get_x,":pos_y",pos2),
         (position_get_x, ":scene_min_x", pos10),
                     (position_get_x, ":scene_max_x", pos11),
                     (position_get_y, ":scene_min_y", pos10),
                     (position_get_y, ":scene_max_y", pos11),
         (store_div,":border_x",":scene_max_x",10),
         (val_add,":scene_min_x",":border_x"),
         (val_sub,":scene_max_x",":border_x"),
         (store_div,":border_y",":scene_max_y",10),
         (val_add,":scene_min_y",":border_y"),
         (val_sub,":scene_max_y",":border_y"),
    (this_or_next|gt,":pos_x",":scene_max_x"),
    (this_or_next|lt,":pos_x",":scene_min_x"),
    (this_or_next|gt,":pos_y",":scene_max_y"),
    (lt,":pos_y",":scene_min_y"),
    (store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                (init_position, pos1),
    (position_set_x,pos1,":x_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                (agent_set_scripted_destination,reg(1),pos1),
(else_try),
    (le,reg(3),2500),
    (position_get_x,reg(4),pos1),
    (position_get_x,reg(5),pos2),
    (store_sub,":x_dist",reg(5),reg(4)),
    (val_mul,":x_dist",10),
    (position_get_y,reg(6),pos1),
    (position_get_y,reg(7),pos2),
    (store_sub,":y_dist",reg(7),reg(6)),
    (val_mul,":y_dist",10),
    (init_position,pos3),
    (val_add,":x_dist",reg(5)),
    (val_add,":y_dist",reg(7)),
    (position_set_x,pos3,":x_dist"),
    (position_set_y,pos3,":y_dist"),
        (position_set_z,pos3,10000),
        (position_set_z_to_ground_level,pos3),
    (agent_set_scripted_destination,reg(1),pos3),
(else_try),
    (get_distance_between_positions,reg(3),pos4,pos2),
    (ge,reg(3),2000),
                       (init_position, pos6),
           (store_random_in_range,":x_pos_add",0,1000),
           (store_random_in_range,":y_pos_add",0,1000),
           (val_add,":x_pos_add",":x_pos"),
           (val_add,":y_pos_add",":y_pos"),
           (position_set_x,pos6,":x_pos_add"),
           (position_set_y,pos6,":y_pos_add"),
           (position_set_z,pos6,10000),
           (position_set_z_to_ground_level,pos6),
           (agent_set_scripted_destination,reg(1),pos6),
(try_end),
      (try_end),
      ]),
    ]),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
компилим и запускаем игру, приятной охоты

+1

6

охота

0

7

Уважаемый Acharon
Я сделал в меню диалога с ботом возможность менять в игре инвентарь для данного вида войск, но в версии 1.134 боты в сейвах не сохраняются. Подскажи пожалуйста, как прописать сохранение например для "trp_swadian_recruit", чтобы после выхода его новое снаряжение сохранялось.

Уже сам разобрался:

Всё оказалось намного проще!   
В module.ini есть строчка:  dont_load_regular_troop_inventories = 1
Меняем 1 на 0 и все изменения в инвенторе ботов сохраняются в сейвах.
МиБ не перестаёт меня удивлять!

Отредактировано FinGall (2011-08-29 18:49:56)

0

8

Acharon

Отредактировано FinGall (2011-09-22 16:13:45)

0


Вы здесь » Mount and Blade. Средневековая Сага » Обмен опытом » доработка на токарном станке