RU

Первые шаги...

Tom Run #2765 31.08.2024 11:55 97 comments 14023 views

Привет, мне понравилась идея создание текстовых игр и QSP движок показался прост в изучении, так как я в этом деле 0. Очень много вопросов закрываются путём изучения форума и справок по движку, и тут же огромная благодарность @aleksversus за его уроки. Но всё же вопросов, как всегда, больше чем ответов и это хорошо, поскольку это превратилось в хобби. Я надеюсь что вы поможете разобраться по ходу изучения в части из них, или направите в нужное направления, где это можно посмотреть (если похожую тему не найду).
На данном этапе я хотел бы создать игру на QGen - 4.2.0 beta 4 под плеер qsp - 5.7.0 для Windows.
И сразу хочу выразить большую благодарность всем тем кто будет мне помогать в решении (тупых) вопросов…

Для быстрого поиска:

Spoiler

Вопрос №1: Стиль кода

Вопрос №2: Ограничение переменных

Вопрос №3: Changelog

Вопрос №4: Error105

Вопрос №5: !BASE

Вопрос №6: Меню игры (массивы)

Вопрос №7: Модули

Вопрос №8: Метки

Вопрос №9: disablescroll = 0

Вопрос №10: loc

Вопрос №11: Список переменных (debugger)

Вопрос №12: Путь к игре

Вопрос №13: Однострочная запись

Вопрос №14: Знак <

Вопрос №15: Цикл

Решение №1: Файл .bat

Решение №2: Текст поверх картинки

Решение №3: Кнопка - Выход

Edited at 26.10.2025 17:35 (3 months ago)

Вопрос №1«Стиль кода»
Заметил что у меня весь код написан в каждой локации по разному, хотя и выполняет одно и то-же (говнокод- одним словом=().

usehtml=1
! Цвет текста
'<font color="Red">PRIMER</font><br>'
'<font color="#FF0000">PRIMER</font><br>'
'<font color="rgb(255,0,0)">PRIMER</font><br>'
'<span style="color:Red">PRIMER</span><br>'
'<span style="color:#FF0000">PRIMER</span><br>'
'<span style="color:rgb(255,0,0)">PRIMER</span><br>'

! Размер текста
'<h3>PRIMER</h3>'& ! +<b> +<br>
'<font size=5><b>PRIMER</b></font><br>'
'<font size=+2><b>PRIMER</b></font><br>'
'<span style="font-size:20pt"><b>PRIMER</b></span><br>'

Меня все варианты устраивают, но хотелось бы придерживаться однотипности…
Вопрос: Есть ли разница для плеера - как ему проще (быстрее) читать код или же есть какие-то правила применения данных вариантов написание кода?

Действительно, лучше придерживаться одного стиля.
В данном случае все зависит от плеера. Если плеер поддерживает все эти варианты, то пишите как удобнее.

Еще я бы старался использовать то, что ближе к стандарту HTML, чтобы легче было переносить игру на другие плееры.

Aleks Versus Moderator 01.09.2024 14:49 (1 year ago)

Tom Run,
а ещё, чтобы не мучаться с вспоминанием, как ты заполнял атрибут в теге в прошлый раз, можно заранее прописать значения в переменных:

$span_red = '<span style="color:#ff0000;">'
$span_close = '</span>'

и потом использовать переменные:

*pl $span_red + 'text' + $span_close

Это так же позволит сразу быстро изменить стиль во всём коде, не прибегая к поиску/замене.

Aleks Versus, хитро придумано =)
После слов:

то, что ближе к стандарту HTML

пошел искать стандарты HTML. Наткнулся на спецсимволы, перенес их в плеер и удивился что плеер 1.9.0 отображает их круче чем 5.7.0 и 5.8.0, ну тут уже придётся смириться spetssimvolyi.qsp.

Наверное, имелся в виду 5.9.0.

Цвета спецсимволов HTML есть только на 1.9.0 - КАРТИНКА.

Плеер QSP 1.9.0 на скриншоте - это альтернативная версия классика на Qt. Когда-то планировалось перенести классик на Qt, но пока этого не произошло.

