choose_location = dlg { debug = true, nam = 'Выберите локацию', dsc = 'Нажмите на имя локации, в которую хотите переместиться.', gen = function(s) local k,v objs(s):zap(); for k,v in pairs(_G) do if isRoom(v) and not v.debug then local n = call(v, 'nam'); put(phr(n, '', [[return goto("]]..k..[[")]]), s); end end put (phr('Назад','','back()'), s) end } choose_object = dlg { debug = true, nam = 'Выберите объект', dsc = 'Нажмите на имя объекта, который вы хотите взять.', gen = function(s) local k,v objs(s):zap(); for k,v in pairs(_G) do if isObject(v) and not isRoom(v) and not isPlayer(v) and not v.debug and not have(v) then local n = call(v, 'nam'); put(phr(n, '', [[return take("]]..k..[[")]]), s); end end put (phr('Назад','','back()'), s) end } drop_object = dlg { debug = true, nam = 'Выберите объект', dsc = 'Нажмите на имя объекта, который вы хотите добавить в текущую сцену.', gen = function(s) local k,v objs(s):zap(); for k,v in pairs(_G) do if isObject(v) and not isRoom(v) and not isPlayer(v) and not v.debug and have(v) then local n = call(v, 'nam'); put (phr(k,'','drop("'..k..'","'..deref(from())..'")'), s) end end put (phr('Назад','','back()'), s) end } debug_dlg = dlg { debug = true, nam = 'Инструмент Разработчика', dsc = 'Выберите действие.', obj = { [1]=phr('Переход на локацию', nil ,[[pon(1); choose_location:gen(); return goto('choose_location')]]), [2]=phr('Взять предмет', nil , [[pon(2); choose_object:gen(); return goto('choose_object')]]), [3]=phr('Положить предмет', nil , [[pon(3); drop_object:gen(); return goto('drop_object')]]), [4]=phr('Выход', nil , [[pon(4); back()]]), }, }; debug_tool = obj { debug = true, nam = 'отладка', inv = function(s) return goto('debug_dlg'); end }; inv():add('debug_tool');