Перейти к основному содержимому

20.14. Как сделать записную книжку в игре?

В: Как сделать записную книжку в игре?

То есть чтобы игрок мог делать записи, а когда нужно, мог их просматривать.

О: Хранить записи для записной книжки можно в массиве, саму же записную книжку можно сделать в виде предмета:

addobj "Записная книжка"

Работу с предметом "Записная книжка" удобнее всего орагнизовать через всплывающее меню. Для всплывающего меню создаём две локации. Назовём их, например, "note.add" и "note.read". Первая будет служить для добавления записи в записную книжку, вторая — для воспроизведения записей из записной книжки.

Код локации "note.add" достаточно прост:

! предлагаем пользователю добавить запись

local $new_note_ = $input('Введите текст записи.')
! если введён какой-либо текст, добавляем его в очередную ячейку массива $note[]

if $new_note_ <> '':
$note[] = $new_note_
end

Код локации "note.read":

! очищаем окно доп описания

clr
loop local i = 0 while i < arrsize('$note') step i += 1:
! пока счётчик не достиг размера массива note

! выводим запись

pl $note[i]
end

Непосредственно при добавлении предмета, либо где-то ранее, прописываем пункты меню для записной книжки в массив:

$меню_записная_книжка[0] = "Добавить запись:note.add"
$меню_записная_книжка[1] = "Прочитать записи:note.read"

На локации-обработчике выделения предмета добавляем такой код:

! если выделен предмет "Записная книжка"
if $selobj = 'Записная книжка':
! вызываем меню

menu '$меню_записная_книжка'
end

! не забываем снять выделение в конце локации

unselect

Вот и всё. Теперь у нас есть предмет "Записная книжка", щелчок по которому вызовет всплывающее меню с двумя пунктами "Добавить запись" и "Прочитать записи".