//没登陆

欢迎您来到凯恩之角,奈非天!

帖子:1192

符文:24

跳转到指定楼层
1#
发表于 2020-11-20 12:02:50 |只看该作者 |倒序浏览 来自:广东
本帖最后由 iVoxing 于 2020-12-19 21:44 编辑

在七月份的帖子裡面分享了雙模冰吞的早期版本
http://bbs.d.163.com/forum.php?mod=viewthread&tid=173872823&extra=&page=1

帖子裡面論述了雙模的特點和可能的優勢,這裡不再贅述。
比較遺憾的是一直沒有大佬發表看法,所以我也不知道雙模「可能的優勢」是不是真的能兌現。
我自己用這個腳本通過了賽季 GR144,用的套路還是受罰殺王——這個成績大概能證明,這個腳本至少沒有拖後腿吧。
非賽也很隨意地打過了 GR142,時不時衝一下 GR143,圖怪塔三要素到位一定能過。

我不太確定的是,這個腳本對殺王疊受罰是不是有負面影響。
甚至一度想加入一個「受罰模式」,即殺王前半程不刷新復仇,以獲取更高的疊受罰效率。做到這點並不難,但目前還沒有做。
我這個腳本的框架對輔助鍵支持非常好,支持 8 或 16 種模式不成問題。如有問題,問題是用戶自己記不記得住。

和最初版本相比,後期的版本中,我已經取消了攻速計算,改成了右鍵長按 18ms 狂點左鍵。
這樣的至少可以兼容攻速塔了。

全面改用了新的輔助鍵框架——我自己早在別的功能上(比如傳送、背包操作)用這個框架了,非常有趣。
根據上一個帖子裡面玩家的反饋,現在調整了模式按鍵。

戰鬥模式改成了 ctrl
移動模式改成了 alt
移動模式還增加了鼠標 G 鍵控制,這樣應該比較方便低強度的作戰。

另外增加了 shift 模式,按住時暫停遊戲查看對話記錄——這是常用的查看精英數量、狀態的技巧;鬆開 shift 則回到遊戲。

歡迎玩家們試用並反饋。
尤其是 Windows 玩家,你們的反饋很重要。


2020-11-23 更新:
  • 優化了 Windows 系統下啟動開關的設置;
  • Windows 系統下綁定 capslock 到開關鍵(缺省 G5)的設置方法見下圖;
  • 增加了一個啟動後是否自動疊動能的開關,玩家可以自己決定是否自動疊動能;
  • 不按下輔助鍵,不刷新技能了,這樣就不再打斷進度條(比如傳送);
  • 每一個技能都有自己的自動刷新開關,玩家可以自己設置;
  • 其他小優化


capslock 綁定如圖:



注意:mac 用戶無需設置 capslock 綁定,因為設了也無效。mac 用戶必須先手動按亮 capslock 再啟動本腳本。

2020-12-01:
GitHub https://github.com/iVoxing/Logi-Pub


2020-12-18:
如果在腳本編輯器保存之後出現紅杠,請嘗試 105 樓 @Nassca 的方法:刪除全部注釋,並保存。
注釋就是 -- 及其右邊的文字內容。

感謝 @Nassca

帖子:1192

符文:24

