Форум » » The D&D Game » Ответить

The D&D Game

Byte: Элвис прислал игру: http://qsp.su/files/files/TheD_DGame__0.2_.rar Из каталога она недоступна - игра очень сырая и недоделанная. Как только будет более или менее закончено - добавлю в каталог. Обсуждение здесь.

Ответов - 39, стр: 1 2 All

Элвис: Mioirel я так понимаю, если игрок напишет "экипироваться топором" и "эксплуатировать утопленника", то результат будет один и тот же (с топором)? а если писать просто топ без звёздочек, то смысл в шаблоне... но всё равно код сокращает, попробую использовать, спасибо

Byte: Элвис пишет: "эксплуатировать утопленника" Не совсем. Вот "эксплуатировать топаз" - да. То есть, при "эк.* топ.*" второе слово должно начинаться с "топ". Если "эк.* .*топ.*" - тогда "эксплуатировать утопленника" тоже сработает.

Элвис: Byte в примере Mioirel так и было - *топ* ну не знаю, это конечно удобнее, меньше кода, но мне спокойнее делать с юзертхт, когда точно знаешь, какие команды у тебя в игре есть... за команду спасибо, не заметил и ещё наверное много чего делаю через не ругайте сильно на художественную ценность также не претендую, на тексты сильно не смотрите


Byte: Элвис, обрати внимание, что "*" здесь пишется с точкой - ".*" Точка означает "любой символ", символ умножения - "любое число раз".

Byte: Элвис пишет: мне спокойнее делать с юзертхт ну также можно написать [pre2]if strcomp($usrtxt,'эк.* топ.*'):'Вы взяли в руки топор.'[/pre2] либо я не понял о чём речь.

Элвис: ну с тем же топазом этот пример условия тогда будет работать неправильно это решается if $usrtxt='эк топаз':pl'Вы взяли в руку топаз' и if $usrtxt='эк топ' or $usrtxt='эк топор':pl'Вы взяли в руку топор' конечно, топаз останется без сокращения, придётся писать целиком, но зато не перепутается

Byte: Чтобы всё отрабатывалось правильно, нужно писать полноценный парсер :)

Элвис: Byte пишет: Чтобы всё отрабатывалось правильно, нужно писать полноценный парсер :) конструктивно =) кстати, там ещё с рыбой на базаре есть косяк... в общем, пожелания о командах доработаю

Ntropy: Думаю для начала можно и попроще чем полноценный парсер. Мой вариант отсортировать слова по алфавиту и проверить для каждого слова сколько букв гарантируют его уникальность при сравнении и подготовить список сокращений который использовать в игре, тогда не важно будет до скольки символов слово сократили. а*таковать взл*омать взя*ть вс*тать г*оворить з*ажечь ид*ти ин*вентарь к*весты об*ыскать ос*мотреться от*дохнуть п*оложить се*сть см*отреть сн*ять т*ушить уб*рать уд*арить ч*арлист экипирова*ться экипировк*а Где звёздочкой ограничены значащие символы.

Элвис: решал сделать со "стркомп", спасибо за подсказку сделал появляющимся/исчезающим окно действий (на время диалогов появляется) но вот ещё что думаю... может и диалоги сделать с командами? как было в Визардри 8 и Морровинде (больее древних примеров не знаю, хотя они точно есть) то есть, например, трактирщик говорит "привет, о чём поговорим?" и игрок вводит сам, пользуясь головой, а не набором действий, слова так, вместо "А что это за работа?" будет команда "раб*", а вместо фразы "расскажи, что со мной было" будет команда "я" это приведёт к разнообразию диалогов, но осложнит их, заставит придумывать, что бы такое ввести... что думаете?

Mioirel: Такие диалоги использовались в первых играх серии Ultima. Постоянно приходилось записывать каждое подозрительное слово и перебирать их на чуть ли не каждом нпс – это сильно утомляло. Позднее Ultima перешла на меню из выбора стандартных слов: имя, работа (нпс говорит, чем занимается), купить/продать (если нпс торговец), также были дополнительные ветки разговора. Систему с набором можно использовать, если присутствует тот самый заданный набор слов. Слова не относящиеся к стандарту должны выделятся в тексте и записываться в дневник. Плюс намеки с кем они могут пригодиться. Вариант два. Разговор через меню с пунктом “спросить о…”. Опять же. Слова необходимые для прохождения должны в обязательном порядке выделятся в тексте и попадать в дневник. Эта система может как прибавить ощущения свободы, так и испортить игру. Зависит от подхода.

Ajenta: Моё резюме такое - сие детище ещё допинывать и допинывать.

Элвис: За резюме спасибо,а то я думал,игра уже готова,буду дорабатывать Но больше помогли бы конкретные замечания или советы по улучшению)

ASBer: Byte пишет: Чтобы всё отрабатывалось правильно, нужно писать полноценный парсер :) Byte, а нет желания прикрутить к командной строке tom.dll?

Byte: В смысле, как отдельный интерпретатор?

ASBer: Как внешний парсер. Интерпретатор у вас свой есть. Правда чтобы парсер заработал в него нужно будет предварительно залить некоторый скрипт на языке ТОМа. Когда надо пропарсить строку qsp передает ее тому. Том прокручиват свой скрипт и выдает строку-результат в удобном для анализа формате ("1", "2", "3" например) или строку с ошибкой. Программа на qsp получив результат шпарит дальше или выводит ошибку парсинга и запрашивает повторный ввод.

Byte: Не, в таком варианте пока что нет :)

ASBer: Ок, других вариантов я не вижу Как отдельный интерпретатор вам это тем более не интересно...

Ajenta: Элвис пишет: За резюме спасибо,а то я думал,игра уже готова,буду дорабатывать Но больше помогли бы конкретные замечания или советы по улучшению) Всё слишком запущено, чтобы конкретно высказываться. А потом умные люди уже высказались, так что думаю, мои конкретные претензии пока погодят.



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