- 好友
- 0
- 在线时间
- 0 小时
- 最后登录
- 2024-10-18
扈从
- UID
- 3645558
- 第纳尔
- 125
- 精华
- 0
- 互助
- 8
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 50
- 注册时间
- 2024-4-15
鲜花( 5) 鸡蛋( 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
|
评分
-
查看全部评分
|