Работа с клавишами. Делаем сохранение|Мы продолжаем изучать скриптинг и написание мейна с нуля. В этом уроке мы напишем скрипт, который будет сохранять нашу игру при нажатии конкретной клавиши.|wmysterio|wmysterio||||Я даже не знаю таких игр, в которых не было возможности сохранение игры. Рассмотрим два опкода, которые назначены для работы с клавишами:
0AB0: key_pressed 115
00E1: player 0 pressed_key 19
Первый опкод я, например, практически всегда использую. Это проверка на нажатие конкретной клавиши Windows. Здесь:
0 - номер игрока. Это для $PLAYER_CHAR. Используйте всегда 0
19 - номер игровой клавиши. Здесь уже идёт зависимость от того находится игрок в транспорте или идёт пешком
Меня очень часто спрашивают о том, как я отличаю условные опкоды, то есть проверки, от других опкодов. Всё довольно просто. Рассмотрим простой пример, даже с темеми опкодами, что написаны выше:
Опкод
Описание
**0**AB0: key_pressed 115
проверка на нажатие клавиши
**8**AB0: not key_pressed 115
проверка на **не** нажатие клавиши
Обратите внимание на первый символ опкодов. Если мы нашли какой то интересующий нас опкод и мы не знаем проверка это или нет, то просто в место 0 поставим 8. Если опкод нашелся в поисковике, то это проверка.
С клавишами разобрались, рассмотрим опкод, который отвечает за сохранение игры. Делается это опкодом:
03D8: show_save_screen
Осталось определить только условия, при котором будет сохранена игра. В первую очередь нельзя сохраняться во время миссий, поэтому переменная $ONMISSION должна быть равна нулю ( режим миссии выключен ). Это одно из главных условий, но их может быть несколько. Давайте напишем самый примитивный скрипт:
:SAVE
thread 'SAVE'
wait 0
if AND
$ONMISSION == 0
0AB0: key_pressed 115
then
03D8: show_save_screen
wait 250
end
jump @SAVE
Всё что нам осталось - это вставить этот скрипт в наш мейн. Сделаем это:
Компилируем и начинаем новую игру! Начинаем, потому, что мы добавили новый поток. Когда мы во время игры нажмём клавишу F4, появится окно сохранения:
Таким образом наша задача выполнена!|1292|1|0|81463968png640400400`250``||rabota_s_klavishami_delaem_sokhranenie|1498570494