| 05-14-2008, 12:27 PM | #1 |
hey guys! im looking for a triggerevent that detects when a player presses a key, "w"for example. indeed theres only a function for detecting the arrow keys. Im sure there wud be a way with dummy spells etc to see when a player presses that button,but that wud suck :P. Now i wonder, if there wud be any way to implement my own event that can detect some other keys as well ( y,x,a,s,q,w). the editors event needs those parameters: Code:
call TriggerRegisterPlayerKeyEventBJ( gg_trg_Copy, Player(0), bj_KEYEVENTTYPE_DEPRESS, bj_KEYEVENTKEY_UP ) if i cud create my own event (derived from that event) but enhanced with parameters like 'bj_KEYEVENTKEY_W' all wud be very simple. Too bad ive never seen someone using a custom event. is there any way? |
| 05-14-2008, 02:53 PM | #2 |
you can use only up/down/left/right JASS:// Blizzard.j // Keyboard Event Types constant integer bj_KEYEVENTTYPE_DEPRESS = 0 constant integer bj_KEYEVENTTYPE_RELEASE = 1 // Keyboard Event Keys constant integer bj_KEYEVENTKEY_LEFT = 0 constant integer bj_KEYEVENTKEY_RIGHT = 1 constant integer bj_KEYEVENTKEY_DOWN = 2 constant integer bj_KEYEVENTKEY_UP = 3 |
| 05-14-2008, 03:18 PM | #3 |
Has anyone tried numbers higher than 3? It would be interesting to know if there are mapped keys that are simply without a mnemonic. |
| 05-15-2008, 03:46 AM | #4 | |
Quote:
I don't think it would work. Simply because: JASS:function TriggerRegisterPlayerKeyEventBJ takes trigger trig, player whichPlayer, integer keType, integer keKey returns event if (keType == bj_KEYEVENTTYPE_DEPRESS) then // Depress event - find out what key if (keKey == bj_KEYEVENTKEY_LEFT) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_LEFT_DOWN) elseif (keKey == bj_KEYEVENTKEY_RIGHT) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_RIGHT_DOWN) elseif (keKey == bj_KEYEVENTKEY_DOWN) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_DOWN_DOWN) elseif (keKey == bj_KEYEVENTKEY_UP) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_UP_DOWN) else // Unrecognized key - ignore the request and return failure. return null endif elseif (keType == bj_KEYEVENTTYPE_RELEASE) then // Release event - find out what key if (keKey == bj_KEYEVENTKEY_LEFT) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_LEFT_UP) elseif (keKey == bj_KEYEVENTKEY_RIGHT) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_RIGHT_UP) elseif (keKey == bj_KEYEVENTKEY_DOWN) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_DOWN_UP) elseif (keKey == bj_KEYEVENTKEY_UP) then return TriggerRegisterPlayerEvent(trig, whichPlayer, EVENT_PLAYER_ARROW_UP_UP) else // // // It probably won't recognize the key or type... // Unrecognized key - ignore the request and return failure. return null endif else // Unrecognized type - ignore the request and return failure. return null endif endfunction |
| 05-15-2008, 05:16 AM | #5 |
yes, it don't work JASS:// common.j constant gameevent EVENT_GAME_SAVE = ConvertGameEvent(259) //=================================================== // For use with TriggerRegisterPlayerEvent //=================================================== constant playerevent EVENT_PLAYER_ARROW_LEFT_DOWN = ConvertPlayerEvent(261) constant playerevent EVENT_PLAYER_ARROW_LEFT_UP = ConvertPlayerEvent(262) constant playerevent EVENT_PLAYER_ARROW_RIGHT_DOWN = ConvertPlayerEvent(263) constant playerevent EVENT_PLAYER_ARROW_RIGHT_UP = ConvertPlayerEvent(264) constant playerevent EVENT_PLAYER_ARROW_DOWN_DOWN = ConvertPlayerEvent(265) constant playerevent EVENT_PLAYER_ARROW_DOWN_UP = ConvertPlayerEvent(266) constant playerevent EVENT_PLAYER_ARROW_UP_DOWN = ConvertPlayerEvent(267) constant playerevent EVENT_PLAYER_ARROW_UP_UP = ConvertPlayerEvent(268) //=================================================== // For use with TriggerRegisterPlayerUnitEvent //=================================================== constant playerunitevent EVENT_PLAYER_UNIT_SELL = ConvertPlayerUnitEvent(269) |
| 05-17-2008, 04:00 PM | #6 |
too bad :( |
