做个游戏而已,十八般武艺都用上了。
想到这个方面,最初的起因是《缝合尖塔》想加入一个增加人物暴击、回避等数据的功能,于是翻看说明书,发现这些数据不像HP、SP那样可以通过函数直接相加,因为RM底层编写数据的时候,是直接调用数据库,所以偷懒复制粘贴一个相似函数的方式行不通了。有大佬说yep核心插件有这个功能,奈何MZ的yep插件不好搞。于是想到了 “被动技能”方面的插件,可以实现增加暴击率、回避率啥的。正好手里有这个插件。
但又有一个问题呀,《缝合尖塔》采用的继承模式,可是1到100的数值,回避率从加1%到加100%就需要设置100个技能,然后 暴击率、反击率、HP恢复率……一共要占用2000多个技能。
累傻小子呢,不行!
于是翻开data文件夹中的skill.json,果然是采用数组保存的形式,然后通过RM引擎读取,可视化。那问题就简单暴力了。
打开python,先手动切割需要修改的数字部分,然后套循环,10分钟写了2000个被动技能……
[C++] 纯文本查看 复制代码
for pass_rate_set in range(1,51):
a = '{"id":'
skill_id = 1100 + pass_rate_set
s_id = str(skill_id)
b = ',"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"","note":"<'
pass_kind = 'passiveXPBST2:'
pass_rate = pass_rate_set #1-50
p_rate = str(pass_rate)
c = '>","occasion":3,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":0,"successRate":100,"tpCost":0,"tpGain":0,"messageType":1},'
with open("test.txt",'a') as f:
f.write(a)
f.write(s_id)
f.write(b)
f.write(pass_kind)
f.write(p_rate)
f.write(c)
f.write('\n')
说这么多,对大家最有用的就是这个:
[C++] 纯文本查看 复制代码 with open("test.txt",'a') as f:
f.write(内容)
条条大路通罗马,抛砖引玉,和大家一起思考。
|