Entrada
Estas funções leem e controlam o que entra pelo teclado e pelo mouse: vincular teclas a funções, saber se uma tecla está pressionada, mover o cursor, desligar controles do jogo e escrever na área de transferência.
Estas 21 funções existem somente no cliente. Chamá-las de um script de servidor resulta em erro de valor nulo.
Nomes de tecla
Seção intitulada “Nomes de tecla”Toda função desta página que recebe uma tecla aceita o nome dela como texto. Estes são os nomes válidos:
| Grupo | Nomes |
|---|---|
| Letras e números | a até z, 0 até 9 (uma letra ou um dígito só) |
| Setas | arrow_l, arrow_r, arrow_u, arrow_d |
| Edição | space, enter, backspace, tab, escape, delete, insert, home, end, pgup, pgdn, capslock |
| Modificadores | lshift, rshift, lctrl, rctrl, lalt, ralt, lwin, rwin |
| Função | f1 até f12 |
| Teclado numérico | num_0 até num_9, num_mul, num_add, num_sub, num_dec, num_div, num_sep, num_enter |
| Pontuação | ; = , - . / ' [ ] # e a barra invertida |
| Sistema | pause, scroll |
| Mouse | mouse1, mouse2, mouse3, mouse4, mouse5, mouse_wheel_up, mouse_wheel_down |
O nome não diferencia maiúsculas de minúsculas: "A" e "a" são a mesma tecla. escape, lwin, rwin e f8 são reservadas pelo cliente: bindKey, unbindKey e getKeyState não as aceitam. Um nome que não esteja nessa lista (ou que seja reservado) faz a função devolver false em silêncio — nada é registrado.
Vinculando a um comando
Seção intitulada “Vinculando a um comando”Passar o nome de um comando no lugar de uma função executa aquele comando a cada acionamento, exatamente como se o jogador o tivesse digitado. Só uma string de argumento é lida — ela é entregue inteira ao comando, sem ser quebrada em palavras.
addCommandHandler("togglehud", function() setPlayerHudComponentVisible("all", not hudVisivel)end)
bindKey("f5", "down", "togglehud")
-- o comando recebe "police" como argumentobindKey("f6", "down", "setteam", "police")Um vínculo de comando não aceita argumentos extras além dessa string, e o manipulador do comando é procurado na hora em que a tecla é acionada — não na hora de criar o vínculo — então a ordem em que você registra os dois não importa.
bindKey("f2", "down", function() outputDebugString("F2 pressionado")end)
-- o mesmo callback para pressionar e soltarbindKey("lshift", "both", function(tecla, estado) outputDebugString(tecla .. " está " .. estado)end)
-- repassando argumentos extrasbindKey("h", "down", function(tecla, estado, mensagem) outputDebugString(mensagem)end, "buzina!")Nomes de controle
Seção intitulada “Nomes de controle”As três funções abaixo recebem um nome de controle no lugar de um nome de tecla. São duas famílias, e as duas são aceitas em qualquer lugar que peça um controle.
Controles do jogo — as 44 ações que o próprio GTA lê:
fire, next_weapon, previous_weapon, forwards, backwards, left, right, zoom_in, zoom_out, enter_exit, change_camera, jump, sprint, look_behind, crouch, action, walk, vehicle_fire, vehicle_secondary_fire, vehicle_left, vehicle_right, steer_forward, steer_back, accelerate, brake_reverse, radio_next, radio_previous, radio_user_track_skip, horn, sub_mission, handbrake, vehicle_look_left, vehicle_look_right, vehicle_look_behind, vehicle_mouse_look, special_control_left, special_control_right, special_control_down, special_control_up, aim_weapon, conversation_yes, conversation_no, group_control_forwards, group_control_back.
Controles do MTAX — as 19 ações que o cliente acrescenta por cima do jogo:
chatbox, voiceptt, enter_passenger, radar, radar_zoom_in, radar_zoom_out, radar_move_north, radar_move_south, radar_move_east, radar_move_west, radar_attach, radar_opacity_down, radar_opacity_up, radar_help, msg_target, vehicle_next_weapon, vehicle_previous_weapon, sinfo, textscale.
O nome não diferencia maiúsculas de minúsculas. Um nome que não esteja em nenhuma das listas devolve false sem gerar erro. isControlEnabled é a exceção: ela só responde por controles do jogo, então um nome de controle do MTAX devolve false ali.
Lendo vínculos
Seção intitulada “Lendo vínculos”Estas quatro consultam vínculos que já existem. Os nomes de tecla que elas devolvem seguem a grafia do próprio cliente: letras e dígitos minúsculos, mas F1 a F12 para as teclas de função — e a tecla que você passa é comparada exatamente, então peça "F1", não "f1".
Controles analógicos
Seção intitulada “Controles analógicos”Catorze dos controles do jogo são analógicos: carregam um valor entre 0 e 1 em vez de só pressionado ou solto. Estes são os únicos nomes que as duas funções abaixo aceitam:
left, right, forwards, backwards, vehicle_left, vehicle_right, steer_forward, steer_back, accelerate, brake_reverse, special_control_left, special_control_right, special_control_up, special_control_down.