ping II/IDEC networks | Contacts :: Login |
БАЗА = room { pic = function(s) pr 'pic/ГОРЫ.jpg' --общий фон картинки для этой локации if СЛУЧИЛОСЬ_СОБЫТИЕ then pr ';pic/АЛАРМ.jpg@500,100' --показать поверх общей картинки локации табличку "у нас событие!" end; end; click = function(s, x, y) if x > 500 and x < 700 and y > 200 and y < 30 and СЛУЧИЛОСЬ_СОБЫТИЕ and ГОТОВ_ДИАЛОГ then --клик на табличку отправляет в диалог walk 'НУЖНЫЙ_ДИАЛОГ'; return true; end; end; }Собственно, такая штука. Есть комната. Для иллюстрации происходящего в ней - задана картинка. При срабатывании условия СЛУЧИЛОСЬ_СОБЫТИЕ = true; поверх этой картинки появляется другая (табличка с приглашением запустить некое событие). И если при этом включено условие ГОТОВ_ДИАЛОГ = true; то клик на табличку запускать диалог НУЖНЫЙ_ДИАЛОГ.
if global_nnn == 10 and global_yyy == 20 then walk 'action_room_2'; return true; end;не срабатывает, потому что нужные условия достигаются игроком уже в ходе манипуляций в комнате, а не при заходе в нее.
lifeon (check); check = obj { life = function(s) if global_nnn == 10 and global_yyy == 20 then walk 'action_room_2'; return true; end; end;};
Везде это работает, а вот при переходе конкретно в action_room_2 почему-то нет.
bunker = room { ... dsc = function(s) ... if global_nnn == 10 and global_yyy == 20 then walk 'action_room_2'; return true; end; ... end; }Суть, если отбросить лишние детали: в комнате bunker можно переключать два параметра (условно nnn и yyy) и когда они доходят до значений "10" и "20" соответственно, игрок автоматически перемещается в другую комнату (происходят еще разные изменения в сюжете, в интерфейсе, но тут это не важно). В нынешнем виде, такая попытка перемещения не работает. Игрок, судя по всему остается в текущей комнате.
local n = rnd(3) --Этот блок прописывается просто в любом месте кода, или его надо вставлять куда-то конкретно? if n == 1 then dead_attack = true --срабатывает условие для запуска монстров elseif n == 2 then dead_blind = true --срабатывает условие при котором монстры игрока не видят elseif n == 3 then poison_on = true --срабатывает условие при котором персонаж получает отравление else endact = function(s)
act = function(s) if got_bunker_key then bunker_door_open; --дверь открывается, если есть нужный ключ random_action_on = true; --включается "разрешение" для запуска 1 из 3 рандомных событий p [[Из темного коридора раздается рычание. В воздухе витает какой-то мерзкий запах.]]; end;И есть три условия для запуска трех разных событий, одно из которых должно включится СЛУЧАЙНЫМ ОБРАЗОМ, после того как сработает random_action_on.
p (txtc ''..img('PIC/ЛОКАЦИЯ.png'));
walk 'ЛОКАЦИЯ';
way = { vroom('ЛОКАЦИЯ', 'loc_name') };