Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
27.09.2010 11:24

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Комплект поставки qsp-игры вместе с файлами плеера

В настоящее время тестирую на знакомых (в том числе и очень далёких от темы текстовых игр) всякое разное, написанное на QSP. Чаще всего люди готовы лишь скачать-запустить-посмотреть, а технические подробности (как скачать плеер, как его запустить и как из него открыть игру) им не особо интересны. Поэтому я в архив с тестируемым модулем (игрой это пока язык не поворачивается назвать) вкладываю и плеер, и запускной файл — чтобы всё запускалось по одному щелчку. Сперва это был bat-файл, но поскольку он открывает консольное окно, которое висит, пока не закроешь QSP, я перешёл на VBS-скрипт (я в нём не особо силён, но уж что есть).

Код:

set FS=CreateObject("Scripting.FileSystemObject")
set FOLDER=FS.GetFolder(FS.GetAbsolutePathName("."))
for each FILE in FOLDER.Files
    if lcase(mid(FILE.Name,len(FILE.Name)-3))=".qsp" then
        if instr(1,lcase(FILE.Name),"_lib_")=0 then
            set FTR=CreateObject("WScript.Shell")
            RC=FTR.Run("qsp\qspgui.exe " & FILE.Name,1,false)
            exit for
        end if
    end if
next

Подразумевается, что в каталоге с игрой в корне лежит qsp-файл игры, а в подкаталоге "qsp" лежат файлы и подкаталоги QSP-плеера. Дополнительно добавлен фильтр, отбрасывающий дополнительные qsp-файлы, содержащие в имени "_lib_" (у меня внешние библиотеки в такие файлы вынесены).
Если у кого есть свои идеи по этому вопросу — буду рад услышать.


Прикрепленные файлы:
run-qsp.zip, Размер: 572 байт, Скачано: 694

Неактивен

0    0    #2
27.09.2010 12:12

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Комплект поставки qsp-игры вместе с файлами плеера

Nex написал:

Зачем перебирать все файлы, если имя нужного .qsp-файла известно заранее?

Чтобы не заморачиваться с редактированием ещё и vbs-файла. Так кинул в папку — и всё.

Неактивен

0    0    #3
27.09.2010 13:35

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Комплект поставки qsp-игры вместе с файлами плеера

Серый Волк написал:

Дык можно ж сделать одним ехе-файлом. Например, игра с КРИЛ-2008 "Конец". Инструкцию, как так делается, могу вечерком выложить, сейчас под рукой нету.

Отлично! Было бы интересно взглянуть.

Неактивен

0    0    #4
27.09.2010 22:45

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Комплект поставки qsp-игры вместе с файлами плеера

Серый Волк написал:

Можно ли как то создать ехе файл чтоб играть без плеера?
Пошаговая инструкция (необходим установленный WinRAR, желательно 3.70 или выше)…

Ну этот метод мне известен. И мне почему-то хочется пристрелить каждого, кто его применяет.

Неактивен

0    0    #6
29.09.2010 15:47

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Комплект поставки qsp-игры вместе с файлами плеера

Eten написал:

Olegus t.Gl. написал:

Серый Волк написал:

Пошаговая инструкция (необходим установленный WinRAR, желательно 3.70 или выше)…

Ну этот метод мне известен. И мне почему-то хочется пристрелить каждого, кто его применяет.

А каковы причины такого, столь, опрометчивого желания?

Минусы именно этой конкретной реализации: программа распаковывается во временную папку, которая потом сама собой очищается. При этом нельзя рассчитывать на то, что между запусками сохранятся некоторые вещи, например, сохранёнки, записанные по относительному пути (SAVEGAME 'save.001').

Неактивен

0    0    #7
08.04.2012 11:04

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: Комплект поставки qsp-игры вместе с файлами плеера

Немного доработал vbs-скрипт запуска игры. Теперь есть возможность запускать игру в полноэкранном режиме. Не развёрнутом, а именно полноэкранном — чтобы даже системное меню не было видно.
Да, и вынес настройки в начало файла.

Код:

'--------------------------------------------------------------------------------
' FullScreen
' Нужно ли после запуска разворачивать игру на полный экран.
' При этом панель с системным меню плеера ("Квест", "Игра", "Установки", "Помощь")
' тоже пропадает.
'----------
' LibFile
' Цепочка символов, характерная для подключаемых qsp-библиотек.
' Если файл содержит данную цепочку, то он игнорируется
'----------
' Player
' Директория и имя файла с QSP-плеером относительно корневой директории игры
'----------
prmFullScreen    = true
prmLibFile        = "_lib_"
prmPlayer        = "qsp\qspgui.exe"
'--------------------------------------------------------------------------------
' Создаём объект для работы с файлами
set FS=CreateObject("Scripting.FileSystemObject")
' Получаем текущую директорию
set FOLDER=FS.GetFolder(FS.GetAbsolutePathName("."))
' Перебираем файлы в текущей директории
for each FILE in FOLDER.Files
    ' Если очередной файл имеет расширение ".qsp" - он нам подходит
    if lcase(mid(FILE.Name,len(FILE.Name)-3))=".qsp" then
        ' Если файл не содержит цепочки символов, характерных для qsp-библиотеки,
        ' то он подходит нам ешё больше
        if instr(1,lcase(FILE.Name),prmLibFile)=0 then
            set FTR=CreateObject("WScript.Shell")
            ' Запускаем QSP-плеер с найденным qsp-файлом
            set GAME=FTR.Exec(prmPlayer&" "&FILE.Name)
            ' Если включён режим запуска в полноэкранном режиме, то пытаемся
            ' послать окну с игрой комбинацию клавиш Alt+Enter
            if prmFullScreen then
                ' Но сперва подождём, пока окно не станет активным
                do
                loop while not FTR.AppActivate(GAME.ProcessID)
                ' А вот теперь посылаем комбинацию клавиш Alt+Enter
                FTR.SendKeys "%~"
            end if
            exit for
        end if
    end if
next
'--------------------------------------------------------------------------------

Проверено на Windows 7 (x64) и Windows XP (x32).
Немного смущает, что в документации сказано, что для посылки окну комбинации Alt+Enter нужно выполнить команду SendKeys "{%}{~}", т.е. символы % и ~ должны быть экранированы, но это не работает.


Прикрепленные файлы:
start.vbs, Размер: 1,826 байт, Скачано: 650

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru