找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 120|回复: 3

[已解决] 求救!关于steam成就的求救

[复制链接]
发表于 2025-5-1 04:39:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 空白ZACK 于 2025-5-1 17:27 编辑

按照莉萝的视频(Renpy全平台打包方案及steam成就SDK接入_哔哩哔哩_bilibili)写了 achievement.rpy文件,代码如下

[RenPy] 纯文本查看 复制代码
define config.steam_appid = "这里是ID" #已经正确输入
define achievement.steam_position = "bottem right"

label achievement(who):
    python:
        achievement.Sync()
        achievement.register("NEW_ACHIEVEMENT_1_0", steam="NEW_ACHIEVEMENT_1_0")
        achievement.register("NEW_ACHIEVEMENT_1_1", steam="NEW_ACHIEVEMENT_1_1")
        achievement.register("NEW_ACHIEVEMENT_1_2", steam="NEW_ACHIEVEMENT_1_2")

        if not achievement.has("NEW_ACHIEVEMENT_1_0") and who == "0":
            achievement.grant("NEW_ACHIEVEMENT_1_0")

        if not achievement.has("NEW_ACHIEVEMENT_1_1") and who == "1":
            achievement.grant("NEW_ACHIEVEMENT_1_1")

        if not achievement.has("NEW_ACHIEVEMENT_1_2") and who == "2":
            achievement.grant("NEW_ACHIEVEMENT_1_2")

        achievement.sync()
    return



然后在游戏根目录 game下放了最新SDK的steam_api64.dll文件,在打包之后依然无法与steam成就关联。

想问各位大佬,steam_api64.dll文件是否放置正确, achievement.rpy的代码是否有问题,还有steam_api64.dll是在打包前放到game还是打包后放到lib文件(之前发现有成就的Renpy游戏steam_api64.dll文件会在lib下的py3-windows-x86_64中,而我放在game目录下打包后依旧会在game下)
 楼主| 发表于 2025-5-1 17:33:57 | 显示全部楼层
解决方法:
1.重新安装Renpy 8.3.4版本
2.在Renpy中选择设置---安装库---安装steam支持包---重启Renpy
3.修改define config.steam_appid = "这里是ID"到options.rpy,为并且修改内容 define config.steam_appid = 123456789(例)
[RenPy] 纯文本查看 复制代码
define config.steam_appid = 123456789

4.在options.rpy中新加入 define config.automatic_steam_timeline = True
[RenPy] 纯文本查看 复制代码
define config.automatic_steam_timeline = True

5.重新下载Steam SDK,将 steam_api64.dll 与 steam_api.dll 文件放置于game目录下
6.重新打包,检查打包完成后 game\lib\py3-windows-x86_64中是否包含 steam_api64.dll 和 steam_api.dll 文件
7.压缩为zip上传
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2025-5-1 17:36:18 | 显示全部楼层
如果打包后DLL文件不在 game\lib\py3-windows-x86_64 目录下,说明打包过程可能有问题。

需要:
1.确保使用最新版本的Renpy SDK
2.清理项目后重新打包
3.检查打包日志是否有关于DLL文件的警告或错误
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2025-5-1 17:42:59 | 显示全部楼层
补充(对之前的代码解释,以及成就代码的使用方法)


如果使用以下代码写成就激活的话
[RenPy] 纯文本查看 复制代码
label achievement(who):
    python:
        achievement.Sync()
        achievement.register("NEW_ACHIEVEMENT_1_0", steam="NEW_ACHIEVEMENT_1_0")
        achievement.register("NEW_ACHIEVEMENT_1_1", steam="NEW_ACHIEVEMENT_1_1")
        achievement.register("NEW_ACHIEVEMENT_1_2", steam="NEW_ACHIEVEMENT_1_2")
 
        if not achievement.has("NEW_ACHIEVEMENT_1_0") and who == "0":
            achievement.grant("NEW_ACHIEVEMENT_1_0")
 
        if not achievement.has("NEW_ACHIEVEMENT_1_1") and who == "1":
            achievement.grant("NEW_ACHIEVEMENT_1_1")
 
        if not achievement.has("NEW_ACHIEVEMENT_1_2") and who == "2":
            achievement.grant("NEW_ACHIEVEMENT_1_2")
 
        achievement.sync()
    return



实际需要用Call唤醒
[RenPy] 纯文本查看 复制代码
call achievement("1") from _call_achievement_1

(直接写入即可)

例:
[RenPy] 纯文本查看 复制代码
a “你好啊”
a “恭喜你解锁成就1!"
call achievement("1") from _call_achievement_1
a "结束了"



当然,我们还可以在游戏里写一个提示
[RenPy] 纯文本查看 复制代码
$ renpy.notify("成就1已解锁!")

这个使用的素材和你使用快进时的素材一样
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2025-5-29 13:31 , Processed in 0.053283 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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