00023. Работа с клавишами. Делаем сохранение

Работа с клавишами. Делаем сохранение|Мы продолжаем изучать скриптинг и написание мейна с нуля. В этом уроке мы напишем скрипт, который будет сохранять нашу игру при нажатии конкретной клавиши.|wmysterio|wmysterio||||Я даже не знаю таких игр, в которых не было возможности сохранение игры. Рассмотрим два опкода, которые назначены для работы с клавишами:

0AB0: key_pressed 115
00E1: player 0 pressed_key 19

Первый опкод я, например, практически всегда использую. Это проверка на нажатие конкретной клавиши Windows. Здесь:

115 - номер клавиши ( см. Номера клавиш. Таблица 2 ). В нашем случае это кнопка F4.

Второй опкод - это проверка на нажатие игровой клавиши ( см. Номера клавиш. Таблица 1 ). Здесь:

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

Last updated

Was this helpful?