Форум » » Конвертер квестов URQ to QSP » Ответить
Конвертер квестов URQ to QSP
elmortem: Набросал тут за вечерок. Работает только при определённом написании квестов, но в любом случае позволяет сильно облегчить дальнейшее ручное конвертирование. Никак не могу найти последнюю документацию по URQ-формату, всё на какое-то старьё ссылки. Может кто поможет с этим? Тогда бы я попробовал доделать. Хотя в любом случае полной совместимости скорее всего добиться не получится. ): Качать тут: http://elmortem.mirgames.ru/?link=25 [30 kb]
Ответов - 27, стр:
1 2 All
Nex: Да, кстати говоря, при конвертации ещё нужно учитывать, под какой URQ-интерпретатор делалась игра - ведь для разных по-разному пишут. Зайди на irc-канал уркистанцев, где-то на http://urq.allquests.ru или http://urq.fastbb.ru/ должно быть описание, как на него выйти.
elmortem: Вчера прочесал инет, нашёл 2 версии документации, для досурки и для акурки (: Отличия есть, но не существенные. Как изучу обе доки - выберу одну и доделаю. Пока почитал тоьлко доку по акурке - вполне можно перевести автоматически. Как минимум 90% кода точно будет пахать. Основной гемор мне пока видится на пересечении переменных и предметов.
elmortem: Сделал менюхи для предметов. Но для полноценной конвертации предметов нужно перекраивать работу с ними. И вот у меня возник такой вопросец: возможно ли внутри однострочного IF использовать другие однострочные IF в качестве "операторов"? upd Кстати, если кто рубит в URQL и хочет помочь, то приму в дар маленькие квестики, которые демонстрируют разные особенности этого языка. Чтобы можно было удобно тестить. Пока заборол случайные числа и переменные, вставляемые в текст. Глядишь к вечеру выложу новую версию. upd Вот последня версия. Конвертит все основные конструкции. Ручками править приходится в оригинальном квесте только имена переменных, если они не удовлетворяют правилам QSP (начинаются на цифру, содержат точку или тире, и т.д.) и название локаций, по той же причине (напирмер наличие скобок в имени локации). Основной затык сейчас в том, что после применения XGOTO или GOTO чистится стек GOSUB. Думаю сейчас, как это обойти. Возможно придётся вводить собственный стек. Или может Байт на уровне платформы поможет обойти этот косяк? http://elmortem.mirgames.ru/?link=27 [33 kb]
Byte: elmortem пишет: И вот у меня возник такой вопросец: возможно ли внутри однострочного IF использовать другие однострочные IF в качестве "операторов"? да. elmortem пишет: Основной затык сейчас в том, что после применения XGOTO или GOTO чистится стек GOSUB. Думаю сейчас, как это обойти. Возможно придётся вводить собственный стек. Или может Байт на уровне платформы поможет обойти этот косяк? во-первых, сейчас пока платформой не занимаюсь; во-вторых, это корректно не реализовать.
Byte: elmortem пишет: http://elmortem.mirgames.ru/?link=27 [33 kb] 404 not found
elmortem: Byte пишет: 404 not found Похоже вчера был откат сервака, перезалил. В принципе нынешнего состояния конвертера хватает, чтобы полу-автоматически сконвертить любой квест, правда большую работу, специфичную для URQ, придётся делать ручками. На том и оставим эту тему.
Nex: Не обрабатывает ELSE. Вместо точек в именах локаций вставляет три подчёркивания Строка [pre2]if agi>=4 then btn 0.9, Попытаться перехватить оружие else btn Глава 1, Далее[/pre2] конвертится в [pre2]IF agi> = 4: ACT ' Попытаться перехватить оружие else btn Глава 1, Далее':GOTO '0___9'[/pre2]
Nex: Я взял исходники URQ2QSP у elmortem и продолжил начатое. Перенёс с одного языка на другой(с неизвестного мне .pp на C#), исправил несколько ошибок и добавил обработку "ELSE".
Byte: Nex, ELSE в урке вроде вообще отсутствует :)
Nex: Byte таки неправда. "Описание URQL для URQ_DOS версии 1.35 от 30.11.2004 года, автор: Korwin (Евгений Туголуков)" - ELSE есть. "Описание URQL для AkURQ версии 1.28" от 06 февраля 2007 г., автор: Korwin - ELSE есть. Да и в самих квестах мне встречалось, не зря же я указывал на ошибки в конвертировании - это живой пример, из существующей игры.
Ajenta: Nex пишет: Я взял исходники URQ2QSP у elmortem и продолжил начатое. Перенёс с одного языка на другой(с неизвестного мне .pp на C#), исправил несколько ошибок и добавил обработку "ELSE". Вообще идея замечательная. Я до сих пор на урку поглядываю, хоть и перешла полностью на QSP.
Byte: Nex значит гуд :)
Korwin: Nex, где взять-то?
Nex: Korwin уже хочешь попробовать? Пока что оно ещё совсем сырое. Неправильно обрабатываются вложенные #..$-подобные конструкции, я до них ещё не добрался. Одиночные, без вложенности, вроде разбирает. Могу на e-mail прислать.
Korwin: давай
Nex: отправил.
Nex: Добавил разбор #..$ выражений(подстановок) в операторах вывода. К сожалению, подстановки придётся делать по-разному для операторов вывода, условных выражений и обычного кода, с ходу их не возьмёшь.
noname: интересно, а аналог уковского anykey в куспе есть? могло бы пригодиться не только для рогалика да, и иногда нахожу в сети старые игры под кусп, которые новым плеером не проигрываются. может, кто возьмётся за конвертер старых кусп-поделок на новый плеер? это, наверное, возможно. в отличие от urq-qsp конвертора.
elmortem: noname Кидай сцылки... Отконвертим.
Nex: noname на старые забей, там нет ни одной стоящей внимания. Всё, что стоит внимания из старых игр, уже переведено в новый формат и лежит на qsp.su. Мёртвые сайты - не то, о чём стоит беспокоиться. Пришёл к выводу, что URQ-квесты в QSP однозначно сконвертировать не получится, даже с использованием DYNEVAL и DYNAMIC, из-за того, что в подстановочных выражениях могут быть куски кода. Поэтому, в конвертере будет поддержка подстановок только в операторах вывода, и при условии, что в подстановочных выражениях не содержится код.
полная версия страницы