Решение №1«Файл .bat»
Всем привет!
И так я неделю потратил на создание .bat файла, который будет хоть что-то делать полезного…
Успех близок…
Хотелось бы чтоб Вы протестировали и оставили отзыв.
Коротко о файле:
1. Создает log.txt ⁣, где отображается время входа в игру.
2. Создает ярлык рядом с .bat файлом (свое название + иконка).
3. Создает ярлык на рабочем столе.
Тестовая сборка - BAT_2.rar.
Спасибо за внимание!

Aleks Versus Moderator 14.09.2024 11:42 (1 year ago)

Интересно. Я даже вдруг подумал, что если бы батник создавал файл qsp c локацией, в которой бы прописывалось реальное время старта игры, можно было бы относительно точно выводить текущее время компьютера в игре. :|

Тогда можно было чтоб от реального времени стартовало игровое, и на основе этого создавать игру) Гениально!

Вопрос №2«Ограничение переменных»
Подскажите правильно ли я понимаю по ограничению:

Количество переменных ограничено 12800, при этом не допускается более 50 переменных с одинаковым хэшем имени.

К примеру у меня в игре 5000 переменных. Я командой ADDQST добавляю еще 5000 становится 10000 (все работает нормально).
Потом я делаю KILLQST и в игре снова 5000.

Если до этого все правильно тогда вопрос в следующем:
К примеру у меня в игре 5000 переменных. Я командой ADDQST добавляю еще 8000 становится 13000 (все не работает).
Есть ли команда по типу (KILLQST) которая бы удаляла локацию с переменными, а потом подключала ее (ну подключаю я ее командой GS), а как удалить, чтоб загрузить 8000 других?

Это условное ограничение и переменные не имеют отношения к локациям - можно создать сколько угодно переменных даже на одной локации. К тому же, addqst/killqst - устаревшие операторы, сейчас это inclib/freelib.
Я не очень понимаю зачем вообще думать о количестве переменных. Если их нужно много, то скорее всего вы хотите использовать массивы.

Еще раз повторю, что переменные не связаны с локациями и не имеет значения где именно создана переменная.

Я не очень понимаю зачем вообще думать о количестве переменных.

А как про них не думать когда на них есть ограничение? Я нашел игру в которой на 1 локации 12500 переменных и автор забросил игру (это текстовые переменные для перевода игры на разные языки). Разве не настораживает? Теперь после:

можно создать сколько угодно переменных даже на одной локации.

Я вообще не могу понять зачем тогда указывать 12800, если ограничений нет?
К примеру:
В книге 5 глав. В каждой главе по 10000 переменных. К концу книги в плеере будет 50000 переменных (Я думал разбить их на 5 модулей и удалять с помощью killqst).
Но killqst - удаляет только локации, но переменные остаются в основной игре.
Я планировал удалять переменные которые не используются ввиду ограничений 12800.
Так, а если в игре будет 200000 переменных, она будет нормально работать?, или все же есть способ удалять неиспользуемые?

> Я вообще не могу понять зачем тогда указывать 12800, если ограничений нету?
> А как про них не думать когда на них есть ограничение?
Ограничения есть, но они условные. В теории даже 50-100 переменных могут привести к ошибке “слишком много переменных”.

> Я нашел игру в которой на 1 локации 12500 переменных.
Не знаю зачем это было нужно. Думаю, там нужно было использовать массивы. Там можно хранить намного больше значений и они будут более систематизированы.

> Так, а если в игре будет 200000 переменных, она будет нормально работать? или все же есть способ удалять неиспользуемые?
Скорее всего в таком случае нужно использовать массивы. Каждый массив может хранить пару миллиардов значений.

Можно:
1. использовать локальные переменные там, где нужно.
2. вызывать killvar без параметров, чтобы удалить все глобальные переменные. Здесь с помощью локальных переменных можно сохранить нужные старые глобальные переменные.
3. загружать новую игру через openqst когда это нужно.

Byte, вроде разобрался, спасибо!

Log in or Register to post comments.