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
06.02.2008 06:26

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

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

- VampirE - написал:

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

До метода 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) = {}
;

Порядок вызова: прямой объект.verDoAttackWith -> косвенный объект.verIoAttackWith -> косвенный объект.ioAttackWith. doAttackWith (для команд с косвенным объектом) автоматом никогда не вызывается, его вызов надо явно прописать в игре. Т. е. для топора укажи

Код:

ioAttackWith(actor, dobj)={dobj.doAttackWith(actor, self);

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru