成就 link
成就(Achievement)模組允許開發者讓用戶解鎖成就,清除成就,以及判斷某個成就是否已經解鎖。也允許根據根據進度獲得成就。
默認情況下,成就在持久化文件中儲存資訊。如果Steam平台支持可用並且被啟用,成就資訊會自動與Steam同步。
- achievement.Sync() link
調用achievement.sync()函數的行為。只有當成就未同步的情況下才可用。
- achievement.clear(name) link
清除名為 name 的成就。
- achievement.clear_all() link
清除所有成就。
- achievement.get_progress(name) link
根據成就名返回成就完成進度。如果沒有任何註冊進度或成就未知時,將返回0。
- achievement.grant(name) link
解鎖名為 name 的成就,前提是該成就尚未解鎖。
- achievement.has(name) link
如果用戶已經解鎖成就 name 就返回True。
- achievement.progress(name, complete) link
報告成就 name 的完成進度,前提是該成就未解鎖。成就 name 必須先定義各完成度。
- name
成就名,而不是成就的stat。
- complete
一個整數,給定了達成成就的單位數量。
- achievement.register(name, **kwargs) link
註冊一個成就。成就並不強制需要註冊,但這樣做可以將成就資訊傳給後端。
- name
註冊的成就名。
下列關鍵字參數是可選的。
- steam
在Steam上使用的成就名。如果沒有指定,默認與 name 相同。
- stat_max
解鎖成就的stat整數值。
- stat_modulo
如果使用 stat_max 對進度取模結果為0,就向用戶顯示進度。例如,如果stat_modula是10,當進度為10、20、30時分別會想用戶顯示進度資訊。如果未給出該值,預設為0。
- achievement.sync() link
同步本地儲存和其他後端(例如,Steam)的註冊成就。
控制成就的配置項包括:
- achievement.steam_position = None link
若值不是None,該配置項設置steam彈出通知的位置。該值必須是一個字串,可使用的內容包括“top left”,“top right”,“bottom left”和“bottom right”。
- define config.steam_appid = None link
若非None,該項應是Steam appid。Ren’Py會在啟動時自動設置此appid。需要使用define語句設置該項。
define config.steam_appid = 12345
Steamworks API link
當Steam可用時,基於ctypes庫的Steamworks API綁定也將可用,並對外表現為為 achievement.steamapi 。 這些綁定是steamapi模組的一個實例,將C++版本的Steamworks API通過機器轉換為Python版本,具體內容可以看 這裡。
此外,僅當Steamworks API可用時,我們才能訪問achievement.steam對象中的一大堆函數。
- achievement.steam link
Steam初始化成功後,該項標識高級(high-level)Steam方法所在的命名空間。 如果Steam未完成初始化,該項的值為None。 在調用任意Steam方法前,最好先檢查該項是否為None。
Steam Apps link
- achievement.steam.dlc_installed(appid) link
已安裝 dlc 就返回True,否則返回False。
- achievement.steam.dlc_progress(appid) link
表示DLC下載進度。
- achievement.steam.get_app_build_id() link
返回已安裝遊戲版本號的Build ID。
- achievement.steam.get_current_beta_name() link
如果當前有可用的beta版則返回名稱,否則返回None。
- achievement.steam.get_current_game_language() link
返回用戶選擇語言名。
- achievement.steam.get_steam_ui_language() link
返回用戶正在使用的Steam UI名。
- achievement.steam.install_dlc(appid) link
安裝 appid 對應的DLC。
- achievement.steam.is_subscribed_app(appid) link
若用戶已擁有 appid 對應的應用就返回True,否怎麼返回False。
- achievement.steam.uninstall_dlc(appid) link
卸載 appid 對應的DLC。
Steam Overlay link
- achievement.steam.activate_overlay(dialog) link
啟用Steam社區疊加界面。
- dialog
需要打開的疊加界面名稱。可以是以下界面之一: “Friends”、“Community”、“Players”、“Settings”、“OfficialGameGroup”、“Stats”、“Achievements” (分別對應好友、社區、玩家、設置、官方遊戲組、狀態、成就)。
- achievement.steam.activate_overlay_to_store(appid, flag=None) link
以疊加界面形式打開Steam商店。
- appid
商店中該遊戲的appid。
- flag
achievement.steam.STORE_NONE、.STORE_ADD_TO_CART 或 .STORE_ADD_TO_CART_AND_SHOW 三項中的某一項的值。
- achievement.steam.activate_overlay_to_web_page(url) link
啟用Steam社區疊加界面。並直接打開網頁 url 。
- achievement.steam.is_overlay_enabled() link
若Steam已啟用疊加界面,返回True。(遊戲啟動後可能需要等一小段時間後才會返回True。)
- achievement.steam.overlay_needs_present() link
若Steam已啟用疊加界面,返回True。(遊戲啟動後可能需要等一小段時間後才會返回True。)
- achievement.steam.set_overlay_notification_position(position) link
設置Steam疊加界面的位置。position 應是4種枚舉值achievement.steam.POSITION_TOP_LEFT、achievement.steam.POSITION_TOP_RIGHT、achievement.steam.POSITION_BOTTOM_LEFT、achievement.steam.POSITION_BOTTOM_RIGHT其中之一。
Steam Stats link
- achievement.steam.clear_achievement(name) link
清除名為 name 的成就。之後調用
_renpysteam.store_stats()
可以將更改同步到伺服器端。
- achievement.steam.get_achievement(name) link
獲取名為 name 的成就狀態。如果成就已達成就返回True,否則返回False。如果沒有同名成就或發生錯誤會返回None。
- achievement.steam.get_float_stat(name) link
返回名為 name 的成就相關數值。如果沒有同名成就會返回None。
- achievement.steam.get_int_stat(name) link
返回名為 name 的成就相關數值。如果沒有同名成就會返回None。
- achievement.steam.grant_achievement(name) link
解鎖名為 name 的成就。之後調用
_renpysteam.store_stats()
可以將更改同步到伺服器端。
- achievement.steam.indicate_achievement_progress(name, cur_progress, max_progress) link
向用戶展示成就進度,但 不會 解鎖成就。
- achievement.steam.list_achievements() link
返回所有成就名的列表。
- achievement.steam.retrieve_stats() link
從Steam伺服器端同步所有成就和統計數據。
- achievement.steam.set_float_stat(name, value) link
將名為 name 的成就相關數值設置為 value,注意 value 必須是浮點型數值。之後調用
_renpysteam.store_stats()
可以將更改同步到伺服器端。
- achievement.steam.set_int_stat(name, value) link
將名為 name 的成就相關數值設置為 value,注意 value 必須是整型數值。之後調用
_renpysteam.store_stats()
可以將更改同步到伺服器端。
- achievement.steam.store_stats() link
將所有統計數據和成就同步到Steam伺服器端/
Steam Timeline link
- achievement.steam.add_timeline_event(icon, title, description, priority=0, start_offset=0.0, duration=0.0, possible_clip=None) link
Adds an event to the timeline. 向遊戲時間中添加一個事件(event)。
- icon
該事件顯示的圖示。該項應該是一個字串,表示基礎的Steam圖示名,或者玩家上傳到Steam的圖示名。
- title
事件的標題。
- description
事件的描述。
- priority
事件的優先度,用於解決事件衝突。該項應該是一個0到1000之間的整數。
- start_offset
從事件開始到現在的時間差,單位為秒。
- duration
事件持續時長,單位為秒。
- possible_clip
表示該事件是否可以被clip。該項應該是achievement.steam.CLIP_PRIORITY中的枚舉值,包括CLIP_PRIORITY_NONE、CLIP_PRIORITY_STANDARD和CLIP_PRIORITY_FEATURED。
- achievement.steam.clear_timeline_state_description(time_delta) link
清除遊戲時間線上當前狀態的所有描述。
- achievement.steam.set_timeline_state_description(description, time_delta=0.0) link
設置遊戲時間線上當前狀態的描述。
- description
一個描述當前狀態的字串。
- time_delta
上次狀態更改的時間,與當前時間的差值。
Steam User link
- achievement.steam.cancel_ticket() link
取消
achievement.steam.get_session_ticket()
返回的ticket結果。
- achievement.steam.get_account_id() link
返回用戶的帳號ID。
- achievement.steam.get_csteam_id() link
返回用戶的完整CSteamID。該值是一個64bit位的數字。
- achievement.steam.get_game_badge_level(series, foil) link
獲取用戶的Steam徽章(badge)等級,並用於該遊戲中。
- achievement.steam.get_persona_name() link
返回用戶公開可見的玩家名。
- achievement.steam.get_session_ticket() link
獲取一個ticket,可以發送到伺服器端實現用戶驗證。
Steam Workshop link
- achievement.steam.get_subscribed_item_path(item_id) link
如果安裝了用戶製作遊戲內容的某個道具(item),則返回安裝路徑。 如果沒有安裝該道具,則返回None。
- item_id
道具(item)ID。