实体

统计 CStats

读写统计与进度

CStats.h · 枚举 eStats.h

逻辑帧改统计。id 以 eStats 为准。

读统计

GetStatValue / GetStatID
static float GetStatValue(unsigned short stat);
static char* GetStatID(unsigned short stat);
static bool GetStatType(unsigned short stat); // true=float 表等,见实现

写统计

SetStatValue / IncrementStat / DecrementStat
static void SetStatValue(unsigned short stat, float value);
static void IncrementStat(unsigned short stat, float value);
static void DecrementStat(unsigned short stat, float value);
static void SetNewRecordStat(unsigned short stat, float value);

进度与犯罪等级

GetPercentageProgress / FindCriminalRatingNumber
static float GetPercentageProgress();
static int FindCriminalRatingNumber();
static char* FindCriminalRatingString();

任务尝试

RegisterMissionAttempted / RegisterMissionPassed
static void RegisterMissionAttempted(unsigned char missionId);
static void RegisterMissionPassed(unsigned char missionId);
static char GetTimesMissionAttempted(unsigned char missionId);

脚本更新提示

DisplayScriptStatUpdateMessage
static void DisplayScriptStatUpdateMessage(unsigned char state, unsigned int stat, float value);
// STAT_UPDATE_INCREASE / STAT_UPDATE_DECREASE

体能相关更新

UpdateStatsWhenSprinting / UpdateStatsWhenDriving

游戏内部调用;一般别每帧手搓,除非做自定义训练。

static void UpdateStatsWhenSprinting();
static void UpdateStatsWhenRunning();
static void UpdateStatsWhenDriving(CVehicle* vehicle);
// ... 见 CStats.h

原始表

StatTypesInt / StatTypesFloat

直接扫表要小心上下限与反应逻辑。

static int* StatTypesInt;    // [224]
static float* StatTypesFloat; // [83]

On this page