Форум » » Как это сделать? » Ответить
Как это сделать?
denis: Только начал программить на QSP. Вопрос: как сделать так, чтобы после выполнения одного действия, в этой же локации становились видны другие, до этого не видимые? Хелп читал - не нашёл ответа. И ещё - можно ли с помощью оператора DYNAMIC создавать новые действия и предметы?
Byte: Вариант - в поле кода локации пишем условие: [pre2] if был_здесь: act 'Действие 1': ! код действия end act 'Действие 2': ! код действия end act 'Действие 3': ! код действия end end [/pre2] Затем, в коде обработки выбора нужного действия пишем: [pre2]был_здесь=1 & gt $curloc[/pre2] С помощью оператора DYNAMIC - можно, но добавлять новые действия и предметы всё равно придётся через ACT и ADDOBJ: [pre2]ADDOBJ $имя_предмета[/pre2]
denis: Спасибо. Я здесь буду ешё вопросы выкладывать, если возникнут, хорошо?
Byte: Конечно
denis: А как скрыть действие? Т.е. if был_здесь: ... ?
Byte: Можно через оператор DELACT: [pre2]delact 'Название действия'[/pre2]
denis: Как вывести текст в окно дополнительной информации?
Nex: P 'текст'
denis: спс
denis: как сделать сохранение игры? Плз, с примером. Пытался сделать по хелпу через SAVEGAME и OPENGAME - ни фига не получается :(
Byte: [pre2] SAVEGAME 'имя файла' - сохранение в указанный файл SAVEGAME '' - сохранение, игрок сам выбирает имя файла[/pre2]
denis: Это-то понятно, но вот у меня в меню есть пункт 'продолжить' При нажатии на него появляется список открытых глав. Вот код обработки KILLALL & CLS & CLOSE ALL OPENGAME 'Другое_зрение.sav' После этого вылетает "нельзя открыть файл", хотя он есть и называется точно так же! И даже лежит в той же папке, потому что создаётся автоматом при посещении опред. локации! Что здесь не правильно?
Byte: [pre2] #Начало ACT '1': 'test!' END ACT 'save': savegame 'другой.sav' END ACT 'load': opengame 'другой.sav' END ---------------------------[/pre2] работает... может, название не совсем такое, как при сохранении? попробуй скопировать название из savegame..
Byte: denis, проблема решена? opengame заработал?
denis: Нет. Потом разберусь. У меня там сейчас и без него забот полон рот :) Иду на победу! Вопрос такой: как узнать, сколько времени прошло с момента входа в локацию? Без waita! ;)
Byte: Переменная MSECSCOUNT. При посещении локации сохраняем текущее время в какой-либо переменной, затем, когда нужно, вычитаем из текущего времени сохраненное значение.
denis: Всё, спасибо, вопросов больше нет!
denis: Итак, игра разрослась до таких размеров, что писать дальше без возможности начать с нужного места просто невозможно! И это радует :) Не радует отсутствие сохранок. Если не трудно, кинь пример, как должно выглядеть сохранение в файл с названием a_b.sav и загрузка из него. У меня всё выглядит так. При входе в определённую локацию выполняется SAVEGAME 'Другое_зрение.sav' Затем я перезапускаю игру ('Начать заново' в плеере), в меню выбираю пункт Главы->Другое зрение, выполняется код OPENGAME 'Другое_зрение.sav' И всё. Пустой экран. Не глючит, ошибок не выдаёт.
Byte: Вот этот код работает?
denis: Да, спасибо, работает. Ребята, извините, кина не будет, по крайней мере на этом конкурсе. Файл, в котором тестил загрузку/сохранение, я случайно сохранил в файл игры. Пока настроения что-либо делать нет. Извините.
denis: Правка: кино будет, но в меньше объёме. Вопросов больше нет.
полная версия страницы