2#
本帖最后由 iVoxing 于 2020-11-23 14:22 编辑
  1. -- _DH_冰吞雙控分享版 2020-11-23

  2. -- 技能設置:
  3. --    1 戰寵/刀扇
  4. --    2 復仇
  5. --    3 蓄勢待發
  6. --    4 暗影/煙幕

  7. -- G 鼠標設置:
  8. --    Windows 用戶在 LGS 或者 GHUB 裡面,綁定 capslock 按鍵到 G5,mac 用戶不用這樣,因為無效
  9. --    如果要用 G4 速刷,注意確保 G4 沒有綁定別的宏

  10. -- 操作:
  11. --    按啟動開關 G5 開始(macOS 需先手動按亮鎖定鍵),開關可修改
  12. --    啟動後會自動疊動能(可關閉此功能),按住 ctrl 或者 alt 或者鼠標 G4 即開始戰鬥,G4 可以修改
  13. --        ctrl 模式:  一追一掃,移動速度穩定,不開塔,不開門;
  14. --        alt/G4 模式:鼠標指向怪,則一追一掃;指向空地,則快速移動;指向塔/門,則開塔/門;
  15. --        shift 模式: 暫停遊戲,並查看對話記錄,用於檢查精英數量、狀態。按下查看,鬆開回到遊戲。
  16. --    小秘境可以用 alt/G4 模式,動能不足時,指向怪,或臨時切換成 ctrl 模式。
  17. ---------------------------------------------------------------------------------
  18. local keys = {
  19.     swi     = 5,            -- 啟動開關,可以修改成其他 G 鍵
  20.     fast    = 4,            -- 用於單手操作,相當於按 alt,可以修改為其他鼠標 G 鍵
  21.     skill_1 = "1",          -- 技能 1~4 按鍵。注意:要與遊戲內按鍵綁定一致
  22.     skill_2 = "2",
  23.     skill_3 = "3",
  24.     skill_4 = "4",
  25.     stand   = "a",          -- 強制站立,注意:要與遊戲內按鍵綁定一致。強烈建議不要使用 shift 或任何輔助按鍵
  26.     indicator = "capslock", -- 可修改為其他鎖定鍵,比如 numlock、M 鍵,建議保留本設置
  27. }
  28. local swi_is_on = false        
  29. local pet, fan  = 1, 2
  30. local sk_1      = fan       -- pet: 寵物, fan: 刀扇,修改成自己的配置
  31. local sk_4_rpt  = 5000      -- 煙幕: 50, 暗影: 5000,修改成自己的配置
  32. local t0        = -20000
  33. local gain_mom  = false
  34. local g_m_auto  = true      -- 啟動時自動疊動能(一次)開關,改成 false 可關閉
  35. local rmb_down  = false
  36. local stand_on  = false
  37. local rf_pause  = nil

  38. local skill = {
  39.     -- 注意:以下技能,如果不需要自動刷新,可以把 auto = true 改為 auto = false
  40.     sk1 = {timer = t0, key = keys.skill_1, auto = true, rp_time = 50,},       -- 戰寵/刀扇
  41.     sk2 = {timer = t0, key = keys.skill_2, auto = true, rp_time = 50,},       -- 復仇     
  42.     sk3 = {timer = t0, key = keys.skill_3, auto = true, rp_time = 50,},       -- 蓄勢待發
  43.     sk4 = {timer = t0, key = keys.skill_4, auto = true, rp_time = sk_4_rpt,}, -- 暗影/煙幕
  44. }

  45. function mdf_check()
  46.     local mdf_state = 0
  47.     if IsModifierPressed("ctrl")       then mdf_state = mdf_state + 1 end
  48.     if IsModifierPressed("shift")      then mdf_state = mdf_state + 2 end
  49.     if IsModifierPressed("alt")        then mdf_state = mdf_state + 4 end
  50.     if IsMouseButtonPressed(keys.fast) then mdf_state = mdf_state + 8 end
  51.     return mdf_state
  52. end

  53. function refresh(sk)
  54.     local stand_dly = 5
  55.     if (GetRunningTime() - sk.timer >= sk.rp_time) and sk.auto then
  56.         if type(sk.key) == "string" then
  57.             PressAndReleaseKey(sk.key)
  58.         else
  59.             if sk.key == 1 then
  60.                 PressKey(keys.stand)
  61.                 Sleep(stand_dly)
  62.                 PressAndReleaseMouseButton(1)
  63.                 Sleep(stand_dly)
  64.                 ReleaseKey(keys.stand)
  65.             else
  66.                 PressAndReleaseMouseButton(sk.key)
  67.             end
  68.         end
  69.         sk.timer = GetRunningTime()
  70.     end
  71. end

  72. function gain_momentum()
  73.     if gain_mom and g_m_auto then
  74.         refresh(skill.sk2)
  75.         refresh(skill.sk4)
  76.         PressKey(keys.stand)
  77.         Sleep(20)
  78.         PressMouseButton(1)
  79.         Sleep(2000)
  80.         ReleaseMouseButton(1)
  81.         ReleaseKey(keys.stand)
  82.         gain_mom = nil        
  83.     end
  84. end

  85. function hunger_n_strafe(mdf)
  86.     local mb1_dl = 18            -- 16, 17, 18, 484, 485, 18 may be the best
  87.     function set_stand_off()
  88.         if stand_on then
  89.             ReleaseKey(keys.stand)
  90.             stand_on = false
  91.         end
  92.     end
  93.     function set_stand_on()
  94.         if not stand_on then
  95.             PressKey(keys.stand)
  96.             stand_on = true
  97.         end
  98.     end
  99.     function set_rmb_down()
  100.         if not rmb_down then
  101.             PressMouseButton(3)
  102.             rmb_down = true
  103.         end
  104.     end
  105.     function set_rmb_up()
  106.         if rmb_down then
  107.             ReleaseMouseButton(3)
  108.             rmb_down = false
  109.         end
  110.     end
  111.     function play_HnS()
  112.         set_rmb_down()
  113.         refresh(skill.sk1)
  114.         refresh(skill.sk2)
  115.         refresh(skill.sk3)
  116.         refresh(skill.sk4)
  117.         PressAndReleaseMouseButton(1)
  118.         Sleep(mb1_dl)
  119.     end
  120.     function g_pause()
  121.         if not rf_pause then
  122.             PressAndReleaseKey("escape")
  123.             Sleep(100)
  124.             PressAndReleaseKey("enter")
  125.             rf_pause = true
  126.         end
  127.     end
  128.     function g_resume()
  129.         if rf_pause then
  130.             PressAndReleaseKey("escape")
  131.             Sleep(10)
  132.             PressAndReleaseKey("escape")
  133.             rf_pause = nil
  134.         end
  135.     end

  136.     local func = {
  137.         [0] = function()
  138.             g_resume()
  139.             set_stand_off()
  140.             set_rmb_up()
  141.         end,
  142.         [1] = function()
  143.             set_stand_on()
  144.             play_HnS()
  145.         end,
  146.         [2] = g_pause,
  147.         [4] = function()
  148.             set_stand_off()
  149.             play_HnS()
  150.         end,
  151.         [8] = function()
  152.             set_stand_off()
  153.             play_HnS()
  154.         end,
  155.     }
  156.     if func[mdf] then func[mdf]() end
  157. end

  158. -- 添加其他模塊:

  159. ---------------
  160. function OnEvent(event, arg, family)
  161.     --OutputLogMessage("\n"..event.." "..arg)
  162.     -- 調用其他模塊
  163.    
  164.     -- 以下請勿修改
  165.     if event == "MOUSE_BUTTON_PRESSED" and arg == keys.swi and family == "mouse" then
  166.         Sleep(100)
  167.         if IsKeyLockOn(keys.indicator) then
  168.             swi_is_on = true
  169.             gain_mom  = true
  170.             gain_momentum()
  171.         else
  172.             swi_is_on = false
  173.             gain_mom  = nil
  174.         end
  175.     end
  176.     stand_on = false
  177.     rmb_down = false
  178.     while swi_is_on do
  179.         if IsKeyLockOn(keys.indicator) then
  180.             hunger_n_strafe(mdf_check())
  181.         else
  182.             swi_is_on = false
  183.             t0 = -20000
  184.             ReleaseKey(keys.stand)
  185.             stand_on = false
  186.             ReleaseMouseButton(3)
  187.             rmb_down = false
  188.             break
  189.         end
  190.     end
  191. end
