- 好友
 - 0
  
- 在线时间
 - 0 小时
  
- 最后登录
 - 2025-9-26
  
 
 
 
 
扈从 
   
 
- UID
 - 3645558
  
- 第纳尔
 - 140 
  
- 精华
 - 0
  
- 互助
 - 8 
  
- 荣誉
 - 0 
  
- 贡献
 - 0 
  
- 魅力
 - 51 
  
- 注册时间
 - 2024-4-15
  
 
  鲜花( 6)   鸡蛋( 0)  
 | 
 
 本帖最后由 b1ink 于 2024-4-16 22:30 编辑  
 
 
 
## 自定义战利品 
 
简单的描述就是,击败某支部队模板之后,有一定概率掉落某样东西. 
 
由于每次我们击败一支部队,都会获取战利品,所以我们在战利品计算函数```party_calculate_loot```里去添加代码就可以了. 
 
思路就是这样,这次我们将自定义战利品封装成一个函数,以便我们随时调用. 
 
**函数的封装调用**,请看这个帖子(若没有基础请务必先看此贴): 
https://bbs.mountblade.com.cn/thread-2104999-1-1.html 
 
 
那么我们先写自定义战利品的部分,加个函数```b1_chanceloot_pt_singleitem```吧: 
 
```python 
(store_script_param, ":custom_enemy_party_template_id", 1), #自定义敌方部队模板 pt_ 开头的 
(store_script_param, ":loot_item_id", 2), #自定义战利品物品 itm_ 开头的 
(store_script_param, ":loot_chance", 3), #自定义战利品掉落几率 0-100 之间的整数 
 
(try_begin), 
    (party_get_template_id, ":enemy_party_template_id", "$g_enemy_party"), #g_enemy_party这个全局变量,在party_calculate_loot里面有定义,是当前敌人部队的指针,我们用party_get_template_id获取它的模板id,也就是pt_开头的id. 
    (eq, ":enemy_party_template_id", ":custom_enemy_party_template_id"), 
    (store_random_in_range,":roll", 0, 100), 
    (lt, ":roll", ":loot_chance"), 
    (troop_ensure_inventory_space, "trp_temp_troop", 1), 
    (troop_add_item, "trp_temp_troop", ":loot_item_id"), 
    (troop_sort_inventory, "trp_temp_troop"), 
(try_end), 
``` 
 
用MBCodeEditor编译成txt,并放入```scripts```中,注意总函数数量 **+1**: 
 
```python 
b1_chanceloot_pt_singleitem -1 
 12 23 2 1224979098644774912 1 23 2 1224979098644774913 2 23 2 1224979098644774914 3 4 0 1609 2 1224979098644774915 144115188075856187 31 2 1224979098644774915 1224979098644774912 2136 3 1224979098644774916 0 100 2147483678 2 1224979098644774916 1224979098644774914 1510 2 360287970189639683 1 1530 3 360287970189639683 1224979098644774913 0 1511 1 360287970189639683 3 0  
``` 
 
最后我们在```scripts```,找到战利品计算函数```party_calculate_loot```,添加一行调用即可. 
 
例如我想让`绿林强盗`pt_forest_bandits这个部队模板有`95%`的几率掉落`龙泪`itm_qualis,可以这样写: 
 
```python 
(call_script,"script_b1_chanceloot_pt_singleitem", "pt_forest_bandits", "itm_qualis", 95), 
``` 
 
再举个例子,让`赏金猎人`pt_manhunters这个部队模板有`50%`的几率掉落`天鹅绒`itm_velvet,可以这样写: 
 
```python 
(call_script,"script_b1_chanceloot_pt_singleitem", "pt_manhunters", "itm_velvet", 50), 
``` 
 
把这一句编译好添加到```party_calculate_loot```最后一行,注意总行数变化;或者将```party_calculate_loot```里的代码全部拉出来转成py,最下面一行加上这一句,编译成txt,再覆盖回去,注意总行数变化(这是很基础的东西,以后不会再提) 
 
 
*** 
 
附一个网址(若打不开请用chrome或用steam++等加速github): 
 
https://b1inkie.github.io/b1note.github.io/ 
 
装备某件物品时增加属性点;添加书籍;全自动武器;自爆步兵;光环:移速BUFF(光写了 没测);散弹 但是每一个弹头都是自瞄;自定义战利品等等功能都可以在这里找到. 
 
若依旧有疑问或需要视频讲解,可以加下面群: 
附加半个交流群: 855512521 
 
 
 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |