Code Monkey home page Code Monkey logo

soldier76's Introduction

76_logo

Soldier76 | Lite

PUBG - Logitech鼠标宏自动压枪脚本使用说明
(务必...务必...务必...认真看完,使用说明写的很详细了)
如果认为游戏体验有提升的话,请给我一颗小星星⭐

lua-5.1 logitech-✔ lgs-9.02.65 version-latest


Other Languages: English

下载脚本

  • 选择一个版本然后下载,国内玩家推荐使用镜像下载
  • 如果使用镜像下载,请注意版本号是否和github上一致,镜像项目由于需要手动同步进行更新,所以不一定是最新版本。

安装教程

  • 以管理员身份启动罗技驱动
    • 请确保你下载的驱动与你的操作系统是匹配的
    • 目前暂不支持 GHUB 新驱动,相关信息请到讨论区了解。
  • 开启 自动游戏检测
    • 这样做的好处是,可以避免脚本意外干扰正常操作
    • 尽量不要锁定配置,因为锁定后你的脚本无时无刻都是运行的,可能会干扰你的鼠标正常使用
  • 扫描游戏
    • 如果自动检测无法找到游戏,则需要手动添加
    • 手动添加的窍门是,打开任务管理器,找到游戏进程,右键选择打开文件所在位置,即可找到需要添加的文件
  • 右键配置文件右侧 PUBG 图标 -> 编写脚本
    • 上一步之后,会多出来的一个pubg图标,右键这个图标就能找到 编写脚本
  • Soldier76.lua 中包含的所有代码完全 覆盖 进去,保存(Ctrl + S)
    • 覆盖,即打开 编写脚本 时,不保留初始生成的代码
    • 注意不要使用翻译软件翻译脚本,翻译软件会破坏代码格式,导致报错
  • 右键 PUBG配置默认配置 中的 G6, G7, G8, G9, G10, G11 等按钮 -> 取消分配
    • 当前配置和默认配置中按键绑定的板载宏都有可能会干扰到脚本的正常使用,所以应该 取消分配

游戏设置

  • 脚本默认 设置 AimingSettings = "recommend" ,即脚本推荐设置,需要对游戏内设置做相应改动
    • 开镜:长按 右键
    • 瞄准:当 autoPressAimKey = "" 时,长按 ctrl
  • 如果习惯 游戏默认 设置,则设置 AimingSettings = "default" ,那么你就可以不需要改任何游戏设置
    • 使用该设置,你的任何点击操作都会被识别为射击,并且会触发自动压枪
    • 如果你只是单纯的想要进行点击操作,则需关闭脚本,或者暂时按住左shift或者左alt也是可以的
  • 如果你的操作习惯比较与众不同,也可以 自定义 设置 AimingSettings = "custom"
    • 使用该设置需要在 customAimingSettings 中做对应的判断
    • 建议对该脚本有一定认识后再使用,或者可以加入交流群获取帮助
  • 最新版脚本增加 自动腰射 功能,设置 autoPressAimKey = "tilde" 开启
    • 需要设置为键盘上的按键,按键名请查询 G-series Lua API 参考文档.docx
    • 如需关闭,请设置 autoPressAimKey = ""
    • 该功能不兼容 AimingSettings = "default"
    • 默认兼容 AimingSettings = "recommend",但是会影响普通点击操作,需要点击操作时请关闭脚本,或者暂时按住左shift或左alt键
    • 兼容 AimingSettings = "custom" ,需要自己做好兼容设置
参数 描述
default 使用游戏初始默认的设置,即点击右键开镜,长按右键瞄准。(单纯点击操作时需要按住左shift)
recommend 使用此脚本推荐设置,即长按右键开镜,长按左ctrl瞄准。(脚本默认使用该设置)
ctrlmode 此模式需要修改游戏设置为快速开镜,ctrl按住时为蹲下。(此模式没有腰射)
custom 自定义设置,使用在 customAimingSettings 中设置的判断条件。

启动控制

修改 startControl = "capslock" 可以使用不同的方式控制宏开启(关闭)

参数 描述
capslock 使用大写锁定键控制。(默认,推荐)
numlock 小键盘锁定键控制。
G_bind 使用 off 指令关闭宏,任何切换枪支操作都能够开启宏。

模式控制

按键 功能
CapsLock 开启大写字母键,启动宏,关闭则锁定宏,关闭时不会响应左键执行压枪操作,但 G_bind 指令依然有效(注:可改为其他控制方式,详见#启动控制)
ScrollLock 开启开发者调试模式,准星自动向右拉(开启后尝试修改 ADS 的值,使弹道变成一字)

初次使用

  1. 按照 #安装教程 安装脚本
  2. 然后再更改游戏内设置,参考 #游戏设置
  3. 修改脚本 canUse 中的枪械,设置 UMP45 的模式为 1,其他枪械的模式全部设置为 0。(自动游戏检测时,切换窗口会导致脚本重启,因此不会记录上一次配置表的位置信息,将可用枪械限制为1个有利于调试,你也可以选择保留其他的枪,任何一把枪都可以。)
  4. 进入训练场,按照注释提示,给枪支安装指定配件。
  5. 开启压枪功能(启动方式参考 startControl )和调试模式 ScrollLock ,面对墙壁,按住右键开镜,按住左键开火,你会发现准星自动往右偏移,请不要移动鼠标,直到子弹打光。
  6. 如果弹印不是一条水平线,则修改 ADS 的数值,上下微调即可。
  7. 回到游戏感受弹道变化,重复以上修改操作,继续尝试,直到弹道变成一条水平线为止。
  8. 如果数值无论怎么修改都无法变成一条水平线,请尝试略微调整游戏内的鼠标灵敏度。
  9. 当弹道成功打成一条水平线时,关闭调试模式 ScrollLock,然后再次对着墙壁进行射击。如果没有意外,那么恭喜你,你的宏已经能够准确的自动压枪了!
  10. 微调 AimscopeX2scopeX3scopeX4scopeX6 的值,使腰射、二倍、三倍、四倍、六倍压枪时弹印集中于一处。不需要倍镜压枪功能的可以跳过此步。
  11. 修改脚本 canUse 中的枪械,将你需要的枪械设置为模式 1
  12. ctrl+s 保存脚本后,可以在编辑器里尝试切换配置,切换配置时会有对应的文本信息输出,你可以在这里确认是否和心里预期的配置信息相同。
  13. 最后一步,寻找队友,然后尽情装逼吧~

* 注意代码中的注释,已经明确标出了玩家自定义区域,和脚本核心区域,请不要修改脚本核心区域中的代码。

其他设置(非必要)

什么是切换配置?

很多人没搞清楚切换是什么意思,这是我们脚本与众不同的地方。

这个脚本中有一个枪械库,枪械库根据子弹类型分成不同系列,包括: .45 系列、 9mm 系列、 5.56 系列和 7.62 系列。每个系列下存放着匹配弹药类型的枪械,比如5.56系列下的第一把枪就是 M416G6-G9 一共4个键,每个键即代表一个系列,单击后将切换至对应系列的枪械表,并且自动选中列表中的第一把枪。多次按G11键可以向下选择枪支,如果你需要的是该系列中的最后一把枪,只需按一次G10即可。

举个例子:你捡到了一把 AKM ,你只需要点击一下 G8 键,就可以了,因为 AKM 就是 7.62 系列中的第一把枪。如果你又捡到了一把 QBZ ,你不要你的 AKM 了,这时你需要先点击一次 G6 ,切换到 5.56 系列时默认选中了第一把枪,而 QBZ 是第三个,所以你还要再按2次 G11 ,这样你才能使用 QBZ 的数据。

枪械顺序请查看源代码中的 userInfo.canUse,排列顺序即枪械顺序。

以上G键功能都可以自定义设置,默认为g502设置,其他logitech系列可编程鼠标也全都支持。如果自己不会设置和调整,欢迎加群向我们询问。

G键功能(默认设置)

G键 功能
G6 切换至 5.56 枪械配置文件表,并使用第一个配置
G7 切换至 9mm 枪械配置文件表,并使用第一个配置
G8 切换至 7.62 枪械配置文件表,并使用第一个配置
G9 切换至 .45 枪械配置文件表,并使用第一个配置
G10 切换至最后一个配置 (滚轮右偏)
G11 切换至下一个配置 (滚轮左偏)

以上设置均可在 G_bind 中自定义修改键位

指令列表

指令 功能
.45 切换至 .45 系列枪械列表,并使用该列表下的第一把枪
9mm 切换至 9mm 系列枪械列表,并使用该列表下的第一把枪
5.56 切换至 5.56 系列枪械列表,并使用该列表下的第一把枪
7.62 切换至 7.62 系列枪械列表,并使用该列表下的第一把枪
first 切换至当前列表的第一把枪
next 切换至当前列表的下一把枪
last 切换至当前列表的最后一把枪
first_in_canUse canUse 下所有可用枪械视为一整个列表,并切换至该列表的第一把枪
next_in_canUse canUse 下所有可用枪械视为一整个列表,并切换至该列表的下一把枪
last_in_canUse canUse 下所有可用枪械视为一整个列表,并切换至该列表的最后一把枪
off startControl = "G_bind" 时,使用指令控制脚本关闭,切换枪支操作会重新启动宏
scopeX1 切换为基瞄模式 (红点、全息、侧瞄或不用任何瞄具)
scopeX2 切换为二倍镜模式
scopeX3 切换为三倍镜模式
scopeX4 切换为四倍镜模式
scopeX6 切换为六倍镜模式
UMP45 直接切换至 UMP45 配置
Tommy Gun 直接切换至 Tommy Gun 配置
Vector 直接切换至 Vector 配置
Micro UZI 直接切换至 Micro UZI 配置
M416 直接切换至 M416 配置
SCAR-L 直接切换至 SCAR-L 配置
QBZ 直接切换至 QBZ 配置
G36C 直接切换至 G36C 配置
M16A4 直接切换至 M16A4 配置
AKM 直接切换至 AKM 配置
Beryl M762 直接切换至 Beryl M762 配置
DP-28 直接切换至 DP-28 配置
fast_pickup 一键拾取(关闭背包后使用) 群友反馈此功能被蓝洞和谐,极容易三天,慎用!
fast_discard 一键丢弃(关闭背包后使用)
fast_lick_box 一键舔包(关闭背包后使用,仅拾取可以装入背包的物品)

可以绑定至 G_bind ,使用预设的组合键触发指令。

注意:是指令绑定到组合键上,而不是组合键绑定到指令。请不要修改等号前面[""]中的内容!

注意:一键拾取/一键丢弃/一键舔包均有三天可能,慎用!目前对这三个功能做了一些实验性更新,不保证安全!

G_bind 指令绑定演示

-- G
["G3"] = "",
["G4"] = "",
["G5"] = "",
["G6"] = "5.56",
["G7"] = "9mm",
["G8"] = "7.62",
["G9"] = ".45",
["G10"] = "last",
["G11"] = "next",

-- ✖,错误的修改方式
["G3"] = "",
["G4"] = "", -- 下面的 G4 会覆盖这个 G4,丢失了 G6 ,按下 G6 会出错。
["G5"] = "",
["G4"] = "5.56", -- 绝对不可以直接修改等号前面的组合键!
["G7"] = "9mm",
["G8"] = "7.62",
["G9"] = ".45",
["G10"] = "last",
["G11"] = "next",

-- ✔,正确的修改方式
["G3"] = "",
["G4"] = "5.56", -- 把指令绑定到了这里
["G5"] = "",
["G6"] = "", -- 清空了这个指令
["G7"] = "9mm",
["G8"] = "7.62",
["G9"] = ".45",
["G10"] = "last",
["G11"] = "next",

-- v4.4 版本新增支持绑定一组指令,使用 | 分隔
["rctrl + G5"] = "M416|scopeX1",
["rctrl + G6"] = "AKM|scopeX4",

硬件条件

  • 一只可编程 Logitech 鼠标(无线鼠标运行宏时很不稳定)
  • 游戏画面不卡顿,不频繁掉帧,必要时可以锁定帧数保证稳定性

免责声明

  • 该脚本程序仅供学习交流,严禁使用于任何商业用途,若产生利益纠纷,概不负责。
  • 请尊重作者的劳动成果,如需转载,请注明出处,谢谢!
  • 不可将此脚本二次创作后用于商业目的!

交流群

常见问题

  • Q:毫无反应?

    • A1:请先排除无线鼠标、GHUB
    • A2:请确认你是否启动了宏 (默认为开启大写)
  • Q:在桌面有反应,在游戏里没反应?

    • A:关闭驱动,重新以管理员身份启动驱动
  • Q:代码中的注释全是乱码?

    • A1:你的驱动可能是 GHUB,目前暂时不支持
    • A2:你可能使用了 导入功能,lua 文件是直接复制粘贴进编辑器里的,不能使用 导入
  • Q:代码复制进编辑器后,保存就报错?

    • A1:不支持 GHUB
    • A2:确认是否是从官网获取的代码
  • Q:枪头直接怼地上,拉都拉不起来?

    • A:调整 ADS (如果你有此疑问,你肯定没看上面的教程)
  • Q:加群问题答案是什么?

    • A:抱歉,无可奉告!这个加群问题就是为了不让没看过文档的人加群,防止他们在群里提一些毫无营养的问题。只要是认真看过一遍文档的人,都可以找到加群答案的!(ps: 天天回答一些重复问题是很麻烦的,有这回答时间我还不如把文档写写详细一点。)
  • Q:怎么区分满配和裸配?

    • A1:首先说我的观点,我不推荐为裸配和满配单独区分配置,如果进行区分,那还需要手动切换设置,操作更麻烦。推荐设置满配系数,游戏中如果没有搜到补偿器,就用蹲姿射击。蹲姿减后座的效果等于补偿器。推荐三角握把,因为它只控制水平后坐力,不影响垂直后坐力,如果是其他握把可能会出现压过头的情况。(具体看个人习惯)
    • A2:如果你非要区分满配裸配,那么你可以把代码中 scopeX2scopeX3scopeX4scopeX6 随便一个当做裸配系数就可以实现了。(一般情况下你也不需要这么多倍镜系数,舍弃一个你不用的倍镜系数当做裸配系数用就可以了。)

问题反馈

  • 使用脚本时有任何疑问,或脚本存在不足之处可以在 Issues 反馈给我

关于宏

宏就像是一个心灵手巧的瞎子,它能帮你做更复杂细腻的操作,但无法根据实时情况进行变通,所以菜的人依旧菜得真实……

关于游戏公平性问题

我赞同 @liantian-cn 的观点。

用4000块的显示器打赢显示器是400块的对手,有人说不公平吗?用一万块的显卡打赢显卡是一千块的对手,有人说不公平吗?为什么用几百块的鼠标打赢鼠标是几十块的对手,就有人要说是不公平,是作弊呢?

明明好的显示器和好的显卡对游戏水平的影响比一个鼠标宏要大的多,为什么偏偏认为是鼠标宏不公平?

杠精会说,你可以用几百块的鼠标,鼠标给你提供了宏的功能,但是你有权不使用。那么我也可以说,4000块的显示器给了你144Hz以及2K甚至4K的显示分辨率,你也有权不使用,你可以改回60Hz和1080p,显卡也是一样。

出于一些人的偏见,我不得不说清楚这些。鼠标宏无罪,菜是原罪。认为别人使用鼠标宏破坏了你的游戏体验的人,请你们尝试过了鼠标宏之后再来回答。它没你们臆想的那么神。

鼠标宏只是你学自行车时的辅助轮,在你学会了之后只会想把它拆掉,就这么简单。

Need help

My English is not very good, and the translation results of translation software are usually very strange. So I need a translator to help me translate this document into other languages. If you can, please contact me.

If you could directly fork the project and create a README.[lang].md, then Pull Request would be great for me.

soldier76's People

Contributors

kiccer avatar yhyqcb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

soldier76's Issues

关于此脚本在和平精英下的问题

打开单点连发,在和平精英下无法正常使用,能连点而不能正常下压,全自动模式正常.原因与语言写法有一定关系,和平精英有所限制,个人无法解决.望有时间的话可以研究一下.

Difficulties to understand how to use the script

I'm trying harder after 2 hours I still can not understand the script = (
I can not control him! When start the game and start the script whith "capslock" is automatically loaded a profile for "AKM with 4x Scope" but I did not load anything!
Could you make a video teaching how to use the script? Explaining mainly how the G-key function works

  • Google translation
    我在2小时后更加努力,我仍然无法理解剧本=(
    我无法控制他! 当启动游戏并启动脚本时,“capslock”会自动加载“AKM with 4x Scope”的配置文件,但我没有加载任何东西!
    你能制作视频教学如何使用剧本吗? 主要解释G-key功能的工作原理

The Best script

Man, just wanna say to you keep it up with this terrific job, the script is better than paid scripts, in fact is some hard to understand in beginning, but when you comprehend the code and how to use, it turns the best thing to use in PUBG, sorry bout my poor english but I need to thank you. you turned me into a Professional player. :)

通过我自己的琢磨

我发现有效期内脚本才能运行,但是修改系统时间可以达到相同的效果,3.5的脚本有效期显然现在已经过时了,还想用只能改系统时间,请问一下为什么不能手动修改有效期而是必须修改系统时间呢。

Question about Key Settings

Sooo recently I ask myself if it could be possible to change the Keys (G3, G4, G5,... ) to some keys from the Keyboard.

For example I want to get this result:

  • If I press F5 or shift+F5 the script switchs to 7.62 Wepons
    or Shift + F4 selects the 4x Scope

is this possible?

// edit:

the reason I want to get this work is:
I have a Stream Deck from elgato (I dont stream but its very nice to work with it)
and I want to make hotkeys to Toggle the script with hotkeys. But I cannot select those Mousebutton keys like G4/G6
.. in the menu, only the normal Keyboard keys

求合作。

我用python写了压枪宏。
功能:图像处理识别枪械类型和开火模式,https://gitee.com/Ryanshuai/auto_pubg
我没用过lua,想和你合作。
python监听鼠标键盘代码很麻烦,移植性很差,想用lua代替。
lua不能自动判断枪械类型,可以和python图像处理结合。

另外,我现在对于获得连发压枪的距离的列表,没有很好的解决方案。

continuous fire option

after the after of 4.6 continuous fire option removed from script please tell me how to enable it again in new version after 4.6

shift摒息不压枪

能否加个摒息开关,习惯了中近距离摒息放大,然而shift使我改变了操作风格,极为不习惯

扩展开发教程:增加一把新的枪械/修改一把枪械的数据

假设你已经看完了Lua语言基础和Logitech的API文档,并且成功使用了 Soldier76.lua
然后此刻的你已经迫不及待的想要增加一把自己配置数据的枪械了,那么请看下面我准备的这份教程,内容不多,全是重点,请仔细阅读~

第一步:数据模块

如果你已经看过脚本配置项下方核心区域的代码,你应该发现了有许多长得很像的重复函数:

pubg["UMP45"] = function ()

	return pubg.execOptions({
		ratio = 1,
		interval = 100,
		ballistic = {
			{1, 0},
			{5, 70},
			{10, 95},
			{15, 96},
			{35, 103},
		}
	})

end

这里我拿 UMP45 举例,你需要做的就是复制一份相同的函数,然后将 UMP45 改为你新增的枪械的名字,假设为 Gun_Name_01

第二步:配件信息

canUse 相应的系列下增加一把枪械 Gun_Name_01,假如这把枪是 .45 子弹的,那么就这么写:

canUse = {
	[".45"] = {
		{ "UMP45", 0 }, -- 基础镜 + 扩容,Bizon (基础镜即可),Vector (补偿 + 基础镜 + 扩容) | Reddot + Mag,Bizon (Reddot),Vector (Komp + Reddot + Mag)
		{ "Tommy Gun", 0 }, -- 扩容 | Mag
		{ "Gun_Name_01", 1 }, -- 在这里写下枪械需要的配件
	},
	["9mm"] = {
		{ "Vector", 0 }, -- 基础镜 + 扩容 | Reddot + Mag
		{ "Micro UZI", 0 }, -- 扩容 | Mag
	},
	["5.56"] = {
		{ "M416", 0 }, -- 补偿 + 基础镜 + 直角 + 枪托 + 扩容 | Komp + Reddot + Triangular grip + Gunstock + Mag
		{ "SCAR-L", 0 }, -- 补偿 + 基础镜 + 直角 + 扩容 | Komp + Reddot + Triangular grip + Mag
		{ "QBZ", 0 }, -- 补偿 + 基础镜 + 直角 + 扩容 | Komp + Reddot + Triangular grip + Mag
		{ "G36C", 0 }, -- 补偿 + 基础镜 + 直角 + 扩容 | Komp + Reddot + Triangular grip + Mag
		{ "M16A4", 0 }, -- 补偿 + 基础镜 + 枪托 + 扩容 | Komp + Reddot + Gunstock + Mag
	},
	["7.62"] = {
		{ "AKM", 0 }, -- 补偿 + 基础镜 + 扩容 | Komp + Reddot + Mag
		{ "Beryl M762", 0 }, -- 补偿 + 基础镜 + 直角 + 扩容 | Komp + Reddot + Triangular grip + Mag
		{ "DP-28", 0 }, -- 基础镜 | Reddot
	},
},

记住将其他枪设置为 0 ,因为你接下来马上就要进入训练场去调试了。

第三步:设置子弹上限

进入训练场,找到枪械和配件,上好子弹,注意一下一个弹夹子弹的数量,假设是 40 发子弹。
再回看刚刚增加的 pubg["Gun_Name_01"] 函数,下面有一项 ballistic

ballistic = {
	{1, 0},
	{5, 70},
	{10, 95},
	{15, 96},
	{35, 103},
}

把它改成

ballistic = {
	{1, 0},
	{40, 103},
}

这么做的原因是告诉脚本,一共有40发子弹,当到达最大上限的时候就自动停止压枪。
如何知道是否停止?建议开启自动连发,自动连发状态下,如果剩余子弹数为 0 ,那么就会发出“咔咔咔”的声音,可以借此来判断。
并且第一发子弹是不需要压的,所以下压设置为0,这应该不需要我解释了。
既然讲到了这里,就顺便先说一下这里的数据是如何调整的吧!
相信很多人在使用 Soldier76.lua 之前,还用过许多别的宏,那些宏的弹道数据都是这么写的:

recoil_table["ump9"] = {
    basic={18,19,18,19,18,19,19,21,23,24,23,24,23,24,23,24,23,24,23,24,23,24,24,25,24,25,24,25,24,25,24,25,25,26,25,26,25,26,25,26,25,26,25,26,25,26},
    quadruple={83.3,83.3,83.3,83.3,83.3,83.3,83.3,116.7,116.7,116.7,116.7,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3},
    speed = 92
}

emmmm...
看起来是不是很头疼?从哪里开始改还要一个一个数过去?但是 Soldier76.lua 不一样,它有自己独创的结构:

{
	{1, 0},
	{a, b},
	{c, d}
}

-- 从2到a颗子弹,每颗子弹需要下压b距离
-- 从a+1到c颗子弹,每颗子弹需要下压d距离
-- 以此类推
-- 因为第一枪是不需要压的,所以数据都是以 `{1, 0}` 开头

仔细阅读两遍注释部分内容,然后再观察一下代码中的枪械数据模块,是不是有种豁然开朗的感觉?是不是有种很惊喜的感觉?

第四步:设置子弹间隔

现在你已经知道了怎么修改弹道数据了,但是现在依然不能够直接就开始修改,因为你并不知道枪械的开火间隔,所以枪械数据里的每一发子弹数据并不能确定是否和实际上的每一发相对应。
所以你要调整 interval 值,每个枪械数据模块都有一个 interval 用来表示枪械的子弹频率,需要找到合适的值的方法也很简单:

进入游戏,开火模式切换为单发,然后脚本连发功能必须是启用的,接着尝试打光一个弹夹。

  • 如果压枪自动停止了,且弹夹内有剩余子弹,则加大 interval
  • 如果弹夹子弹剩余为 0 ,但是压枪没有自动停止,且发出“咔咔咔”的声音,则减小 interval

填装子弹后,重复上面的操作,直至结果接近弹夹打空后立刻停止压枪,即不会听到“咔咔咔”声,可能没有那么刚好完美,只要最接近就行了。

然后假设最后得出的结果是 90 ,那么,现在代码新增的枪械数据模块应该变成了这个样子:

pubg["Gun_Name_01"] = function ()

	return pubg.execOptions({
		ratio = 1,
		interval = 90,
		ballistic = {
			{1, 0},
			{40, 103},
		}
	})

end

第五步:反复调试弹道数据

这一步就是最枯燥,最漫长的一步了。
上面提到了修改 ballistic 数据,就是这一步该做的事情。
但是在此之前,需要先开启 开发者调试模式 ,这对你调试弹道将会非常有帮助!默认的开启键是 ScrollLock 键。
改模式的作用这里不再复述,还不知道的话请看首页文档。

观察每一颗子弹的落点位置,假设从第5颗子弹开始,子弹开始向下偏,说明子弹压过头了,那么就需要减小下压力度:

pubg["Gun_Name_01"] = function ()

	return pubg.execOptions({
		ratio = 1,
		interval = 90,
		ballistic = {
			{1, 0},
			{5, 103},
			{40, 95},
		}
	})

end

这样改了之后,第 1 颗子弹保持不变,从第 2~5 颗子弹保持之前的 103 力度下压,然后第 6~40 颗子弹下拉力度降到 95
之后做的事情就是反复观察弹道,然后视情况增加数据节点。
当最终弹道变成一条水平线时,弹道数据就完美了。
关闭开发者调试模式,然后试着打一梭子,你会惊喜的发现,后坐力全部控制住了~

第六步:增加指令

如果你希望直接一个G键对应一把枪械,那么你还需要增加一个指令才行。

function pubg.runCmd (cmd)
	if cmd == "" then cmd = "none" end
	local switch = {
		["none"] = function () end,
		[".45"] = pubg.setBulletType,
		["9mm"] = pubg.setBulletType,
		["5.56"] = pubg.setBulletType,
		["7.62"] = pubg.setBulletType,
		["scopeX1"] = pubg.setScope,
		["scopeX2"] = pubg.setScope,
		["scopeX3"] = pubg.setScope,
		["scopeX4"] = pubg.setScope,
		["scopeX6"] = pubg.setScope,
		["UMP45"] = pubg.setGun,
		["Tommy Gun"] = pubg.setGun,
		["Vector"] = pubg.setGun,
		["Micro UZI"] = pubg.setGun,
		["M416"] = pubg.setGun,
		["SCAR-L"] = pubg.setGun,
		["QBZ"] = pubg.setGun,
		["G36C"] = pubg.setGun,
		["M16A4"] = pubg.setGun,
		["AKM"] = pubg.setGun,
		["Beryl M762"] = pubg.setGun,
		["DP-28"] = pubg.setGun,
		["Gun_Name_01"] = pubg.setGun, -- 复制一个 pubg.setGun 方法,然后改为你增加的枪械名字,名字必须完全相同
		["first"] = pubg.findInSeries,
		["next"] = pubg.findInSeries,
		["last"] = pubg.findInSeries,
		["first_in_canUse"] = pubg.findInCanUse,
		["next_in_canUse"] = pubg.findInCanUse,
		["last_in_canUse"] = pubg.findInCanUse,
		["off"] = function ()
			pubg.isStart = false
		end,
	}

	if pubg.ok then switch[cmd](cmd) end
end

最后也别忘了在 G_bind 里面绑定这把枪,这把枪的名字就是指令。例如:

["G5"] = "Gun_Name_01",

大功告成!

别忘了把 canUse 中你需要的枪械设置回 1
现在你已经准备就绪了!开始游戏尝试一下实战吧!

若有疏漏之处,欢迎指出~

Let's share the script

Could anyone share scripts? I need a dmr script template I don't have dmr but i will share my script Please share the dmr template script I want to make it, but I don't understand

I'll delete the content if it matters Thanks

I want to know

I don't know how to use autoPressAimKey = "tilde". What does the script mean?

Ghub驱动适配咨询

自己修改格式后在ghub中可以看到当前枪支的信息和切换枪支的信息,但是在游戏中无法使用,请教下研究的方向?是函数还是啥语法变了么?感谢~

Sleep函数的时间单位问题

我发现GHUB中Sleep函数是以约16ms为单位的,
即Sleep(1-15)会休眠约16毫秒;
Sleep(20)会休眠30毫秒;

不知道作者有没有遇到这种情况?谢谢。

完全没用啊

LUA文件用啥打开,我用记事本打开然后复制进去,罗技上G6键是啥?“并使用第一个配置”是啥?这个网站没有图片和视频教程,完全看不懂

Não consigo usar

Tem como fazer um vídeo tutorial ensinando como usar pois n estou conseguindo

扩展开发教程:设置自定义瞄准判断条件

起步

如果脚本提供的推荐设置和游戏默认设置都不能满足你独特的开火方式,那么你就可以尝试自己写一个自定义判断了。

当然,也有些人是因为按住shift后不再压枪而困扰,他们同样需要设置自定义判断。

使用自定义判断的方式就是,设置:

aimingSettings = "custom"

但光是如此还是不够的,还需要修改 customAimingSettings 中的判断内容。

修改自定义判断

可以看到,脚本中 customAimingSettings 默认填充的代码是:

-- 当 aimingSettings = "custom" ,需要在此处设置自定义判断条件,通常配合 IsMouseButtonPressed 或 IsModifierPressed 使用,使用方法请查阅 G-series Lua API 参考文档.docx
customAimingSettings = {
  -- 开镜判断
  ADS = function ()
    return false -- 判断条件,返回值为布尔型
  end,
  -- 腰射判断
  Aim = function ()
    return false -- 判断条件,返回值为布尔型
  end,
},

ADS 即是判断是否开镜,Aim 判断是否开启腰射(肩射或瞄准,大家对这个瞄准方式有很多称呼,后面若有出现,全部统一称为“腰射”)

从代码中可以看出,两种瞄准方式返回的都是 false 状态。因此,默认情况下,使用了 aimingSettings = "custom" 设置,却没有做判断设置的话,将无法使用压枪功能。

而你需要做的就是,利用罗技提供的 IsMouseButtonPressedIsModifierPressed 这两个API来设置判断条件。

IsMouseButtonPressed

IsMouseButtonPressed() 方法可用于确定某鼠标按键是否被按下。

boolean IsMouseButtonPressed( button )

参数列表

button

按键标识符,您可以使用下表中列出的值:

按键值 对应操作
1 鼠标左键 (G1)
2 鼠标中键 (G2)
3 鼠标右键 (G3)
4 鼠标按键 X1 (G4)
5 鼠标按键 X2 (G5)

返回值

当修饰键被按下时将返回 true 反之则返回 false。

备注信息

代码示范

-- 按下鼠标按键
PressMouseButton(1)

if IsMouseButtonPressed(1) then
  OutputLogMessage("Left mouse button is pressed.\n");
end

-- 释放该鼠标按键
ReleaseMouseButton(1)

if not IsMouseButtonPressed(1) then
  OutputLogMessage("Left mouse button is not pressed.\n");
end

IsModifierPressed

IsModifierPressed() 方法可用于确定某修饰键是否被按下。

boolean IsModifierPressed ( keyname );

参数列表

keyname

特定预定义的修饰键键值是否被按下,该参数必须为下列表值之一:

修饰键 描述信息
"lalt", "ralt", "alt" 左侧、右侧或两侧 Alt 键
"lshift", "rshift", "shift" 左侧、右侧或两侧Shift 键
"lctrl", "rctrl", "ctrl" 左侧、右侧或两侧Ctrl 键

返回值

当修饰键被按下时将返回 true 反之则返回 false。

备注信息

代码示范

-- 模拟按下特定修饰键
PressKey("lshift")

if IsModifierPressed("shift") then
  OutputLogMessage("shift is pressed.\n");
end

-- 释放该修饰键
ReleaseKey("lshift")

if not IsModifierPressed("shift") then
  OutputLogMessage("shift is not pressed.\n");
end

示例

假如你习惯使用侧键腰射,可以做以下修改

-- 当 aimingSettings = "custom" ,需要在此处设置自定义判断条件,通常配合 IsMouseButtonPressed 或 IsModifierPressed 使用,使用方法请查阅 G-series Lua API 参考文档.docx
customAimingSettings = {
  -- 开镜判断
  ADS = function ()
    return false -- 判断条件,返回值为布尔型
  end,
  -- 腰射判断
  Aim = function ()
    return IsMouseButtonPressed(4) -- 判断条件,返回值为布尔型
  end,
},

每当你按下鼠标左键(即G1)时,会进行判断,当其中一项判断条件满足时,将会触发自动压枪功能。

并且假如你使用快速开镜,即长按右键开镜,松开右键关镜,请继续做如下修改:

-- 当 aimingSettings = "custom" ,需要在此处设置自定义判断条件,通常配合 IsMouseButtonPressed 或 IsModifierPressed 使用,使用方法请查阅 G-series Lua API 参考文档.docx
customAimingSettings = {
  -- 开镜判断
  ADS = function ()
    return IsMouseButtonPressed(3) -- 判断条件,返回值为布尔型
  end,
  -- 腰射判断
  Aim = function ()
    return IsMouseButtonPressed(4) -- 判断条件,返回值为布尔型
  end,
},

就是这么简单。

自动压枪全是默认玩家扫射行为时的弹道数据,扫射时通常是不按屏息的,单发点射才需要按住屏息稳定准星,扫射时屏息影响已有弹道数据的稳定性。因此在开镜时增加一个判断,当按下右键,且shift未被按下时,使用开镜压枪数据:

-- 当 aimingSettings = "custom" ,需要在此处设置自定义判断条件,通常配合 IsMouseButtonPressed 或 IsModifierPressed 使用,使用方法请查阅 G-series Lua API 参考文档.docx
customAimingSettings = {
  -- 开镜判断
  ADS = function ()
    return IsMouseButtonPressed(3) and not IsModifierPressed("lshift") -- 判断条件,返回值为布尔型
  end,
  -- 腰射判断
  Aim = function ()
    return IsMouseButtonPressed(4) -- 判断条件,返回值为布尔型
  end,
},

这样就完成了。

大佬好 提一些个人小建议

1.是否可以增加一个裸配满配开启键,这样一把枪满配裸配可以切换,压枪会更好.
2.是否可以增加一个蹲射按键,比如有时候是蹲射,决赛圈极有可能是趴在地上,那么能否实现lshift(或者其他键)+左键开火,会减少压枪幅度.
3.介绍能否把调枪数据部分进行讲解一下,因为这个脚本不像之前那些其他脚本,基本框架差不多,这个脚本框架数据看的出来都是大佬你自己写的,非常厉害.

关于腰射压枪修改按键

elseif userInfo.AimAutoControl == 1 and IsModifierPressed(“lctrl”)  then

我想把括号里面的lctrl 改成鼠标上的G5键 该怎么改、
我是这么改的 但是会出问题。
userInfo.AimAutoControl == 1 and IsModifierPressed(event == "MOUSE_BUTTON_PRESSED" and arg == 5) then为啥啊。

关于随机延迟

我想问下随机延迟是单独指“连点”的速度还是“鼠标向下移动”也纯在随机延迟,当我只给予一发弹道数据时,我发现每次单击左键鼠标下滑的距离并不是固定的,请问我该修改那些代码呢。

连点优化

把没有全自动功能的枪械放在一组数据里(M16, MK47,连狙等), 启用这组数据的时候自动开启连点功能,启用其它数据时关闭连点功能. 在启用这组数据的高倍镜模式下可以设置连点的间隔, 基础瞄具则最快速度连点就行.

Device for this script

I have a g pro keyboard And a g pro mouse But the mouse is broken I want to use a mouse other than Logitech.
Is this script available only with a keyboard?
plz reply.

ps. And the m249 gun has been updated.
Any plans for a script update?
Thanks always bro.

(cpu load, aim) my setting..

"aim" value Can I modify it? I think this has a big impact on the gun's total function

cpu load = 0
Aim = 9999999

When set as above, the hit rate of the gun gets better. Can I use it like this?

更新

1.切换配置表以及切换配置自由设置G3-G11

2.增加 Alt键+G键 切换配置表以及切换配置的功能

3.防检测随机延迟做成可以自由开关

4.有效期直接用GetTime获取系统时间来对比

大佬好,问下在游戏宏精调的问题

我在游戏中精调之后发现压枪效果很好,但是我发现角色站立状态下调整的压强数据不适用于角色蹲下;如果在角色蹲下调整的宏数据也不适用于角色站立。我明白这是由于角色站立与蹲下的后坐力不同导致的。想请教下大佬,我该怎么调整能解决这个问题。谢谢

Mouse acceleration

Hey Kiccer, do I turn on mouse acceleration? what config is better on LGS?

Problem

Hi , when i import Soldier76 on scripts
its not work on game , i used script i know how its work but it dosent work

please help me
Best Regards

["G-key"] = "cmd" <<

      canUse_i	      series_i	      Series	      Gun Name

=> 1	=> 1	=> .45	=> UMP45
      2	      2	      .45	      Tommy Gun
      3	      1	      9mm	      Vector
      4	      2	      9mm	      Micro UZI
      5	      1	      5.56	      M416
      6	      2	      5.56	      SCAR-L
      7	      3	      5.56	      QBZ
      8	      4	      5.56	      G36C
      9	      5	      5.56	      M16A4
      10	      1	      7.62	      AKM
      11	      2	      7.62	      Beryl M762
      12	      3	      7.62	      DP-28

Currently scope: [ scopeX1 ]
Currently series: [ .45 ]
Currently index in series: [ 1 / 2 ]
Currently index in canUse: [ 1 / 12 ]
Recoil table of [ UMP45 ]:
{ 0, 69, 138, 207, 276, 369, 462, 555, 648, 741, 835, 929, 1023, 1117, 1211, 1312, 1413, 1514, 1615, 1716, 1817, 1918, 2019, 2120, 2221, 2322, 2423, 2524, 2625, 2726, 2827, 2928, 3029, 3130, 3231 }

No operational data yet.

Some understanding questions

If I understand this right:
To configure the script I have to change the ADS to a value so I shoot in a horizontal line while in debug mode. The Aim sensitivity is only changed if I cannot get a horizontal line with the ADS

After changing the ADS to a good value, I tried some guns and saw that only with no scope, red dot or holo the recoil was good under control
as soon as I used a scope better than those, the recoil was good at the beginning but bad at the end (last 10-15 bullets)
Do I have to change the sensitivity for these scopes?

Translated with google translator:
用谷歌翻译翻译:
(我希望你明白)

如果我明白这一点:
要配置脚本,我必须将ADS更改为一个值,以便在调试模式下以水平线拍摄。 仅当我无法使用ADS获得水平线时,才会更改目标灵敏度

在将ADS改为一个好的值之后,我尝试了一些枪,看到只有没有范围,红点或全息,后坐力很好控制
一旦我使用了比那些更好的范围,反弹在开始时很好但在结束时很糟糕(最后10-15个子弹)
我是否必须更改这些示波器的灵敏度?

大佬好, 继续提点小建议.

因为本人玩的和平精英,就连点功能提几点建议:
1,能否单独增加M16,MINI武器且自动切换为连点模式,其他枪械为全自动,目前来讲,autoContinuousFiring调为1全部就是连点了.
2.目前用连点会出现卡顿现象,应该是连点速度过快,我自行加了sleep 10参数之后就没什么问题.
3.和平精英这个游戏不知某种原因下,游戏对连点功能做出了限制,目前这个脚本自测只能连点,不能下压(大部分罗技脚本如此),有的罗技脚本也可以连点也可下压,应该是连点框架不同吧.

camera shaking

Hi, just realized that when the script is on my camera is shaking too much when I shoot and the damage of my gun seems to decrease too, any config to change this?

可以添加一个功能吗

设置一个快捷键,比如ctrl, 在按下的时候以固定系数压枪, 系数可调.
添加开关,不用的可以关闭. 这样方便在战斗中尤其是高倍镜压枪蹲下的时候修正下压幅度

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.