В настоящее время тестирую на знакомых (в том числе и очень далёких от темы текстовых игр) всякое разное, написанное на 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_" (у меня внешние библиотеки в такие файлы вынесены).
Если у кого есть свои идеи по этому вопросу — буду рад услышать.
Неактивен
Nex написал:
Зачем перебирать все файлы, если имя нужного .qsp-файла известно заранее?
Чтобы не заморачиваться с редактированием ещё и vbs-файла. Так кинул в папку — и всё.
Неактивен
Дык можно ж сделать одним ехе-файлом. Например, игра с КРИЛ-2008 "Конец". Инструкцию, как так делается, могу вечерком выложить, сейчас под рукой нету.
Отредактировано Серый Волк (27.09.2010 12:40)
Неактивен
Серый Волк написал:
Дык можно ж сделать одним ехе-файлом. Например, игра с КРИЛ-2008 "Конец". Инструкцию, как так делается, могу вечерком выложить, сейчас под рукой нету.
Отлично! Было бы интересно взглянуть.
Неактивен
Из какого то фака:
Можно ли как то создать ехе файл чтоб играть без плеера?
Пошаговая инструкция (необходим установленный WinRAR, желательно 3.70 или выше):
1) Копируем файлы игры в папку с плеером.
2) Переименовываем запускаемый файл в "auto.gam".
3) Выделяем все файлы + папки игры и плеера (лучше с файлом конфигурации "qspgui.cfg"), жмём правую кнопку и выбираем "Добавить в архив...".
4) В появившемся окошке выбираем формат архива - "RAR", метод сжатия - "Максимальный" и, указав имя архива, ставим галочку "Создать SFX-архив".
5) Переключаемся на вкладку "Дополнительно", жмём кнопку "Параметры SFX...".
6) На первой открывшейся вкладке в поле "Выполнить после распаковки" вводим строчку "qspgui.exe".
7) Переключаемся на вкладку "Режимы" и устанавливаем галочку "Распаковать во временную папку". В поле "Режим вывода информации" выбираем "Скрыть всё" и в поле "Режим перезаписи" - "Перезаписывать все файлы без запроса".
8) Переключаемся на вкладку "Текст и графика" и выбираем иконку для SFX-архива.
9) Жмём "OK" и создаём архив.
Неактивен
2) Переименовываем запускаемый файл в "auto.gam".
Сейчас "auto.qsp".
Неактивен
Серый Волк написал:
Можно ли как то создать ехе файл чтоб играть без плеера?
Пошаговая инструкция (необходим установленный WinRAR, желательно 3.70 или выше)…
Ну этот метод мне известен. И мне почему-то хочется пристрелить каждого, кто его применяет.
Неактивен
Olegus t.Gl. написал:
Серый Волк написал:
Можно ли как то создать ехе файл чтоб играть без плеера?
Пошаговая инструкция (необходим установленный WinRAR, желательно 3.70 или выше)…Ну этот метод мне известен. И мне почему-то хочется пристрелить каждого, кто его применяет.
А каковы причины такого, столь, опрометчивого желания?
Неактивен
А каковы причины такого, столь, опрометчивого желания?
Чтобы сыграть в любую игру, приходится заново скачивать плеер.
Неактивен
Dark[Ol(U23)leneri] написал:
А каковы причины такого, столь, опрометчивого желания?
Чтобы сыграть в любую игру, приходится заново скачивать плеер.
Ну и что с того, ты же скачивашь плеер и игровой пакет? Это разве не две разные вещи. У меня тоже игруха выложена с акуркой, может и не так. Но не вижу в этом ничего дурного. Ты же не будешь искать исходники к граф. игре, чтобы запустить ее на компьютере. Ты просто найдешь диск с самой игрой и запустишь его. Тем более, что нет смысла вытаскивать плеер из пакета. Так что, я тебя не фига не понял.
Отредактировано Eten (28.09.2010 21:02)
Неактивен
Eten написал:
Olegus t.Gl. написал:
Серый Волк написал:
Пошаговая инструкция (необходим установленный WinRAR, желательно 3.70 или выше)…
Ну этот метод мне известен. И мне почему-то хочется пристрелить каждого, кто его применяет.
А каковы причины такого, столь, опрометчивого желания?
Минусы именно этой конкретной реализации: программа распаковывается во временную папку, которая потом сама собой очищается. При этом нельзя рассчитывать на то, что между запусками сохранятся некоторые вещи, например, сохранёнки, записанные по относительному пути (SAVEGAME 'save.001').
Неактивен
Olegus t.Gl., ну что ж ты сразу про сохраненки не сказал. Тогда и вопрос мой отлетает, только не надо говорить, что и так понятно, будете не правы.
Неактивен
Можно сделать инсталлятор, по принципу набора игрока, но там вроде у Некса были проблемы с разными версиями винды и правами на запись в program files. В идеале, установщик должен проверять, установлена ли актуальная версия куспа, при необходимости устанавливать его, потом устанавливать игру и делать для неё ярлык. Но я с вин-инсталлером не работал, так что конкретные методы реализации подсказать не смогу(
Неактивен
Проблемы были у стандартной библиотеки установщика, и это было давно.
Наверняка с тех пор уже сделали адекватную версию.
Вообще, автоматический сборщик stand-alone версий для Classic и Aero игр давно нужен, но, увы, не могу найти время на это. Ничего особо сложного в этом нет, нужен лишь человек, готовый этим заняться.
Неактивен
Немного доработал 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 "{%}{~}", т.е. символы % и ~ должны быть экранированы, но это не работает.
Неактивен