骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[功能与代码] [OSP][战团]玩家自立也加100兵力上限

[复制链接]

42

主题

490

回帖

395

积分

见习骑士

Rank: 3

UID
3398051
第纳尔
1416
精华
0
互助
39
荣誉
4
贡献
10
魅力
300
注册时间
2022-8-13
鲜花(48) 鸡蛋(0)
发表于 2022-10-3 08:32:44 | 显示全部楼层 |阅读模式
本帖最后由 ggfgfgf 于 2023-4-2 12:18 编辑

游戏中,国王都有100兵力上限加成,那么玩家自立也是国王,却没有这个dbuff

其实,兵力上限主要由script.py中两个脚本计算的,分别是:
script_game_get_party_companion_limit

script_party_get_ideal_size

script_party_get_ideal_size计算的是NPC和领主等的兵力上限,其中明显的一段
其中蓝色的是国王加兵的代码
      
        #default limit is 10 for kingdom lords#领主默认上限为10
        (assign, ":limit", 10),

        #each (leadership level) gives 15 to limit#一级统御升15上限,原来是5,这里我改大了
        (store_skill_level, ":skill", "skl_leadership", ":party_leader"),
        (store_attribute_level, ":charisma", ":party_leader", ca_charisma),
        (val_mul, ":skill", 15),#一级统御升15上限,原来是5,这里我改大了
        (val_add, ":limit", ":skill"),

        #each (charisma level) gives 1 to limit#一点魅力加1上限   
        (val_add, ":limit", ":charisma"),

       #each (25 renown) gives 1 to limit#每25声望加1上限
        (troop_get_slot, ":troop_renown", ":party_leader", slot_troop_renown),
        (store_div, ":renown_bonus", ":troop_renown", 25),#每25声望加1上限
        (val_add, ":limit", ":renown_bonus"),

        #if this party is faction leader it takes additional 100 limit #是国王就加100上限
        (try_begin),
          (faction_slot_eq, ":faction_id", slot_faction_leader, ":party_leader"),
          (val_add, ":limit", 100),

        (try_end),

但是script_game_get_party_companion_limit才是计算玩家兵力上限的,其中并没有这段
当然,添加!
script.py 中找到script_game_get_party_companion_limit

修改为

  #script_game_get_party_companion_limit:
  # This script is called from the game engine when the companion limit is needed for a party.
  # INPUT: arg1 = none
  # OUTPUT: reg0 = companion_limit
  ("game_get_party_companion_limit",
    [
      (assign, ":troop_no", "trp_player"),#设置变量 ":troop_no" 为玩家

      (assign, ":limit", 30),
      (store_skill_level, ":skill", "skl_leadership", ":troop_no"),
      (store_attribute_level, ":charisma", ":troop_no", ca_charisma),
      (val_mul, ":skill", 15),#一级统御加15上限,改了(作乘法操作
      (val_add, ":limit", ":skill"),#修改上限作加法操作
      (val_add, ":limit", ":charisma"),#一点魅力加1上限

      ##新增代码
      (try_begin),
            (faction_slot_eq, "fac_player_supporters_faction", slot_faction_state, sfs_active),
            (val_add, ":limit", 100),
      (try_end),

      ##新增代码

      (troop_get_slot, ":troop_renown", ":troop_no", slot_troop_renown),
      (store_div, ":renown_bonus", ":troop_renown", 25),#每25声望加1上限
      (val_add, ":limit", ":renown_bonus"),

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


注意不要把中文注释添加进去,没有申明UTF-8,编译会报错的
如果你实在想添加中文注释,请你在你需要添加的文件开头第一行添加 #coding=utf-8


OK!完成。

下面是解释:


      (try_begin),
            (faction_slot_eq, "fac_player_supporters_faction", slot_faction_state, sfs_active),
#判断玩家是否自立,fac_player_supporters_faction已启用
            (val_add, ":limit", 100),                                                                                 
#启发自#script_activate_player_faction玩家自立是调用
      (try_end),



      ##which below is second old code,that inabled      #(store_troop_faction, ":faction_id", ":troop_no"),                             #获取玩家阵营 id(编号)
      #(troop_get_slot, ":party_leader", ":faction_id", slot_faction_leader), #获取玩家阵营的国王编号
      #(try_begin),                                                                                      #判断玩家是否为国王
      #      (neq, ":faction_id", "fac_player_faction"),                                   #判断玩家是否没加入任何阵营,也没自立,是初始玩家阵营的国王
      #      (troop_slot_eq, ":troop_no", ":party_leader"),                           #玩家编号是否等于其阵营国王编号
      #      (val_add, ":limit", 100),                                                               #玩家是国王就加100兵力上限
      #(try_end),
                                                                                         #判断玩家是否为国王


##which below is old code
#    (store_troop_faction, ":faction_id", ":troop_no"),                              #获取玩家阵营 id(编号)
#    (faction_get_slot, ":party_leader", ":faction_id", slot_faction_leader), #获取玩家阵营的国王编号
#    (try_begin),#判断玩家是否为国王
#        (neg|faction_slot_eq, ":troop_no","fac_player_faction"),#判断玩家是否没加入任何阵营,也没自立,是初始玩家阵营的国王
#        (faction_slot_eq, ":troop_no", slot_faction_leader, ":party_leader"),#玩家编号是否等于其阵营国王编号
#        (val_add, ":limit", 100),                                                                   #玩家是国王就加100兵力上限
#    (try_end),#判断玩家是否为国王
##old code






评分

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

查看全部评分

鲜花鸡蛋

殇垣  在2023-9-4 17:48  送朵鲜花  并说:感谢分享,我把它运用在 封邑兵临城下里。
幼稚园殺手  在2022-10-5 12:17  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
半世尘埃  在2022-10-3 10:35  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

55

主题

2711

回帖

1755

积分

子爵[版主]

吟游诗人

Rank: 7Rank: 7Rank: 7

UID
3054380
第纳尔
23989
精华
2
互助
57
荣誉
44
贡献
916
魅力
1418
注册时间
2019-1-18

骑砍中文站APP会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章霸主正版勋章剧本设计大奖赛骑友真人秀Ⅷ勋章骑友真人秀Ⅶ勋章骑友真人秀Ⅸ勋章

QQ
鲜花(506) 鸡蛋(2)
发表于 2022-10-3 10:31:13 | 显示全部楼层
很好不错
珍惜 奉献 不负韶华

1

主题

9

回帖

3

积分

平民

Rank: 1

UID
3357621
第纳尔
248
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2022-5-9
鲜花(1) 鸡蛋(0)
发表于 2022-10-3 22:09:40 来自手机 | 显示全部楼层
厉害来自: Android客户端

15

主题

139

回帖

151

积分

见习骑士

Rank: 3

UID
3048044
第纳尔
2026
精华
0
互助
17
荣誉
2
贡献
20
魅力
284
注册时间
2018-12-15
鲜花(30) 鸡蛋(0)
发表于 2023-3-24 22:23:07 | 显示全部楼层
同志,player的faction就是player自己,要用"$players_kingdom"这个全局变量判断才能确定玩家所属的王国

鲜花鸡蛋

ggfgfgf  在2023-4-2 12:16  送朵鲜花  并说:感谢

42

主题

490

回帖

395

积分

见习骑士

Rank: 3

UID
3398051
第纳尔
1416
精华
0
互助
39
荣誉
4
贡献
10
魅力
300
注册时间
2022-8-13
鲜花(48) 鸡蛋(0)
 楼主| 发表于 2023-4-2 12:16:26 | 显示全部楼层
黑暗路西法 发表于 2023-3-24 22:23
同志,player的faction就是player自己,要用"$players_kingdom"这个全局变量判断才能确定玩家所属的王国

非常好的提醒!我之前一直没有意识到代码的问题,因为测试不全面,虽然$players_kingdom"这个全局变量并不能很完美简洁地判断玩家自立,但是还是很感谢您!我已经修改了代码,目前没有发现问题

0

主题

25

回帖

18

积分

随仆

Rank: 1

UID
3319238
第纳尔
585
精华
0
互助
0
荣誉
1
贡献
10
魅力
200
注册时间
2022-1-28
鲜花(9) 鸡蛋(0)
发表于 2023-8-27 22:20:58 | 显示全部楼层
那玩家后来不再做国王了呢?或者如此反复多次?做王,称臣,做王,称臣,做王,称臣,

15

主题

740

回帖

367

积分

子爵[版主]

汉[Han]
联机ID:Han_DongHai

Rank: 7Rank: 7Rank: 7

UID
3033293
第纳尔
10331
精华
0
互助
24
荣誉
2
贡献
360
魅力
184
注册时间
2018-10-3

第十届战团中国联赛征战勋章汉匈决战正版勋章战团正版勋章霸主正版勋章

QQ
鲜花(37) 鸡蛋(0)
发表于 2023-8-27 23:01:12 | 显示全部楼层

42

主题

490

回帖

395

积分

见习骑士

Rank: 3

UID
3398051
第纳尔
1416
精华
0
互助
39
荣誉
4
贡献
10
魅力
300
注册时间
2022-8-13
鲜花(48) 鸡蛋(0)
 楼主| 发表于 2023-8-28 08:58:48 | 显示全部楼层
殇垣 发表于 2023-8-27 22:20
那玩家后来不再做国王了呢?或者如此反复多次?做王,称臣,做王,称臣,做王,称臣, ...

兵力加加减减
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-5-6 19:50 , Processed in 0.123673 second(s), 29 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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