// aFoobar.com
// OMGCarlos - omgcarlos@afoobar.com
// twitter.com/omgcarlos
//
// fookeyboard_string v1.0
//
// This is an alternative to the broken keyboard_string command, which captures keyboard printable characters
//
// fookeyboard_string(enter, pound, blink);
// enter (TRUE/FALSE): Determines if we should use the enter/return key to insert a new line or not
// pound (TRUE/FALSE): Determines if entering # creates a new line or not
// blink (TRUE/FALSE): Determines if we should display a blinking cursor or not
//
// Returns: this script returns the currently built string
////////////////////////////////////////////////////////////////////////////////////afoobar.com
//Initialize the script (Utilizing my glitch method)
if fookeyboard_string_init = aksldhaljksdfh{
fookeyboard_string_init = true; //Don't reinitialize
foostrKeyboard = ""; //Similar to keyboard_string
fooblink = false; //Determines if we should show/hide the cursor
fooblinkCur = 0; //Sets the current blink counter
fooblinkSpeed = 10; //Sets the blinking speed, the lower the number the faster it'll blink!
foostrPos = 1; //Stores the position of the cursor
fooblinkDelLast = false; //Determines if we should delete the last cursor (if changing from cursor display on to off)
}
var tmp;
//Set defaults for arguments
if argument0 = afsasjkd then argument0 = true;
if argument1 = askjsadkf then argument1 = true;
if argument2 = asjkdfha then argument2 = true;
//Remove the blinker from the string...IMPORTANT
if argument2 then foostrKeyboard = string_delete(foostrKeyboard, foostrPos, 1);
//Remove the last cursor (when stopped suddenly, there will be a cursor that never got removed)
if !argument2 and !fooblinkDelLast and string_length(foostrKeyboard) > 0{
fooblinkDelLast = true;
foostrKeyboard = string_delete(foostrKeyboard, foostrPos, 1);
}
//Reset the last cursor remover
if argument2 then fooblinkDelLast = false;
//Move the cursor
if (keyboard_check_pressed(vk_left) and argument2) then foostrPos = max(0, foostrPos-1);
if (keyboard_check_pressed(vk_right) and argument2) then foostrPos = min(string_length(foostrKeyboard)+1, foostrPos+1);
//Handle special input
if(keyboard_check(vk_shift)) then addShift = 0; else addShift = 32; //Check whether to use caps or lowercase
if(keyboard_check_pressed(vk_space)) { foostrKeyboard = string_insert(' ', foostrKeyboard, foostrPos); foostrPos+=1;} //Add spaces
if(keyboard_check_pressed(vk_backspace) and string_length(foostrKeyboard) > 0) { foostrKeyboard = string_delete(foostrKeyboard, foostrPos-1, 1); foostrPos = max(0, foostrPos-1);}
//Handle arguments
if(argument0 and keyboard_check_pressed(vk_enter)) { foostrKeyboard = string_insert('#', foostrKeyboard, foostrPos); foostrPos +=1;} //Return key
if(!argument1 and addShift = 0 and keyboard_check_pressed(ord('3'))) { foostrKeyboard = string_insert("\# ", foostrKeyboard, foostrPos); foostrPos += 2;}
//Get letters
if(keyboard_check_pressed(ord('A'))) { foostrKeyboard = string_insert(chr(65+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('B'))) { foostrKeyboard = string_insert(chr(66+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('C'))) { foostrKeyboard = string_insert(chr(67+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('D'))) { foostrKeyboard = string_insert(chr(68+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('E'))) { foostrKeyboard = string_insert(chr(69+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('F'))) { foostrKeyboard = string_insert(chr(70+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('G'))) { foostrKeyboard = string_insert(chr(71+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('H'))) { foostrKeyboard = string_insert(chr(72+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('I'))) { foostrKeyboard = string_insert(chr(73+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('J'))) { foostrKeyboard = string_insert(chr(74+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('K'))) { foostrKeyboard = string_insert(chr(75+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('L'))) { foostrKeyboard = string_insert(chr(76+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('M'))) { foostrKeyboard = string_insert(chr(77+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('N'))) { foostrKeyboard = string_insert(chr(78+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('O'))) { foostrKeyboard = string_insert(chr(79+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('P'))) { foostrKeyboard = string_insert(chr(80+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('Q'))) { foostrKeyboard = string_insert(chr(81+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('R'))) { foostrKeyboard = string_insert(chr(82+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('S'))) { foostrKeyboard = string_insert(chr(83+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('T'))) { foostrKeyboard = string_insert(chr(84+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('U'))) { foostrKeyboard = string_insert(chr(85+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('V'))) { foostrKeyboard = string_insert(chr(86+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('W'))) { foostrKeyboard = string_insert(chr(87+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('X'))) { foostrKeyboard = string_insert(chr(88+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('Y'))) { foostrKeyboard = string_insert(chr(89+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
if(keyboard_check_pressed(ord('Z'))) { foostrKeyboard = string_insert(chr(90+addShift), foostrKeyboard, foostrPos); foostrPos += 1;}
//Get numbers
if(keyboard_check_pressed(ord('0'))) {
if addShift = 32 { foostrKeyboard = string_insert('0', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert(')', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('1'))) {
if addShift = 32 then { foostrKeyboard = string_insert('1', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('!', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('2'))) {
if addShift = 32 then { foostrKeyboard = string_insert('2', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('@', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('3'))) {
if addShift = 32 then { foostrKeyboard = string_insert('3', foostrKeyboard, foostrPos); foostrPos += 1;} else if argument1 then { foostrKeyboard = string_insert('#', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('4'))) {
if addShift = 32 then { foostrKeyboard = string_insert('4', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('$', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('5'))) {
if addShift = 32 then { foostrKeyboard = string_insert('5', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('%', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('6'))) {
if addShift = 32 then { foostrKeyboard = string_insert('6', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('^', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('7'))) {
if addShift = 32 then { foostrKeyboard = string_insert('7', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('&', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('8'))) {
if addShift = 32 then { foostrKeyboard = string_insert('8', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('*', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord('9'))) {
if addShift = 32 then { foostrKeyboard = string_insert('9', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('(', foostrKeyboard, foostrPos); foostrPos += 1;}
}
//Special characters
if(keyboard_check_pressed(192)) {
if addShift = 32 then { foostrKeyboard = string_insert('`', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('~', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(vk_add)) {
if addShift = 32 then { foostrKeyboard = string_insert('=', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('+', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(vk_subtract)) {
if addShift = 32 then { foostrKeyboard = string_insert('-', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('_', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(219)) {
if addShift = 32 then { foostrKeyboard = string_insert('[', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('{', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(221)) {
if addShift = 32 then { foostrKeyboard = string_insert(']', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('}', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(220)) {
if addShift = 32 then { foostrKeyboard = string_insert('\', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('|', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(ord(';'))) {
if addShift = 32 then { foostrKeyboard = string_insert(';', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert(':', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(222)) {
if addShift = 32 then { foostrKeyboard = string_insert("'", foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('"', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(188)) {
if addShift = 32 then { foostrKeyboard = string_insert(',', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('<', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(191)) {
if addShift = 32 then { foostrKeyboard = string_insert('/', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('?', foostrKeyboard, foostrPos); foostrPos += 1;}
}
if(keyboard_check_pressed(190)) {
if addShift = 32 then { foostrKeyboard = string_insert('.', foostrKeyboard, foostrPos); foostrPos += 1;} else { foostrKeyboard = string_insert('>', foostrKeyboard, foostrPos); foostrPos += 1;}
}
//Display blinking cursor
fooblinkCur += 1; //Inc the blinker
//Flip the blinker to on/off
if fooblinkCur > fooblinkSpeed{
fooblink = !fooblink;
fooblinkCur = 0; //Reset the counter
}
//Only display the cursor when we want to
if argument2{
if fooblink{
foostrKeyboard = string_insert('_', foostrKeyboard, foostrPos);
} else {
foostrKeyboard = string_insert(' ', foostrKeyboard, foostrPos);
}
}
return foostrKeyboard;