- 好友
- 0
- 在线时间
- 0 小时
- 最后登录
- 2024-10-18
扈从
- UID
- 3645558
- 第纳尔
- 125
- 精华
- 0
- 互助
- 8
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 50
- 注册时间
- 2024-4-15
鲜花( 5) 鸡蛋( 0)
|
本帖最后由 b1ink 于 2024-4-24 14:32 编辑
## 潘德自动设置坐镇值和分组修复
本篇仅限于 潘德的预言
本文请配合视频食用(能看懂就不用看视频了) 群号:855512521
潘德的坐镇和分组:是由兵种的4个slot决定的,169,170,171这三个是坐镇,172是分组,0步兵,1弓兵,2骑兵,3游骑,等等
这4个slot,是在函数kt_init_troop_slots中手动设置的,然后被game_start调用以生效.
再说分组,在上述函数中设置分组,实际你会发现根本对不上号,这是因为,设置分组由作者写的另一个函数init_correct_troop_type控制
这个函数我也不想知道他分组规则是怎么写的.我经常说过,像这种自己写一个覆盖掉要比修改别人写的代码要省很多时间.
下面制定一下坐镇和分组的规则:
- 坐镇:
* 169号slot = 等级 + 力量/2 + 铁骨 + 强击 + 强弓 + 强掷
* 170号slot = 169号slot * 1.5
* 171号slot = 0
- 分组: 有弓有马归为第3组游骑兵,有弓无马归为第1组弓兵,无弓有马归为第2组骑兵,无马无弓归为第0组步兵.
开始添加:
```python
# 在函数 kt_init_troop_slots 后面加上以下代码-------------------------------------
#--------------配置部分如下-----------------------------
(assign,":trp_lower_bound","trp_tournament_participants"), #规定下限兵种id.一般从trp_player后面一个开始
(assign,":trp_upper_bound","trp_allend"), #规定上限兵种id.一般到最后一个兵种的后面一个兵种
#--------------配置部分如上-----------------------------
(try_for_range,":troop_id", ":trp_lower_bound", ":trp_upper_bound"), # 遍历所有兵种,计算坐镇slot的值.
(assign,":qb",0),
(store_character_level, ":lv", ":troop_id"), # 等级
(store_attribute_level, ":strength", ":troop_id", ca_strength), # 力量
(val_div, ":strength", 2), # 力量/2
(store_skill_level, ":skl_1", skl_ironflesh, ":troop_id"),
(store_skill_level, ":skl_2", skl_power_strike, ":troop_id"),
(store_skill_level, ":skl_3", skl_power_throw, ":troop_id"),
(store_skill_level, ":skl_4", skl_power_draw, ":troop_id"),
(val_add, ":qb", ":lv"), # 等级
(val_add, ":qb", ":strength"), # 力量/2
(val_add, ":qb", ":skl_1"), # 铁骨
(val_add, ":qb", ":skl_2"), # 强击
(val_add, ":qb", ":skl_3"), # 强掷
(val_add, ":qb", ":skl_4"), # 强弓
(troop_set_slot, ":troop_id", 169, ":qb"),
(val_mul, ":qb", 3),
(val_div, ":qb", 2),
(troop_set_slot, ":troop_id", 170, ":qb"), # 170号slot = 169号slot * 1.5
(troop_set_slot, ":troop_id", 171, 0),
#-------------------------------------------------------------
(assign,":group",0), # 分组,0步兵,1弓兵,2骑兵,3游骑,等等.
(assign,":has_ranged",0), # 是否有远程武器,0没有,1有.
(assign,":has_horse",0), # 是否有马,0没有,1有.
(try_for_range,":i",0,3), # 遍历武器
(troop_get_inventory_slot, ":itm_id", ":troop_id", ":i"), # 获取武器id.
(neq,":itm_id",-1), # 如果武器id不为-1,则有武器.
(item_get_type, ":weapon_type", ":itm_id"), # 获取武器类型.
(this_or_next|eq,":weapon_type",itp_type_bow), # 如果是弓,则有远程武器.
(this_or_next|eq,":weapon_type",itp_type_crossbow), # 如果是弩,则有远程武器.
(eq,":weapon_type",itp_type_thrown), # 如果是投掷,则有远程武器.
(assign,":has_ranged",1), # 如果有远程武器,则有远程武器.
(try_end), # 遍历武器结束.
(try_begin),
(troop_get_inventory_slot, ":horse_id", ":troop_id", 8), # 获取坐骑id.
(neq,":horse_id",-1), # 如果坐骑id不为-1,则有马.
(assign,":has_horse",1), # 如果有马,则有马.
(try_end),
(try_begin),
(eq,":has_ranged",1),
(eq,":has_horse",1),
(assign,":group",3), # 有远程武器有马,则归为第3组游骑兵.
(else_try),
(eq,":has_ranged",1),
(eq,":has_horse",0),
(assign,":group",1), # 有远程武器无马,则归为第1组弓兵.
(else_try),
(eq,":has_ranged",0),
(eq,":has_horse",1),
(assign,":group",2), # 无远程武器有马,则归为第2组骑兵.
(else_try),
(assign,":group",0), # 无远程武器无马,则归为第0组步兵.
(try_end),
(troop_set_slot, ":troop_id", 172, ":group"), # 设置分组. # 172号slot = 分组.
(try_end), # 遍历所有兵种结束.
#------------------以上4个slot设置完毕----------------------------------
```
那么我们还需修复一下分组:
```python
#在函数game_start最后添加代码
#--------------配置部分如下-----------------------------
(assign,":trp_lower_bound","trp_tournament_participants"), #规定下限兵种id.一般从trp_player后面一个开始
(assign,":trp_upper_bound","trp_allend"), #规定上限兵种id.一般到最后一个兵种的后面一个兵种
#--------------配置部分如上-----------------------------
(try_for_range,":troop_id", ":trp_lower_bound", ":trp_upper_bound"),
(troop_get_slot, ":group", ":troop_id", 172), # 获取分组. # 172号slot = 分组.
(troop_set_class,":troop_id",":group"), # 设置分组. # 172号slot = 分组. # 这里设置分组.
(try_end), # 遍历所有兵种结束.
```
><i style="color:aqua;">我的建议(实际也是这样做的)</i>:单独弄俩函数封装一下,别直接在后面加,这样以后修改坐镇或分组规则,只需要修改这两个函数即可.
><i style="color:red;">特别注意</i>:以后如果你添加了一堆新的兵种,以上自动设置并不会生效,因为没有遍历troop的OP啊.你还是要自己再去填一下配置部分的兵种下界,再编译好覆盖掉.
***
附一个网址(若打不开请用chrome或用steam++等加速github):
https://b1inkie.github.io/b1note.github.io/#/MB_Note/mb_3
装备某件物品时增加属性点;添加书籍;全自动武器;自爆步兵;光环:移速BUFF(光写了 没测);散弹 但是每一个弹头都是自瞄;自定义战利品等等功能都可以在这里找到.
若依旧有疑问或需要视频讲解,可以加下面群:
附加半个交流群: 855512521
|
|