骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 5568|回复: 8

[功能与代码] 做了一个募兵功能

[复制链接]

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
发表于 2020-4-10 00:55:58 | 显示全部楼层 |阅读模式
本帖最后由 wxj2057605650 于 2020-4-10 11:29 编辑

声明一下,以前做的那个村庄招兵功能漏洞太多
http://bbs.mountblade.com.cn/thread-2051722-1-1.html


首先,感谢一下模型区版主SIX大佬的战国器具模型:http://bbs.mountblade.com.cn/thread-535326-1-1.html
首先,感谢一下模型区版主SIX大佬的战国器具模型:http://bbs.mountblade.com.cn/thread-535326-1-1.html
首先,感谢一下模型区版主SIX大佬的战国器具模型:http://bbs.mountblade.com.cn/thread-535326-1-1.html

重要的事说三遍
现在说一下新做的这个功能,当玩家拥有募兵令时,可以在村庄进行强征士兵,然后15个该阵营的最低兵种加入玩家队伍,然后会进入与村民战斗场景,胜利后,你与该村关系降低,与该村领主关系也降低。。。。
募兵令可以在城镇和村庄的商店买到,也可以在战斗后得到
每个募兵令只可以强征一次兵

第一步
首先打开 module_game_menu.py,然后搜索
village_center
找到这一段,然后添加在 #村庄招兵 开始到 #村庄结束之间的部分
  1. ("village_center",[(neg|party_slot_eq, "$current_town", slot_village_state, svs_looted),
  2.                          (neg|party_slot_eq, "$current_town", slot_village_state, svs_being_raided),
  3.                          (neg|party_slot_ge, "$current_town", slot_village_infested_by_bandits, 1),]
  4.        ,"Go to the village center.",
  5.        [
  6.          (try_begin),
  7.            (call_script, "script_cf_enter_center_location_bandit_check"),
  8.          (else_try),
  9.            (party_get_slot, ":village_scene", "$current_town", slot_castle_exterior),
  10.            (modify_visitors_at_site,":village_scene"),
  11.            (reset_visitors),
  12.            (party_get_slot, ":village_elder_troop", "$current_town",slot_town_elder),
  13.            (set_visitor, 11, ":village_elder_troop"),

  14.            (call_script, "script_init_town_walkers"),

  15.            (try_begin),
  16.              (check_quest_active, "qst_hunt_down_fugitive"),
  17.              (neg|is_currently_night),
  18.              (quest_slot_eq, "qst_hunt_down_fugitive", slot_quest_target_center, "$current_town"),
  19.              (neg|check_quest_succeeded, "qst_hunt_down_fugitive"),
  20.              (neg|check_quest_failed, "qst_hunt_down_fugitive"),
  21.              (set_visitor, 45, "trp_fugitive"),
  22.            (try_end),

  23.            (set_jump_mission,"mt_village_center"),
  24.            (jump_to_scene,":village_scene"),
  25.            (change_screen_mission),
  26.          (try_end),
  27.         ],"Door to the village center."),
  28.         
  29.         
  30.          
  31.         
  32.       #村庄招兵开始  
  33.         
  34.         ("cunzhuangzhengbing",  [                     
  35.                       (party_get_slot,":wenhua","$g_encountered_party",slot_center_culture),#获取当前村庄的国家文化
  36.                        (faction_get_slot,reg51,":wenhua",slot_faction_tier_1_troop),#将该阵营文化第一级兵种存入reg51
  37.                        (str_store_troop_name,s30,reg51),#获取兵种名字   
  38.                         (player_has_item,"itm_mubingling"),#判断玩家是否拥有募兵令
  39.                    (party_get_free_companions_capacity, ":free_capacity", "p_main_party"),#获取部队空余位置
  40.                    (ge,":free_capacity",15)
  41.                   ],
  42.    "qiangmaishibingshibing",           
  43.       
  44.       [           
  45.         (party_add_members,"p_main_party",reg51,15),#reg51加入部队
  46.          (party_slot_ge, "$current_town"),  
  47.          (call_script, "script_change_player_relation_with_center", "$g_encountered_party", -5),#调用降低村庄关系脚本
  48.         
  49.         (try_begin),
  50.             (party_get_slot, ":town_lord", "$current_town", slot_town_lord),#获取当前村庄领主
  51.             (gt, ":town_lord", 0),
  52.             (call_script, "script_change_player_relation_with_troop", ":town_lord", -5),#调用降低领主关系脚本
  53.           (try_end),
  54.          
  55.           (call_script, "script_calculate_battle_advantage"),#计算战斗优势脚本
  56.           (set_battle_advantage, reg0),#战斗优势存入reg0
  57.           (set_party_battle_mode),#进入战斗状态
  58.           (assign, "$g_battle_result", 0),
  59.           (assign, "$g_village_raid_evil", 1),
  60.           (set_jump_mission,"mt_village_raid"),#设置跳转触发器
  61.           (party_get_slot, ":scene_to_use", "$current_town", slot_castle_exterior),
  62.           (jump_to_scene, ":scene_to_use"),
  63.           (assign, "$g_next_menu", "mnu_village_start_attack"),
  64.           (call_script, "script_diplomacy_party_attacks_neutral", "p_main_party", "$g_encountered_party"),#设置国家开战
  65.           (call_script, "script_objectionable_action", tmt_humanitarian, "str_loot_village"),
  66.           (jump_to_menu, "mnu_battle_debrief"),
  67.           (change_screen_mission),#切换至开战界面
  68.           (troop_remove_item,"trp_player","itm_mubingling"),#失去募兵令
  69.           ],
  70.         "Door to the village center."),
  71.    
  72.      #村庄招兵结束   
  73.         
