It's the case that you can't introduce new keydown values otherwise it wouldn't be too hard to make...
Oh well this should work for setting something to for example the 'S' button, you'll need to make an interface for it yourself though

:
NPC Code:
if (created||timeout) {
if (keydown(5)) { //Not sure if it's 5 but I think it is 
callweapon #s(players.weaponons),weaponfireds;
}
timeout = 0.05;
}
Blah, you can even make it perform different actions if you fire it with 'S' if you'd like

. Blah just figured out it wouldn't work since it checks for the weapons index or something, so it'll be a bit more complex but something like that anyways.