Advertisement
Guest User

INSTEAD dynamic labyrinth

a guest
Mar 9th, 2015
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.86 KB | None | 0 0
  1. -- $Name:Нанотест$
  2. -- $Version:0.02$
  3. -- $Name(ru):Нанотест$
  4. instead_version "1.8.0"
  5.  
  6. require "xact"                  -- подключаем модуль xact
  7. require "hideinv"               -- подключаем модуль hideinv
  8. require "para"                  -- догадайтесь, что мы подключили в этот раз ;)
  9. require "dash"                  -- подключаем dash
  10. require "quotes"                -- подключаем quotes
  11.  
  12. game.codepage="UTF-8";
  13.  
  14. game.act = 'Не получается.';
  15. game.inv = 'Хм, странная штука.';
  16. game.use = 'Не сработает.';
  17.  
  18. global {
  19. x = 0;
  20. y = 0;
  21. z = 0;
  22. roomname = 'room0_0_0';
  23. myrooms = {};
  24. };
  25.  
  26. function generate_room(s,t)
  27.     pn("Идем " .. t.nam);
  28.     roomname = 'room'..x..'_'..y..'_'..z;
  29.     if myrooms[roomname] then
  30.         p 'Все гут';
  31.     else
  32.         myrooms[roomname] = new('myconstructor()');
  33.     end;
  34.     walk(myrooms[roomname]);
  35. end
  36.  
  37.  
  38. function myconstructor()
  39.         local v = {};
  40.         v.nam = roomname;
  41. --в dsc выводится номер текущей комнаты, но также можно генерировать сюда любое описание.
  42.         v.dsc = roomname;
  43.         v.disp = 'Название';
  44.         v.way = {vroom('Север', north), vroom('Восток', east), vroom('Юг', south), vroom('Запад', west), vroom('Вверх', up), vroom('Вниз', down)};
  45.         v.exit = function(s, t)
  46.                 if t == north then
  47.                         y = y + 1;
  48.                 elseif t == east then
  49.                         x = x + 1;
  50.                 elseif t == south then
  51.                         y = y - 1;
  52.                 elseif t == west then
  53.                         x = x - 1;
  54.                 elseif t == up then
  55.                         z = z + 1;
  56.                 elseif t == down then
  57.                         z = z - 1;
  58.                 end;
  59.                 generate_room(s,t);
  60.         end;
  61.         return room(v);
  62. end;
  63.  
  64. ---Начало---------------------------------------------------------------------------------------------------------------
  65.  
  66. main = room {
  67.         forcedsc = true;
  68.         nam = 'Начало';
  69.         enter = function()
  70.                 myrooms['room0_0_0'] = new('myconstructor()');
  71.                 start = myrooms['room0_0_0'];
  72.         end;
  73.         dsc = '';
  74.         way = {vroom('Играть', 'start')};
  75. };
  76.  
  77. --пачка комнат-заглушек, т.к. vroom надо ссылаться на реальную комнату.
  78.  
  79. north = room {
  80.         nam = 'на север';
  81. };
  82.  
  83. east = room {
  84.         nam = 'на восток';
  85. };
  86.  
  87. south = room {
  88.         nam = 'на юг';
  89. };
  90.  
  91. west = room {
  92.         nam = 'на запад';
  93. };
  94.  
  95. up = room {
  96.         nam = 'вверх';
  97. };
  98.  
  99. down = room {
  100.         nam = 'вниз';
  101. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement