не могу скачать авторский набор ртадса (2.9mb)
проигрыватель квестов у меня есть (1.1mb)
у меня нет флэшгета
(или регета, как там правильно?)
может, если дадите ссылку в другом месте
на авторский набор без проигрывателя, то
у меня получится скачать?
жажду опробовать ваш движок
пока есть опыт программинга
на дельфях
урке
qsp
(на всех - по чуть-чуть)
Неактивен
thanks
что ещё понадобится новичку
штоп побыстрее сделать квест на уровне
Златоквеста или Любовь из КРИЛ2008?
опыт ООП программинга у меня какой-никакой есть
из личных интересов- хочу, штоп игрок по ходу игры мог
выбирать разных персонажей,
такая идея была реализована на синклере в игре Хоббит
там игрок мог играть за любого члена команды,
а остальные (Гендальф как правило)
бродили поблизости и открывали-закрывали всё что не заперто
Неактивен
что ещё понадобится новичку
штоп побыстрее сделать квест на уровне
Златоквеста или Любовь из КРИЛ2008?
Усидчивость и увлеченность.
из личных интересов- хочу, штоп игрок по ходу игры мог
выбирать разных персонажей,
Новичку лучше сделать игру с одним персонажем, имхо.
Но если не сдашься, кури мануал на тему parserSetMe, а также раздел "Более сложные технические приемы".
Неактивен
я так полагаю, что работа с новыми
русифицирующими библиотеками в мануале ещё не описана
как сделать пусть простую, но качественную игру
т е как привинтить к игре все эти последние русские штучки-дрючки
и как ими воспользоваться
начну с малого...
p.s.
RTADS набирает обороты:
на КРИЛ2006 был Дримор,
теперь вот ещё пара квестов- так держать!
p.p.s.
при освоении нового языка хотелось бы побольше исходников
вот например, исходники Златоквеста и Любви...
а то накачал глючную козу с волком и медведей- то же хорошо,
но не то- не законченные игры.
Неактивен
noname написал:
при освоении нового языка хотелось бы побольше исходников
вот например, исходники Златоквеста и Любви...
Аюсолютно согласен, так как исходников исконно русских игр в свободном доступе нет.
Неактивен
fireton написал:
Выложил исходники "Кащея" на вики (на страничке игры).
спасибо!
а с теми примерами, что смог накачать какая-то проблема:
помощь высвечивается с тегами:
"<b>Нужные системные команды:</b>"
и вообще она какая-то не такая.
хочу как в играх на КРИЛ-2007
Неактивен
помощь высвечивается с тегами:
"<b>Нужные системные команды:</b>"
HTML не включен. Нужно включить. В новой версии библиотек, как я понимаю, Гранд отключил HTML в дефолтном файле игры (stdr.t) и прикрутил его к генератору. Если ты не подключишь генератор к своей игре, то HTML надо включать самостоятельно. Это нетрудно совсем.
Неактивен
fireton написал:
.
Если ты не подключишь генератор к своей игре, то HTML надо включать самостоятельно. Это нетрудно совсем.
да вроде бы на примере Кащея разобрался.
жаль только, что он совсем не разговорчивый.
странно, что на wiki пронумеровано по местам всего три игры
почему не дали полный список с номерами мест?
а то выходит, что love сильно уступает gungs.
по мне- так они почти на одном уровне, но в love мир и юмор интереснее.
Неактивен
и ещё:
насчёт всяческих заранее описанных глаголов:
работа проделана большая, за что спасибо и всяческий респект, НО
пожалуй, авторам с этим набором глаголов головных болей поприбавится:
действия, которые автор вообще не собирался использовать в квесте могут
приводить к безвыходным ситуациям, нелогичностям или к некоректной возможности выйгрыша.
так например, классический пример: бросить в козу капусту- игрок попадает в безвыйгрышную ситуацию.
догадаться об этом в квесте он не всегда сможет сразу, а если он после этого успел сохраниться... короче, коза с капустой хуже коза-ностры нарушает билль о правах игрока. и капустой делиться не хочет, зараза...
или: игрок должен осторожно обойти какие-то ловушки, ничего не задев, что бы не привлечь внимание находящейся в коридоре охраны. автор всё это дело прописал. игрок, войдя в комнату придумал не предусмотренный автором вариант: зайти в комнату и заорать, что бы вбежавшие охранники сами попали в ловушку. что будет? несмотря на неоднократные предупреждения в игре не делать малейшего шума, громкий крик игрока не привлечёт ничьего внимания.
автору такие моменты предусмотреть сложно.
p.s.
где можно получить список всех команд, доступных игроку в игре
со всеми допускаемыми интерпретатором формами
(реакцию на них я в advr.t найду)
Неактивен
noname написал:
и ещё:
насчёт всяческих заранее описанных глаголов:
работа проделана большая, за что спасибо и всяческий респект, НО
пожалуй, авторам с этим набором глаголов головных болей поприбавится:
действия, которые автор вообще не собирался использовать в квесте могут
приводить к безвыходным ситуациям, нелогичностям или к некоректной возможности выйгрыша.
[SNIP]
автору такие моменты предусмотреть сложно.
Написание квеста - вообще непростое дело. Если подходить к вопросу системно и обладать самодисциплиной, то обработку большей части нестандартных ситуаций можно заложить сразу. Для всего остального есть бета-тестинг. В принципе, бета-тестирование - как минимум столь же важный и трудоемкий этап проекта, как и написание собственно игры.
noname написал:
p.s.
где можно получить список всех команд, доступных игроку в игре
со всеми допускаемыми интерпретатором формами
(реакцию на них я в advr.t найду)
Список всех команд есть в этой главе мануала: http://www.rtads.org/man/TADSSTD.HTM (список глаголов можно найти, используя текстовый поиск по строке "Стандартные определения объектов-глаголов"). Правда, два момента: (1) всех интерпретируемых форм там нет, только основные синонимы. (2) Переводилась эта глава в 2004 году, поэтому ГрАнд с тех пор мог добавить какие-то новые глаголы (но в любом случае их будет немного).
Неактивен
noname написал:
не могу скачать авторский набор ртадса (2.9mb)
проигрыватель квестов у меня есть (1.1mb)
у меня нет флэшгета
(или регета, как там правильно?)
Так может тебе регет прислать?
Неактивен
Вот, ни один не уйдет:
local o := firstobj(deepverb); "Список глаголов:\n"; while (o<>nil) { "\n<<o.sdesc>>\n"; o := nextobj(o, deepverb); }
Неактивен
спасибо!
вообще-то это здорово такое кол-во предпрописанных действий:
интерпретатор поощряет автора переписать действия, о которых он вообще бы не подумал, а вот игрок мог бы ввести. так что РТАДС добросовестного автора подтягивает (за уши) до своего уровня: мол, введёт игрок такую-то команду- дык надо реагировать, а то как выполню её по стандарту, а краснеть- тебе (автору).
чего я хотел сказать:
Кащей понимает команду 'встать' НО не понимает 'встать с кровати' - это особенность интерпретатора или игры?
так же он понимает команду 'идти на восток' НО не понимает 'идти в коридор' - это в РТАДСЕ вроде бы можно сделать... попробую разобраться- как.
ух, столько всего читаю, делаю, а тут ещё этот РТАДС. чтоб на нём чё-то качественное сделать нужно долго помурыжиться... так например Дримор на КРИЛ-2006 тогда ещё скачивал- имел глюки с общением с шаманом, недочёты Кащея я перечислил (смысловые недочёты тоже есть- но тут уж движок ни при чём). отсюда вывод: русских полностью отдебаженных и вылизанных до блеска игр на РТАДС я пока не видел. что настораживает.
в моём пробном квесте меня интересует больше всего поведение НеПиСей.
а пугает больше всего разнообразие форм общения игрока с персонажами в РТАДС:
>шаман, возьми посох
>спросить продавца о видеокарте
>говорить с продавцом (и далее- строчки в вода в "Love")
я понимаю, что местная тусовка уже притёрлась и непонимание некоторых форм команд никого не смущает, как и то, что НИ ОДИН квест пока не реализует достойным образом возможностей общения, описанных в хелпе. НО такие недочёты (или скорее- такое отсутствие вылизанных квестов) тормозит расширение нашего маленького сообщества текстоквестописателей.
Неактивен
Korwin написал:
Так может тебе регет прислать?
смотря сколько он занимает.
и ещё: глюки на тяп-ляпе длятся годами: почему нельзя выделить для цитаты часть сообщения?
нет, цитируется весь пост, а потом приходится выыреееззззззать.
Неактивен
noname написал:
чего я хотел сказать:
Кащей понимает команду 'встать' НО не понимает 'встать с кровати' - это особенность интерпретатора или игры?
так же он понимает команду 'идти на восток' НО не понимает 'идти в коридор' - это в РТАДСЕ вроде бы можно сделать... попробую разобраться- как.
"Встать с кровати" - тоже можно сделать. Для этого, например, доопределяем глагол "встать" следующим образом:
modify standVerb verb = 'встать' 'стоять' 'встань' 'встать с' 'встань с' doAction='Stand'
А для кровати
Bed: fixedItem sdesc="кровать" verDoStand(actor)={if(actor.location<>self) {// Если актер не на кровати, ругаемся "<<ZAG(actor, &sdesc)>> не на кровати!"; } } doStand(actor)={"Хорошо, <<actor.sdesc>> встал<<yao(actor)>> с кровати."; }
Достоинство такого определения: так сделать проще. Недостаток (хотя кому как;): игра начнет понимать конструкции вида "встань кровать", "встать кроватью" и т. д.
Альтернативный вариант - определить глагол 'встать с' как отдельный глагольный объект (например, с использованием compoundWord, чтобы "слепить" глагол с предлогом).
noname написал:
ух, столько всего читаю, делаю, а тут ещё этот РТАДС. чтоб на нём чё-то качественное сделать нужно долго помурыжиться... так например Дримор на КРИЛ-2006 тогда ещё скачивал- имел глюки с общением с шаманом, недочёты Кащея я перечислил (смысловые недочёты тоже есть- но тут уж движок ни при чём). отсюда вывод: русских полностью отдебаженных и вылизанных до блеска игр на РТАДС я пока не видел. что настораживает.
Ну, я и вообще очень мало видел (если видел вообще;) полностью отдебаженных и вылизанных до блеска русских IF-игр, даже менюшных. Парсерная игра по определению намного более трудоемкая в создании, чем меню.
Из близких к совершенству в плане вылизанности - "Ожидание утра" и тот же "Кащей".
noname написал:
в моём пробном квесте меня интересует больше всего поведение НеПиСей.
а пугает больше всего разнообразие форм общения игрока с персонажами в РТАДС:
>шаман, возьми посох
>спросить продавца о видеокарте
>говорить с продавцом (и далее- строчки в вода в "Love")
Общение с неписями - кошмар любого автора-парсерщика;). Даже англоязычного. На самом деле, создание мало-мальски реалистичных персонажей - пожалуй, объективно самый сложный аспект квестописания. Именно поэтому в последнее время нарастает тенденция (хотя лично я к ней отношусь отрицательно) подменять "полноценное" общение с персонажем командой "talk to" - "поговорить с" либо менюшными диалогами.
noname написал:
я понимаю, что местная тусовка уже притёрлась и непонимание некоторых форм команд никого не смущает, как и то, что НИ ОДИН квест пока не реализует достойным образом возможностей общения, описанных в хелпе. НО такие недочёты (или скорее- такое отсутствие вылизанных квестов) тормозит расширение нашего маленького сообщества текстоквестописателей.
С этим не поспоришь;).
Отредактировано uux (06.04.2008 23:17)
Неактивен
Достоинство такого определения: так сделать проще. Недостаток (хотя кому как;): игра начнет понимать конструкции вида "встань кровать", "встать кроватью" и т. д.
Альтернативный вариант - определить глагол 'встать с' как отдельный глагольный объект (например, с использованием compoundWord, чтобы "слепить" глагол с предлогом).
а во втором варианте можно "защититься" от "встать с кроватью"?
ИМХО очень важными для парсерщика являются продуманные запреты и подсказывающие сообщения об ошибках.
так можно выдрессировать игрока вводить команды корректно.
может быть, даже можно так научить его вести диалог с персонажами.
крайне жёсткий вариант: общение м/ду персонажами в игре идёт на "интергалаксе" - некотором всеобщем упрощённом языке, а на попытки общаться по-человечески инопланетяне отвечают на своём "тарабарском" (а кто и на "хлюпхлюпском") языке.
Неактивен
noname написал:
крайне жёсткий вариант: общение м/ду персонажами в игре идёт на "интергалаксе" - некотором всеобщем упрощённом языке, а на попытки общаться по-человечески инопланетяне отвечают на своём "тарабарском" (а кто и на "хлюпхлюпском") языке.
Отличная идея!
Неактивен
noname написал:
Достоинство такого определения: так сделать проще. Недостаток (хотя кому как;): игра начнет понимать конструкции вида "встань кровать", "встать кроватью" и т. д.
Альтернативный вариант - определить глагол 'встать с' как отдельный глагольный объект (например, с использованием compoundWord, чтобы "слепить" глагол с предлогом).а во втором варианте можно "защититься" от "встать с кроватью"?
Нет. Но самом деле это, по большому счету, и не нужно (на мой взгляд, конечно). Если игра, наряду с корректными словосочетаниями, пнимает также некоторое количество некорректных - это только повышает удобство для игрока.
noname написал:
так можно выдрессировать игрока вводить команды корректно.
может быть, даже можно так научить его вести диалог с персонажами.
крайне жёсткий вариант: общение м/ду персонажами в игре идёт на "интергалаксе" - некотором всеобщем упрощённом языке, а на попытки общаться по-человечески инопланетяне отвечают на своём "тарабарском" (а кто и на "хлюпхлюпском") языке.
Идея действительно хорошая.
Неактивен
Нет. Но самом деле это, по большому счету, и не нужно
главное не перейти ту грань, когда корректная по форме непредусмотренная фраза игрока вызовет совершенно другое действие, из-за чрезмерной "догадливости" интерпретатора.
по мне так игрок должен вводить всё или правильно по-русски, или получать подсказку.
должна же быть введённая фраза
или инфа о форме аргументов доступна программеру?
ну, ещё можно урезать заданные формы кровати (чтоб 'кроватью' вообще не было или считалось другим словом)
и ещё:
привязать провод верёвкой к столбу
и
привязать проводом верёвку к столбу
различимы с точки зрения интерпретатора или нет?
Неактивен
noname написал:
различимы с точки зрения интерпретатора или нет?
Какого именно интерпретатора?
По идее, смысл совершенно разный, соотв., парсер должен интерпретировать падежи (какое слово каким управляет и как).
В естественном языке у каждого глагола могут некие "слоты" - по аналогии с программированием, аргументы функции. В них можно вставлять уточняющие конструкции, причем некоторые такие конструкции могут требовать еще каких-то уточнений, но они могут быть и необязательными.
Например, глагол "привязать"
Слоты:
1 - кого/что привязать (не требует ничего при указании) - объект в.п.
2 - к чему привязать (требует слот 1) - "к" объект д.п.
3 - чем привязать (требует слот 1, 2) - объект т.п.
Такая схема позволит принимать, например, "привязать корову магнитной лентой к забору", "привязать веревкой шнурок к монетке", "привязать собаку", но не пропустит "привязать проводом" или "привязать котом к наушникам".
Одни слоты могут исключать другие и т.п.
Неактивен
noname написал:
привязать провод верёвкой к столбу
и
привязать проводом верёвку к столбу
различимы с точки зрения интерпретатора или нет?
С точки зрения интерпретатора TADS эти предложения некорректны. В команде может быть только прямой и косвенный объект, то есть можно писать "привязать веревку к столбу" или "привязать провод веревкой", но не так, как у тебя.
Если переформулировать вопрос и сравнивать такие фразы:
привязать провод верёвкой
и
привязать проводом верёвку
то они будут различны в данном случае. Но, к сожалению, если падежные формы будут совпадать, то парсер может ошибиться.
Например, в моей игре "Любовь":
>дать водки бомжу
Я не знаю как дать что-либо бутылке водки.
То есть этот механизм не совсем надежен.
Неактивен
Flint написал:
noname написал:
привязать провод верёвкой к столбу
и
привязать проводом верёвку к столбу
различимы с точки зрения интерпретатора или нет?С точки зрения интерпретатора TADS эти предложения некорректны. В команде может быть только прямой и косвенный объект, то есть можно писать "привязать веревку к столбу" или "привязать провод веревкой", но не так, как у тебя.
Если переформулировать вопрос и сравнивать такие фразы:
привязать провод верёвкой
и
привязать проводом верёвку
то они будут различны в данном случае. Но, к сожалению, если падежные формы будут совпадать, то парсер может ошибиться.
Например, в моей игре "Любовь":
>дать водки бомжу
Я не знаю как дать что-либо бутылке водки.
То есть этот механизм не совсем надежен.
Можно еще, например, определить "веревкой" как предлог и создать глагол "привязать веревкой"... Но, пока не накопите опыта программирования в TADS, извращаться таким образом не советую;).
Неактивен
Ах да, по примеру файртона выложил исходный код "Любви" (простите за игру слов) на соответствующую страницу в вики. Но предупреждаю сразу, что даже за вычетом всех библиотек там больше 200 килобайтов кода :-) Надеюсь, кому-то будет полезно, внутри даже есть немного комментариев (чуть-чуть).
Можно задавать вопросы по исходному коду на мыло или в форум.
Неактивен
uux написал:
Можно еще, например, определить "веревкой" как предлог и создать глагол "привязать веревкой"... Но, пока не накопите опыта программирования в TADS, извращаться таким образом не советую;).
Тогда еще придется определять "привязать провод" (чтобы работало "привязать провод веревкой к столбу") и "привязать к столбу", короче жопа :-)
Неактивен
Но, к сожалению, если падежные формы будут совпадать, то парсер может ошибиться.
но в приведённом тобой примере падежные(падёжные?) формы НЕ совпадают:
дать водки бомжу
и
дать водке бомжа
и если эти 1-ю фразу интерпретёр считает аналогичной 2-й, то дело- дрянь...
p.s.
надо при запуске РТАДСа выдавать сообщение:
" интерпретатор всегда прав! "
p.p.s.
главное не перейти ту грань, когда корректная по форме непредусмотренная фраза игрока вызовет совершенно другое действие, из-за чрезмерной "догадливости" интерпретатора.
по мне так игрок должен вводить всё или правильно по-русски, или получать подсказку.
должна же быть введённая фраза
или инфа о форме аргументов доступна программеру?
ну, ещё можно урезать заданные формы кровати (чтоб 'кроватью' вообще не было или считалось другим словом)
решение с 'кроватью' может прокатить, только если разные объекты ('кровать' и 'кроватью') будут ссылаться на один и тот же объект (ту самую единственную кровать), но применяя к нему разные методы:
встать с кроватью -> подсказка по русскому языку
встать с кровати -> собственно, сделать это
при этом возможны примеры, когда в обоих случаях будут выполняться какие-либо действия, но разные
я для примера привёл провод с верёвкой, и, хотя мой пример оказался неудачным, я прояснил для себя одно из ограничений РТАДСа.
буду складывать накопленные знания в шкатулку. может, когда-нить и парсер напишу.
Отредактировано noname (07.04.2008 23:10)
Неактивен
Flint написал:
uux написал:
Можно еще, например, определить "веревкой" как предлог и создать глагол "привязать веревкой"... Но, пока не накопите опыта программирования в TADS, извращаться таким образом не советую;).
Тогда еще придется определять "привязать провод" (чтобы работало "привязать провод веревкой к столбу") и "привязать к столбу", короче жопа :-)
А вот и нет. "Привязать веревкой", если сделать так, как я описал, парсер будет понимать в любом сочетании. Может понадобиться определить "привязать проводом" - если что-то потребуется им привязывать. Но на самом деле это действительно неоптимальное решение, которое может помочь в решении довольно узкого спектра задач.
Неактивен
noname написал:
в приведённом тобой примере падежные(падёжные?) формы НЕ совпадают:
дать водки бомжу
и
дать водке бомжа
и если эти 1-ю фразу интерпретёр считает аналогичной 2-й, то дело- дрянь...
Дела в порядке. В игре присутствовала совершенно неуместная лексема 'водки#d' (как и 'водки#t').
Внимательно назначайте существительные и прилагательные. Бутылка водки должна иметь прилагательные 'водки' 'водки#r' и существительные 'бутылка'(во всех формах) и 'водка'(все формы).
Впрочем, в данном случае этот правильный подход работать не будет из-за нестандартной реализации покупки. Вместо того чтобы превращать бутылку в предлог, следует добавить класс водки в список доступных для глагола объектов.
Неактивен
Вот видите, оказывается все нормально можно сделать, а ГрАнд ведь поумнее меня будет.
Так что, noname, не стоит думать о том, чтобы написать свой парсер. Если очень хочется, лучше приложи свои силы к усовершенстовованию RTADS.
Неактивен
да, и ещё:
>пнуть бомжа
Вы подходите к бомжу и, стараясь не дышать, расталкиваете его.
С трудом разлепив один глаз, тот хрипло произносит:
— Что за #@$?
>отхлебнуть водки
К сожалению, слово "отхлебнуть" мне неизвестно.
>пить водку
Вы отхлебываете из горла. Пойло настолько мерзкое, что у вас сводит дыхание и глаза застилает слезами. Немного отдышавшись, вы чувствуете какое-то жжение в желудке. Через некоторое время жжение становится нестерпимым и вы в корчах падаете на землю. А когда вы приходите в себя, то видите лишь белый потолок и капельницу, воткнутую в руку.
*** ВЫ НЕ СМОГЛИ ДОСТАТЬ ВИДЕОКАРТУ! ***
*** Вы проиграли игру! ***
мало того, что нарушается билль о правах игрока,
так ещё и складывается странное представление о персонаже.
эдакий хлюпик-ботан-пай-девочка, замышляющий грабёж...
впрочем, почему бы и нет?
надо отвыкать от диктаторских замашек, и становиться ближе к народу,
произволу авторов пришёл конец:
не дадим игрокам гибнуть понапрасну!
да здравствует КРИволюция!
Отредактировано noname (08.04.2008 20:35)
Неактивен
А чем плохо игрокам гибнуть понапрасну?
Если это моментальное действие (тронул - убило), я не вижу в этом ничего страшного, потому что всегда можно отменить ход.
И изобретательное убийство персонажа иногда лучше высосанных из пальца причин, почему он не хочет делать то, что ты ему предлагаешь.
Неактивен
мог бы отхлебнуть водки и сказать что-нить по этому поводу, типа: "гарна горiлка"
вообще это такая очень тонкая претензия: к образу ГГ
хотя я толком не знаю, может автор его таким неженкой и видел,
впрочем, может это водка палёная была, но почему тогда бомж даже не блеванул и не вырубился на пару минут в луже...
Неактивен
и ещё:
лишние убийства/загрузки теоретически могли бы попортить атмосферу игры,
но это претензия не к твоему квесту а вообще-
ИМХО: даже моментальное убийство- плохо, поскольку процесс "отката" не способствует вживанию в игровой мир
Неактивен
noname написал:
мог бы отхлебнуть водки и сказать что-нить по этому поводу, типа: "гарна горiлка"
вообще это такая очень тонкая претензия: к образу ГГ
хотя я толком не знаю, может автор его таким неженкой и видел,
впрочем, может это водка палёная была, но почему тогда бомж даже не блеванул и не вырубился на пару минут в луже...
Почему неженкой? Особой чувствительности я что-то в ГГ не заметил.
Водка была паленая, а бомж не вырубается, потому что у него иммунитет выработался за много лет питья всякой гадости.
noname написал:
и ещё:
лишние убийства/загрузки теоретически могли бы попортить атмосферу игры,
но это претензия не к твоему квесту а вообще-
ИМХО: даже моментальное убийство- плохо, поскольку процесс "отката" не способствует вживанию в игровой мир
Теоретически да, но на практике соглашусь с Flint'ом - в эру многократного undo проблема кажется несколько надуманной.
Неактивен
deepr
>открыть холодильник
Открыв холодильник, вы обнаружилы бутерброд с сыром и бутерброд с колбасой.
>инв
У ваc имеется:
квадрат из серого пластика
коробка топливных элементов
>взять бутерброд с колбасой и съесть его
Который "бутерброд" Вы имеете в виду: бутерброд с сыром или бутерброд с колбасой?
>с колбасой
Бутерброд с колбасой не на бутерброде с колбасой!
Было очень вкусно!
и хрюкотали зелюки как мюмзики в мове
Неактивен
сразу же после этого:
>съесть бутерброд с сыром
Я не понимаю это предложение.
>взять бутерброд с сыром и съесть его
Бутерброд с сыром не на бутерброде с сыром!
....- прогруз про робота
Было очень вкусно!
не ожидал...
Неактивен
продолжаем разговор:
spellchecker - прикольная загогулина,
НО:
>осмотреть себя
вы, возможно имели ввиду "себе"
...
если правильно сделать спеллчекер, то сможет ли он, наример "встать с кровать" исправить на "встать с кровати"?
было бы неплохо- интерпретёр, с одной стороны, поймёт игрока, а с другой- выполнит корректную команду.
Неактивен
стартовая локация (a1)
>бежать на север
Я не понимаю это предложение.
>бежать север
Я не понимаю это предложение.
>бежать
Нужно указать направление. Например: идти на СЕВЕР (коротко - просто "с").
>с
вторая локация (a2)
>
нет повести печальнее на свете...
в данном случае я просто создал пару локаций. без всякого сюжета и плана. меня устроил бы любой вариант работы команд, НО они УЖЕ работают некорректно.
p.s.
и эта ошибка присутствует и в Кащее, и, я подозреваю, во всех русских РТАДС-квестах, если автор не переписал команду "бежать" самостоятельно
Отредактировано noname (12.04.2008 01:24)
Неактивен
вторая локация (a2)
А здесь стоит стол.
На дубовом столе ты видишь зелёное яблоко.
>взять зелёное яблоко
К сожалению, слово "зеленое" мне неизвестно.
да, я обеими руками ЗА то, чтоб парсер принимал 'е' и 'ё' за одинаковые буквы во вводе пользователя, но неужели это даётся такой ценой? я хочу, чтоб яблоко было 'зелёное', его кушал 'ёж', и в результате у него возникнут определённые ощущения в 'нёбе', которое он может потрогать языком и попробовать вылечить и т п
p.s.
а ещё в детском журнале Трамвай читал необычные приключения буквы Ё. что-то в духе Кэролловской Алисы.
Отредактировано noname (12.04.2008 01:48)
Неактивен
и ещё:
было бы удобно задавать русские названия локациям и объектам.
вот объект сейф. пусть и называется сейф, нет мне приходится выдумывать английское название, и помнить, что это слово означает сейф. в случае наличие в игре различных но похожих объектов это не очень удобно. да и вообще в больших проектах это всегда крайне не удобно- помнить, как ты назвал зеркало mirror или looking_glass, как именно ты описал объект box - ящик или коробка и т д
Неактивен
Придираться можно бесконечно, но это никак не ускоряет процесс написания квестов. Нонейм, возьми пример с меня и плюнь ты на все корявости – главное пиши. Что-то удастся исправить походу дела, а на остальное попросту надо забить. Чем сложен ТАДС, как собственно и любая другая парсерная платформа, так это тем, что ТАДС МНОГОГРАНЕН. Но это не значит, что автор должен ставить перед собой цель полировать до безумного блеска каждую грань. Продукт должен быть сдобен – это, прежде всего.
Корявости есть всегда и везде, а вот интерактивной литературы не так уж и много.
ps.
Описания классов расписано в advr.t
Отредактировано Mioirel (12.04.2008 02:52)
Неактивен
а так же свойство, которое отвечает за 'видимость' объектов.
для fixeditem оно по умолчанию то ли false то ли nil что в мини-квесте не удобно: хочу поменьше описывать. Просто пробую программировать на РТАДС и писать лишние описания мне незачем.
Неактивен
RTADS - это всего лишь инструмент, со своими ограничениями. Любая свобода, в том числе и свобода творить, существует внутри каких-то рамок. Да на RTADS невозможно написать исчерпывающую модель реальности. Ну и что? В книгах, вон, вообще нет интерактивности.
Неактивен
ну ничего, ASBer вам всем ещёпокажет! я за него болею.
а насчёт запирания контейнера:
нашёл класс lockable
box : lockable, container, fixeditem, openable
isOpen = nil
isLocked = true
mykey = key
объект key тоже описан.
и вот, подхожу я к сейфу БЕЗ ключа и легко открываю командой отпереть.
что не так?
Неактивен
про исчерпывающую модель мы ещё поговорим.
насчёт ключа к сейфу: несколько неудобно, что запирающиеся контейнеры и запирающиеся двери реализованы ОЧЕНЬ по разному: для контейнеров заведён отдельный класс keyedlockable, а для дверей достаточно указать свойство mykey указывающее на объект keyItem
Неактивен
а регистр букв- вообще чудная вещь:
-keyedLockable - одна большая буква
-islocked - ни одной
по логике Си было бы KeyedLockable и IsLocked
так или иначе к регистрам привыкнуть не просто, как и к кавычкам, но я таки сделаю что-нибудь серьёзное.
p.s.
думаю, к КРИЛ-2008 буду писать три квеста: под досурку, qsp и РТАДС.
начал ещё и на Delphi(парсерный), но у него меньше всего шансов быть завершённым.
p.p.s.
РТАДС есть за что любить, но как только я в нём (и в парсере от ASBer) досконально разберусь- начну писать свой парсер.
Неактивен
Можно сделать простые "обертки" такого типа:
isLocked: islocked;
Подобное я уже сделал с функцией loweru, которую сам постоянно вызывал как lowerru.
Неактивен
в моём мини-квесте уже четыре локации, несколько объектов
и персонаж: робот.
вопрос:
- в мануале приводится пример случайного блуждания персонажа с проверкой выходов.
- МОЖНО ли с помощью какой-либо функции проверить доступность какого-либо действия, получить список доступных действий для персонажа не-игрока.
НАПРИМЕР:
массив VV содержит список глаголов для данного персонажа
массив NN содержит список объектов, присутствующих в игре + пустой объект
хочу в цикле перебрать каждую пару VV[x],NN[y] и если VV[x]+NN[y] не только клеится в корректную команду, но ещё и выполнимо при текущих обстоятельствах - заношу это действие в список LL[z]. затем случайным образом с равной вероятностью выбираю одно из действий на выполнение.
суть ВОПРОСа в том: есть ли какая-либо функция для проверки возможности действия VV[x]+NN[y] ?
(если нет, то и не надо - в таком виде она мне нужна только на промежуточном этапе подготовки квеста- потом всё равно прийдётся писать свою функцию выбора действия )
Неактивен
noname написал:
нет повести печальнее на свете...
в данном случае я просто создал пару локаций. без всякого сюжета и плана. меня устроил бы любой вариант работы команд, НО они УЖЕ работают некорректно.
p.s.
и эта ошибка присутствует и в Кащее, и, я подозреваю, во всех русских РТАДС-квестах, если автор не переписал команду "бежать" самостоятельно
Ну, и в чем проблема переопределить самому?
noname написал:
да, я обеими руками ЗА то, чтоб парсер принимал 'е' и 'ё' за одинаковые буквы во вводе пользователя, но неужели это даётся такой ценой? я хочу, чтоб яблоко было 'зелёное', его кушал 'ёж', и в результате у него возникнут определённые ощущения в 'нёбе', которое он может потрогать языком и попробовать вылечить и т п
p.s.
а ещё в детском журнале Трамвай читал необычные приключения буквы Ё. что-то в духе Кэролловской Алисы.
noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?
noname написал:
было бы удобно задавать русские названия локациям и объектам.
вот объект сейф. пусть и называется сейф, нет мне приходится выдумывать английское название, и помнить, что это слово означает сейф. в случае наличие в игре различных но похожих объектов это не очень удобно. да и вообще в больших проектах это всегда крайне не удобно- помнить, как ты назвал зеркало mirror или looking_glass, как именно ты описал объект box - ящик или коробка и т д
А что мешает обзывать их транслитом? С большими же проектами априори крайне неудобно работать по сравнению с маленькими проектами;). И возможность обзывть объекты русскими буквами - отнюдь не панацея. Варианты борьбы: IDE - пока утопия; самому вести базу данных объектов (хотя бы на бумаге).
noname написал:
и ещё:
где найти список всех классов объектов
конкретно мне нужен lockablecontainer
http://www.rtads.org/man/TADSSTD.HTM - эту ссылку я Вам тоже уже давал, кстати, когда речь шла о списке всех понимаемых системой глаголов.
Отредактировано uux (12.04.2008 07:37)
Неактивен
noname написал:
вопрос:
- в мануале приводится пример случайного блуждания персонажа с проверкой выходов.
- МОЖНО ли с помощью какой-либо функции проверить доступность какого-либо действия, получить список доступных действий для персонажа не-игрока.
НАПРИМЕР:
массив VV содержит список глаголов для данного персонажа
массив NN содержит список объектов, присутствующих в игре + пустой объект
хочу в цикле перебрать каждую пару VV[x],NN[y] и если VV[x]+NN[y] не только клеится в корректную команду, но ещё и выполнимо при текущих обстоятельствах - заношу это действие в список LL[z]. затем случайным образом с равной вероятностью выбираю одно из действий на выполнение.
суть ВОПРОСа в том: есть ли какая-либо функция для проверки возможности действия VV[x]+NN[y] ?
(если нет, то и не надо - в таком виде она мне нужна только на промежуточном этапе подготовки квеста- потом всё равно прийдётся писать свою функцию выбора действия )
Специальной функции нет. Можно поступить так: отключить вывод на экран, затем вызвать верификатор и проверить, выводит ли он что-либо на экран:
old_stat:=outhide(true); // Отключаем вывод на экран [i]Вызов верификатора[/i] new_stat:=outhide(old_stat); // Включаем вывод на экран обратно if(not new_stat) ... // Вывода на экран от верификатора не было -> действие допустимо else ... // Вывод на экран был -> действие недопустимо
Другой вариант - сделать NN не списком всех объектов в игре, а списком объектов, которыми персонаж может манипулировать, а затем написать развесистую проверку, проверяющую каждое возможное сочетание глагола и объекта.
Извините, сейчас не могу написать более подробный и конкретный пример - нет времени. Если будут непонятки - спрашивайте еще, постараюсь помочь.
Неактивен
noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?
спасибо за прямоту. глюков у меня и вправду хватает. в данном случае описанный рецепт будет иметь тот недостаток, что пользователю обязательно нужно будет вводить букву Ё. идеальный вариант: пользователь может, но не обязан использовать букву Ё где ей положено. парсер должен всегда выводить букву Ё там где ей положено быть. вроде бы это же пожелание и содержалось в посте, на который ты ответил.
p.s.
да, кстати, давай переходить на ты
впрочем, это дело десятое.
а "урезание" буквы Ё я таки уберу
Отредактировано noname (12.04.2008 08:30)
Неактивен
noname написал:
noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?
спасибо за прямоту. глюков у меня и вправду хватает. в данном случае описанный рецепт будет иметь тот недостаток, что пользователю обязательно нужно будет вводить букву Ё. идеальный вариант: пользователь может, но не обязан использовать букву Ё где ей положено. парсер должен всегда выводить букву Ё там где ей положено быть. вроде бы это же пожелание и содержалось в посте, на который ты ответил.
p.s.
да, кстати, давай переходить на ты
впрочем, это дело десятое.
а "урезание" буквы Ё я таки уберу
На самом деле, в описанном тобой выше примере даже урезание отменять не потребуется: достаточно определить для яблока лексическое свойство "зеленое" (а не "зелёное"), и что бы игрок не ввел - с Ё или без Ё - игра его поймет.
Мне сразу в голову это не пришло - видно, с глюками в мозгу и у меня все в порядке;).
Отредактировано uux (12.04.2008 08:36)
Неактивен
смысл поста ясен
упомянутый пример сейчас пишу самостоятельно
благо у меня всего 6-ть объектов и 8-мь команд (из них долько 2-а требуют более одного аргумента)
возможно, эта информация где-то содержится, но спрошу:
можно ли получить доступ к переменным, содержащим введённые игроком глагол и аргументы?
(желательно с инфой о том, в каком падеже и т п)
Неактивен
что сделать, что бы такой код заработал?:
magicVerb: deepverb
verb = 'xyzzy' 'ксиззи'
sdesc = "xyzzy"
action( actor ) =
{
if ( actor.location = b1room )
{
"Внезапно пещеру заволакивает облаком оранжевого дыма.
Когда оно рассеивается, ты внезапно обнаруживаешь,
что находишься в хижине!";
actor.moveInto(b2room);
}
else if (actor.location = b2room)
{
"Внезапно ты чувствуешь головокружение, а комната
все быстрее и быстрее начинает вращаться вокруг тебя.
Более-менее придя в себя, ты обнаруживаешь, что находишься
в пещере! ";
actor.moveInto( b1room );
}
else
"Ничего не происходит.";
}
;
пишет, что слово xyzzy не известно
>ñ
ñåâåðî-âîñòî÷íàÿ ëîêàöèÿ (b2)
Èçíà÷àëüíî ðîáîòà ïîìåùàåì ñþäà.
Çäåñü íàõîäèòñÿ ñêðèïó÷èé ðîáîò.
ðîáîò íàïåâàåò ïîïóëÿðíóþ ïåñåíêó.
>xyzzy
Ê ñîæàëåíèþ, ñëîâî "xyzzy" ìíå íåèçâåñòíî.
>
и почему перестали нормально вставляться вырезки из работающей проги?
p.s.
я нихрена не спал и поэтому не уверен теперь, что я всё/что-нибудь/кое-что делаю правильно, НО насколько я могу судить вроде бы шрифты - это какая-то проблема на форуме? в проге я их НЕ менял.
Отредактировано noname (12.04.2008 13:12)
Неактивен
uux
Специальной функции нет.
а вот и есть! надеюсь, она мне не снится. вот она:
checkreach
checkreach: function(loc, actor, v, obj): проверяет, может ли актер (персонаж) actor манипулировать объектом obj при помощи глагола v, находясь в комнате loc. Функция используется на этапе валидации (проверки корректности) команды. Эта функция разрешает дальнейшую обработку команды, если obj - это объект специального типа (numObj или strObj), если этот объект находится в инвентаре актера actor, а также в том случае, если он внесен в список reachable комнаты loc. Во всех прочих случаях возвращается выводится сообщение об ошибке, что на этапе валидации автоматически означает отказ от дальнейшей обработки.
впрочем, неуверен, что именно она проверяет: взять кровать по её мнению тоже можно?...
Неактивен
стартовая локация (a1)
Это моя первая локация.
>с
северная локация (a2)
Вот мои первые объекты.
Ты видишь здесь дубовый стол и стальной ключ. На дубовом столе ты видишь надёжный сейф.
>в
северо-восточная локация (b2)
Изначально робота помещаем сюда.
Здесь находится скрипучий робот.
робот напевает популярную песенку.
>ксиззи
К сожалению, слово "ксиззи" мне неизвестно.
>
вот! по-крайней мере со вставкой разобрались, СПАСИБО!
но как быть с ксиззи???
может я его куда-нить не туда вставляю,
или где-то чего-то ещё нужно изменить?
Неактивен
noname написал:
смысл поста ясен
упомянутый пример сейчас пишу самостоятельно
благо у меня всего 6-ть объектов и 8-мь команд (из них долько 2-а требуют более одного аргумента)
возможно, эта информация где-то содержится, но спрошу:
можно ли получить доступ к переменным, содержащим введённые игроком глагол и аргументы?
(желательно с инфой о том, в каком падеже и т п)
Информация вот здесь:
http://www.rtads.org/man/TADSADPT.HTM, далее текстовым поиском на странице по шаблону "Получение информации о текущей команде".
С информацией о падежах и т. п. хуже - системной функции для этого в TADS нет. Что навскидку приходит в голову - из функции preparse сохранить в промежуточной переменной строку в том виде, в каком ее ввел игрок, а потом разбираться с падежами. Но это муторно.
Неактивен
noname написал:
но как быть с ксиззи???
может я его куда-нить не туда вставляю,
или где-то чего-то ещё нужно изменить?
На первый взгляд, все должно компилироваться нормально. Единственное, что приходит на ум - файл, где определен ксиззи, не включен в число компилируемых, либо каким-то образом этот фрагмент оказался между комментариями. Если совсем затык - шли на мыло uux собака mail точка ru, буду разбираться.
Неактивен
noname написал:
uux написал:
Специальной функции нет.
а вот и есть! надеюсь, она мне не снится. вот она:
Молодец! Уел меня.
noname написал:
checkreach
checkreach: function(loc, actor, v, obj): проверяет, может ли актер (персонаж) actor манипулировать объектом obj при помощи глагола v, находясь в комнате loc. Функция используется на этапе валидации (проверки корректности) команды. Эта функция разрешает дальнейшую обработку команды, если obj - это объект специального типа (numObj или strObj), если этот объект находится в инвентаре актера actor, а также в том случае, если он внесен в список reachable комнаты loc. Во всех прочих случаях возвращается выводится сообщение об ошибке, что на этапе валидации автоматически означает отказ от дальнейшей обработки.впрочем, неуверен, что именно она проверяет: взять кровать по её мнению тоже можно?...
В общем случае она проверяет, что актер и объект находятся в одной и той же комнате и что при этом актер видит объект (возможны более сложные специальные случаи - например, для глагола "спросить о" невыполнение данных условий не будут мешать заимодействию с объектом, но мы их пока касаться не будем). Грубо говоря, она проверяет, надо ли выдавать ошибку типа "Я не вижу здесь этого". Таким образом, если игрок и кровать находятся в одной комнате, функция не будет возражать против "взять кровать".
Неактивен
а вот и не так уж и муторно-
это смотря для каких целей. мне эта штука вот зачем:
1. в редких, заранее известных случаях разруливать неоднозначности
(когда слишком догадливый интерпретатор исправляет итак корректную фразу так, что у неё получается другой смысл) - точно щаззз не скажу когда это надо, но у меня такое получалось уже вчера. тут суть в том, что парсер не различает формы введённых слов.
2. для хороших подсказок вместо некоторых сообщений об ошибках:
>положить ключ под стол
Я не понимаю это предложение.
от такой честности никому не легче. куда лучше будет:
-незачем ложить ключ под стол
-положи его на стол или просто выложи
p.s.
это будет для некоторых, заранее известных случаев, когда ясно какое слово и в какой форме ищем.
Неактивен
заранее извиняюсь, но так уж исторически сложилось, что я чувствую эту тему своей и могу позволить себе выложить листинг:
/* Это просто комментарий, такой же, как, например, в языке Си */
/* Эти две строчки разрешают использовать возможности HTML в нашей игре */
#define USE_HTML_STATUS
#define USE_HTML_PROMPT
#include <advr.t> /* включить файл с основными определениями объектов для текстовых квестов (русская версия)*/
#include <stdr.t> /* включить файл определений стандартных функций, вызываемых при старте (русская версия) */
#include <errorru.t> /* включить файл с русскими сообщениями об ошибках */
/************** поля *************************************************************************************************/
startroom: room /* по умолчанию, игра начинается в комнате с названием startroom */
sdesc = "<b>стартовая локация (a1)</b>" /* краткое опиание комнаты (от английского Short DESCription) */
ldesc = "Это моя первая локация."
north = a2room
east = b1room
;
a2room:room
sdesc = "<b>северная локация (a2)</b>"
ldesc = "Вот мои первые объекты."
south = startroom
east = b2room
;
b1room:room
sdesc = "<b>восточная локация (b1)</b>"
ldesc = "Ещё одна заморочка."
west = startroom
north = b2room
;
b2room:room
sdesc = "<b>северо-восточная локация (b2)</b>"
ldesc = "Изначально робота помещаем сюда."
west = a2room
south = b1room
enterRoom( actor ) =
{
if ( not self.isseen )
notify( robot, &actorDaemon, 0 );
pass enterRoom;
}
;
/************************************** качели ************************************************************************/
table: surface, fixeditem
sdesc = "дубовый стол"
rdesc = "дубового стола"
ddesc = "дубовому столу"
vdesc = "дубовый стол"
tdesc = "дубовым столом"
pdesc = "дубовом столе"
noun = 'стол' 'стола' 'столу' 'столом' 'столе' 'столу#d' 'столом#t'
adjective = 'дубовый' 'дубового' 'дубовому' 'дубовым' 'дубовом' 'дубовому#d' 'дубовым#t'
isListed = true
isHim = true
location = a2room
ldesc =
{
"Стол представляет из себя квадратную крышку на четырёх ножках. На нём стоит надёжный сейф.";
}
;
box: keyedLockable, container, fixeditem, openable
sdesc = "надёжный сейф"
rdesc = "надёжного сейфа"
ddesc = "надёжному сейфу"
vdesc = "надёжный сейф"
tdesc = "надёжным сейфом"
pdesc = "надёжном сейфе"
noun = 'сейф' 'сейфа' 'сейфу' 'сейфом' 'сейфе' 'сейфу#d' 'сейфом#t'
adjective = 'надёжный' 'надёжного' 'надёжному' 'надёжным' 'надёжном' 'надёжному#d' 'надёжным#t'
isListed = true
mykey= key
isHim = true
isopen = nil
islocked = true
location = table // !!!!!!!!!!!!!!! заремаркить убирание буквы Ё в нужной библиотеке
;
/********* вещи ****************************************************************************************************/
apple: item
sdesc = "зелёное яблоко"
rdesc = "зелёного яблока"
ddesc = "зелёному яблоку"
vdesc = "зелёное яблоко"
tdesc = "зелёным яблоком"
pdesc = "зелёном яблоке"
noun = 'яблоко' 'яблока' 'яблоку' 'яблоком' 'яблоку#d' 'яблоком#t' 'яблоке'
adjective = 'зелёное' 'зелёного' 'зелёному' 'зелёным' 'зелёном' 'зелёному#d' 'зелёным#t'
//isHim = true
location = box
;
key: keyItem
sdesc = "стальной ключ"
rdesc = "стального ключа"
ddesc = "стальному ключу"
vdesc = "стальной ключ"
tdesc = "стальным ключом"
pdesc = "стальном ключе"
noun = 'ключ' 'ключа' 'ключу' 'ключом' 'ключу#d' 'ключом#t' 'ключе'
adjective = 'стальной' 'стального' 'стальному' 'стальным' 'стальном' 'стальному#d' 'стальным#t'
isHim = true
location = a2room
;
/********************************** актёры ****************************************************************************/
robot: Actor
noun = 'робот' 'робота' 'роботу' 'роботом' 'роботе' 'роботу#d' 'роботом#t'
adjective = 'скрипучий' 'скрипучего' 'скрипучему' 'скрипучим' 'скрипучем' 'скрипучему#d' 'скрипучим#t'
sdesc = "скрипучий робот"
rdesc = "скрипучего робота"
ddesc = "скрипучему роботу"
vdesc = "скрипучего робота"
tdesc = "скрипучим роботом"
pdesc = "скрипучем роботе"
isHim = true
isawake = true
location = b2room
actorDaemon =
{
if ( self.location <> Me.location or not self.isawake ) return;//!!!!!!!!!!!!! вычислять вместо Me
"\b";
switch( rand( 5 ) )
{
case 1:
"робот ходит туда-сюда.";
break;
case 2:
"робот выстукивает какую-то мелодию.";
break;
case 3:
"робот напевает популярную песенку.";
break;
case 4:
"робот выстукивает чечётку. ";
break;
case 5:
"робот тихонько поскрипывает.";
break;
}
}
;
magicVerb: deepverb
verb = 'xyzzy' 'ксиззи'
sdesc = "xyzzy"
action( actor ) =
{
if ( actor.location = b1room )
{
"Внезапно пещеру заволакивает облаком оранжевого дыма.
Когда оно рассеивается, ты внезапно обнаруживаешь,
что находишься в хижине!";
actor.moveInto(b2room);
}
else if (actor.location = b2room)
{
"Внезапно ты чувствуешь головокружение, а комната
все быстрее и быстрее начинает вращаться вокруг тебя.
Более-менее придя в себя, ты обнаруживаешь, что находишься
в пещере! ";
actor.moveInto( b1room );
}
else
"Ничего не происходит.";
}
;
/*
switchPlayer(Me);
parserGetMe();
*/
файл у меня единственный
Неактивен
noname написал:
заранее извиняюсь, но так уж исторически сложилось, что я чувствую эту тему своей и могу позволить себе выложить листинг:
...
файл у меня единственный
Скачал. Скомпилировал. Все работает, "ксиззи" распознается.
Вопрос: может, ты добавил код для xyzzy и, не закрывая и не сохраняя файла в редакторе, сразу стал компилировать и запускать игру?
Попробуй сейчас еще раз.
Кстати, в подобных случаях можно проверить, действительно ли измененный код внесен в файл исходника, просмотрев его в окне дебаггера (в смысле, TADS Workbench).
Отредактировано uux (12.04.2008 16:44)
Неактивен
всё перепроверял тысячу раз.
библиотеки смотрел насчёт переопределения глагола.
НО
после твоего поста- неожиданно разобрался!
рассказываю для последующих поколений авторов:
в менюхе Build- Settings- Source показывал на пред папку.
как получилось: пишу квест в папке ...\001, затем очередную версию копирую в 002 и т п
итого на тот момент у меня было 4-ре версии
по неизвестной причине квест 004 при загрузке показывал свой текст, но имел путь на исходник 003
как я так умудрился сделать- не помню. всё из-за жуткого недосыпа.
до этого все пути менялись корректно автоматически
огромное тебе СПАСИБИЩЕ, uux Коптельцев Валентин.
(Ведь это ты?)
Неактивен
noname написал:
всё перепроверял тысячу раз.
библиотеки смотрел насчёт переопределения глагола.
НО
после твоего поста- неожиданно разобрался!
рассказываю для последующих поколений авторов:
в менюхе Build- Settings- Source показывал на пред папку.
как получилось: пишу квест в папке ...\001, затем очередную версию копирую в 002 и т п
итого на тот момент у меня было 4-ре версии
по неизвестной причине квест 004 при загрузке показывал свой текст, но имел путь на исходник 003
как я так умудрился сделать- не помню. всё из-за жуткого недосыпа.
до этого все пути менялись корректно автоматически
огромное тебе СПАСИБИЩЕ, uux Коптельцев Валентин.
(Ведь это ты?)
Да, это я. Пожалуйста. Если еще будут вопросы - обращайся.
Кстати, наткнулся чуть выше на следующую жалобу:
noname написал:
а регистр букв- вообще чудная вещь:
-keyedLockable - одна большая буква
-islocked - ни одной
по логике Си было бы KeyedLockable и IsLocked
так или иначе к регистрам привыкнуть не просто, как и к кавычкам, но я таки сделаю что-нибудь серьёзное.
При желании распознавание регистра символов в компиляторе можно отключить вообще. В Workbench'е идем в Build->Settings, тыкаемся во вкладку Advanced и включаем флажок Ignore case (in object names, functions, etc.). Все, вопрос с регистром решен раз и навсегда!
Неактивен
просто приколы:
стартовая локация (a1)
Это моя первая локация.
>ксиззи
Внезапно тебя заволакивает облаком оранжевого дыма. Когда оно рассеивается, ты внезапно обнаруживаешь, что ты вселился в робота!
>осм
Скрипучий робот не заинтересован.
>с
Скрипучий робот не заинтересован.
>ксиззи
Скрипучий робот не заинтересован.
>quit
Скрипучий робот не заинтересован.
исправил:
>осм
северная локация (a2)
Вот мои первые объекты.
Скрипучий робот видит здесь дубовый стол и стальной ключ. На дубовом столе скрипучий робот видит надёжный сейф.
Здесь находится ты.
>я, иди на юг
Ты ушёл.
>взять ключ
Взят.
>робот, отопри сейф
(с помощью стального ключа)
Отомкнул.
>взять стол
Скрипучий робот не может взять дубовый стол.
боюсь подходить к самому сложному этапу- независимому поведению персонажей.
пока что- пусть составляют списки доступных действий
и выбирают действие наугад.
p.s.
может, всё гениальное просто- пусть неписи иногда пытаются сотворить с предметами невозможное- игрок почувствует себя не одиноким в своей неравной борьбе с парсером, а заодно и мне проверок меньше.
Неактивен