Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
18.01.2008 22:54

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

Тон

Новая версия библиотеки?

Что скажешь, ГрАнд?
Уже достаточно изменений накопилось, по-моему...

Неактивен

0    0    #2
05.02.2008 22:38

- VampirE -
Участник (+3)
Зарегистрирован: 22.06.2006
Сообщений: 101

Re: Новая версия библиотеки?

Попробывал реализовать атаку гоблина топором. В итоге вообще ничего не выводит. Странно. Просто пустая строка, ни ошибки, ничего. Если определять атаку гоблина в объекте топора, то все окей. Но логичнее вроде как использовать прямой объект.

До метода doAttackWith вообще дело не доходит, хотя верефикатор переопределен.

Код:

goblin : Actor
    location = startroom
    sdesc = "гоблин"
    rdesc = "гоблина"
    ddesc = "гоблину"
    vdesc = "гоблина"
    tdesc = "гоблином"
    pdesc = "гоблине"
    noun = 'гоблин' 'гоблина' 'гоблину' 'гоблином' 'гоблине' 'гоблину#d' 'гоблином#t'
    ldesc = "Это маленький зеленый гоблин."
    isHim = true
    verDoAttackWith(actor,io) = {}
    doAttackWith(actor,io) = {"Уй-я! - кричит гоблин и убегает."; return nil;}
;

topor : item
    location = Me
    sdesc = "топор"
    rdesc = "топора"
    ddesc = "топору"
    vdesc = "топор"
    tdesc = "топором"
    pdesc = "топоре"
    noun = 'топор' 'топора' 'топору' 'топором' 'топоре' 'топору#d' 'топором#t'
    ldesc = "Это топор."
    isHim = true
    verIoAttackWith(actor) = {}
;

Отредактировано - VampirE - (05.02.2008 22:59)

Неактивен

0    0    #3
06.02.2008 14:24

- VampirE -
Участник (+3)
Зарегистрирован: 22.06.2006
Сообщений: 101

Re: Новая версия библиотеки?

Бросил топор в комнате, подобрал. Атаковал гоблина - реакция есть.


> подобрать топор
Взят.
> атаковать мертвого гоблина топором
Ты атаковал мертвого гоблина топором.

Неактивен

0    0    #4
09.04.2008 19:13

- VampirE -
Участник (+3)
Зарегистрирован: 22.06.2006
Сообщений: 101

Re: Новая версия библиотеки?

У меня еще подозрение, что, например, слово "яд" может обробатываться некорректно. Правда, не проверял, просто подозрение.

Отредактировано - VampirE - (09.04.2008 19:13)

Неактивен

0    0    #5
15.07.2008 17:50

- VampirE -
Участник (+3)
Зарегистрирован: 22.06.2006
Сообщений: 101

Re: Новая версия библиотеки?

Маленький оффтопик.

Кто-нибудь подскажет, чем отличается debug-версия от релизной кроме размера? Мануал читать не охота что-то. smile

Отредактировано - VampirE - (15.07.2008 18:05)

Неактивен

0    0    #6
23.07.2008 21:16

- VampirE -
Участник (+3)
Зарегистрирован: 22.06.2006
Сообщений: 101

Re: Новая версия библиотеки?

Нашел неприятный баг в генераторе:

Код:

yad: item
gdesc = 'пузырёк/1му с ядом/п-'
noun = 'пузырёк/1му'
ldesc = "Пузырек с ядом."
location = Me
isHim = true
;

В слове 'пузырёк' в случае с gdesc почему-то берется одно правило, где просто 'к', а в случае с noun все берется правильно - правило 'ёк'.

---

Нашел решение проблемы. Все дело было в неправильной работе регулярных выражений в коде нарезки gdesc:

Код:

while (ret:=reSearch('([/$&@№~%_+*#a-zA-Zа-яА-Я0-9-]+)|([][<>()!{}.,;"?\ ]+)', sdescstr), ret<>nil) 
         {
           sdesc_list+=ret[3]; 
           sdescstr:=substr(sdescstr,ret[1]+ret[2],length(sdescstr)); 
         }

Нужно просто добавить буковку 'ё' между первыми скобками. smile Будет что-то вроде:

Код:

while (ret:=reSearch('([/$&@№~%_ё+*#a-zA-Zа-яА-Я0-9-]+)|([][<>()!{}.,;"?\ ]+)', sdescstr), ret<>nil) 
         {
           sdesc_list+=ret[3]; 
           sdescstr:=substr(sdescstr,ret[1]+ret[2],length(sdescstr)); 
         }

Отредактировано - VampirE - (23.07.2008 22:10)

Неактивен

0    0    #7
09.08.2008 16:50

- VampirE -
Участник (+3)
Зарегистрирован: 22.06.2006
Сообщений: 101

Re: Новая версия библиотеки?

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

Для себя обязательно возьму на заметку, если что-то буду писать - благо мне такое добавить в игру не составит труда. Самое простое - добавлять класс, скажем, для хрупких вещей и переопределить там метод drop. Но тогда глаголы "положить" и "бросить" должны вызывать разные реакции. Это даже идея для пазла. smile

Вообще библиотека-"физический движок" для ТАДС игр была бы кстати. Но снова для людей, кто будет разбираться в функционале, а это опять же без базового знания синтаксиса языка проблематично.

Отредактировано - VampirE - (09.08.2008 16:51)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru