Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
  • Всего: 28871
  • Последний: 123WwW2004
Сейчас на форуме
Пользователи: 2
Гостей: 288
Всего: 290

0 Пользователей и 1 Гость просматривают эту тему.

Тема: [KIT]Инструкция по внедрению кораблей в игру  (Прочитано 12531 раз)

  • Сообщений: 202
    • Просмотр профиля
Сначала нужны текстуры и т.д. Вот ссылка: http://www.mbrepository.com/file.php?id=1402

Распаковываете всё по папкам (там довольно понятно) в папке модуля, который вы будете менять.

Теперь в файле module.ini меняемого модуля добавляем строчку:
load_mod_resource = sail
И затем убедитесь, что "scan_module_textures = 1". (Это должно быть.)

Теперь, как японял, нужна модулька. Надеюсь, как ей пользоваться, объяснять не надо.
В файле module_scene_props добавляем следующее:

Code: [Select]
#################################################
#########SEA BATTLES BEGIN
#################################################
   ("ship",sokf_moveable,"longship","bo_longship", [   (ti_on_scene_prop_init,
   [
    (set_position_delta,0,0,0),
    (store_trigger_param_1, ":instance_no"),
    (party_set_slot,"p_ship_colisions",":instance_no",0),
   ]),]),
 ("ships_end",0,0,0,[]),
 ("enemy_ship",sokf_moveable,"longship","bo_longship", [   (ti_on_scene_prop_init,
   [
    (set_position_delta,0,0,0),
    (store_trigger_param_1, ":instance_no"),
    (party_set_slot,"p_ship_colisions",":instance_no",0),
   ]),]),
 ("enemy_ships_end",0,0,0,[]),
 ("universal_end",0,0,0,[]),

 ("ship_protect",0,0,"bo_gourd_spike",[]),
 ("enemy_ship_protect",0,0,"bo_gourd_spike",[]),
#################################################
#########SEA BATTLES END
#################################################

Затем в module_scenes добавляем:

Code: [Select]
  ("sea_b",sf_generate,"none", "none", (0,0),(240,240),-0.5,"0x0000000030000000c00d2348000000008000000000000000",
   [],[]),
 ("sea_land",sf_generate,"none", "none", (0,0),(240,240),-0.5,"0x0000000030000000c00d2348000000008000000000000000",
   [],[]),

Теперь в файле module_parties:

Code: [Select]
("burning_buildings","If you see me, report the fire bug.",  pf_disabled|icon_village_a|pf_village, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(0, -50),[], 170),
 ("ship_colisions","If you see me, report the colision bug.",  pf_disabled|icon_village_a|pf_village, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(0, -50),[], 170),


Затем в module_game_menus находим и меняем строки меню "encounter_attack" на эти:

Quote
("encounter_attack",[
         (eq, "$encountered_party_friendly", 0),
         (store_troop_health,reg(5)),(party_get_current_terrain,":terrain","p_main_party"),
         (neq,":terrain",rt_steppe),
         ],
                           "Charge the enemy.",[
                               (assign, "$g_battle_result", 0),
                               (assign, "$g_engaged_enemy", 1),
                               (call_script, "script_calculate_renown_value"),
                               (call_script, "script_calculate_battle_advantage"),
                               (set_battle_advantage, reg0),
                               (set_party_battle_mode),
                               (try_begin),
                                 (eq, "$g_encounter_type", enctype_fighting_against_village_raid),
                                 (set_jump_mission,"mt_village_raid"),
                                 (party_get_slot, ":scene_to_use", "$g_encounter_is_in_village", slot_castle_exterior),
                                 (jump_to_scene, ":scene_to_use"),
                               (else_try),
                                 (eq, "$g_encounter_type", enctype_catched_during_village_raid),
                                 (set_jump_mission,"mt_village_raid"),
                                 (party_get_slot, ":scene_to_use", "$g_encounter_is_in_village", slot_castle_exterior),
                                 (jump_to_scene, ":scene_to_use"),
                               (else_try),
                                 (set_jump_mission,"mt_lead_charge"),
                                 (call_script, "script_setup_random_scene"),
                               (try_end),
                               (assign, "$g_next_menu", "mnu_simple_encounter"),
                               (jump_to_menu, "mnu_battle_debrief"),
                               (change_screen_mission),
                               ]),
     ("encounter_attack",[
         (eq, "$encountered_party_friendly", 0),
         (store_troop_health,reg(5)),(party_get_current_terrain,":terrain","p_main_party"),
         (eq,":terrain",rt_steppe),
         ],
                           "Close in and board the enemy.",[
                               (assign, "$g_battle_result", 0),
                               (assign, "$g_engaged_enemy", 1),
                               (call_script, "script_calculate_renown_value"),
                               (call_script, "script_calculate_battle_advantage"),
                               (set_battle_advantage, reg0),
                               (set_party_battle_mode),
                               (try_begin),
                                 (eq, "$g_encounter_type", enctype_fighting_against_village_raid),
                                 (set_jump_mission,"mt_village_raid"),
                                 (party_get_slot, ":scene_to_use", "$g_encounter_is_in_village", slot_castle_exterior),
                                 (jump_to_scene, ":scene_to_use"),
                               (else_try),
                                 (eq, "$g_encounter_type", enctype_catched_during_village_raid),
                                 (set_jump_mission,"mt_village_raid"),
                                 (party_get_slot, ":scene_to_use", "$g_encounter_is_in_village", slot_castle_exterior),
                                 (jump_to_scene, ":scene_to_use"),
                               (else_try),
                                 (set_jump_mission,"mt_ship_battle"),
                                 (try_begin),
                                   (val_add,reg10,reg11),
                                   (gt,reg10,30),
                                   (jump_to_scene, "scn_sea_b"),
                                 (else_try),
                                   (jump_to_scene, "scn_sea_b"),
                                 (end_try),
                               (try_end),
                               (assign, "$g_next_menu", "mnu_simple_encounter"),
                               (jump_to_menu, "mnu_battle_debrief"),
                               (change_screen_mission),
                               ]),

       ("encounter_attack",[
         (eq, "$encountered_party_friendly", 0),
         (store_troop_health,reg(5)),(party_get_current_terrain,":terrain","p_main_party"),
         (eq,":terrain",rt_steppe),
         ],
                           "Go ashore.",[
                               (assign, "$g_battle_result", 0),
                               (assign, "$g_engaged_enemy", 1),
                               (call_script, "script_calculate_renown_value"),
                               (call_script, "script_calculate_battle_advantage"),
                               (set_battle_advantage, reg0),
                               (set_party_battle_mode),
                               (try_begin),
                                 (eq, "$g_encounter_type", enctype_fighting_against_village_raid),
                                 (set_jump_mission,"mt_village_raid"),
                                 (party_get_slot, ":scene_to_use", "$g_encounter_is_in_village", slot_castle_exterior),
                                 (jump_to_scene, ":scene_to_use"),
                               (else_try),
                                 (eq, "$g_encounter_type", enctype_catched_during_village_raid),
                                 (set_jump_mission,"mt_village_raid"),
                                 (party_get_slot, ":scene_to_use", "$g_encounter_is_in_village", slot_castle_exterior),
                                 (jump_to_scene, ":scene_to_use"),
                               (else_try),
                                 (set_jump_mission,"mt_ship_battle"),
                                 (try_begin),
                                   (val_add,reg10,reg11),
                                   (gt,reg10,30),
                                   (jump_to_scene, "scn_sea_land"),
                                 (else_try),
                                   (jump_to_scene, "scn_sea_land"),
                                 (end_try),
                               (try_end),
                               (assign, "$g_next_menu", "mnu_simple_encounter"),
                               (jump_to_menu, "mnu_battle_debrief"),
                               (change_screen_mission),
                               ]),

И строки меню join_attack этими:

Quote
("join_attack",[
#          (neq, "$encountered_party_hostile", 0),
         (neg|troop_is_wounded, "trp_player"),
##          (store_troop_health,reg(5),"trp_player"),
##          (ge,reg(5),20),
(party_get_current_terrain,":terrain","p_main_party"),
         (neq,":terrain",rt_steppe),
         ],
                           "Charge the enemy.",[
                               (assign, "$g_battle_result", 0),
                               (call_script, "script_calculate_renown_value"),
                               (call_script, "script_calculate_battle_advantage"),
                               (set_battle_advantage, reg0),
                               (set_party_battle_mode),
                               (set_jump_mission,"mt_lead_charge"),
                               (call_script, "script_setup_random_scene"),
                               (assign, "$g_next_menu", "mnu_join_battle"),
                               (jump_to_menu, "mnu_battle_debrief"),
                               (change_screen_mission),
                               ]),

     ("join_attack",[
#          (neq, "$encountered_party_hostile", 0),
         (neg|troop_is_wounded, "trp_player"),
##          (store_troop_health,reg(5),"trp_player"),
##          (ge,reg(5),20),
(party_get_current_terrain,":terrain","p_main_party"),
         (eq,":terrain",rt_steppe),
         ],
                           "Engage the enemy.",[
                               (assign, "$g_battle_result", 0),
                               (call_script, "script_calculate_renown_value"),
                               (call_script, "script_calculate_battle_advantage"),
                               (set_battle_advantage, reg0),
                               (set_party_battle_mode),
                               (set_jump_mission,"mt_ship_battle"),
                               (call_script, "script_setup_random_scene"),
                               (assign, "$g_next_menu", "mnu_join_battle"),
                               (jump_to_menu, "mnu_battle_debrief"),
                                 (try_begin),
                                   (val_add,reg10,reg11),
                                   (gt,reg10,30),
                                   (jump_to_scene, "scn_sea_b"),
                                 (else_try),
                                   (jump_to_scene, "scn_sea_b"),
                                 (end_try),
                               (change_screen_mission),
                               ]),

Потом в module_mission_templates пишем:


