赛博仙人 发表于 2024-4-2 20:27:20

cs2外部雷达算法

player表示敌人遍历指针,也就是读血量的地址。计次循环里面写.版本 2

    玩家雷达内存坐标.x = 读小数型 (player + #m_vOldOrigin + 4)
    玩家雷达内存坐标.y = 读小数型 (player + #m_vOldOrigin)
    雷达坐标 = 内存转雷达坐标 (玩家雷达内存坐标, 90)
    ' 绘制自己写,直接使用雷达坐标.x/y



内存转雷达坐标 子程序
.版本 2

.子程序 内存转雷达坐标, D2D坐标
.参数 对象坐标, D2D坐标
.参数 rotation_angle, 整数型
.局部变量 d2d, D2D坐标
.局部变量 雷达坐标, D2D坐标

雷达坐标.x = (对象坐标.x + 地图.地图x) × 1024 ÷ (1024 × 地图.规模 × 2)' 1024表示地图图片宽
雷达坐标.y = (对象坐标.y + 地图.地图y) × 1024 ÷ (1024 × 地图.规模 × 2)' 1024表示地图图片高
d2d = rotate_point (雷达坐标, rotation_angle)
d2d.x = d2d.x
d2d.y = d2d.y
返回 (d2d)


继续引用的还有 rotate_point
.版本 2

.子程序 rotate_point, D2D坐标
.参数 point, D2D坐标
.参数 rotation_angle, 整数型
.局部变量 s, D2D坐标
.局部变量 angle_rad, 小数型
.局部变量 x1, 小数型
.局部变量 y1, 小数型
.局部变量 p1, D2D坐标
.局部变量 p2, D2D坐标
.局部变量 p3, D2D坐标

x1 = 1024 ÷ 2' 图片宽
y1 = 1024 ÷ 2' 图片高

angle_rad = rotation_angle ÷ 180 × #pi

p1.x = point.x - x1
p1.y = y1 - point.y

p2.x = p1.x × 求余弦 (angle_rad) - p1.y × 求正弦 (angle_rad)
p2.y = p1.x × 求正弦 (angle_rad) + p1.y × 求余弦 (angle_rad)

p3.x = p2.x + x1
p3.y = y1 - p2.y

返回 (p3)



地图比例
.版本 2

.子程序 获取地图名称, 整数型
.参数 地图名称, 文本型, 参考 可空
.局部变量 global_vars, 长整数型
.局部变量 current_map_name, 长整数型
.局部变量 地图id, 整数型
.局部变量 地图名, 字节集

global_vars = m_global_vars
.如果真 (global_vars > 0)
    current_map_name = 读长整数 (global_vars + #m_nToggleButtonDownMask)' CPlayer_MovementServices->m_nToggleButtonDownMask
    地图名 = 读字节集 (current_map_name + 3, 10)' 地图名
    地图id = 0
    地图名称 = “”
    .如果真 (取字节集左边 (地图名, 6) = { 109, 105, 114, 97, 103, 101 })' 荒漠迷城
      地图id = 1
      地图.规模 = 2.5
      地图.地图x = 3420
      地图.地图y = 3263
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 6))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 8) = { 111, 118, 101, 114, 112, 97, 115, 115 })' 死亡游乐园
      地图id = 2
      地图.规模 = 2.6
      地图.地图x = 3550
      地图.地图y = 4840
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 8))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 7) = { 118, 101, 114, 116, 105, 103, 111 })' 殒命大厦
      地图id = 3
      地图.规模 = 2.55
      地图.地图x = 3925
      地图.地图y = 4010
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 7))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 7) = { 97, 110, 99, 105, 101, 110, 116 })' 远古遗迹
      地图id = 4
      地图.规模 = 2.2
      地图.地图x = 2650
      地图.地图y = 2650
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 7))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 7) = { 105, 110, 102, 101, 114, 110, 111 })' 炼狱小镇
      地图id = 5
      地图.规模 = 2.5
      地图.地图x = 1213
      地图.地图y = 2170
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 7))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 7) = { 110, 117, 107, 101, 0, 110, 111 })' 核子危机
      地图id = 6
      地图.规模 = 1.764
      地图.地图x = 6060
      地图.地图y = 3350
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 7))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 6) = { 97, 110, 117, 98, 105, 115 })' 阿努比斯
      地图id = 7
      地图.规模 = 2.6
      地图.地图x = 2004
      地图.地图y = 2770
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 6))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 5) = { 100, 117, 115, 116, 50 })' 炙热沙城II
      地图id = 8
      地图.规模 = 2.2
      地图.地图x = 1280
      地图.地图y = 2500
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 5))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 6) = { 111, 102, 102, 105, 99, 101 })' 办公室
      地图id = 9
      地图.规模 = 2.1
      地图.地图x = 2400
      地图.地图y = 1870
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 6))
    .如果真结束
    .如果真 (取字节集左边 (地图名, 5) = { 105, 116, 97, 108, 121 })' 意大利小镇
      地图id = 10
      地图.规模 = 0
      地图.地图x = 0
      地图.地图y = 0
      地图名称 = “de_” + 到文本 (取字节集左边 (地图名, 5))
    .如果真结束

.如果真结束
返回 (地图id)

a1997426z 发表于 2024-10-7 14:14:16

可以分享一份源码吗

赛博仙人 发表于 2024-4-2 20:29:05

内存转雷达坐标 子程序 显示乱码点纯文本模式
页: [1]
查看完整版本: cs2外部雷达算法