Как я делал web-INSTEAD, и что из этого вышло. Часть III
Вопрос-ответ
И что дальше?
А, не знаю. В двух словах — пока думаю, заморозить игровую часть. Пусть пока работает, как есть.
-- $Name:Нанотест$
-- $Version:0.01$
-- $Name(ru):Нанотест$
instead_version "1.8.0"
require "xact" -- подключаем модуль xact
require "hideinv" -- подключаем модуль hideinv
require "para" -- догадайтесь, что мы подключили в этот раз ;)
require "dash" -- подключаем dash
require "quotes" -- подключаем quotes
game.codepage="UTF-8";
game.act = 'Не получается.';
game.inv = 'Хм, странная штука.';
game.use = 'Не сработает.';
global {
x = 0;
y = 0;
z = 0;
roomname = 'room0_0_0';
myrooms = {};
};
function myconstructor()
local v = {};
v.nam = roomname;
--в dsc выводится номер текущей комнаты, но также можно генерировать сюда любое описание.
v.dsc = roomname;
v.disp = 'Название';
v.way = {vroom('Север', north), vroom('Восток', east), vroom('Юг', south), vroom('Запад', west), vroom('Вверх', up), vroom('Вниз', down)};
v.exit = function(s, t)
if t == north then
y = y + 1;
roomname = 'room'..x..'_'..y..'_'..z;
if myrooms[roomname] then
p 'Все гут';
else
myrooms[roomname] = new('myconstructor()');
end;
walk(myrooms[roomname]);
elseif t == east then
x = x + 1;
roomname = 'room'..x..'_'..y..'_'..z;
if myrooms[roomname] then
p 'Все гут';
else
myrooms[roomname] = new('myconstructor()');
end;
walk(myrooms[roomname]);
elseif t == south then
y = y - 1;
roomname = 'room'..x..'_'..y..'_'..z;
if myrooms[roomname] then
p 'Все гут';
else
myrooms[roomname] = new('myconstructor()');
end;
walk(myrooms[roomname]);
elseif t == west then
x = x - 1;
roomname = 'room'..x..'_'..y..'_'..z;
if myrooms[roomname] then
p 'Все гут';
else
myrooms[roomname] = new('myconstructor()');
end;
walk(myrooms[roomname]);
elseif t == up then
z = z + 1;
roomname = 'room'..x..'_'..y..'_'..z;
if myrooms[roomname] then
p 'Все гут';
else
myrooms[roomname] = new('myconstructor()');
end;
walk(myrooms[roomname]);
elseif t == down then
z = z - 1;
roomname = 'room'..x..'_'..y..'_'..z;
if myrooms[roomname] then
p 'Все гут';
else
myrooms[roomname] = new('myconstructor()');
end;
walk(myrooms[roomname]);
end;
end;
return room(v);
end;
---Начало---------------------------------------------------------------------------------------------------------------
main = room {
forcedsc = true;
nam = 'Начало';
enter = function()
myrooms['room0_0_0'] = new('myconstructor()');
start = myrooms['room0_0_0'];
take 'stone';
end;
-- pic = 'gfx/01.jpg';
dsc = '';
way = {vroom('Играть', 'start')};
};
--пачка комнат-заглушек, т.к. vroom надо ссылаться на реальную комнату.
north = room {
nam = 'Заглушка';
};
east = room {
nam = 'Заглушка';
};
south = room {
nam = 'Заглушка';
};
west = room {
nam = 'Заглушка';
};
up = room {
nam = 'Заглушка';
};
down = room {
nam = 'Заглушка';
};