成就 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
define config.automatic_steam_timeline = True link

若為True,從Steam中運行遊戲時,將自動更新Steam的運行資訊。

運行資訊包括:

  • 如果設置類 save_name,將更新狀態描述資訊。

  • 用戶進入菜單後,更改Steam中狀態為“正在遊玩”。

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。