Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #51
12.04.2008 03:01

Mioirel
Участник (+11)
Зарегистрирован: 15.07.2007
Сообщений: 31

Re: не качается авторкит

За видимость объектов отвечает переменная isListed в теле класса fixeditem.

Отредактировано Mioirel (12.04.2008 03:01)

Неактивен

0    0    #52
12.04.2008 03:05

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

Mioirel - спасибо! не всегда понятно, где и что искать...
как видишь, я уже пишу.

Неактивен

0    0    #53
12.04.2008 03:09

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: не качается авторкит

RTADS - это всего лишь инструмент, со своими ограничениями. Любая свобода, в том числе и свобода творить, существует внутри каких-то рамок. Да на RTADS невозможно написать исчерпывающую модель реальности. Ну и что? В книгах, вон, вообще нет интерактивности. wink

Неактивен

0    0    #54
12.04.2008 03:16

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

ну ничего, ASBer вам всем ещёпокажет! я за него болею.

а насчёт запирания контейнера:
нашёл класс lockable
box : lockable, container, fixeditem, openable
isOpen = nil
isLocked = true
mykey = key

объект key тоже описан.
и вот, подхожу я к сейфу БЕЗ ключа и легко открываю командой отпереть.
что не так?

Неактивен

0    0    #55
12.04.2008 03:25

Mioirel
Участник (+11)
Зарегистрирован: 15.07.2007
Сообщений: 31

Re: не качается авторкит

Попробуй убрать container (в нем стоит isopen = true), openable уже имеет этот класс. Следи за регистром размера букв - он учитывается.

Неактивен

0    0    #56
12.04.2008 03:29

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

про исчерпывающую модель мы ещё поговорим.

насчёт ключа к сейфу: несколько неудобно, что запирающиеся контейнеры и запирающиеся двери реализованы ОЧЕНЬ по разному: для контейнеров заведён отдельный класс keyedlockable, а для дверей достаточно указать свойство mykey указывающее на объект keyItem

Неактивен

0    0    #57
12.04.2008 03:38

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

а регистр букв- вообще чудная вещь:

-keyedLockable - одна большая буква
-islocked - ни одной

по логике Си было бы KeyedLockable и IsLocked
так или иначе к регистрам привыкнуть не просто, как и к кавычкам, но я таки сделаю что-нибудь серьёзное.

p.s.
думаю, к КРИЛ-2008 буду писать три квеста: под досурку, qsp и РТАДС.
начал ещё и на Delphi(парсерный), но у него меньше всего шансов быть завершённым.
p.p.s.
РТАДС есть за что любить, но как только я в нём (и в парсере от ASBer) досконально разберусь- начну писать свой парсер.

Неактивен

0    0    #58
12.04.2008 03:43

Mioirel
Участник (+11)
Зарегистрирован: 15.07.2007
Сообщений: 31

Re: не качается авторкит

Да, этот регистр поначалу сводил меня с ума. И продолжает.

Неактивен

0    0    #59
12.04.2008 05:05

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: не качается авторкит

Можно сделать простые "обертки" такого типа:

Код:

isLocked: islocked;

Подобное я уже сделал с функцией loweru, которую сам постоянно вызывал как lowerru.

Неактивен

0    0    #60
12.04.2008 05:38

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

в моём мини-квесте уже четыре локации, несколько объектов
и персонаж: робот.

вопрос:
- в мануале приводится пример случайного блуждания персонажа с проверкой выходов.
- МОЖНО ли с помощью какой-либо функции проверить доступность какого-либо действия, получить список доступных действий для персонажа не-игрока.
НАПРИМЕР:
массив VV содержит список глаголов для данного персонажа
массив NN содержит список объектов, присутствующих в игре + пустой объект
хочу в цикле перебрать каждую пару VV[x],NN[y] и если VV[x]+NN[y] не только клеится в корректную команду, но ещё и выполнимо при текущих обстоятельствах - заношу это действие в список LL[z]. затем случайным образом с равной вероятностью выбираю одно из действий на выполнение.

суть ВОПРОСа в том: есть ли какая-либо функция для проверки возможности действия VV[x]+NN[y] ?
(если нет, то и не надо - в таком виде она мне нужна только на промежуточном этапе подготовки квеста- потом всё равно прийдётся писать свою функцию выбора действия )

Неактивен

0    0    #61
12.04.2008 07:36

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

noname написал:

нет повести печальнее на свете...

в данном случае я просто создал пару локаций. без всякого сюжета и плана. меня устроил бы любой вариант работы команд, НО они УЖЕ работают некорректно.

