This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
lua:scripting:firetemple [2015/01/01 09:10] vodur |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Build 5x5 grid. | ||
| - | <code lua> | ||
| - | do | ||
| - | local cols=5 | ||
| - | local rows=5 | ||
| - | local basevnum=501 | ||
| - | |||
| - | local function getvnum( col, row) | ||
| - | return basevnum-1 + (row-1)*cols + col | ||
| - | end | ||
| - | |||
| - | local function setexflag( dir, flg) | ||
| - | if not(mob.room[dir]:flag(flg)) then | ||
| - | olc(dir.." "..flg) | ||
| - | end | ||
| - | end | ||
| - | |||
| - | for col=1,cols do | ||
| - | for row=1,rows do | ||
| - | mdo("redit create "..getvnum(col,row) ) | ||
| - | end | ||
| - | end | ||
| - | |||
| - | for col=1,cols do | ||
| - | for row=1,rows do | ||
| - | local vnum=getvnum(col,row) | ||
| - | mdo("goto "..vnum) | ||
| - | if not(row==1) then -- do north stuff | ||
| - | olc("north dig "..getvnum(col,row-1)) | ||
| - | setexflag( "north", "door") | ||
| - | setexflag( "north", "dormant") | ||
| - | end | ||
| - | if not(row==rows) then -- do south stuff | ||
| - | olc("south dig "..getvnum(col,row+1)) | ||
| - | setexflag( "south", "door") | ||
| - | setexflag( "south", "dormant") | ||
| - | end | ||
| - | if not(col==1) then -- do west stuff | ||
| - | olc("west dig "..getvnum(col-1,row)) | ||
| - | setexflag( "west", "door") | ||
| - | setexflag( "west", "dormant") | ||
| - | end | ||
| - | if not(col==cols) then -- do east stuff | ||
| - | olc("east dig "..getvnum(col+1,row)) | ||
| - | setexflag( "east", "door") | ||
| - | setexflag( "east", "dormant") | ||
| - | end | ||
| - | end | ||
| - | end | ||
| - | |||
| - | end | ||
| - | </code> | ||
| - | |||
| - | Print map | ||
| - | <code lua> | ||
| - | do | ||
| - | |||
| - | local cols=5 | ||
| - | local rows=5 | ||
| - | local basevnum=501 | ||
| - | |||
| - | local function getvnum( col, row) | ||
| - | return basevnum-1 + (row-1)*cols + col | ||
| - | end | ||
| - | |||
| - | local function setexflag( dir, flg) | ||
| - | if not(mob.room[dir]:flag(flg)) then | ||
| - | olc(dir.." "..flg) | ||
| - | end | ||
| - | end | ||
| - | |||
| - | local out={} | ||
| - | |||
| - | for row=1,rows do | ||
| - | local second={} | ||
| - | for col=1,cols do | ||
| - | table.insert(out, "#") | ||
| - | local room=getroom(getvnum(col,row)) | ||
| - | | ||
| - | if room.east then | ||
| - | table.insert(out, room.east:flag("dormant") and " " or "-") | ||
| - | end | ||
| - | | ||
| - | if room.south then | ||
| - | table.insert(second, room.south:flag("dormant") and " " or "| ") | ||
| - | end | ||
| - | end | ||
| - | table.insert(out,"\n\r"..table.concat(second).."\n\r") | ||
| - | end | ||
| - | |||
| - | sendtochar(mob, table.concat(out)) | ||
| - | |||
| - | end | ||
| - | </code> | ||