骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 12077|回复: 18

[功能与代码] 领主和城镇士兵自动升级进阶代码

[复制链接]

35

主题

474

回帖

158

积分

见习骑士

Rank: 3

UID
868386
第纳尔
2169
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2012-7-1
鲜花(24) 鸡蛋(0)
发表于 2017-11-27 12:38:52 | 显示全部楼层
1、循环所有部队,你列出了城堡、城镇几种类型,除此之外还有野外部队等其他类型,这样的话,":beishu“就没有被定义,猜测会不会挑红字。
2、(store_random_in_range,":suijibz","trp_swadian_wuyingwuwei","trp_swadian_messenger"),这句话会导致trp_swadian_messenger不在范围之内,不知道是不是你的愿意。
3、最后说一句废话,我习惯语句的格式比较严谨一点,每一层try里面的语句缩进2格,try_end之后,缩进取消,多一层try,多一层,这样比较容易理解语句的逻辑。非专业出身,所以不知道怎么形容,看看就好。

35

主题

474

回帖

158

积分

见习骑士

Rank: 3

UID
868386
第纳尔
2169
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2012-7-1
鲜花(24) 鸡蛋(0)
发表于 2017-11-28 09:19:28 | 显示全部楼层
蒋亚军1990 发表于 2017-11-27 14:33
你是刚学吧,你说的问题都不会出现,第一个就不说了,因为我只想要驻军和领主部队升级,系统只会判断这两 ...

虽然在下不才,但是学习PY也有一段时间了,本想和你讨论一下程序,何必如此咄咄逼人。
1、循环所有部队,我知道你只要驻军和领主部队升级,但是程序不知道,程序还是会循环到其他队伍类型的,我只是建议你完善,比如你可以加一个判断,类型是spt_castle、spt_castle、spt_kingdom_hero_party在执行之后的语句。另外说一句,你写的spt_caravan就我所知是商队不是领主部队,而你最后一个else_try之后把所有包括王国领主部队和农夫部队一起包括在内,我认为这应该不是你原来的想法。
2、第二个问题我的确不知道他是信使,我也只是疑问,如果的确没必要,无视就行了。
3、第三个就个人习惯了。

35

主题

474

回帖

158

积分

见习骑士

Rank: 3

UID
868386
第纳尔
2169
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2012-7-1
鲜花(24) 鸡蛋(0)
发表于 2017-11-28 09:28:35 | 显示全部楼层
(store_random_in_range,":suijis",0,2),   #随机取0或者1
           (troop_get_upgrade_troop,":sjbingzhong",":bingzhong",":suijis"),  #获取:bingzhong第一个或者第二个的升级兵种           
          (ge,":sjbingzhong",1), #如果这个升级兵种大于1
          (party_add_members, ":suoyoubudui", ":sjbingzhong", ":sjizs"),#增加升级兵种
          (party_remove_members, ":suoyoubudui",":bingzhong", ":sjizs"),#减去原来兵种

我建议你这段改一下,如果某个兵种只有一个升级兵种,而你的随机刚好随机到1,(troop_get_upgrade_troop,":sjbingzhong",":bingzhong",":suijis"),  这段代码执行出来的升级兵种就没办法执行之后的语句,导致这个兵种没有升级,造成了一点瑕疵,我不知道你是否可以理解,我的代码是这样,你可以参考。

  # script_upgrade_troop
  # Input: arg1 = troop_no
  # Output: reg0 = upgrade_troop
  ("upgrade_troop",
    [
      (store_script_param_1,":troop_no"),
          (assign,":new_troop",":troop_no"),
      (store_random_in_range, ":random_no", 0, 2),
      (troop_get_upgrade_troop,":upgrade_troop_no",":troop_no",":random_no"),
      (try_begin),
        (le,":upgrade_troop_no",0),
        (troop_get_upgrade_troop, ":upgrade_troop_no",":troop_no",0),
      (try_end),
          (try_begin),
        (gt,":upgrade_troop_no",0),
        (assign,":new_troop",":upgrade_troop_no"),
          (try_end),
      (assign,reg0,":new_troop"),
  ]),

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

本版积分规则

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

GMT+8, 2025-11-6 03:28 , Processed in 0.089593 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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