复制代码

第二步
打开module_item.py
添加
  1. ["mubingling","Pottery", [("zhanguomingqi_m",0)], itp_merchandise|itp_type_goods|itp_always_loot, 0, 500,weight(10)|abundance(230),imodbits_none],#募兵令
复制代码


第三步
进行编译

第四步
把募兵令模型导入mod(SIX大佬做的)
先把模型包里的brf文件放在mod的Resource文件夹
然后把模型包的DDS文件放入mod的Texture文件夹
在mod的module.txt文件最下方添加
load_module_resource = zhanguomingqi

第五步
汉化
打开mod的languages,然后打开cns
用记事本打开game_menus
搜索 mno_village_buy_food|向 村 民 购 买 给 养 。
然后在这个下面添加 mno_cunzhuangzhengbing|强 征 士 兵  。
然后保存
再用记事本打开item_kinds
在最下面
itm_items_end|Items End
itm_items_end_pl|Items End
的上方添加
itm_mubingling|募 兵 令
itm_mubingling_pl|募 兵 令
保存


完成



募兵令模型.rar

4.08 MB, 下载次数: 64

评分

参与人数 1第纳尔 +20 互助 +1 魅力 +20 收起 理由
Aomine Daiki + 20 + 1 + 20 文章不错,继续努力!

查看全部评分

鲜花鸡蛋

乌木护手骑士团  在2020-4-18 13:06  送朵鲜花  并说:
乌木护手骑士团  在2020-4-18 13:05  送朵鲜花  并说:支持一下我非常同意你的观点,送朵鲜花鼓励一下

52

主题

443

回帖

269

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
2743526
第纳尔
2426
精华
0
互助
18
荣誉
3
贡献
10
魅力
252
注册时间
2016-5-3

霸主正版勋章

鲜花(196) 鸡蛋(0)
发表于 2020-4-10 09:46:30 | 显示全部楼层
征兵代码可以加上这个函数来判断玩家部队的空余名额,不然可能会超出上限
party_get_free_companions_capacity,如果不加这个的话,而玩家空余不足15人,就会超过上限了

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
 楼主| 发表于 2020-4-10 11:22:46 | 显示全部楼层
黑脸小白 发表于 2020-4-10 09:46
征兵代码可以加上这个函数来判断玩家部队的空余名额,不然可能会超出上限
party_get_free_companions_capa ...

好的,谢谢

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
 楼主| 发表于 2020-4-10 11:29:31 | 显示全部楼层
已完善

1

主题

6

回帖

2

积分

平民

Rank: 1

UID
3170960
第纳尔
4
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-4-17
鲜花(0) 鸡蛋(0)
发表于 2020-4-18 12:22:54 | 显示全部楼层
可以可以,我想用了

4

主题

50

回帖

16

积分

随仆

Rank: 1

UID
2723701
第纳尔
287
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2016-2-9
鲜花(1) 鸡蛋(0)
发表于 2022-8-18 03:40:59 | 显示全部楼层
请问怎么改成城市的,并且不用战斗,并且招募的是该国最低的正规军?

32

主题

175

回帖

62

积分

扈从

Rank: 2Rank: 2

UID
3256923
第纳尔
746
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2021-7-30
鲜花(5) 鸡蛋(0)
发表于 2022-9-5 05:03:11 来自手机 | 显示全部楼层
请问一下  这个是可以跨阵营招兵吗  来自: Android客户端

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
 楼主| 发表于 2022-9-8 14:29:42 | 显示全部楼层
十万个为什么 发表于 2022-9-5 05:03
请问一下  这个是可以跨阵营招兵吗

是的,招募村庄所属阵营部队

32

主题

175

回帖

62

积分

扈从

Rank: 2Rank: 2

UID
3256923
第纳尔
746
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2021-7-30
鲜花(5) 鸡蛋(0)
发表于 2022-9-10 04:47:02 来自手机 | 显示全部楼层
wxj2057605650 发表于 2022-9-8 14:29
是的,招募村庄所属阵营部队

我有点搞不懂  村庄不是直接招募吗  为什么还要搞募兵令 来自: Android客户端
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-5-1 23:24 , Processed in 0.135458 second(s), 28 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表