Cronusmax TW
標題:
關於重複執行腳本問題
[打印本頁]
作者:
chenyingkai0504
時間:
2016-12-27 23:21
標題:
關於重複執行腳本問題
請問....我想寫一個 按O 加上 每6分鐘按口的無限重複腳本
重複按O我目前是這樣寫
int onoff;
main {
if(event_press(PS4_R3)) onoff=!onoff; //按下R3後重覆執行
if(onoff){
combo_run(Favorability);
}
}
combo Favorability {
set_val(PS4_CIRCLE, 100); //按下圓圈鍵
wait(10);
set_val(PS4_CIRCLE, 0); //放開圓圈鍵
wait(10);
}
可是要加入每6分鐘按口的程式碼要怎麼寫進去?
作者:
s099064146
時間:
2016-12-28 01:13
本帖最後由 s099064146 於 2016-12-28 01:32 編輯
如果沒記錯,應該可以這樣寫
int onoff;int time_square = 0;
main {
if(event_press(PS4_R3)) onoff=!onoff; //按下R3後重覆執行
if(onoff){
combo_run(Favorability);
time_square = time_square+1;
}
if(time_square == 18000){
combo_run(Favorability_2);
time_square = 0;
}
}
combo Favorability {
set_val(PS4_CIRCLE, 100); //按下圓圈鍵
wait(10);
set_val(PS4_CIRCLE, 0); //放開圓圈鍵
wait(10);
}
combo Favorability_2 {
set_val(PS4_SQUARE, 100); //按下方塊鍵
wait(10);
set_val(PS4_SQUARE, 0); //放開方塊鍵
wait(10);
}
原理是 wait()裡的時間單位是1毫秒
所以要等6分鐘
ˊ6*60=360秒
因為要換算成wait的時間單位
360*1000=360000毫秒
然而,假設執行一次原本的無限圓圈的時間需要20毫秒
則當計數器為18000次的時候,就是執行方塊的時候
作者:
chenyingkai0504
時間:
2016-12-28 08:55
原來可以用計數器的方式,感謝s099064146的回覆
大學畢業後就沒碰程式語言了,幾乎都忘光光了
作者:
admin
時間:
2016-12-28 13:56
s099064146 發表於 2016-12-28 01:13
如果沒記錯,應該可以這樣寫
int onoff;int time_square = 0;
利用計數器真是一個好方法
作者:
admin
時間:
2016-12-28 15:09
這裡提供一個計時的程式給大家參考, 是利用克麥內建計時指令來做, 範例是FFXV彈珠台掛機刷AP(1HR版), 內有秒-分-時的計時程式, 有興趣的可以COPY需要的程式段落來運用
歡迎大家一起討論!
int minutes;
int seconds;
int onoff;
int milliseconds;
main {
if(event_press(PS4_L3)) onoff=!onoff;
//按PS4 L3,設定onoff=1
if(!onoff){milliseconds=0; seconds=0; minutes=0;}
//如果!onoff=1(也就是onoff=0),則所有計數時間歸零
if(onoff){
//如果onoff=1, 執行下列指令
combo_run(Glitch);
//執行Glitch combo巨集
milliseconds = milliseconds + get_rtime();
//克麥內建計時器(毫秒計數)累加至milliseconds裏
if(milliseconds >= 1000) {
//如果milliseonds累積 >= 1000毫秒(1秒),則做下列指令
milliseconds = milliseconds - 1000;
//milliseconds減1000,表示每1000毫秒(1秒)重新計數,這是產生秒的計算
seconds = seconds + 1;
//second(秒數)計數累加,每1000毫秒,seconds秒數加一,也就是秒數的計時
if(seconds == 60) {
//如果秒數累積到60秒時, 做下列指令
seconds = 0;
//每60秒,秒數計數歸零,重新計數
set_val(PS4_TRIANGLE,100);
//按下PS4三角鍵一次
minutes = minutes + 1;
//每60秒,minutes(分)數值累加1,這是分鐘的計時
if(minutes == 60) {
//如果分鐘計數累積到60分鐘時,做下列指令(此版本為掛機1HR(60分鐘)版,如要掛機2HR,只需修改minutes==120).
minutes = 0;
//分鐘計數歸零
onoff=!onoff;
//設定onoff=0
combo_stop(Glitch);
//停止執行Glitch巨集Combo
combo_run(recycle);
//執行recycle巨集Combo
}
}
}
}
set_val(TRACE_3, minutes);
//debug監控minutes計數
set_val(TRACE_4, seconds);
//debug監控seconds計數
set_val(TRACE_5, milliseconds / 10);
//debug監控millseconds計數
}
combo Glitch {
//Glitch巨集Combo (自動打彈珠檯)
set_val(PS4_R1,100);
//PS4 R1按下
set_val(PS4_CIRCLE,100);
//PS4圈鍵按下
set_val(PS4_SQUARE,100);
//PS4方塊鍵按下
wait(40);
//等待0.04秒
set_val(PS4_R1,0);
//PS4 R1放開
set_val(PS4_CIRCLE,0);
//PS4圈鍵放開
set_val(PS4_SQUARE,0);
//PS4方塊鍵放開
wait(40);
//等待0.04秒
}
combo recycle{
//recycle巨集Combo(退出彈珠檯後兌換獎品在自動進彈珠檯)
set_val(PS4_CROSS, 100);
//PS4叉鍵按下
wait(200);
//等待0.2秒
set_val(PS4_CROSS, 0);
//PS4叉鍵放開
wait(200);
//等待0.2秒
set_val(PS4_UP,100);
//PS4方向鍵上鍵按下
wait(200);
//等待0.2秒
set_val(PS4_UP,0);
//PS4方向鍵上鍵放開
wait(200);
//等待0.2秒
set_val(PS4_CIRCLE,100);
//PS4圈鍵按下
wait(500);
//等待0.5秒
set_val(PS4_CIRCLE,0);
//PS4圈鍵放開
wait(7500);
//等待7.5秒
set_val(PS4_CIRCLE,100);
//PS4圈鍵按下
wait(500);
//等待0.5秒
set_val(PS4_CIRCLE,0);
//PS4圈鍵放開
wait(500);
//等待0.5秒
set_val(PS4_CIRCLE,100);
//PS4圈鍵按下
wait(500);
//等待0.5秒
set_val(PS4_CIRCLE,0);
//PS4圈鍵放開
wait(5500);
//等待5.5秒
set_val(PS4_CIRCLE,100);
//PS4圈鍵按下
wait(250);
//等待0.25秒
set_val(PS4_CIRCLE,0);
//PS4圈鍵放開
wait(250);
//等待0.25秒
set_val(PS4_CIRCLE,100);
//PS4圈鍵按下
wait(500);
//等待0.5秒
set_val(PS4_CIRCLE,0);
//PS4圈鍵放開
wait(4500);
//等待4.5秒
onoff=!onoff;
//設定onoff=1
}
歡迎光臨 Cronusmax TW (http://www.cronusmax.com.tw/forum/)
Powered by Discuz! X3.2