Code: [Select]
#################################
#SEA BATTLE MISSION TEMPLATE
#################################
  (
    "ship_battle",mtf_battle_mode,-1,
    "You close in and board the enemy ships",
    [(0,mtef_attackers|mtef_team_1,af_override_horse,aif_start_alarmed,4,[]),
    (1,mtef_attackers|mtef_team_1,af_override_horse,aif_start_alarmed,4,[]),
    (2,mtef_attackers|mtef_team_1,af_override_horse,aif_start_alarmed,4,[]),
    (10,mtef_defenders|mtef_team_0,af_override_horse,aif_start_alarmed,4,[]),
    (11,mtef_defenders|mtef_team_0,af_override_horse,aif_start_alarmed,4,[]),
    (12,mtef_defenders|mtef_team_0,af_override_horse,aif_start_alarmed,4,[]),
     ],
    [
      (ti_on_agent_spawn, 0, 0, [],
       [
         (store_trigger_param_1, ":agent_no"),
         (call_script, "script_agent_reassign_team", ":agent_no"),
         ]),
           

      common_battle_tab_press,

      (ti_question_answered, 0, 0, [],
       [(store_trigger_param_1,":answer"),
        (eq,":answer",0),
        (assign, "$pin_player_fallen", 0),
        (try_begin),
          (store_mission_timer_a, ":elapsed_time"),
          (gt, ":elapsed_time", 20),
          (str_store_string, s5, "str_retreat"),
          (call_script, "script_simulate_retreat", 10, 20),
        (try_end),
        (call_script, "script_count_mission_casualties_from_agents"),
        (finish_mission,0),]),

      (ti_before_mission_start, 0, 0, [],
       [
         (team_set_relation, 0, 2, 1),
         (team_set_relation, 1, 3, 1),
         (call_script, "script_place_player_banner_near_inventory_bms"),
         ]),
     
      (0, 0, ti_once, [], [(assign,"$battle_won",0),
                           (assign,"$defender_reinforcement_stage",0),
                           (assign,"$attacker_reinforcement_stage",0),
                           (assign,"$g_presentation_battle_active", 0),
                           (call_script, "script_place_player_banner_near_inventory"),
                           (call_script, "script_combat_music_set_situation_with_culture"),
                           ]),

      common_music_situation_update,
      common_battle_check_friendly_kills,

      (1, 0, 5, [(lt,"$defender_reinforcement_stage",2),
                 (store_mission_timer_a,":mission_time"),
                 (ge,":mission_time",10),
                 (store_normalized_team_count,":num_defenders", 0),
                 (lt,":num_defenders",6),
#                 (assign, reg2, ":num_defenders"),
#                 (display_message,"@num_defenders = {reg2}")
                 ],
           [(add_reinforcements_to_entry,0,7),(val_add,"$defender_reinforcement_stage",1)]),
     
      (1, 0, 5, [(lt,"$attacker_reinforcement_stage",2),
                 (store_mission_timer_a,":mission_time"),
                 (ge,":mission_time",10),
                 (store_normalized_team_count,":num_attackers", 1),
                 (lt,":num_attackers",6),
#                 (assign, reg2, ":num_attackers"),
#                 (display_message,"@num_attackers = {reg2}")
                 ],
           [(add_reinforcements_to_entry,3,7),(val_add,"$attacker_reinforcement_stage",1)]),
     
      common_battle_check_victory_condition,
      common_battle_victory_display,

      (1, 4, ti_once, [(main_hero_fallen)],
          [
              (assign, "$pin_player_fallen", 1),
              (str_store_string, s5, "str_retreat"),
              (call_script, "script_simulate_retreat", 10, 20),
              (assign, "$g_battle_result", -1),
              (set_mission_result,-1),
              (call_script, "script_count_mission_casualties_from_agents"),
              (finish_mission,0)]),
      ]),


А в module_triggers:

Quote
(0.1, 0, 0, [(party_get_current_terrain,":terrain","p_main_party"),
      (eq,":terrain",rt_steppe),],
   [(party_set_icon,"p_main_party", "icon_ship"),]),
 

    (0.1, 0, 0, [(party_get_current_terrain,":terrain","p_main_party"),
      (neq,":terrain",rt_steppe),],
   [(party_set_icon,"p_main_party", "icon_player"),]),
 
 (0.1, 0, 0.0, [],
[(try_for_parties, ":cur_party"),
   (party_get_current_terrain, ":terrain", ":cur_party"),
   (eq, ":terrain", rt_steppe),
  (party_get_template_id, ":cur_template", ":cur_party"),
 (this_or_next|eq, ":cur_template", "pt_kingdom_hero_party"),
 (this_or_next|eq, ":cur_template", "pt_kingdom_caravan_party"),
 (this_or_next|eq, ":cur_template", "pt_manhunters"),
 (this_or_next|eq, ":cur_template", "pt_village_farmers"),
 (this_or_next|eq, ":cur_template", "pt_deserters"),
 (this_or_next|eq, ":cur_template", "pt_looters"),
 (this_or_next|eq, ":cur_template", "pt_forest_bandits"),
 (this_or_next|eq, ":cur_template", "pt_steppe_bandits"),
 (this_or_next|eq, ":cur_template", "pt_mountain_bandits"),
 (eq, ":cur_template", "pt_sea_raiders"),
   (party_set_icon, ":cur_party", "icon_ship"),
 (else_try),
   (neq,":terrain",rt_steppe),
   (party_get_template_id, ":cur_template", ":cur_party"),
   (eq, ":cur_template", "pt_kingdom_hero_party"),
 (party_set_icon,":cur_party","icon_flagbearer_a"),
 (else_try),
 (eq, ":cur_template", "pt_kingdom_caravan_party"),
 (party_set_icon,":cur_party","icon_mule"),
 (else_try),
 (eq, ":cur_template", "pt_deserters"),
 (party_set_icon,":cur_party","icon_vaegir_knight"),
 (else_try),
 (eq, ":cur_template", "pt_manhunters"),
 (party_set_icon,":cur_party","icon_gray_knight"),
 (else_try),
  (eq, ":cur_template", "pt_village_farmers"),
 (party_set_icon,":cur_party","icon_peasant"),
 (else_try),
  (this_or_next|eq, ":cur_template", "pt_looters"),
 (this_or_next|eq, ":cur_template", "pt_forest_bandits"),
 (this_or_next|eq, ":cur_template", "pt_steppe_bandits"),
 (this_or_next|eq, ":cur_template", "pt_mountain_bandits"),
 (eq, ":cur_template", "pt_sea_raiders"),
 (party_set_icon,":cur_party","icon_axeman"),
 (else_try),
 (eq, ":cur_template", "pt_cattle_herd"),
 (party_set_icon,":cur_party","icon_cattle"),
 (try_end),]),

Ну вот и всё.

Добавлено: [time]Вск 02 Авг 2009 07:03:53[/time]
Сам я этого не делал, модулька отказывается пахать. А вот мод с уже сделанным судоходством -- Age of Mashinery. Кстати, весьма неплохой модуль.
« Последнее редактирование: 13 Марта, 2015, 12:34 от Vanok »
  • Ник в M&B: Fess
  • Сообщений: 2310
    • Просмотр профиля
0
« Ответ #1 : 15 Ноября, 2009, 11:32 »
Будьте добры, напишите пжлста, какие текстовые файлы в моде меняются, при добавлении через модульку этих вещей, как я понимаю scene_props и еще какие-то? Или эти изменения затрагивают массу различных текстовых файлов в игре?
Если бы знать, какие файлы изменятся, я бы мог добавить это в свой мод.
  • Фракция: Вегиры
Жестокость — это черта характера добрых людей, она возникает, когда об твою доброту начинают вытирать ноги...
  • Сообщений: 202
    • Просмотр профиля
0
« Ответ #2 : 03 Декабря, 2009, 15:47 »
Мой тебе совет - посмотри исходники Fire Arrow последней версии. Там намного лучше устроено мореплавание
  • Ник в M&B: Fess
  • Сообщений: 101
    • Просмотр профиля
0
« Ответ #3 : 16 Января, 2011, 11:07 »
А на warband пойдет?
  • Сообщений: 14
    • Просмотр профиля
Пожалуйста, перезалей ссылку, пожалуйста.
  • Сообщений: 25781
  • За победу в конкурсе "Знамя кальрадийца" И создали они сайт... За регистрацию на форуме не позже сентября 2008 года
  • Сервер Discord
    • Просмотр профиля
    • Всадники Кальрадии
  • Ник в M&B: [RUSMNB]Vanok
  • Фракция: Вегиры
И помните: "Хватит набивать посты" (NightHawkreal)
  • Сообщений: 14
    • Просмотр профиля
Громадное, огромное тебе спасибо. Я уже думал что мне никто не поможет, большущее тебе спасибо 100 пальцов вверх :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup:
  • Сообщений: 10
    • Просмотр профиля
не понял куда все это пихать((((((
  • Фракция: Родоки
  • Сообщений: 2
    • Просмотр профиля
0
« Ответ #8 : 07 Февраля, 2021, 22:54 »
Может перезальёте его уже? гайд очень старый, да и сделан непонятно для новичка, опытному модеру запилить новую инструкцию будет как нечего делать , а новичкам полезно :D
  • Фракция: Наемники

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC