骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[功能与代码] 给村庄防掠夺和自动招募民兵(py代码)

[复制链接]

25

主题

184

回帖

188

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1442
精华
0
互助
25
荣誉
0
贡献
0
魅力
196
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
发表于 2024-3-28 03:45:17 | 显示全部楼层 |阅读模式
本帖最后由 快乐风猫 于 2024-4-6 02:40 编辑

总会有某些叼M领主带着1个或者几十个兵天天来洗劫村庄,为了防止这些东西刷屏,加一点东西让村庄不那么单调,有一点存在感


还有一个最简单的办法就是 用下面这个来直接判断是否烧村 ,就两句代码,但是这个敌军力量数值我不知道以什么为准

  1. ##########
  2. (try_begin),
  3.             (call_script, "script_duiwurenshu", ":selected_village"),#获取村子人数
  4.             (assign,":village_renshu",reg0),
  5.             (store_mul,":renshu",":village_renshu",2),
  6.             (call_script, "script_duiwurenshu", ":party_no"),#获取领主部队人数
  7.             (assign,":party_renshu",reg0),
  8.             (ge,":party_renshu",":renshu"),#领主部队人数大于村子驻军2倍人数
  9.             (call_script, "script_party_set_ai_state", ":party_no", spai_raiding_around_center, ":selected_village"),
  10. (else_try),
  11.             (party_get_slot, ":exact_enemy_strength", ":selected_village", slot_center_sortie_enemy_strength),
  12.             (ge,":exact_enemy_strength",500),
  13.             (call_script, "script_party_set_ai_state", ":party_no", spai_raiding_around_center, ":selected_village"),
  14. (try_end),            
  15. ##########
复制代码


继续script里搜索(call_script, "script_party_set_ai_state", ":party_no", spai_raiding_around_center, ":selected_village"),   在上面添加
  1. ##########
  2.             (call_script, "script_duiwurenshu", ":selected_village"),#获取村子人数
  3.             (assign,":village_renshu",reg0),
  4.             (call_script, "script_duiwurenshu", ":party_no"),#获取领主部队人数
  5.             (assign,":party_renshu",reg0),
  6.             (ge,":party_renshu",":village_renshu"),#领主部队人数大于村子驻军人数
  7. ##########
复制代码


然后给村子加一个触发器让它自动招募民兵来壮大驻军,这里是设置一个民兵20第纳尔并且村子有钱的情况下才招募,原版村子并没有收入,给村子加收入的可以看我其他的贴子,里面有增加收入的办法
  1. #村庄自动招募民兵
  2.   (72,
  3.    [
  4.      (try_for_range, ":village_no", villages_begin, villages_end),
  5.      (party_get_slot, ":village_wealth", ":village_no", slot_town_wealth),
  6.      (store_faction_of_party, ":village_faction", ":village_no"),
  7.      (faction_get_slot, ":culture", ":village_faction", slot_faction_culture),
  8.      (faction_get_slot, ":troop", ":culture",  slot_faction_tier_2_troop),
  9.      (party_get_slot, ":prosperity", ":village_no", slot_town_prosperity),
  10.      (val_div, ":prosperity", 20),
  11.      
  12.      (store_random_in_range, ":jilv", 1, 101),
  13.      
  14.     (try_begin),
  15.      (eq, ":prosperity", 0),
  16.      (store_random_in_range, ":renshu", 1, 10),
  17.      (le, ":jilv", 10),#非常贫穷的村子10%几率
  18.      (store_mul,":gongzi",":renshu",20),
  19.      (gt, ":village_wealth", ":gongzi"),
  20.      (party_add_members,":village_no",":troop",":renshu"),
  21.     (else_try),
  22.      (eq, ":prosperity", 1),
  23.      (store_random_in_range, ":renshu", 1, 10),
  24.      (le, ":jilv", 20),#贫穷的村子20%几率
  25.      (store_mul,":gongzi",":renshu",20),
  26.      (gt, ":village_wealth", ":gongzi"),
  27.      (party_add_members,":village_no",":troop",":renshu"),
  28.     (else_try),
  29.      (eq, ":prosperity", 2),
  30.      (store_random_in_range, ":renshu", 1, 10),
  31.      (le, ":jilv", 30),#一般的村子30%几率
  32.      (store_mul,":gongzi",":renshu",20),
  33.      (gt, ":village_wealth", ":gongzi"),
  34.      (party_add_members,":village_no",":troop",":renshu"),
  35.     (else_try),
  36.      (eq, ":prosperity", 3),
  37.      (store_random_in_range, ":renshu", 1, 10),
  38.      (le, ":jilv", 40),#富有的村子40%几率
  39.      (store_mul,":gongzi",":renshu",20),
  40.      (gt, ":village_wealth", ":gongzi"),
  41.      (party_add_members,":village_no",":troop",":renshu"),
  42.     (else_try),
  43.      (gt, ":prosperity", 3),
  44.      (store_random_in_range, ":renshu", 1, 10),
  45.      (le, ":jilv", 50),#非常富有的村子50%几率
  46.      (store_mul,":gongzi",":renshu",20),
  47.      (gt, ":village_wealth", ":gongzi"),
  48.      (party_add_members,":village_no",":troop",":renshu"),
  49.     (try_end),
  50.    
  51.      (val_sub,":village_wealth",":gongzi"),
  52.      (party_set_slot, ":village_no", slot_town_wealth, ":village_wealth"),
  53.     (try_end),
  54.    
  55.    ]),
复制代码


给村庄新加一个管理驻军的选项,在game_menus里面搜索village_wait  ,在上面新加
  1. ("village_station_troops",
  2.       [         
  3.                 (party_get_slot, ":town_lord", "$current_town", slot_town_lord),
  4.             (str_clear, s10),
  5.                   
  6.             (assign, ":player_can_draw_from_garrison", 0),
  7.                 (try_begin), #option 1 - player is town lord
  8.                   (eq, ":town_lord", "trp_player"),
  9.                   (assign, ":player_can_draw_from_garrison", 1),
  10.                 (else_try), #option 2 - town is unassigned and part of the player faction
  11.                   (store_faction_of_party, ":faction", "$g_encountered_party"),
  12.                   (eq, ":faction", "fac_player_supporters_faction"),                        
  13.                   (neg|party_slot_ge, "$g_encountered_party", slot_town_lord, active_npcs_begin), #ie, zero or -1

  14.                   (assign, ":player_can_draw_from_garrison", 1),
  15.                 (else_try), #option 3 - town was captured by player
  16.                   (lt, ":town_lord", 0), #ie, unassigned
  17.                   (store_faction_of_party, ":castle_faction", "$g_encountered_party"),
  18.                   (eq, "$players_kingdom", ":castle_faction"),
  19.                   
  20.                   (eq, "$g_encountered_party", "$g_castle_requested_by_player"),

  21.                   (str_store_string, s10, "str_retrieve_garrison_warning"),
  22.                   (assign, ":player_can_draw_from_garrison", 1),
  23.                 (else_try),
  24.                   (lt, ":town_lord", 0), #ie, unassigned
  25.                   (store_faction_of_party, ":castle_faction", "$g_encountered_party"),
  26.                   (eq, "$players_kingdom", ":castle_faction"),
  27.                   
  28.                   (store_party_size_wo_prisoners, ":party_size", "$g_encountered_party"),
  29.                   (eq, ":party_size", 0),
  30.                         
  31.                   (str_store_string, s10, "str_retrieve_garrison_warning"),
  32.                   (assign, ":player_can_draw_from_garrison", 1),
  33.                 (else_try),
  34.                   (party_slot_ge, "$g_encountered_party", slot_town_lord, active_npcs_begin),
  35.                   (store_faction_of_party, ":castle_faction", "$g_encountered_party"),
  36.                   (eq, "$players_kingdom", ":castle_faction"),
  37.                   
  38.                   (troop_slot_eq, "trp_player", slot_troop_spouse, ":town_lord"),                    

  39.                   (assign, ":player_can_draw_from_garrison", 1),
  40.                 (try_end),

  41.         (eq, ":player_can_draw_from_garrison", 1),
  42.       ],
  43.       "Manage the garrison {s10}",
  44.       [
  45.         (change_screen_exchange_members,1),
  46.       ]),
复制代码


最后在module_parties里把pf_village改掉来显示村庄驻军
  1. pf_village = pf_is_static|pf_always_visible|pf_label_small
复制代码


完事儿后领主掠夺村子时必须兵力大于等于村庄驻军才能掠夺了,对所有NPC领主都生效,但不限制玩家

终于摆脱了村子稍微富有一点就被烧掉非常贫穷了


评分

参与人数 2第纳尔 +30 互助 +2 魅力 +30 收起 理由
幼稚园殺手 + 10 + 1 + 10 乐于助人!
Aomine Daiki + 20 + 1 + 20 您的帖子很有价值!

