# А как сделать, чтобы...
Пэ(syscall,48) — All
2019-06-13 08:31:13


Здравствуйте!
Простите, если я не в ту тему пишу :)

Вот заинтересовался я МЕТАПАРСЕРОМ3 (за что огромное спасибо Петру) и пробую что-то в нём написать. Кое-что даже получается. Программист с меня никакой и мне нужна помощь. Не откажите в любезности.

Есть задача использовать счётчик ходов в игре. Чтоб определённое событие случилось в определённый ход. Как этого добиться?
К примеру, на 50-м ходу игры Нео получает срочной бандеролью телефон, а через 10 ходов ему должен позвонить на этот телефон Морфеус. То же должно сработать и если Ное получит телефон на 39-м ходу и тот зазвонит через 10 ходов.

Спасибо.

# Re: А как сделать, чтобы...
Peter(syscall,1) — Пэ
2019-06-13 20:48:42


Привет, не могу развернуто сейчас ответить (с телефона не удобно) но можно прочитать про daemon метод. Грубо говоря, метод дергается каждый ход у объекта. А там уже можно делать что угодно. Для запуска StartDaemon кажется используется. В примерах должно быть и в существующих играх.

# Re: А как сделать, чтобы...
Пэ(syscall,48) — Peter
2019-06-14 22:13:42


Спасибо. Попробую.

# Re: А как сделать, чтобы...
Пэ(syscall,48) — Peter
2019-06-16 03:00:55


Скажите, пожалуйста, Пётр, как сделать, чтоб перемещения в игре были не по сторонам света, а по названиям комнат? Когда персонаж находится в помещении, перемещение по сторонам света выглядят странно. Хотелось бы иметь возможность идти не на север и юг, а к примеру, в гостиную или в детскую.

Похоже, что это - не тот вариант (перемещаться через объекты):
obj {
    -"детская";
    nam = "nursery";
    before_Walk = function(s)
        move(pl, 'room3')
end; 
}

# Re: А как сделать, чтобы...
Peter(syscall,1) — Пэ
2019-06-16 10:34:15


В моей игре есть реализация класса path. https://github.com/gl00my/instead-game-summerday

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