4.0 KiB
Docs
sqrtools 的接口调用指南。
当前 API 版本:3
在代码中添加 sqrtools
sqrtools 网页提供的的 pyc 文件可以作为 python 库文件使用。把它和你的代码放在同一个文件夹(也可以是 sys.path
中的任意目录)中,使用一个合适的文件名,并直接在你的代码中导入即可:
import sqrtoolsfile as sqrtools #导入名为 sqrtoolsfile.pyc 的文件
my_awesome_name=sqrtools.Name() #创建一个新的空白名字
你可以通过 sqrtools.SQRTOOLS_API_VERSION
来查看接口版本。本篇文档适用的版本号已在开始处声明,你需要寻找一个与你的 sqrtools 适配的文档。
sqrtools 的主要功能是名为 Name
的 python 类。
Name 类型属性
Name
中包含以下数值:
-
val
,namebase
: 使用字符串生成的 int 数组,在其他算号器中可能被称为name_base
等。val
长度为 256,namebase
长度为 128。 -
nameprop
: 名字属性,也就是俗称的"八围"。是长度为 8 的 int 数组,从前到后分别为 [HP, 攻, 防, 速, 敏, 魔, 抗, 智] 数值。 -
nameskill
: 存储名字技能的 int 数组,由 40 个形如 (id, 熟练度) 的二元组组成。技能 id 与名称的对应关系如下:
id | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
技能 | 火球术 | 冰冻术 | 雷击术 | 地裂术 | 吸血攻击 | 投毒 | 连击 | 会心一击 | 瘟疫 | 生命之轮 |
id | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
技能 | 狂暴术 | 魅惑 | 加速术 | 减速术 | 诅咒 | 治愈魔法 | 苏生术 | 净化 | 铁壁 | 蓄力 |
id | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
技能 | 聚气 | 潜行 | 血祭 | 分身 | 幻术 | 防御 | 守护 | 伤害反弹 | 护身符 | 护盾 |
id | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
技能 | 反击 | 吞噬 | 召唤亡灵 | 垂死抗争 | 隐匿 | (空技能) | (空技能) | (空技能) | (空技能) | (空技能) |
Name 类型方法
使用 Name()
可以创建一个新的空白名字。一个类型为 Name
的变量不可以重复使用。如果你想对同一个 Name 变量多次载入不同的名字,需要使用 reusable 模式,文档后面的部分有详细介绍。
在开始计算前,你需要使用 check()
方法将名字以字符串参数的形式传入。此函数会返回一个 int 数值,代表操作的完成状态:
-
0: 名字成功载入。
-
1: 对已加载的名字变量重复载入,操作失败。
-
-1: 输入了空的字符串,载入失败。
-
-2: 无法分割名字与战队名(可能是因为输入了过多的 @ 符号),载入失败。
-
-3: 名字长度过长,载入失败。
Name
类型包含以下用于算号的函数方法:
-
load()
: 计算val
和namebase
。该操作只能进行一次。 -
calcprops()
: 计算名字属性,执行前需要先使用load()
。 -
calcskill()
: 计算名字技能,执行前需要先使用load()
。算技能操作只能进行一次。
计算完成后,你需要手动调用 Name 变量下相关的属性数组查看结果。
以下是一个计算名字数值属性的示例程序:
import sqrtools
name=sqrtools.Name()
name.check('1')
name.load()
name.calcprops()
print(name.nameprop)
名字加载锁与 Reusable 模式
Name
名字的加载过程是单向且不可重复的。如果你试图对未执行 load()
的名字算属性/技能,对名字重复载入、load()
和 calcskill()
,或进行其他非法操作,那么你使用的函数将拒绝操作并返回 False
。Name
类型表现的这种行为在下文中简称为名字加载锁。
如果你想重复加载名字,可以在操作前将名字的 reusable
属性设置为 True
以启用 Reusable 模式。例如:
name=sqrtools.Name()
name.reusable=True
Reusable 模式允许你重复使用一个 Name
变量,但名字加载锁仍然存在,非法操作会被自动阻止。