复制代码
share_DH_dreadlands_v3.lua.txt (6.41 KB, 下载次数: 655)
发表于 2020-11-20 12:03:20 |只看该作者 来自:广东
头像被屏蔽

帖子:754

符文:11

3#
脚本?还是宏?
发表于 2020-11-20 12:17:45 来自凯恩之角App |只看该作者 来自:山东

帖子:118

符文:15

4#
感谢大佬分享~不知道为什么我的g hub好像不太行,我再试试
发表于 2020-11-20 12:58:13 来自凯恩之角App |只看该作者 来自:安徽
[armory]http://hero.d.163.com/hero/cn/%E8%A5%BF%E5%9F%8E-5318/34690434[/armory]

帖子:114

符文:28

5#
这个怎么用啊?复制到哪里?
发表于 2020-11-20 13:22:54 |只看该作者 来自:江苏
[armory]http://hero.d.163.com/hero/cn/%E7%83%9F%E8%8A%B1%E4%B8%8D%E5%A0%AA%E5%89%AA-51390/17669053[/armory]

帖子:1221

符文:801

6#
谢谢楼主分享,可以上传一个txt文档吗,从页面复制下来的代码,贴出来都是乱码。
发表于 2020-11-20 13:34:56 |只看该作者 来自:上海
[armory]http://cn.battle.net/d3/en/profile/%E6%B2%AD%E9%A3%8E-5504/hero/17770494[/armory]

帖子:1192

符文:24

7#
qykjerry 发表于 2020-11-20 13:34
谢谢楼主分享,可以上传一个txt文档吗,从页面复制下来的代码,贴出来都是乱码。

上傳了

zsbd
发表于 2020-11-20 14:00:32 |只看该作者 来自:广东

帖子:6151

符文:276

8#
开始看见脚本,我还以为是什么需要屏蔽的东西。
原来是宏啊~
发表于 2020-11-20 14:16:33 |只看该作者 来自:四川
[armory]http://hero.d.163.com/hero/tw/rondo-3206/67968037[/armory]

帖子:1054

符文:96

9#
虽然用不到,但也支持一下。
发表于 2020-11-20 14:27:24 来自凯恩之角App |只看该作者 来自:浙江

帖子:4902

符文:4874

10#
感谢楼主分享!
发表于 2020-11-20 15:48:42 |只看该作者 来自:广东

帖子:148

符文:118

11#
宏太高端大气,我就是模拟按键,然后重复。。。(只模拟复仇和刀扇)
发表于 2020-11-20 17:06:47 来自凯恩之角App |只看该作者 来自:贵州

帖子:1061

符文:184

12#
感谢大佬,先收藏再看
发表于 2020-11-20 17:51:58 来自凯恩之角App |只看该作者 来自:四川

帖子:28

符文:263

13#
收藏了,谢谢大佬分享
发表于 2020-11-20 18:38:04 来自凯恩之角App |只看该作者 来自:山东

帖子:1040

符文:2623

14#
先占个楼支持下。
发表于 2020-11-20 18:46:44 来自凯恩之角App |只看该作者 来自:浙江

帖子:1040

符文:2623

15#
我觉得1号技能键吧,你能不能设置一个我们可以很简单的修改,自动或不自动。
发表于 2020-11-20 19:22:29 来自凯恩之角App |只看该作者 来自:浙江
您需要登录后才可以回帖 登录 | 注册网易通行证