Форум » » Как это сделать? » Ответить

Как это сделать?

denis: Только начал программить на QSP. Вопрос: как сделать так, чтобы после выполнения одного действия, в этой же локации становились видны другие, до этого не видимые? Хелп читал - не нашёл ответа. И ещё - можно ли с помощью оператора DYNAMIC создавать новые действия и предметы?

Ответов - 201, стр: 1 2 3 4 5 6 7 8 9 10 11 All

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: Правка: кино будет, но в меньше объёме. Вопросов больше нет.



полная версия страницы