骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[经验与教程] 函数的封装与调用(scripts.txt)

[复制链接]

9

主题

5

回帖

44

积分

扈从

Rank: 2Rank: 2

UID
3645558
第纳尔
120
精华
0
互助
8
荣誉
0
贡献
0
魅力
50
注册时间
2024-4-15
鲜花(4) 鸡蛋(0)
发表于 2024-4-16 22:02:08 | 显示全部楼层 |阅读模式
## 函数封装与调用(scripts.txt)

这篇可以算是一个前置教程的帖子,有些代码需要提前将函数封装好,以便调用.真的方便很多.

- 你想一行代码给物品添加额外信息吗;
- 你想一行代码自定义战利品吗;
- 你想一行代码去添加各种各样的BUFF效果吗?

* 只需要将你搜集到的代码封装成函数,然后调用即可.

**无论你想自己写代码,还是只是想看函数如何调用,这篇都会有答案**

ms中,我们调用一个函数(或者叫脚本)的方式是:

```python
(call_script,<script_id>,<第1个参数>,<第2个参数>,<第3个参数>,...),
# Calls specified script with or without parameters. Maximum number of parameters you can pass with the operation is 16.
```

**scripts.txt** 文件中就是一堆封装好的函数,这些函数不会直接运行,它们被MOD根目录的其他文件进行调用从而生效.
**scripts.txt** 文件的第二行的数字指代封装好的函数的总数量. 如果我们要添加一个函数,那么这里就要 **+1** .
那么我们在最下面一行,添加一个自己的函数试试:

```python
fn_mygo -1
0
```

这样就添加好了,这个函数名字叫`fn_mygo`,次行的第一个数字是代码总行数,后面则填代码.
调用这个函数的方式: `(call_script,"script_fn_mygo"),` , 注意有个 **script_** 前缀.

那么目前这个函数还什么都内容没有.我们来写点什么:

**例如我们写一个:** 根据玩家生涯杀敌数,1比10奖励第纳尔.

```python
(get_player_agent_kill_count, ":kill_count"), # 获取玩家生涯杀敌数.
(val_mul,":kill_count",10), # 乘以10.
(troop_add_gold, "trp_player", ":kill_count"), # 奖励第纳尔.
```

编译好丢进fn_mygo中:

```python
fn_mygo -1
3 1701 1 1224979098644774912 2107 2 1224979098644774912 10 1528 2 360287970189639680 1224979098644774912
```

那么以后你在任何地方,`(call_script,"script_fn_mygo"),`,就会按照玩家生涯杀敌数,1比10奖励第纳尔了.

就是这么简单啦! 不过以上是一个没有任何参数的函数. 我们可以添加参数,来让函数更加灵活.

**例如我们写一个:** 根据玩家生涯杀敌数,自定义比例,奖励第纳尔.

```python
(store_script_param, ":rate",1), #第1个参数
#(store_script_param, ":var_2",2), #第2个参数
#(store_script_param, ":var_3",3), #第3个参数

(get_player_agent_kill_count, ":kill_count"), # 获取玩家生涯杀敌数.
(val_mul,":kill_count",":rate"), # 乘以自定义比例.
(troop_add_gold, "trp_player", ":kill_count"), # 奖励第纳尔.
```

编译好丢进`fn_mygo`中;
假如我们想以1比20的比例奖励第纳尔,那么这样写:`(call_script,"script_fn_mygo",20),`
1比30就:`(call_script,"script_fn_mygo",30),`

你可以设置更多变量,让决定奖励第纳尔数量的因素增加.


ok,本篇就到此结束.愉快的去调用大家已经写好的函数吧.



***

附一个网址(若打不开请用chrome或用steam++等加速github):

https://b1inkie.github.io/b1note.github.io/

装备某件物品时增加属性点;添加书籍;全自动武器;自爆步兵;光环:移速BUFF(光写了 没测);散弹 但是每一个弹头都是自瞄;自定义战利品等等功能都可以在这里找到.

若依旧有疑问或需要视频讲解,可以加下面群:
附加半个交流群: 855512521



评分

参与人数 1第纳尔 +20 收起 理由
Aomine Daiki + 20 您的帖子很有价值!

查看全部评分

鲜花鸡蛋

ggfgfgf  在2024-4-20 14:39  送朵鲜花  并说:排版抽象,有真东西的

16

主题

586

回帖

326

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2380
精华
0
互助
29
荣誉
0
贡献
0
魅力
63
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(51) 鸡蛋(0)
发表于 2024-4-17 16:51:24 来自手机 | 显示全部楼层
这排版也太抽象了来自: Android客户端
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-5-2 12:16 , Processed in 0.105140 second(s), 22 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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