加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

骑马与砍杀之水域航行(海战)的修改

(2010-10-05 15:02:47)
标签:

骑马与砍杀

水域航行

(海战)

修改

游戏

分类: 骑马与砍杀图文攻略教程
1 有些码没有指定放置位置 比如
Now to get the ships officially in game just add this to module_scene_props:
下面是场景物品部分    module system\module_scene_props.py 里加上:
#################################################
#########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
#################################################
That covers the ship props themselves, now let's do the fight scenes themselves. Open up module_scenes and add:
这样就有了船这个场景物品,现在来设定战斗场景   module system\module_scenes.py 里加上
  ("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",
   [],[]),   
And finally, to help with some bugfinding, add this to module_parties:
最后, 为方便寻找bug, 在module system\module_parties.py  加上这个
("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),

这个没有说明是不是直接加在各py的最后?

2关于覆盖
Now with your new "water" terrain ready to go, you can open up your module_game_menus and replace the "encounter_attack" menu with this:
现在"water"贴图已经准备好了,你可以打开module_game_menus.py,找到"encounter_attack"这一段,然后将下面的代码覆盖你的原文。

("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),
                               ]),


The red text is just the name of the terrain that I used for my water, so just replace it with whatever you're using for yours.
Then do the same for the join_attack menu:
红字部分是我给我的"水域"用的地形,把它替换为你自己的所选的那一种。
用同样的方式处理"join_attack"菜单中的内容。

("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_game_menus.py,找到"encounter_attack"这一段
时 发现有
[
      ("encounter_attack",
      [
        (eq, "$encountered_party_friendly", 0),
        (neg|troop_is_wounded, "trp_player"),
      ],
      "Charge the enemy.",
      [
        (assign, "$g_battle_result", 0),
        (assign, "$g_engaged_enemy", 1),
        
        (party_get_template_id, ":encountered_party_template", "$g_encountered_party"),               
        (try_begin),
                  (eq, ":encountered_party_template", "pt_village_farmers"),
                  (unlock_achievement, ACHIEVEMENT_HELP_HELP_IM_BEING_REPRESSED),
                (try_end),         
        
        (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),
          (assign, "$g_village_raid_evil", 0),
          (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),
          (assign, "$g_village_raid_evil", 0),
          (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_order_attack",
      [
        (eq, "$encountered_party_friendly", 0),
        (call_script, "script_party_count_members_with_full_health", "p_main_party"),(ge, reg0, 4),
      ],
      "Order your troops to attack without you.",
      [
        (jump_to_menu, "mnu_order_attack_begin"),
        #(simulate_battle,3),
      ]),
      
      ("encounter_leave",[
          (eq,"$cant_leave_encounter", 0),
          ],"Leave.",[

###NPC companion changes begin
              (try_begin),
                  (eq, "$enco...

怎么覆盖,是只要覆盖红字还是红蓝部分都要覆盖
同样的还有原文
[
      ("join_attack",
      [
        (neg|troop_is_wounded, "trp_player"),
      ],
      "Charge the enemy.",
      [
        (assign, "$g_joined_battle_to_help", 1),
        (party_set_next_battle_simulation_time, "$g_encountered_party", -1),
        (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_order_attack",
      [
        (call_script, "script_party_count_members_with_full_health", "p_main_party"),
        (ge, reg0, 3),
      ],
      "Order your troops to attack with your allies while you stay back.",
      [
        (assign, "$g_joined_battle_to_help", 1),
        (party_set_next_battle_simulation_time, "$g_encountered_party", -1),
        (jump_to_menu,"mnu_join_order_attack"),
      ]),
      
      ("join_leave",[],"Leave.",
      [
        (try_begin),
           (neg|troop_is_wounded, "trp_player"),
           (call_script, "script_objectionable_action", tmt_aristocratic, "str_flee_battle"),
           (party_stack_get_troop_id, ":enemy_leader","$g_enemy_party",0),
                   (is_between, ":enemy_leader", active_npcs_begin, active_npcs_end),
           (call_script, "script_add_log_entry", logent_player_retreated_from_lord, "trp_player",  -1, ":enemy_leader", -1),
        (try_end),
        
        (leave_encounter),(change_screen_return)]),
      ]),

  (
    "join_order_attack",mnf_disable_all_keys,
    "{s4}^^Your casualties: {s8}^^Allies' casualties: {s9}^^Enemy casualties: {s10}",
    "none",

这些是都用帖子里的码覆盖吗

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有