Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
07.03.2011 23:46

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

События при добавлении, удалении и перемещении объекта

Допустим, есть команды, с помощью которых можно поместить предмет (или другой объект) в локацию (в другой объект), убрать его из локации или переместить между локациями.

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

Например, в момент вызова команды "Поместить" вызывается обработчик события "ПриДобавленииОбъекта" (с параметром "Время=Перед"). Если данный обработчик возвращает ДА, то предмет помещается в локацию. После чего вызывается обработчик события "ПриДобавленииОбъекта" (с параметром "Время=После"), чтобы отработать возможные события, которые должны произойти после появления предмета в локации.

С командой "Убрать" всё аналогично, а вот с командой "Переместить" — немного сложнее.

По идее, команда "Переместить" состоит из двух команд: "Убрать" и "Поместить", каждая из которых вызывает свои обработчики. Однако для отработки ситуации, когда игрок берёт предмет из сундука, а он у него выскальзывает из рук и падает на пол, может оказаться полезным обработчик "ПриПеремещенииОбъекта", который должен вызываться после команды "Убрать", но перед командой "Поместить", и в случае необходимости прервать команду "Переместить".

Есть у кого какие идеи на этот счёт?

Неактивен

0    0    #2
08.03.2011 10:25

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

Тон

Re: События при добавлении, удалении и перемещении объекта

Olegus t.Gl. написал:

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

Ну, в информе ровно так и сделано. Есть события before и after для любой команды. Кроме того, в них можно прекратить выполнение команды в любом из них, заместить стандартный текст и т.п.

Почитай мануал по информу, много интересного.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru