1
有了矩阵的基地址以后就可以读取矩阵的值放入数组中
ReadProcessMemoryWorld (进程句柄, 矩阵基地址, ViewWorld [1] [1], 64, 0)
2
有了ViewWorld数组就可以吧世界坐标转换为屏幕坐标
相机Z = ViewWorld [3] [1] × 其他人坐标.X + ViewWorld [3] [2] × 其他人坐标.Y + ViewWorld [3] [3] × 其他人坐标.Z + ViewWorld [3] [4]
缩放比例 = 1 ÷ 相机Z
相机X = 视角宽 + (ViewWorld [1] [1] × 其他人坐标.X + ViewWorld [1] [2] × 其他人坐标.Y + ViewWorld [1] [3] × 其他人坐标.Z + ViewWorld [1] [4]) × 缩放比例 × 视角宽
相机Y = 视角高 - (ViewWorld [2] [1] × 其他人坐标.X + ViewWorld [2] [2] × 其他人坐标.Y + ViewWorld [2] [3] × (其他人坐标.Z - 3) + ViewWorld [2] [4]) × 缩放比例 × 视角高
相机Y2 = 视角高 - (ViewWorld [2] [1] × 其他人坐标.X + ViewWorld [2] [2] × 其他人坐标.Y + ViewWorld [2] [3] × (其他人坐标.Z + 80) + ViewWorld [2] [4]) × 缩放比例 × 视角高
3
有了相机X和相机Y以后,我们就可以绘制出方框了
.版本 2
.如果真 (其他人血量 > 1)
方框高度 = 相机Y - 相机Y2
方框宽度 = 方框高度 × 0.5
其他人距离 = 取整 (取_其他人距离 (本人坐标, 其他人坐标) ÷ 10)
绘制矩形 (相机X - 方框宽度 ÷ 2, 相机Y2, 方框宽度, 方框高度, #红色, 2)
方框坐标数据.左边 = 相机X - 方框宽度 ÷ 2
方框坐标数据.顶边 = 相机Y2
方框坐标数据.宽度 = 方框宽度
方框坐标数据.高度 = 方框高度
竖向血条 (方框坐标数据, 其他人血量, #绿色)
绘制文本 (方框坐标数据.左边, 相机Y, “距离:” + 到文本 (其他人距离), #红色, 21, 255)
绘制直线 (视角宽, 0, 相机X, 相机Y2, 2, #红色)
4
但是这里有一个问题就是你的视角前面有一个方框,视角后面也有一个方框,如何过滤掉它呢
在算出相机Z的数值以后进行一个判断
.版本 2
' 干掉出现两个方框的情况
.如果真 (相机Z < 0)
到循环尾 () ' break