Форум » » Конвертер квестов 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, из-за того, что в подстановочных выражениях могут быть куски кода. Поэтому, в конвертере будет поддержка подстановок только в операторах вывода, и при условии, что в подстановочных выражениях не содержится код.



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