Как сделать?
…
Nex,
благодарю.
Как сделать, чтобы значение переменной проверялось всегда, вне зависимости, что сейчас делает игрок? То есть например HP. Если оно равно 0, то где бы он не был, чтобы он делал - его кидало на локацию, например “GAME OVER”. Надеюсь вы поняли
newsash:
Если не ошибаюсь, то тебя интересует MENU в локации $ONOBJSEL.
Может быть это то самое. Во всяком случае, я так и не понял как пользоваться массивами и где они могут пригодится.
Мне нужно, чтобы:
Вот например список предметов. В списке есть, предположим, меч. Щелкаю по вещи из списка. Вылезает небольшое меню, где список вариантов взаимодействия “Осмотреть”, например, “Выкинуть”, “Вооружиться”. Наверное, это слишком для меня сложно, но…
RomaDova, Архив примеров кода - “28 в 1”, файл “menu.qsp”.
RomaDova:
Как сделать, чтобы значение переменной проверялось всегда, вне зависимости, что сейчас делает игрок? То есть например HP. Если оно равно 0, то где бы он не был, чтобы он делал - его кидало на локацию, например “GAME OVER”. Надеюсь вы поняли
Во всех местах, где отнимается HP, следует либо написать проверку, либо вызвать локацию, в которой выполнится проверка. Это единственный нормальный способ.
hp = hp - damage
! Проверка должна идти сразу же после уменьшения hp, как в этом примере.
IF hp < 1:
GOTO 'GAME OVER'
END
А можно в выбор действия (acts) тоже вставить картинку?
RomaDova,
можно.
См. Действия
Nex:
можно.
А как? Какой для этого оператор?
RomaDova,
я же дал ссылку.
Оператор добавления действия ACT.
Nex:
RomaDova,
я же дал ссылку.Оператор добавления действия ACT.
Это я знаю. И про какую ссылку говоришь? Если о той, где много всего, но так я ничего не понял из того.
А какой символ отвечает за умножение и деление переменных?
RomaDova,
ACT [$название],[$путь к файлу изображения]: [операторы] - добавление действия с описанием [$название] и изображением [$путь к файлу изображения] к существующим на локации.
При нажатии действия игроком выполнятся указанные операторы.
Параметр [$путь к файлу изображения] может отсутствовать, при этом действие добавится без изображения.
Также поддерживается многострочность:
act [$название], [$путь к файлу изображения]:
[оператор]
[оператор]
[оператор]
end
Умножение *
Деление /
Спасибо :D
Nex:
Во всех местах, где отнимается HP, следует либо написать проверку, либо вызвать локацию, в которой выполнится проверка. Это единственный нормальный способ.
hp = hp - damage ! Проверка должна идти сразу же после уменьшения hp, как в этом примере. IF hp < 1: GOTO 'GAME OVER' END
Ну, вообще есть еще один способ, но он извращенный до ужаса. Для этого нужно в локацию-обработчик перехода (или в локацию-счетчик) записать этот код:
IF hp < 1:
GOTO 'GAME OVER'
END
Что это даст? Это даст гарантированное отправление в “GAME OVER” при значении переменной “hp” на ЛЮБОЙ локации. А чтобы игрока не выкинуло в локацию “GAME OVER” еще в главном меню, необходимо сделать проверку, начал ли игрок, собственно, игру, или же он еще в главном меню. Ну, еще можно установить значение переменной “hp” выше нуля еще в начальной локации.
P.S. Хотя лучше не использовать этот способ.
P.P.S. И да, сам Nex велел не использовать этот способ.
Prophet,
это никуда не годный способ, ведущий к многочисленным багам.
Никакого “гарантированного отправления” не будет, так как код локации-счётчика выполняется раз в полсекунды, и за это время “мёртвый” игрок ещё может успеть что-то сделать. Добить врага, например. Или даже вообще успешно завершить игру.
Более того, этот способ никак не сработает, если какой-то код, зависящий от hp, выполняется непосредственно после отнятия hp.
Не нужно дурить голову новичкам и учить их плохому. Плохому они научатся сами.
Так написал же, что это никуда не годится :=D