time_release() from Titan 2 on Titan 1?
7 posts
• Page 1 of 1
time_release() from Titan 2 on Titan 1?
Does anyone have a custom function which mimics the time_release() function from Titan 2 language for the Titan 1?
- creedkiller
- Lieutenant
- Posts: 293
- Joined: Fri Mar 17, 2017 4:08 pm
Re: time_release() from Titan 2 on Titan 1?
Here is how you can implement this functionality on the Titan One:
- Code: Select all
define BUTTON = PS4_CROSS;
int time_release;
main {
if(event_release(BUTTON)) {
time_release = 0;
} else if(!get_val(BUTTON)) {
if(time_release < 30000) {
time_release = time_release + get_rtime();
}
}
if(get_val(BUTTON) && time_release < 200) {
combo_run(ex);
}
}
combo ex {
}
ConsoleTuner Support Team
-
J2Kbr - General of the Army
- Posts: 20323
- Joined: Tue Mar 18, 2014 1:39 pm
Re: time_release() from Titan 2 on Titan 1?
J2Kbr wrote:Here is how you can implement this functionality on the Titan One:
- Code: Select all
define BUTTON = PS4_CROSS;
int time_release;
main {
if(event_release(BUTTON)) {
time_release = 0;
} else if(!get_val(BUTTON)) {
if(time_release < 30000) {
time_release = time_release + get_rtime();
}
}
if(get_val(BUTTON) && time_release < 200) {
combo_run(ex);
}
}
combo ex {
}
I am trying to convert a variation of your "Double Tap" example from the Manual (https://www.consoletuner.com/wiki/index ... double_tap)
- Code: Select all
bool toggle;
main {
if(event_active(L1) && time_release(L1) < 120) { toggle = TRUE; }
if(toggle) {
combo_run(ex);
if(event_release(L1)) { toggle = FALSE; }
}
}
combo ex {
}
- creedkiller
- Lieutenant
- Posts: 293
- Joined: Fri Mar 17, 2017 4:08 pm
Re: time_release() from Titan 2 on Titan 1?
You'd still have to hold the button so using event_active / event_press + a toggle is void when using event_release.
You're better of using J2Kbr's script with get_val.
Or toggle on/off with a double tap like this:
You're better of using J2Kbr's script with get_val.
Or toggle on/off with a double tap like this:
- Code: Select all
define BUTTON = PS4_L1;
int time_release;
int toggle;
main {
if(event_release(BUTTON)) {
time_release = 0;
} else if(!get_val(BUTTON)) {
if(time_release < 30000) {
time_release = time_release + get_rtime();
}
}
if(event_press(BUTTON) && time_release < 200) {
toggle = !toggle;
}
if(toggle) {
combo_run(ex);
}
}
combo ex {
}
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord
- Mad
- Major General
- Posts: 4536
- Joined: Wed May 22, 2019 5:39 am
Re: time_release() from Titan 2 on Titan 1?
Mad wrote:You'd still have to hold the button so using event_active / event_press + a toggle is void when using event_release.
You're better of using J2Kbr's script with get_val.
Or toggle on/off with a double tap like this:
- Code: Select all
define BUTTON = PS4_L1;
int time_release;
int toggle;
main {
if(event_release(BUTTON)) {
time_release = 0;
} else if(!get_val(BUTTON)) {
if(time_release < 30000) {
time_release = time_release + get_rtime();
}
}
if(event_press(BUTTON) && time_release < 200) {
toggle = !toggle;
}
if(toggle) {
combo_run(ex);
}
}
combo ex {
}
Exactly what I needed, thank You.
- creedkiller
- Lieutenant
- Posts: 293
- Joined: Fri Mar 17, 2017 4:08 pm
Re: time_release() from Titan 2 on Titan 1?
- Code: Select all
int release_array[21];
main {
update_release_buttons(0);
set_val(TRACE_1, time_release(XB1_A));
set_val(TRACE_2, time_active(XB1_A));
set_val(TRACE_3, check_release(XB1_A, 4000));
set_val(TRACE_4, check_active(XB1_A, 4000));
}
function update_release_buttons(i) {
while (i = (i + 1) % 21) {
if (i == 9) i = 13;
if (!get_val(i)) release_array[i] = (release_array[i] + get_rtime()) * !(event_release(i));
if (release_array[i] < 0) release_array[i] = 32767;
}
return;
}
function time_release(io) { return release_array[io]; }
function time_active(io) { return get_ptime(io); }
function check_release(io, t) { return !get_val(io) && time_release(io) >= t; }
function check_active(io, t) { return get_val(io) && get_ptime(io) >= t; }
-
DontAtMe - Captain
- Posts: 502
- Joined: Tue Oct 02, 2018 4:49 am
Re: time_release() from Titan 2 on Titan 1?
DontAtMe wrote:
- Code: Select all
int release_array[21];
main {
update_release_buttons(0);
set_val(TRACE_1, time_release(XB1_A));
set_val(TRACE_2, time_active(XB1_A));
set_val(TRACE_3, check_release(XB1_A, 4000));
set_val(TRACE_4, check_active(XB1_A, 4000));
}
function update_release_buttons(i) {
while (i = (i + 1) % 21) {
if (i == 9) i = 13;
if (!get_val(i)) release_array[i] = (release_array[i] + get_rtime()) * !(event_release(i));
if (release_array[i] < 0) release_array[i] = 32767;
}
return;
}
function time_release(io) { return release_array[io]; }
function time_active(io) { return get_ptime(io); }
function check_release(io, t) { return !get_val(io) && time_release(io) >= t; }
function check_active(io, t) { return get_val(io) && get_ptime(io) >= t; }
That function is elegant, thank you.
- creedkiller
- Lieutenant
- Posts: 293
- Joined: Fri Mar 17, 2017 4:08 pm
7 posts
• Page 1 of 1
Return to GPC1 Script Programming
Who is online
Users browsing this forum: No registered users and 67 guests