古树旋律 发表于 2022-12-17 00:52:54

【python在制作游戏中的华丽操作】写入txt文件

做个游戏而已,十八般武艺都用上了。

想到这个方面,最初的起因是《缝合尖塔》想加入一个增加人物暴击、回避等数据的功能,于是翻看说明书,发现这些数据不像HP、SP那样可以通过函数直接相加,因为RM底层编写数据的时候,是直接调用数据库,所以偷懒复制粘贴一个相似函数的方式行不通了。有大佬说yep核心插件有这个功能,奈何MZ的yep插件不好搞。于是想到了 “被动技能”方面的插件,可以实现增加暴击率、回避率啥的。正好手里有这个插件。


但又有一个问题呀,《缝合尖塔》采用的继承模式,可是1到100的数值,回避率从加1%到加100%就需要设置100个技能,然后 暴击率、反击率、HP恢复率……一共要占用2000多个技能。
累傻小子呢,不行!{:03:}

于是翻开data文件夹中的skill.json,果然是采用数组保存的形式,然后通过RM引擎读取,可视化。那问题就简单暴力了。

打开python,先手动切割需要修改的数字部分,然后套循环,10分钟写了2000个被动技能……



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')





说这么多,对大家最有用的就是这个:
with open("test.txt",'a') as f:
    f.write(内容)

条条大路通罗马,抛砖引玉,和大家一起思考。

s3102099 发表于 2022-12-17 13:30:14

好像不太好理解

古树旋律 发表于 2022-12-17 19:57:17

s3102099 发表于 2022-12-17 13:30
好像不太好理解

分享的一串花里胡哨的操作,算是一个个人实例吧。

总结就是python可以写txt,然后把txt里面的东西可以到处复制粘贴。
页: [1]
查看完整版本: 【python在制作游戏中的华丽操作】写入txt文件