Use the scan codes and put them into a var array for example. For a nice looking code use also defines for the different array "slots". Example: A var array for the movement keys (default: W,A,S,D)
Code:
#define MOVE_F 0
#define MOVE_L 1
#define MOVE_R 2
#define MOVE_B 3
var keys[4] = { 17, 30, 31, 32 };
// use:
key_pressed(keys[MOVE_F]); // this will be 1 if W is pressed, 0 otherwise
For re-mapping just get the scan code of the key and save it into the array. For more keys make the array bigger.
But how about multiplayer games, should each one of the members of the array need to be a skill of the client´s entity, so it can be changed localy, or is there another way?
Any advice to avoid declaring skills would be much appreciated.