窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_主窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | hMap | 整数型 | | pData | 整数型 | | 是否连接 | 逻辑型 | | 定时器ID | 整数型 | |
标题 = "SCS卡车遥测数据 v1.0" 宽度 = 800 高度 = 600 创建控件 () 是否连接 = 假 按钮_连接.标题 = "连接游戏" 状态条1. 置文本 (0, "未连接" )状态条1. 置文本 (1, "SCS-SDK-Plugin v1.x" )状态条1. 置文本 (2, "等待连接..." ) 按钮_连接 = 按钮. 创建 (10, 10, 100, 30, "连接游戏", &_按钮_连接_被单击 ) 标签_速度 = 标签. 创建 (50, 50, 150, 40, "速度: 0 km/h", 假)标签_速度.字体.字体大小 = 16 标签_RPM = 标签. 创建 (50, 100, 150, 40, "转速: 0 RPM", 假)标签_RPM.字体.字体大小 = 16 标签_档位 = 标签. 创建 (50, 150, 150, 40, "档位: N", 假)标签_档位.字体.字体大小 = 16 标签_油门 = 标签. 创建 (50, 200, 150, 40, "油门: 0%", 假)标签_油门.字体.字体大小 = 16 标签_刹车 = 标签. 创建 (50, 250, 150, 40, "刹车: 0%", 假)标签_刹车.字体.字体大小 = 16 进度条_速度 = 进度条. 创建 (200, 50, 300, 30, 0, 150 )进度条_速度.方向 = 0 进度条_速度.显示方式 = 1 进度条_RPM = 进度条. 创建 (200, 100, 300, 30, 0, 100 )进度条_RPM.方向 = 0 进度条_RPM.显示方式 = 1 进度条_油门 = 进度条. 创建 (200, 200, 300, 30, 0, 100 )进度条_油门.方向 = 0 进度条_油门.显示方式 = 1 进度条_刹车 = 进度条. 创建 (200, 250, 300, 30, 0, 100 )进度条_刹车.方向 = 0 进度条_刹车.显示方式 = 1 状态条1 = 状态条. 创建 (0, 高度 - 30, 宽度, 30 )状态条1. 添加项目 ("状态", 150 )状态条1. 添加项目 ("插件版本", 150 )状态条1. 添加项目 ("游戏状态", 200 )状态条1. 添加项目 ("FPS", 80 ) 标签_游戏名称 = 标签. 创建 (50, 300, 200, 30, "游戏: 未连接", 假)标签_卡车品牌 = 标签. 创建 (50, 340, 200, 30, "卡车: 未知", 假)标签_货物重量 = 标签. 创建 (50, 380, 200, 30, "货物: 0 kg", 假) 形状_左转向灯 = 形状. 创建 (300, 350, 20, 20 )形状_左转向灯.形状 = 3 形状_左转向灯.背景颜色 = # ** 形状_右转向灯 = 形状. 创建 (350, 350, 20, 20 )形状_右转向灯.形状 = 3 形状_右转向灯.背景颜色 = # ** 标签. 创建 (325, 350, 20, 20, "←", 假)标签. 创建 (375, 350, 20, 20, "→", 假) 图片框1 = 图片框. 创建 (500, 50, 250, 250 )图片框1.图片 = 读入文件 ("truck_dashboard.jpg" ) 如果 (是否连接 )  是否连接 = 假  按钮_连接.标题 = "连接游戏"  状态条1. 置文本 (0, "已断开" ) 撤销映射内存映射文件 (pData ) 关闭内存映射文件 (hMap ) 时钟_更新数据.时钟周期 = 0  定时器ID = 0   如果真 (打开共享内存 () = 假) 信息框 ("无法连接到共享内存,请确保:", #错误图标, "连接错误", ) 返回 ()  是否连接 = 真  按钮_连接.标题 = "断开连接"  状态条1. 置文本 (0, "已连接" )  定时器ID = 时钟_更新数据. 创建 (100, &更新遥测数据 ) .局部变量 共享内存名称, 文本型 共享内存名称 = "Local\SCSTelemetry" hMap = 打开内存映射文件 (0, 假, 共享内存名称, 0, 0, #读权限 ) 如果真 (hMap = 0 ) 信息框 ("打开共享内存失败!请确保:", #错误图标, "错误", ) 状态条1. 置文本 (0, "连接失败" ) 返回 (假)pData = 映射内存映射文件 (hMap, #读权限, 0, 0, 0 ) 如果真 (pData = 0 ) 信息框 ("内存映射失败!", #错误图标, "错误", ) 关闭内存映射文件 (hMap ) 返回 (假)返回 (真) 如果真 (是否连接 = 假) 返回 () .局部变量 游戏名称指针, 整数型 游戏名称指针 = 指针到整数 (pData + 16 ) .局部变量 游戏名称, 文本型 如果真 (游戏名称指针 ≠ 0 ) 游戏名称 = 指针到文本 (游戏名称指针 ) 标签_游戏名称.标题 = "游戏: " + 游戏名称 .局部变量 速度, 小数型 速度 = 指针到小数 (pData + 40 ) 标签_速度.标题 = "速度: " + 到文本 (取整 (速度 × 3.6 )) + " km/h" 进度条_速度.位置 = 取整 (速度 × 3.6 ) .局部变量 转速, 小数型 转速 = 指针到小数 (pData + 44 ) .局部变量 实际转速, 小数型 实际转速 = 转速 × 2500 标签_RPM.标题 = "转速: " + 到文本 (取整 (实际转速 )) + " RPM" 进度条_RPM.位置 = 取整 (实际转速 ).局部变量 档位, 整数型 档位 = 指针到整数 (pData + 48 ) 判断 (档位 = 0 ) 标签_档位.标题 = "档位: N"  判断 (档位 < 0 ) 标签_档位.标题 = "档位: R" + 到文本 (取绝对值 (档位 ))   标签_档位.标题 = "档位: " + 到文本 (档位 ) .局部变量 油门, 小数型 油门 = 指针到小数 (pData + 52 ) 标签_油门.标题 = "油门: " + 到文本 (取整 (油门 × 100 )) + "%" 进度条_油门.位置 = 取整 (油门 × 100 ).局部变量 刹车, 小数型 刹车 = 指针到小数 (pData + 56 ) 标签_刹车.标题 = "刹车: " + 到文本 (取整 (刹车 × 100 )) + "%" 进度条_刹车.位置 = 取整 (刹车 × 100 ) .局部变量 左转向灯, 整数型 左转向灯 = 指针到整数 (pData + 128 ) 如果 (左转向灯 ≠ 0 ) 形状_左转向灯.背景颜色 = #黄色   形状_左转向灯.背景颜色 = # ** .局部变量 右转向灯, 整数型 右转向灯 = 指针到整数 (pData + 132 ) 如果 (右转向灯 ≠ 0 ) 形状_右转向灯.背景颜色 = #黄色   形状_右转向灯.背景颜色 = # ** .局部变量 卡车品牌指针, 整数型 卡车品牌指针 = 指针到整数 (pData + 200 ) .局部变量 卡车品牌, 文本型 如果真 (卡车品牌指针 ≠ 0 ) 卡车品牌 = 指针到文本 (卡车品牌指针 ) 标签_卡车品牌.标题 = "卡车: " + 卡车品牌 .局部变量 货物重量, 小数型 货物重量 = 指针到小数 (pData + 240 ) 标签_货物重量.标题 = "货物: " + 到文本 (取整 (货物重量 )) + " kg" 状态条1. 置文本 (3, "FPS: " + 到文本 (取整 (1 / (取启动时间 () - 上次更新时间 )) )上次更新时间 = 取启动时间 () 如果真 (是否连接 ) 撤销映射内存映射文件 (pData ) 关闭内存映射文件 (hMap ) 如果真 (定时器ID ≠ 0 ) 时钟_更新数据. 销毁 (定时器ID ) |
EMapFile | (未知支持库) | iext | eAPI | spec |
|