短流苏 发表于 2024-7-9 11:54

想给老游戏写个视角控制解锁的修改器,麻烦大家帮忙看看代码

本帖最后由 短流苏 于 2024-7-9 12:00 编辑

我想给苍之涛写个视角控制解锁的修改器,这个功能实现起来好像还挺简单。

但我不懂编程,昨天用CE把控制镜头距离和视角X轴、Y轴的内存基址找到了,我可以在CE里通过修改参数调整镜头。
我是考虑按照现有逻辑把镜头距离控制绑定在滚轮,视角X轴、Y轴绑定在鼠标上,然后我找GPT问了之后它告诉我用Lua编写脚本,我把代码放进CE自带的lua脚本编辑功能里头之后,它有报错,我找gpt去问,我又不确定它返回给我的新答案是不是对的,所以想请大家帮我看看,谢谢啦。

代码如下:
(我现在在办公室摸鱼,回去之后我会把"镜头上下角度变量地址"修改为昨天找到的内存基址)

1.视角X轴、Y轴

-- 定义镜头控制变量的内存地址
local camera_pitch_address = "镜头上下角度变量地址"
local camera_yaw_address = "镜头左右角度变量地址"


-- 获取鼠标当前位置
local last_mouse_x, last_mouse_y = getMousePos()


function onMouseMove()
    -- 获取当前鼠标位置
    local current_mouse_x, current_mouse_y = getMousePos()


    -- 计算鼠标移动的距离
    local delta_x = current_mouse_x - last_mouse_x
    local delta_y = current_mouse_y - last_mouse_y


    -- 更新镜头角度
    local camera_pitch = readFloat(camera_pitch_address)
    local camera_yaw = readFloat(camera_yaw_address)


    -- 调整镜头角度
    camera_pitch = camera_pitch + delta_y * 0.1-- 调整系数可以根据需要修改
    camera_yaw = camera_yaw + delta_x * 0.1


    -- 写回新的镜头角度
    writeFloat(camera_pitch_address, camera_pitch)
    writeFloat(camera_yaw_address, camera_yaw)


    -- 更新鼠标位置
    last_mouse_x, last_mouse_y = current_mouse_x, current_mouse_y
end


function CETrainer_CHEATPANELClick(sender)
    -- 监听鼠标移动事件
    registerMouseEvent(onMouseMove)
end



2.滚轮控制镜头距离


-- 定义镜头控制变量的内存地址
local camera_distance_address = "镜头距离变量地址"


-- 定义鼠标滚轮事件处理函数
function onMouseWheel(event)
    local camera_distance = readInteger(camera_distance_address)
    if event.delta > 0 then
      -- 鼠标滚轮向上,增加镜头距离
      writeInteger(camera_distance_address, camera_distance + 10)
    else
      -- 鼠标滚轮向下,减少镜头距离
      writeInteger(camera_distance_address, camera_distance - 10)
    end
end


-- 监听鼠标滚轮事件
registerMouseEvent(onMouseWheel)





短流苏 发表于 2024-7-9 12:19

代码这种东西……
比起到论坛问,是不是我自己不断去测试对错比较好

cedarmil1 发表于 2024-7-9 12:24

短流苏 发表于 2024-7-9 12:59

本帖最后由 短流苏 于 2024-7-9 15:00 编辑

cedarmil1 发表于 2024-7-9 12:24
不如问chatgpt,论坛上的活跃分子甚至打不打游戏都存疑,还讨论技术?

也不知道我这个帖子和你的回复哪个对这个论坛的嘲讽力度更大一些。最近感觉游戏区老是半死不活的,也基本找不到什么有价值的观点,基本都一群输出情绪的乐子人。
可能游戏区快死了吧,然后留下外野一帮子爱键政的老馋

——————————————
按底下的回复看实际上还是蛮多人讨论的,吃回旋镖的一天

cedarmil1 发表于 2024-7-9 13:13

短流苏 发表于 2024-7-9 13:22

cedarmil1 发表于 2024-7-9 13:13
我没玩过这个游戏, 或者说我基本不用pc玩游戏

但直觉上我认为鼠标是矢量转坐标的输入设备, 处理起来相对比 ...

噢噢,下午我试试
我设想的那套方案就是目前最常用的思路,直觉上就会想着要这么写

aaa1333 发表于 2024-7-9 13:22

没用过CE的脚本,单看你代码逻辑问题不大,后面主要看怎么调吧

短流苏 发表于 2024-7-9 13:24

cedarmil1 发表于 2024-7-9 13:13
我没玩过这个游戏, 或者说我基本不用pc玩游戏

但直觉上我认为鼠标是矢量转坐标的输入设备, 处理起来相对比 ...

我其实倒是想把这个修改器写好之后用reWASD之类的软件实现手柄替代键鼠的操作方法
这种有现成方案的,就不需要我折腾了

短流苏 发表于 2024-7-9 13:25

aaa1333 发表于 2024-7-9 13:22
没用过CE的脚本,单看你代码逻辑问题不大,后面主要看怎么调吧

好的好的,之后我多调试一下,谢谢

Tring 发表于 2024-7-9 13:43

有报错不把报错内容贴出来,光给个代码有啥用,真当都是人肉编译器?
页: [1]
查看完整版本: 想给老游戏写个视角控制解锁的修改器,麻烦大家帮忙看看代码