ダ ンカグライク FORUM
ハイスコア(自己ベストの情報)を取得するサンプルです。
function start() if (APPMAN:IsNotePreview()) then return end local scoreData = CS.ScoreDataPrefas.instance:FindScore( CS.GameManager.Instance.SelectSongInfo.FolderName, CS.GameManager.Instance.SelectDifficulty ) if (scoreData == nil) then return end SCREENMAN:SystemMessage( "Score : " .. scoreData.Score .. " | " .. "Combo : " .. scoreData.Combo .. " | " .. "ClearState : " .. scoreData.ClearState .. " | " .. "Rank : " .. scoreData.Rank ) end
上記の方法で取得はできますが、ホームページに載せていないクラスにアクセスしているので専用のLuaAPIを作るかもしれません。
ご報告ありがとうございます。 下記の変数にアクセスしないように変更しました。 CS.GameManager.Instance.SelectSongInfo CS.GameManager.Instance.SelectDifficulty フォルダ名の書き換えはできずとも取得用のAPIは用意したいと思います。
-- C#のSystem.IOを使う local Path = CS.System.IO.Path function start() if (APPMAN:IsNotePreview()) then return end local scoreData = CS.ScoreDataPrefas.instance:FindScore( Path.GetFileName(SONGMAN:GetSongDir()), SONGMAN:GetDifficulty() ) if (scoreData == nil) then return end SCREENMAN:SystemMessage( "Score : " .. scoreData.Score .. " | " .. "Combo : " .. scoreData.Combo .. " | " .. "ClearState : " .. scoreData.ClearState .. " | " .. "Rank : " .. scoreData.Rank ) end
System.IOを使用せず、Luaで完結したい場合のサンプルです。
-- 最後のフォルダ名だけ取り出す local function getLastFolderName(folderPath) -- 末尾の / や \ を削除 folderPath = folderPath:gsub("[/\\]+$", "") -- 最後のフォルダ名だけ抜き出す return folderPath:match("([^/\\]+)$") end -- 使用例 print(getLastFolderName(SONGMAN:GetSongDir()))
ハイスコア(自己ベストの情報)を取得するサンプルです。
function start() if (APPMAN:IsNotePreview()) then return end local scoreData = CS.ScoreDataPrefas.instance:FindScore( CS.GameManager.Instance.SelectSongInfo.FolderName, CS.GameManager.Instance.SelectDifficulty ) if (scoreData == nil) then return end SCREENMAN:SystemMessage( "Score : " .. scoreData.Score .. " | " .. "Combo : " .. scoreData.Combo .. " | " .. "ClearState : " .. scoreData.ClearState .. " | " .. "Rank : " .. scoreData.Rank ) end
上記の方法で取得はできますが、ホームページに載せていないクラスにアクセスしているので専用のLuaAPIを作るかもしれません。