查看全部评分

鲜花鸡蛋

幼稚园殺手  在2024-4-16 12:34  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

0

主题

6

回帖

2

积分

平民

Rank: 1

UID
3641585
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-4-3
鲜花(0) 鸡蛋(0)
发表于 2024-4-3 20:25:37 | 显示全部楼层
给村子加一个触发器  是怎么搞得?

25

主题

184

回帖

188

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1442
精华
0
互助
25
荣誉
0
贡献
0
魅力
196
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
 楼主| 发表于 2024-4-3 21:19:56 | 显示全部楼层
12457896 发表于 2024-4-3 20:25
给村子加一个触发器  是怎么搞得?

夹在st简单地图触发器里

0

主题

6

回帖

2

积分

平民

Rank: 1

UID
3641585
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-4-3
鲜花(0) 鸡蛋(0)
发表于 2024-4-5 22:53:54 | 显示全部楼层
我认为你做的很有意思,我觉得战团一直赚钱、招兵买马、攻城掠地一统天下的过程过于单调。我希望能够继续拓展下去,加强村庄的存在感。村子不容易烧以后,我们可以通过许多方式使村庄更加富裕,逐渐发展壮大,成为一座城市。为村庄建设更多设施,发展村庄生产力,随着村庄规模变大,吸引商队不断来往,商人进驻,村夫也能穿华服,还可以漫步街道,走进自己出钱出力的各种设施(我在外面出生入死在村里享受荣誉鲜花休息什么的不过分吧),像老滚5那样,路人npc还会亲切地问候我们这个村子的建设者(顺便一提战团走路、上楼梯和跳跃减速真的难受,镇长不来接见还不知道躲哪个角落)。为村长增加更多任务,加速村子发展进程,像护送商队任务真垃圾,叫手下跑腿送不行吗?我一个领主还亲自护送十几人小商队。村子强盗打劫也是,怎么敢的,我身后的军团呢?抓的低级俘虏卖不了几个钱没什么用可以建设村子,尤其那些喜欢烧村,狠狠地当牛做马。征服世界以后没事干还能可以卸甲归田种地养老。文字水平比较差,写的比较乱。

0

主题

6

回帖

2

积分

平民

Rank: 1

UID
3641585
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-4-3
鲜花(0) 鸡蛋(0)
发表于 2024-4-5 23:32:38 | 显示全部楼层
村子郊外也可以打猎,骑马与砍杀领主有印象的娱乐好像就开宴会、打竞技场,打猎怎么能没有呢,而且兽皮肉怎么产出的,骑马与打猎,启动!

0

主题

6

回帖

2

积分

平民

Rank: 1

UID
3641585
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-4-3
鲜花(0) 鸡蛋(0)
发表于 2024-4-5 23:48:07 | 显示全部楼层
我觉得这样也可以成为一种新的自立方式,最近领主发现附近村庄经常出没一伙人,奇怪的是这伙人不仅不烧村,还帮忙建设它,领主怀疑这伙人有所图谋,但看着财报上村子税金不断上涨,就没当回事,谁还跟钱过不去呢?直到有一天,村庄传来独立的消息,税也收不上来了,这时领主亲自带兵上门,不料村里冲出大批骑兵,轻易冲烂了领主军队,随后势如破竹、遍地开花。谁也没有想到,一场世纪风暴将会从一个小村庄开始席卷整个卡拉迪亚大陆。我已经想好怎么玩了,st简单地图触发器又是什么,昨天才学习魔球,st是指文件里的simple_triggers.txt文件吗?

25

主题

184

回帖

188

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1442
精华
0
互助
25
荣誉
0
贡献
0
魅力
196
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
 楼主| 发表于 2024-4-6 01:34:39 | 显示全部楼层
12457896 发表于 2024-4-5 23:48
我觉得这样也可以成为一种新的自立方式,最近领主发现附近村庄经常出没一伙人,奇怪的是这伙人不仅不烧村, ...

你需要源码文件才能使用PY编译代码,你说的这些很有想法,我正在慢慢的实现 把村庄和所有中心利用起来,全部都需要交税和通商,俘虏甩到村子或城堡里加快建筑速度等等,太多了

0

主题

6

回帖

7

积分

平民

Rank: 1

UID
3377596
第纳尔
282
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2022-7-2
鲜花(1) 鸡蛋(0)
发表于 2024-4-13 15:37:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-5-2 15:52 , Processed in 0.122509 second(s), 23 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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