Skip to content

Commit 7628b6c

Browse files
committed
EA app のゲームインストール状況を取得できない問題を修正
1 parent db2d5f5 commit 7628b6c

File tree

2 files changed

+48
-50
lines changed

2 files changed

+48
-50
lines changed

Source/Platform/EAapp.rdr

+3-2
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ EA app で、インストールされているいずれかのゲームのプロ
272272
「net stop EABackgroundService」をコマンド実行する
273273
終わり
274274

275-
自分でゲームステータス取得する手順:辞書
275+
自分で【オファーID:文字列】としてゲームステータス取得する手順:辞書
276276
【ログファイルパス:文字列】=「[データフォルダー]Logs\EADesktopVerbose.log」
277277
// ログファイルが存在する場合はログを読み取って情報を返す
278278
ログファイルパスが存在しないなら
@@ -281,13 +281,14 @@ EA app で、インストールされているいずれかのゲームのプロ
281281
// ログファイルを読み取る
282282
例外監視
283283
【読み取りデータ】=テキストファイル読取器:ログファイルパスから「UTF-8」で読み取ったもの
284-
【切り取りデータ】=読み取りデータの[読み取りデータから「emit onGameStatusUpdated to SPA [[]」を前方向へ探したもの]文字目以降
284+
【切り取りデータ】=読み取りデータの[読み取りデータから「getInstallInfo([オファーID]) returns data=[[]」を前方向へ探したもの]文字目以降
285285
発生した場合
286286
「[エラーのメッセージ]」を「エラー」としてデバッグログへ出力する
287287
無を返す
288288
監視終わり
289289
// JSONを解析する
290290
【ステータス】=[切り取りデータで「「[」」から「「]」」まで抽出したもの(1)]をJSON形式として読み取ったもの
291+
291292
// 解析したデータを返す
292293
ステータスを返す
293294
終わり

Source/プロセス監視.rdr

+45-48
Original file line numberDiff line numberDiff line change
@@ -927,6 +927,7 @@ ApexLegendsとは
927927
// Apex Legends が起動するまで待つ
928928
【待機時間】=120 // 秒
929929
【待機時間カウント】=待機時間
930+
930931
【インストール待機時間】=3600 // 秒
931932
【インストール待機時間カウント】=インストール待機時間
932933
【インストール開始:真偽値】=×
@@ -935,6 +936,7 @@ ApexLegendsとは
935936
【EABSプロセス】=無
936937
【EABS再起動質問結果】
937938
【ゲームステータス:辞書】
939+
938940
【キャンセル理由:文字列】=「」
939941

940942
繰り返す
@@ -944,66 +946,61 @@ ApexLegendsとは
944946
インストール待機時間カウントが0なら繰り返しから抜ける // インストールが時間内に終わらなかった場合に繰り返しから抜ける
945947

946948
例外監視
947-
インストール終了でないなら
948-
// ゲームのステータスを取得してチェック
949-
ゲームステータス=EAappでゲームステータス取得する
949+
// EA app の場合はゲームのインストール状況を取得してチェックする
950+
プロファイルのApexLegendsプラットフォームが「EA app」かつインストール終了でないなら
951+
// Apex Legends のゲームのステータスを取得してチェック
952+
ゲームステータス=EAappで「Origin.OFR.50.0002694」としてゲームステータス取得する
950953
// ゲームのステータスが取得できない場合はチェックしない
951954
ゲームステータスが無でないなら
952-
[ゲームステータス(「offerId」)が「Origin.OFR.50.0002694」]なら // ゲームが Apex Legends か判定
953-
// インストールor修復実行中の場合 処理が終了するまで待機する
954-
[ゲームステータス(「gameStatus」)(「installing」)]かつ[ゲームステータス(「gameStatus」)(「updating」)]でないなら
955-
// 修復
956-
[ゲームステータス(「installInfo」)(「installReason」)]が「REPAIR」なら
957-
インストール開始でないなら
958-
[言語管理器で「InPlay.Status.WaitingForGameRepairProcess」を取得したもの]をログ出力する
959-
インストール開始=○
960-
そして
961-
メイン画面の起動中パネルのプレイ処理状況=[言語管理器で「InPlay.Status.WaitingForGameRepairProcess_WithStatus」を{[ゲームステータス(「installInfo」)(「installStatusString」)],[ゲームステータス(「installInfo」)(「installPhaseString」)]}として取得したもの]
962-
963-
// インストール
964-
そうでなければ
965-
インストール開始でないなら
966-
[言語管理器で「InPlay.Status.WaitingForGameInstallProcess」を取得したもの]をログ出力する
967-
インストール開始=○
968-
そして
969-
メイン画面の起動中パネルのプレイ処理状況=[言語管理器で「InPlay.Status.WaitingForGameInstallProcess_WithStatus」を{[ゲームステータス(「installInfo」)(「installStatusString」)],[ゲームステータス(「installInfo」)(「installPhaseString」)]}として取得したもの]
970-
955+
// 処理実行中の場合 処理が終了するまで待機する
956+
[ゲームステータス(「installStatusString」)]が「ACTIVE」なら
957+
// 修復
958+
[ゲームステータス(「installReason」)]が「REPAIR」なら
959+
インストール開始でないなら
960+
[言語管理器で「InPlay.Status.WaitingForGameRepairProcess」を取得したもの]をログ出力する
961+
インストール開始=○
971962
そして
963+
メイン画面の起動中パネルのプレイ処理状況=[言語管理器で「InPlay.Status.WaitingForGameRepairProcess_WithStatus」を{[ゲームステータス(「installStatusString」)],[ゲームステータス(「installPhaseString」)]}として取得したもの]
972964

973-
インストール待機時間カウント=インストール待機時間カウント-1
974-
1秒待つ
975-
繰り返しを続ける
965+
// インストール
966+
他で[ゲームステータス(「installReason」)]が「INSTALL」なら
967+
インストール開始でないなら
968+
[言語管理器で「InPlay.Status.WaitingForGameInstallProcess」を取得したもの]をログ出力する
969+
インストール開始=○
970+
そして
971+
メイン画面の起動中パネルのプレイ処理状況=[言語管理器で「InPlay.Status.WaitingForGameInstallProcess_WithStatus」を{[ゲームステータス(「installStatusString」)],[ゲームステータス(「installPhaseString」)]}として取得したもの]
976972

977-
// アップデート実行中の場合 処理が終了するまで待機する
978-
他で[ゲームステータス(「gameStatus」)(「installing」)]かつ[ゲームステータス(「gameStatus」)(「updating」)]なら
973+
// アップデート
974+
他で[ゲームステータス(「installReason」)]が「UPDATE」なら
979975
インストール開始でないなら
980976
[言語管理器で「InPlay.Status.WaitingForGameUpdateProcess」を取得したもの]をログ出力する
981977
インストール開始=○
982978
そして
983-
メイン画面の起動中パネルのプレイ処理状況=[言語管理器で「InPlay.Status.WaitingForGameUpdateProcess_WithStatus」を{[ゲームステータス(「installInfo」)(「installStatusString」)],[ゲームステータス(「installInfo」)(「installPhaseString」)]}として取得したもの]
984-
インストール待機時間カウント=インストール待機時間カウント-1
985-
1秒待つ
986-
繰り返しを続ける
979+
メイン画面の起動中パネルのプレイ処理状況=[言語管理器で「InPlay.Status.WaitingForGameUpdateProcess_WithStatus」を{[ゲームステータス(「installStatusString」)],[ゲームステータス(「installPhaseString」)]}として取得したもの]
987980

988981
そして
989982

990-
// インストール完了/キャンセル
991-
インストール開始かつ[ゲームステータス(「gameStatus」)(「installing」)]でないかつ[ゲームステータス(「gameStatus」)(「updating」)]でないなら
992-
// インストール処理がキャンセルされた場合 待機をキャンセルする
993-
[ゲームステータス(「installInfo」)(「installStatus」)]が4なら
994-
キャンセル理由=[言語管理器で「InPlay.Status.CancelingGameInstall」を取得したもの]
995-
待機キャンセル=○
996-
繰り返しから抜ける
997-
998-
// インストール処理が完了した場合 ゲームを起動する
999-
他で[ゲームステータス(「installInfo」)(「installStatus」)]が5かつインストール開始なら
1000-
インストール終了でないなら
1001-
インストール終了=○
1002-
// ゲームを起動する (EALaunchHelperを呼ぶとEA appも起動するので、EABackgroundServiceも勝手に開始される)
1003-
プロセス起動する
1004-
そして
1005-
1006-
そして
983+
インストール待機時間カウント=インストール待機時間カウント-1
984+
1秒待つ
985+
繰り返しを続ける
986+
そして
987+
988+
// インストール(アップデート)完了
989+
インストール開始なら
990+
// インストール処理が完了した場合 ゲームを起動する
991+
[ゲームステータス(「installStatusString」)]が「INSTALLED」かつインストール終了でないなら
992+
「EA app ゲームインストール完了」をデバッグログへ出力する
993+
インストール終了=○
994+
// ゲームを起動する (EALaunchHelperを呼ぶとEA appも起動するので、EABackgroundServiceも勝手に開始される)
995+
プロセス起動する
996+
997+
// インストール処理がキャンセルされた場合 待機をキャンセルする
998+
他で[ゲームステータス(「installStatusString」)]が「CANCELED」または[ゲームステータス(「installStatus」)]が4なら
999+
「EA app ゲームインストールキャンセル」をデバッグログへ出力する
1000+
キャンセル理由=[言語管理器で「InPlay.Status.CancelingGameInstall」を取得したもの]
1001+
待機キャンセル=○
1002+
繰り返しから抜ける
1003+
10071004
そして
10081005
そして
10091006

0 commit comments

Comments
 (0)