VA just doesn't like voiced numbers , after adding numbers to WIN speech recognition ,numbers still wont work well enough
VoiceAttack is dependent on the Microsoft Speech Recognition Engine, which doesn't do well with short input of any kind. That's something for Microsoft to improve.
How do you go about , telling VA to ignore , all other commands when using the number pad.
Disable Hotkeys
Set Text [NumpadInput] to ''
Start Loop While : [{EXP:1=1}] Equals '1'
Begin Text Compare : [{STATE_KEYSTATE:NUM0}] Equals '1'
Set Text [NumpadKey] to '0'
Else If Text Compare : [{STATE_KEYSTATE:NUM1}] Equals '1'
Set Text [NumpadKey] to '1'
Else If Text Compare : [{STATE_KEYSTATE:NUM2}] Equals '1'
Set Text [NumpadKey] to '2'
Else If Text Compare : [{STATE_KEYSTATE:NUM3}] Equals '1'
Set Text [NumpadKey] to '3'
Else If Text Compare : [{STATE_KEYSTATE:NUM4}] Equals '1'
Set Text [NumpadKey] to '4'
Else If Text Compare : [{STATE_KEYSTATE:NUM5}] Equals '1'
Set Text [NumpadKey] to '5'
Else If Text Compare : [{STATE_KEYSTATE:NUM6}] Equals '1'
Set Text [NumpadKey] to '6'
Else If Text Compare : [{STATE_KEYSTATE:NUM7}] Equals '1'
Set Text [NumpadKey] to '7'
Else If Text Compare : [{STATE_KEYSTATE:NUM8}] Equals '1'
Set Text [NumpadKey] to '8'
Else If Text Compare : [{STATE_KEYSTATE:NUM9}] Equals '1'
Set Text [NumpadKey] to '9'
Else If Text Compare : [{STATE_KEYSTATE:NUM.}] Equals '1'
Set Text [NumpadKey] to '.'
Else If Text Compare : [{STATE_KEYSTATE:NUM+}] Equals '1'
Set Text [NumpadKey] to '+'
Else If Text Compare : [{STATE_KEYSTATE:NUM-}] Equals '1'
Set Text [NumpadKey] to '-'
Else If Text Compare : [{EXP:{STATE_KEYSTATE:NUMENTER} = 1 OR {STATE_KEYSTATE:NUM/} = 1}] Equals '1'
Write '[Purple] {TXT:NumpadInput}' to log
Enable Hotkeys
Exit Command
Else
Set Text [NumpadKey] to ''
Set Text [NumpadKeyPrev] to ''
End Condition
Begin Text Compare : [{EXP:'{TXT:NumpadKey}' = '{TXT:NumpadKeyPrev}' OR '{TXT:Numpadkey}' = ''}] Equals '0'
Set Text [NumpadInput] to '{TXTCONCAT:NumpadInput:NumpadKey}'
Set Text [NumpadKeyPrev] to [NumpadKey]
End Condition
End Loop
When you run this command, keyboard shortcuts are disabled so you can use numpad keys to enter a number. Press "Enter" or "/" on the numpad to finish input("Enter" doesn't seem to work currently); the command is stopped and keyboard shortcuts are enabled.
A caveat of this method is that there is no way to keep the keypresses from getting passed through to your application, but it prevents you having to add a check into every command with a numpad shortcut. Pick your poison.
Getting Bearing Calc to either using Voice or Number pad would also be practical , ie
'Didn't hear that please enter number via Number Pad'
If you have a reliable mic and no background noise, you could add a catch-all command that does this for you; However, as it's very likely you don't have a noiseless input signal in the real world, I'd suggest just using keyboard entry.