Add a couple of more variable bindings, make all the set visual gear values optional, to allow skipping trailing params or specifying ones in the middle as nil to not set. Should make using it more convenient in simple cases.
'?' ping?
'!' pong!
'l','L' срабатывание команд -left, +left
'r','R' -right, +right
'u','U' -up, +up
'd','D' -down, +down
'z', 'Z' -precise, +precise
'N' срабатывание команды /nextturn
'S' /switch
's' + <текст> /say
'+' пустой пакет для постоянности лага
'1'..'5' /timer 1..5
chr(128+№) /slot №
'w' /setweap
'p' /put
'j' /ljump
'J' /hjump
'E' + <текст> сообщение об ошибке
',' /skip
't' + № /taunt №
'f' + <team> 'team' is uncontrolled
'g' + <team> 'team' is controlled again (synced msg)
фронтенд клиенту:
'e' + <команда> выполнить "/<команда>"
'T' + {L,N,D} тип игры (локальная, сетевая, просмотр демо)
'W' + <текст> сообщение о нефатальной ошибке
'F' + <team> команда team вылетела в сетевой игре
'G' + <team> 'team' is back (unsynced msg)
'o' stop syncing, game over!
Клиент фронтенду:
'C' запрос текущего конфига игры
'q' выход по причине окончания демки
'i' статистика
'K' вывести сообщение из KB
'Q' выход через команду /quit
'q' выход по причине окончания игры