p.s.
и эта ошибка присутствует и в Кащее, и, я подозреваю, во всех русских РТАДС-квестах, если автор не переписал команду "бежать" самостоятельно

Ну, и в чем проблема переопределить самому?wink

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)

Неактивен

0    0    #62
12.04.2008 07:52

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

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

Извините, сейчас не могу написать более подробный и конкретный пример - нет времени. Если будут непонятки - спрашивайте еще, постараюсь помочь.

Неактивен

0    0    #63
12.04.2008 08:30

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?

спасибо за прямоту. глюков у меня и вправду хватает. в данном случае описанный рецепт будет иметь тот недостаток, что пользователю обязательно нужно будет вводить букву Ё. идеальный вариант: пользователь может, но не обязан использовать букву Ё где ей положено. парсер должен всегда выводить букву Ё там где ей положено быть. вроде бы это же пожелание и содержалось в посте, на который ты ответил.
p.s.
да, кстати, давай переходить на ты
впрочем, это дело десятое.
а "урезание" буквы Ё я таки уберу

Отредактировано noname (12.04.2008 08:30)

Неактивен

0    0    #64
12.04.2008 08:35

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

noname написал:

noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?

спасибо за прямоту. глюков у меня и вправду хватает. в данном случае описанный рецепт будет иметь тот недостаток, что пользователю обязательно нужно будет вводить букву Ё. идеальный вариант: пользователь может, но не обязан использовать букву Ё где ей положено. парсер должен всегда выводить букву Ё там где ей положено быть. вроде бы это же пожелание и содержалось в посте, на который ты ответил.
p.s.
да, кстати, давай переходить на ты
впрочем, это дело десятое.
а "урезание" буквы Ё я таки уберу

На самом деле, в описанном тобой выше примере даже урезание отменять не потребуется: достаточно определить для яблока лексическое свойство "зеленое" (а не "зелёное"), и что бы игрок не ввел - с Ё или без Ё - игра его поймет.

Мне сразу в голову это не пришло - видно, с глюками в мозгу и у меня все в порядке;).

Отредактировано uux (12.04.2008 08:36)

Неактивен

0    0    #65
12.04.2008 08:40

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

смысл поста ясен
упомянутый пример сейчас пишу самостоятельно
благо у меня всего 6-ть объектов и 8-мь команд (из них долько 2-а требуют более одного аргумента)

возможно, эта информация где-то содержится, но спрошу:
можно ли получить доступ к переменным, содержащим введённые игроком глагол и аргументы?
(желательно с инфой о том, в каком падеже и т п)

Неактивен

0    0    #66
12.04.2008 12:56

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

что сделать, что бы такой код заработал?:

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)

Неактивен

0    0    #67
12.04.2008 13:14

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: не качается авторкит

и почему перестали нормально вставляться вырезки из работающей проги?

Переключи раскладку на русскую перед тем как нажимать Ctrl-C

Неактивен

0    0    #68
12.04.2008 13:23

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

uux

Специальной функции нет.

а вот и есть! надеюсь, она мне не снится. вот она:

checkreach
checkreach: function(loc, actor, v, obj): проверяет, может ли актер (персонаж) actor манипулировать объектом obj при помощи глагола v, находясь в комнате loc. Функция используется на этапе валидации (проверки корректности) команды. Эта функция разрешает дальнейшую обработку команды, если obj - это объект специального типа (numObj или strObj), если этот объект находится в инвентаре актера actor, а также в том случае, если он внесен в список reachable комнаты loc. Во всех прочих случаях возвращается выводится сообщение об ошибке, что на этапе валидации автоматически означает отказ от дальнейшей обработки.

впрочем, неуверен, что именно она проверяет: взять кровать по её мнению тоже можно?...

Неактивен

0    0    #69
12.04.2008 13:26

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

стартовая локация (a1)
    Это моя первая локация.

северная локация (a2)
    Вот мои первые объекты.
    Ты видишь здесь дубовый стол и стальной ключ. На дубовом столе ты видишь надёжный сейф.

северо-восточная локация (b2)
    Изначально робота помещаем сюда.
    Здесь находится скрипучий робот.
робот напевает популярную песенку.
>ксиззи
К сожалению, слово "ксиззи" мне неизвестно.
>

вот! по-крайней мере со вставкой разобрались, СПАСИБО!
но как быть с ксиззи???
может я его куда-нить не туда вставляю,
или где-то чего-то ещё нужно изменить?

Неактивен

0    0    #70
12.04.2008 13:26

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

noname написал:

смысл поста ясен
упомянутый пример сейчас пишу самостоятельно
благо у меня всего 6-ть объектов и 8-мь команд (из них долько 2-а требуют более одного аргумента)

возможно, эта информация где-то содержится, но спрошу:
можно ли получить доступ к переменным, содержащим введённые игроком глагол и аргументы?
(желательно с инфой о том, в каком падеже и т п)

Информация вот здесь:

http://www.rtads.org/man/TADSADPT.HTM, далее текстовым поиском на странице по шаблону "Получение информации о текущей команде".

С информацией о падежах и т. п. хуже - системной функции для этого в TADS нет. Что навскидку приходит в голову - из функции preparse сохранить в промежуточной переменной строку в том виде, в каком ее ввел игрок, а потом разбираться с падежами. Но это муторно.

Неактивен

0    0    #71
12.04.2008 13:30

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

noname написал:

но как быть с ксиззи???
может я его куда-нить не туда вставляю,
или где-то чего-то ещё нужно изменить?

На первый взгляд, все должно компилироваться нормально. Единственное, что приходит на ум - файл, где определен ксиззи, не включен в число компилируемых, либо каким-то образом этот фрагмент оказался между комментариями. Если совсем затык - шли на мыло uux собака mail точка ru, буду разбираться.

Неактивен

0    0    #72
12.04.2008 13:35

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

noname написал:

uux написал:

Специальной функции нет.

а вот и есть! надеюсь, она мне не снится. вот она:

Молодец! Уел меня.smile

noname написал:

checkreach
checkreach: function(loc, actor, v, obj): проверяет, может ли актер (персонаж) actor манипулировать объектом obj при помощи глагола v, находясь в комнате loc. Функция используется на этапе валидации (проверки корректности) команды. Эта функция разрешает дальнейшую обработку команды, если obj - это объект специального типа (numObj или strObj), если этот объект находится в инвентаре актера actor, а также в том случае, если он внесен в список reachable комнаты loc. Во всех прочих случаях возвращается выводится сообщение об ошибке, что на этапе валидации автоматически означает отказ от дальнейшей обработки.

впрочем, неуверен, что именно она проверяет: взять кровать по её мнению тоже можно?...

В общем случае она проверяет, что актер и объект находятся в одной и той же комнате и что при этом актер видит объект (возможны более сложные специальные случаи - например, для глагола "спросить о" невыполнение данных условий не будут мешать заимодействию с объектом, но мы их пока касаться не будем). Грубо говоря, она проверяет, надо ли выдавать ошибку типа "Я не вижу здесь этого".  Таким образом, если игрок и кровать находятся в одной комнате, функция не будет возражать против "взять кровать".

Неактивен

0    0    #73
12.04.2008 13:38

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

а вот и не так уж и муторно-
это смотря для каких целей. мне эта штука вот зачем:

1. в редких, заранее известных случаях разруливать неоднозначности
(когда слишком догадливый интерпретатор исправляет итак корректную фразу так, что у неё получается другой смысл) - точно щаззз не скажу когда это надо, но у меня такое получалось уже вчера. тут суть в том, что парсер не различает формы введённых слов.

2. для хороших подсказок вместо некоторых сообщений об ошибках:
>положить ключ под стол
Я не понимаю это предложение.

от такой честности никому не легче. куда лучше будет:
-незачем ложить ключ под стол
-положи его на стол или просто выложи

p.s.
это будет для некоторых, заранее известных случаев, когда ясно какое слово и в какой форме ищем.

Неактивен

0    0    #74
12.04.2008 13:44

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: не качается авторкит

заранее извиняюсь, но так уж исторически сложилось, что я чувствую эту тему своей и могу позволить себе выложить листинг:

/* Это просто комментарий, такой же, как, например, в языке Си */
/* Эти две строчки разрешают использовать возможности 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();
*/

файл у меня единственный

Неактивен

0    0    #75
12.04.2008 16:33

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: не качается авторкит

noname написал:

заранее извиняюсь, но так уж исторически сложилось, что я чувствую эту тему своей и могу позволить себе выложить листинг:
...
файл у меня единственный

Скачал. Скомпилировал. Все работает, "ксиззи" распознается.

Вопрос: может, ты добавил код для xyzzy и, не закрывая и не сохраняя файла в редакторе, сразу стал компилировать и запускать игру?

Попробуй сейчас еще раз.

Кстати, в подобных случаях можно проверить, действительно ли измененный код внесен в файл исходника, просмотрев его в окне дебаггера (в смысле, TADS Workbench).

Отредактировано uux (12.04.2008 16:44)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru