An artist's depiction of an Extended Unit Death
You can most certainly write key press EUDs by hand. However, when it comes to key press detection, knowing
where to read isn't very straightforward, as each key is assigned its own byte (it stores a value of 0 if the key is not pressed, and a value of 1 if it is pressed). The entry for the (0) key is located at 0x596A88, and you can look at a character map to figure out any character from there. Non-character keys like function keys don't show up there, so you would need some other method of figuring out where they are in memory. To save you some time, here are the values:
F1: 0x596A88
F2: 0x596A89
F3: 0x596A8A
F4: 0x596A8B
F5: 0x596A8C
F6: 0x596A8D
F7: 0x596A8E
F8: 0x596A8F
F9: 0x596A90
F10: 0x596A91
F11: 0x596A92
F12: 0x596A93
Converting these by hand would be a pain, so to comply with your tool-less requirement, I will refer you to Morphling's
Detecting Keys Pressed (EUDs) topic, which has a map containing just about every keyboard key press detection possible. You can look through the map and take the appropriate keys from there.
When you say "Without me using an EUD tool", I am making an assumption that you just mean without using something like EUD Editor, which saves off the map in a format that makes it incompatible with further editing. There are still many tools available that would make your life easier:
- EUDTrig will convert the memory addresses above to their EUD equivalent, so you know what to enter into your editor.
- EUDGen2 has trigger generation for key press detection, and you could generate the EUDs you would otherwise write by hand.
This is what EUDGen generates if you tell it to detect a key press between F1 and F12:
Trigger("Player 1"){
Conditions:
Memory(12745, Exactly, 1);
Actions:
Comment("IF (Local) Player is holding down the 'F1' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12745, Exactly, 256);
Actions:
Comment("IF (Local) Player is holding down the 'F2' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12745, Exactly, 65536);
Actions:
Comment("IF (Local) Player is holding down the 'F3' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12745, Exactly, 16777216);
Actions:
Comment("IF (Local) Player is holding down the 'F4' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12746, Exactly, 1);
Actions:
Comment("IF (Local) Player is holding down the 'F5' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12746, Exactly, 256);
Actions:
Comment("IF (Local) Player is holding down the 'F6' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12746, Exactly, 65536);
Actions:
Comment("IF (Local) Player is holding down the 'F7' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12746, Exactly, 16777216);
Actions:
Comment("IF (Local) Player is holding down the 'F8' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12747, Exactly, 1);
Actions:
Comment("IF (Local) Player is holding down the 'F9' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12747, Exactly, 256);
Actions:
Comment("IF (Local) Player is holding down the 'F10' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12747, Exactly, 65536);
Actions:
Comment("IF (Local) Player is holding down the 'F11' key");
}
//-----------------------------EUDGen-----------------------------//
Trigger("Player 1"){
Conditions:
Memory(12747, Exactly, 16777216);
Actions:
Comment("IF (Local) Player is holding down the 'F12' key");
}
//-----------------------------EUDGen-----------------------------//
(As a disclaimer to any future readers: this form of key press detection will only work locally, and is not intended for multiplayer.)