mirror of
https://ghfast.top/https://github.com/StarCitizenToolBox/app.git
synced 2025-06-08 00:03:55 +08:00
feat: enhance log analyzer to include vehicle destruction details
This commit is contained in:
parent
320ce177b9
commit
a75a580b2d
@ -129,8 +129,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m46(v0) => "Detailed information: ${v0}";
|
static String m46(v0) => "Detailed information: ${v0}";
|
||||||
|
|
||||||
static String m47(v0, v1, v2) =>
|
static String m47(v0, v1, v2, v3, v4) =>
|
||||||
"Kills: ${v0} Deaths: ${v1} Suicides: ${v2}";
|
"Kills: ${v0} Deaths: ${v1} Suicides: ${v2} \nVehicle Destruction (Soft Death): ${v3} Vehicle Destruction (Disintegration): ${v4}";
|
||||||
|
|
||||||
static String m48(v0, v1) => "Mode: ${v0} Time taken: ${v1} seconds";
|
static String m48(v0, v1) => "Mode: ${v0} Time taken: ${v1} seconds";
|
||||||
|
|
||||||
|
@ -124,7 +124,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m46(v0) => "詳細情報:${v0}";
|
static String m46(v0) => "詳細情報:${v0}";
|
||||||
|
|
||||||
static String m47(v0, v1, v2) => "キル数:${v0} 死亡数:${v1} 自殺数:${v2}";
|
static String m47(v0, v1, v2, v3, v4) =>
|
||||||
|
"キル数:${v0} デス数:${v1} 自殺回数:${v2} \n機体破壊(ソフトデス):${v3} 機体破壊(解体):${v4}";
|
||||||
|
|
||||||
static String m48(v0, v1) => "モード:${v0} 所要時間:${v1}秒";
|
static String m48(v0, v1) => "モード:${v0} 所要時間:${v1}秒";
|
||||||
|
|
||||||
|
@ -129,8 +129,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m46(v0) => "Подробная информация: ${v0}";
|
static String m46(v0) => "Подробная информация: ${v0}";
|
||||||
|
|
||||||
static String m47(v0, v1, v2) =>
|
static String m47(v0, v1, v2, v3, v4) =>
|
||||||
"Убийств: ${v0} Смертей: ${v1} Самоубийств: ${v2}";
|
"Убийства: ${v0} Смерти: ${v1} Самоубийства: ${v2} \nУничтожение техники (Мягкая смерть): ${v3} Уничтожение техники (Распад): ${v4}";
|
||||||
|
|
||||||
static String m48(v0, v1) => "Режим: ${v0} Время: ${v1} секунд";
|
static String m48(v0, v1) => "Режим: ${v0} Время: ${v1} секунд";
|
||||||
|
|
||||||
|
@ -120,7 +120,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m46(v0) => "详细信息:${v0}";
|
static String m46(v0) => "详细信息:${v0}";
|
||||||
|
|
||||||
static String m47(v0, v1, v2) => "击杀次数:${v0} 死亡次数:${v1} 自杀次数:${v2}";
|
static String m47(v0, v1, v2, v3, v4) =>
|
||||||
|
"击杀次数:${v0} 死亡次数:${v1} 自杀次数:${v2} \n载具损毁(软死亡):${v3} 载具损毁(解体):${v4}";
|
||||||
|
|
||||||
static String m48(v0, v1) => "模式:${v0} 用时:${v1} 秒";
|
static String m48(v0, v1) => "模式:${v0} 用时:${v1} 秒";
|
||||||
|
|
||||||
|
@ -120,7 +120,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m46(v0) => "詳細資訊:${v0}";
|
static String m46(v0) => "詳細資訊:${v0}";
|
||||||
|
|
||||||
static String m47(v0, v1, v2) => "擊殺次數:${v0} 死亡次數:${v1} 自殺次數:${v2}";
|
static String m47(v0, v1, v2, v3, v4) =>
|
||||||
|
"擊殺次數:${v0} 死亡次數:${v1} 自殺次數:${v2} \n載具損壞(軟死亡):${v3} 載具損壞(解體):${v4}";
|
||||||
|
|
||||||
static String m48(v0, v1) => "模式:${v0} 用時:${v1} 秒";
|
static String m48(v0, v1) => "模式:${v0} 用時:${v1} 秒";
|
||||||
|
|
||||||
|
@ -5620,17 +5620,19 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Kills: {v0} Deaths: {v1} Suicides: {v2}`
|
/// `Kills: {v0} Deaths: {v1} Suicides: {v2} \nVehicle Destruction (Soft Death): {v3} Vehicle Destruction (Disintegration): {v4}`
|
||||||
String log_analyzer_kill_death_suicide_count(
|
String log_analyzer_kill_death_suicide_count(
|
||||||
Object v0,
|
Object v0,
|
||||||
Object v1,
|
Object v1,
|
||||||
Object v2,
|
Object v2,
|
||||||
|
Object v3,
|
||||||
|
Object v4,
|
||||||
) {
|
) {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Kills: $v0 Deaths: $v1 Suicides: $v2',
|
'Kills: $v0 Deaths: $v1 Suicides: $v2 \nVehicle Destruction (Soft Death): $v3 Vehicle Destruction (Disintegration): $v4',
|
||||||
name: 'log_analyzer_kill_death_suicide_count',
|
name: 'log_analyzer_kill_death_suicide_count',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [v0, v1, v2],
|
args: [v0, v1, v2, v3, v4],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -873,7 +873,7 @@
|
|||||||
"log_analyzer_no_crash_detected": "No game crash information detected",
|
"log_analyzer_no_crash_detected": "No game crash information detected",
|
||||||
"log_analyzer_game_crash": "Game Crash ",
|
"log_analyzer_game_crash": "Game Crash ",
|
||||||
"log_analyzer_kill_summary": "Kill Summary",
|
"log_analyzer_kill_summary": "Kill Summary",
|
||||||
"log_analyzer_kill_death_suicide_count": "Kills: {v0} Deaths: {v1} Suicides: {v2}",
|
"log_analyzer_kill_death_suicide_count": "Kills: {v0} Deaths: {v1} Suicides: {v2} \nVehicle Destruction (Soft Death): {v3} Vehicle Destruction (Disintegration): {v4}",
|
||||||
"log_analyzer_play_time": "Play Time",
|
"log_analyzer_play_time": "Play Time",
|
||||||
"log_analyzer_play_time_format": "{v0} hours {v1} minutes {v2} seconds",
|
"log_analyzer_play_time_format": "{v0} hours {v1} minutes {v2} seconds",
|
||||||
"log_analyzer_game_start": "Game Start",
|
"log_analyzer_game_start": "Game Start",
|
||||||
|
@ -872,7 +872,7 @@
|
|||||||
"log_analyzer_no_crash_detected": "ゲームクラッシュ情報は検出されませんでした",
|
"log_analyzer_no_crash_detected": "ゲームクラッシュ情報は検出されませんでした",
|
||||||
"log_analyzer_game_crash": "ゲームクラッシュ ",
|
"log_analyzer_game_crash": "ゲームクラッシュ ",
|
||||||
"log_analyzer_kill_summary": "キル概要",
|
"log_analyzer_kill_summary": "キル概要",
|
||||||
"log_analyzer_kill_death_suicide_count": "キル数:{v0} 死亡数:{v1} 自殺数:{v2}",
|
"log_analyzer_kill_death_suicide_count": "キル数:{v0} デス数:{v1} 自殺回数:{v2} \n機体破壊(ソフトデス):{v3} 機体破壊(解体):{v4}",
|
||||||
"log_analyzer_play_time": "プレイ時間",
|
"log_analyzer_play_time": "プレイ時間",
|
||||||
"log_analyzer_play_time_format": "{v0}時間{v1}分{v2}秒",
|
"log_analyzer_play_time_format": "{v0}時間{v1}分{v2}秒",
|
||||||
"log_analyzer_game_start": "ゲーム起動",
|
"log_analyzer_game_start": "ゲーム起動",
|
||||||
|
@ -873,7 +873,7 @@
|
|||||||
"log_analyzer_no_crash_detected": "Сбои игры не обнаружены",
|
"log_analyzer_no_crash_detected": "Сбои игры не обнаружены",
|
||||||
"log_analyzer_game_crash": "Сбой игры ",
|
"log_analyzer_game_crash": "Сбой игры ",
|
||||||
"log_analyzer_kill_summary": "Сводка убийств",
|
"log_analyzer_kill_summary": "Сводка убийств",
|
||||||
"log_analyzer_kill_death_suicide_count": "Убийств: {v0} Смертей: {v1} Самоубийств: {v2}",
|
"log_analyzer_kill_death_suicide_count": "Убийства: {v0} Смерти: {v1} Самоубийства: {v2} \nУничтожение техники (Мягкая смерть): {v3} Уничтожение техники (Распад): {v4}",
|
||||||
"log_analyzer_play_time": "Время игры",
|
"log_analyzer_play_time": "Время игры",
|
||||||
"log_analyzer_play_time_format": "{v0} часов {v1} минут {v2} секунд",
|
"log_analyzer_play_time_format": "{v0} часов {v1} минут {v2} секунд",
|
||||||
"log_analyzer_game_start": "Запуск игры",
|
"log_analyzer_game_start": "Запуск игры",
|
||||||
|
@ -873,7 +873,7 @@
|
|||||||
"log_analyzer_no_crash_detected": "未检测到游戏崩溃信息",
|
"log_analyzer_no_crash_detected": "未检测到游戏崩溃信息",
|
||||||
"log_analyzer_game_crash": "游戏崩溃 ",
|
"log_analyzer_game_crash": "游戏崩溃 ",
|
||||||
"log_analyzer_kill_summary": "击杀总结",
|
"log_analyzer_kill_summary": "击杀总结",
|
||||||
"log_analyzer_kill_death_suicide_count": "击杀次数:{v0} 死亡次数:{v1} 自杀次数:{v2}",
|
"log_analyzer_kill_death_suicide_count": "击杀次数:{v0} 死亡次数:{v1} 自杀次数:{v2} \n载具损毁(软死亡):{v3} 载具损毁(解体):{v4}",
|
||||||
"log_analyzer_play_time": "游玩时长",
|
"log_analyzer_play_time": "游玩时长",
|
||||||
"log_analyzer_play_time_format": "{v0} 小时 {v1} 分钟 {v2} 秒",
|
"log_analyzer_play_time_format": "{v0} 小时 {v1} 分钟 {v2} 秒",
|
||||||
"log_analyzer_game_start": "游戏启动",
|
"log_analyzer_game_start": "游戏启动",
|
||||||
|
@ -875,7 +875,7 @@
|
|||||||
"log_analyzer_no_crash_detected": "未檢測到遊戲崩潰資訊",
|
"log_analyzer_no_crash_detected": "未檢測到遊戲崩潰資訊",
|
||||||
"log_analyzer_game_crash": "遊戲崩潰 ",
|
"log_analyzer_game_crash": "遊戲崩潰 ",
|
||||||
"log_analyzer_kill_summary": "擊殺總結",
|
"log_analyzer_kill_summary": "擊殺總結",
|
||||||
"log_analyzer_kill_death_suicide_count": "擊殺次數:{v0} 死亡次數:{v1} 自殺次數:{v2}",
|
"log_analyzer_kill_death_suicide_count": "擊殺次數:{v0} 死亡次數:{v1} 自殺次數:{v2} \n載具損壞(軟死亡):{v3} 載具損壞(解體):{v4}",
|
||||||
"log_analyzer_play_time": "遊玩時長",
|
"log_analyzer_play_time": "遊玩時長",
|
||||||
"log_analyzer_play_time_format": "{v0} 小時 {v1} 分鐘 {v2} 秒",
|
"log_analyzer_play_time_format": "{v0} 小時 {v1} 分鐘 {v2} 秒",
|
||||||
"log_analyzer_game_start": "遊戲啟動",
|
"log_analyzer_game_start": "遊戲啟動",
|
||||||
|
@ -59,6 +59,8 @@ class ToolsLogAnalyze extends _$ToolsLogAnalyze {
|
|||||||
int _killCount = 0; // 记录击杀其他实体次数
|
int _killCount = 0; // 记录击杀其他实体次数
|
||||||
int _deathCount = 0; // 记录被击杀次数
|
int _deathCount = 0; // 记录被击杀次数
|
||||||
int _selfKillCount = 0; // 记录自杀次数
|
int _selfKillCount = 0; // 记录自杀次数
|
||||||
|
int _vehicleDestructionCount = 0; // 记录载具损毁次数 (软死亡)
|
||||||
|
int _vehicleDestructionCountHard = 0; // 记录载具损毁次数 (解体)
|
||||||
DateTime? _gameStartTime; // 记录游戏开始时间
|
DateTime? _gameStartTime; // 记录游戏开始时间
|
||||||
int _gameCrashLineNumber = -1; // 记录${S.current.log_analyzer_filter_game_crash}行号
|
int _gameCrashLineNumber = -1; // 记录${S.current.log_analyzer_filter_game_crash}行号
|
||||||
int _currentLineNumber = 0; // 当前行号
|
int _currentLineNumber = 0; // 当前行号
|
||||||
@ -70,6 +72,8 @@ class ToolsLogAnalyze extends _$ToolsLogAnalyze {
|
|||||||
_killCount = 0;
|
_killCount = 0;
|
||||||
_deathCount = 0;
|
_deathCount = 0;
|
||||||
_selfKillCount = 0;
|
_selfKillCount = 0;
|
||||||
|
_vehicleDestructionCount = 0;
|
||||||
|
_vehicleDestructionCountHard = 0;
|
||||||
_gameStartTime = null;
|
_gameStartTime = null;
|
||||||
_gameCrashLineNumber = -1;
|
_gameCrashLineNumber = -1;
|
||||||
} else if (startLine > logLines.length) {
|
} else if (startLine > logLines.length) {
|
||||||
@ -126,6 +130,8 @@ class ToolsLogAnalyze extends _$ToolsLogAnalyze {
|
|||||||
_killCount,
|
_killCount,
|
||||||
_deathCount,
|
_deathCount,
|
||||||
_selfKillCount,
|
_selfKillCount,
|
||||||
|
_vehicleDestructionCount,
|
||||||
|
_vehicleDestructionCountHard,
|
||||||
),
|
),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -314,11 +320,9 @@ class ToolsLogAnalyze extends _$ToolsLogAnalyze {
|
|||||||
final hitEntity = safeExtract(patterns['hit_entity']!, line) ?? 'Unknown';
|
final hitEntity = safeExtract(patterns['hit_entity']!, line) ?? 'Unknown';
|
||||||
final hitEntityVehicle = safeExtract(patterns['hit_entity_vehicle']!, line) ?? 'Unknown Vehicle';
|
final hitEntityVehicle = safeExtract(patterns['hit_entity_vehicle']!, line) ?? 'Unknown Vehicle';
|
||||||
final distance = double.tryParse(safeExtract(patterns['distance']!, line) ?? '') ?? 0.0;
|
final distance = double.tryParse(safeExtract(patterns['distance']!, line) ?? '') ?? 0.0;
|
||||||
|
|
||||||
return LogAnalyzeLineData(
|
return LogAnalyzeLineData(
|
||||||
type: "fatal_collision",
|
type: "fatal_collision",
|
||||||
title: S.current.log_analyzer_filter_fatal_collision,
|
title: S.current.log_analyzer_filter_fatal_collision,
|
||||||
// data: "区域:$zone 玩家驾驶:${playerPilot ? '✅' : '❌'} 碰撞实体:$hitEntity \n碰撞载具: $hitEntityVehicle 碰撞距离:$distance ",
|
|
||||||
data: S.current.log_analyzer_collision_details(
|
data: S.current.log_analyzer_collision_details(
|
||||||
zone,
|
zone,
|
||||||
playerPilot ? '✅' : '❌',
|
playerPilot ? '✅' : '❌',
|
||||||
@ -345,6 +349,14 @@ class ToolsLogAnalyze extends _$ToolsLogAnalyze {
|
|||||||
|
|
||||||
final destructionLevelMap = {1: S.current.log_analyzer_soft_death, 2: S.current.log_analyzer_disintegration};
|
final destructionLevelMap = {1: S.current.log_analyzer_soft_death, 2: S.current.log_analyzer_disintegration};
|
||||||
|
|
||||||
|
if (causedBy.trim() == _playerName) {
|
||||||
|
if (destructionLevel == 1) {
|
||||||
|
_vehicleDestructionCount++;
|
||||||
|
} else if (destructionLevel == 2) {
|
||||||
|
_vehicleDestructionCountHard++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return LogAnalyzeLineData(
|
return LogAnalyzeLineData(
|
||||||
type: "vehicle_destruction",
|
type: "vehicle_destruction",
|
||||||
title: S.current.log_analyzer_filter_vehicle_damaged,
|
title: S.current.log_analyzer_filter_vehicle_damaged,
|
||||||
|
@ -233,18 +233,21 @@ class ToolsLogAnalyzeDialogUI extends HookConsumerWidget {
|
|||||||
if (lastListSize.value == 0) {
|
if (lastListSize.value == 0) {
|
||||||
lastListSize.value = logResp.value?.length ?? 0;
|
lastListSize.value = logResp.value?.length ?? 0;
|
||||||
} else {
|
} else {
|
||||||
// 判断当前列表是否在底部
|
// 判断当前内容是否大于一页
|
||||||
if (listCtrl.position.pixels >= listCtrl.position.maxScrollExtent) {
|
if (listCtrl.position.maxScrollExtent > listCtrl.position.viewportDimension) {
|
||||||
// 如果在底部,判断数据是否有变化
|
// 判断当前列表是否在底部
|
||||||
if ((logResp.value?.length ?? 0) > lastListSize.value) {
|
if (listCtrl.position.pixels >= listCtrl.position.maxScrollExtent) {
|
||||||
Future.delayed(Duration(milliseconds: 100)).then((_) {
|
// 如果在底部,判断数据是否有变化
|
||||||
listCtrl.jumpTo(listCtrl.position.maxScrollExtent);
|
if ((logResp.value?.length ?? 0) > lastListSize.value) {
|
||||||
});
|
Future.delayed(Duration(milliseconds: 100)).then((_) {
|
||||||
lastListSize.value = logResp.value?.length ?? 0;
|
listCtrl.jumpTo(listCtrl.position.maxScrollExtent);
|
||||||
} else {
|
});
|
||||||
// 回顶部
|
lastListSize.value = logResp.value?.length ?? 0;
|
||||||
if (listCtrl.position.pixels > 0) {
|
} else {
|
||||||
listCtrl.jumpTo(0);
|
// 回顶部
|
||||||
|
if (listCtrl.position.pixels > 0) {
|
||||||
|
listCtrl.jumpTo(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user