Cronusmax TW

標題: 想做無情的巨集,遇到了點困難(已更新程式碼,測試OK!) [打印本頁]

作者: fatkeboy    時間: 2019-6-5 00:33
標題: 想做無情的巨集,遇到了點困難(已更新程式碼,測試OK!)
本帖最後由 fatkeboy 於 2019-6-8 19:11 編輯

'190604
最近大行其道的紅武無情正是當紅炸子雞,
無奈其特殊的操作方式非常不利於PS4手把,
相信克麥一定能發揮很好的輔助效能,
我思考了一個巨集運作機制,
寫了一半碰到點狀況,簡述於下:

巨集:
對準目標後,按住L2+圈啟動
啟動後自動執行以下操作:
1.按住R2 <-按住板機開第一槍,堆疊1層
2.R往左或往右平移約1/4畫面 <-無情的特殊機制,需要空放一發,讓爆傷加成繼續堆疊。
3.放開R2 <-準心已移開原目標,放開扳機就會空打一發。
4.與2反向平移相同數值,也就是回到1.的位置
一次L2+圈會執行一次,讓玩家自己微調每次的位置,
OK後再按L2+圈來疊到五層,
這樣的容錯率會比一口氣跑五次高很多。

以上是我的構想,目前卡在1.按下後,
接著2.平移到一半R2就被放掉了,
看起來就是平移中還沒到定位板機就放了,
可能我對wait的等待機制還不熟悉,
期待板上大大伸出援手,
晚點我再將程式貼上,
或是否有大大可以先試著幫忙寫看看,萬分感謝!




'19 6/5更新
-------------------------------------------------------------------------------------------------------------------------
以下是我寫的巨集,不過當時我寫的是直接疊五,
測試起來發現左右偏移過後很難回到原點,
因此後面才發想按鍵一次疊1,增加自己可以微調的空間,
請大家先看看我原來寫的,問題就出在上面所說的1.->2.->3.這個過程不順,
感謝大家!


main {


if (get_val(PS4_L2) && get_val(PS4_CIRCLE))
{
combo_run(nomercy);  
}


combo nomercy
{
     set_val(PS4_R2, 100);   // 按下板機(疊1)
     wait(160);
     set_val(PS4_RX, 50);   // 移開目標
     wait(320);
     set_val(PS4_R2, 0);   // 放開板機
     wait(160);
     set_val(PS4_RX, -50);   // 移回目標
     wait(320);
     
     set_val(PS4_R2, 100);   // 按下板機(疊2)
     wait(160);
     set_val(PS4_RX, 50);   // 移開目標
     wait(320);
     set_val(PS4_R2, 0);   // 放開板機
     wait(160);
     set_val(PS4_RX, -50);   // 移回目標
     wait(320);
     
     set_val(PS4_R2, 100);   // 按下板機(疊3)
     wait(160);
     set_val(PS4_RX, 50);   // 移開目標
     wait(320);
     set_val(PS4_R2, 0);   // 放開板機
     wait(160);
     set_val(PS4_RX, -50);   // 移回目標
     wait(320);
     
     set_val(PS4_R2, 100);   // 按下板機(疊4)
     wait(160);
     set_val(PS4_RX, 50);   // 移開目標
     wait(320);
     set_val(PS4_R2, 0);   // 放開板機
     wait(160);
     set_val(PS4_RX, -50);   // 移回目標
     wait(320);
     
     set_val(PS4_R2, 100);   // 按下板機(疊5)
     wait(160);
     set_val(PS4_R2, 0);   // 放開板機(爆發5層傷害)
     wait(160);

}


附上執行影片:(手機拍攝畫質請見諒)
https://www.youtube.com/watch?v=M_YuAz627RU&feature=youtu.be


'19 6/8更新
-------------------------------------------------------------------------------------------------------------------------
跟大家分享堆疊單次的巨集,目前我已實戰測試多次,
啟動按鍵組改為L2+D-pad的上,會比較順手安全,
巨集中有些數值大家可以自行依習慣調整,
使用後,堆無情終於不再手忙腳亂了!




main {
///////////////////////////////////////////////
if (get_val(PS4_L2) && get_val(PS4_UP))
{
combo_run(nomercy);  
}
///////////////////////////////////////////////
}


combo nomercy {


     set_val(PS4_R2, 100);   // 按下板機
     wait(80);
     set_val(PS4_R2, 100);   // 持續板機
     set_val(PS4_RX, 80);   // 移開目標(移動值可自行微調)
     wait(160);   //等待值影響移動幅度,可自行微調(越高移動越多,但效率會變差)
     set_val(PS4_R2, 0);   // 放開板機
     wait(80);
     set_val(PS4_RX, -80);   // 移回目標(移動值可自行微調,需與上面移開的數值相同)
     wait(160);  // 移回目標(移動值可自行微調,需與上面移開的數值相同)

}


作者: jiqingx    時間: 2019-6-5 09:04
我也不会编写,帮你顶上,希望写好后能够分享给我们。
作者: admin    時間: 2019-6-5 09:39
請把腳本貼上來我們幫忙看, 另外小組已經在進行無情腳本的編寫了, 還在測試中
作者: fatkeboy    時間: 2019-6-5 11:11
已更新上傳程式碼及執行影片了!
作者: owensq    時間: 2019-6-5 13:24
循环5次不就可以了吗
作者: fatkeboy    時間: 2019-6-5 13:51
本帖最後由 fatkeboy 於 2019-6-5 17:22 編輯
owensq 發表於 2019-6-5 13:24
循环5次不就可以了吗

我想遊戲內舉槍後的晃動還是存在著一些隨機性,
因此循環五次後還是會有很大的機率無法回到原點,一次只執行一次,這中間我們可以自行調整,
再按一次圈就再跑一次,可以提高泛用性,
請參考我稍早貼的實際運作影片您就可以了解了。

作者: nnnn2003    時間: 2019-6-5 16:42
平移中還沒到定位板機就放了
.....這點有沒有考慮改遊戲裡設定的舉槍轉速呀??
PS  wait(320); 有沒有試過增加一些看看??
作者: admin    時間: 2019-6-5 16:45
好高興玩家能自行研究腳本分享, 參考建議:

     set_val(PS4_R2, 100);   // 按下板機(疊1)
     wait(160);
     set_val(PS4_R2, 100); //持續壓住R2
     set_val(PS4_RX, 50);   // 移開目標
     wait(320);
     set_val(PS4_R2, 0);   // 放開板機
     wait(160);
     set_val(PS4_R2, 0);   // 持續放開板機
     set_val(PS4_RX, -50);   // 移回目標
     wait(320);

以上調整請試試

模擬位移移動一定都會有誤差, 這部分必需搭配手動微調調整


作者: fatkeboy    時間: 2019-6-5 17:09
admin 發表於 2019-6-5 16:45
好高興玩家能自行研究腳本分享, 參考建議:

     set_val(PS4_R2, 100);   // 按下板機(疊1)

喔喔~我大概了解了~
看來我的巨集會放掉板機的原因是:
set_val(PS4_R2, 100);   // 按下板機(疊1)
     wait(160);
     set_val(PS4_RX, 50);   // 移開目標   
<-----這裡少了一行 set_val(PS4_R2, 100); 讓板機持續按住
     wait(320);
     set_val(PS4_R2, 0);   // 放開板機
     wait(160);
     set_val(PS4_RX, -50);   // 移回目標 <-----這裡也少了一行 set_val(PS4_R2, 0);   // 持續放開板機
     wait(320);


大大那請問第二項 set_val(PS4_R2, 0);   // 持續放開板機,
這條是否可以不用,因為在上面就已經把板機放掉了,
非常感謝大大,我回家馬上測試,有成功的話馬上給大家分享!

作者: admin    時間: 2019-6-5 17:37
fatkeboy 發表於 2019-6-5 17:09
喔喔~我大概了解了~
看來我的巨集會放掉板機的原因是:
set_val(PS4_R2, 100);   // 按下板機(疊1)

大大那請問第二項 set_val(PS4_R2, 0);   // 持續放開板機,
這條是否可以不用---->可以拿掉
作者: fatkeboy    時間: 2019-6-5 17:57
admin 發表於 2019-6-5 17:37
大大那請問第二項 set_val(PS4_R2, 0);   // 持續放開板機,
這條是否可以不用---->可以拿掉 ...

感謝您!真希望趕快回家修改測試!  
作者: mankai    時間: 2019-6-6 18:37
扳機持續跟放開這段最好不要取消掉,這樣在第五次不平移的時候才不會亂掉,第五層結尾最好再加一條迴圈的重啟
作者: owensq    時間: 2019-6-9 08:58
感恩,留言给HAZMAT 希望能将此段加到压枪脚本中




歡迎光臨 Cronusmax TW (http://www.cronusmax.com.tw/forum/) Powered by Discuz! X3.2