lua:scripting:firetemple
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
lua:scripting:firetemple [2015/01/01 08:45] – created vodur | lua:scripting:firetemple [2015/01/01 09:50] (current) – vodur | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Build 5x5 grid. | ||
<code lua> | <code lua> | ||
do | do | ||
Line 48: | Line 49: | ||
end | end | ||
end | end | ||
+ | |||
+ | end | ||
+ | </ | ||
+ | |||
+ | 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]: | ||
+ | olc(dir.." | ||
+ | end | ||
+ | end | ||
+ | |||
+ | local out={} | ||
+ | |||
+ | for row=1,rows do | ||
+ | local second={} | ||
+ | for col=1,cols do | ||
+ | table.insert(out, | ||
+ | local room=getroom(getvnum(col, | ||
+ | | ||
+ | if room.east then | ||
+ | table.insert(out, | ||
+ | end | ||
+ | | ||
+ | if room.south then | ||
+ | table.insert(second, | ||
+ | end | ||
+ | end | ||
+ | table.insert(out," | ||
+ | end | ||
+ | |||
+ | sendtochar(mob, | ||
+ | |||
+ | end | ||
+ | </ | ||
+ | |||
+ | Generate maze | ||
+ | <code lua> | ||
+ | do | ||
+ | |||
+ | local function revdir( dir ) | ||
+ | if dir == " | ||
+ | elseif dir == " | ||
+ | elseif dir == " | ||
+ | elseif dir == " | ||
+ | end | ||
+ | end | ||
+ | |||
+ | --Randomized Prim's algorithm http:// | ||
+ | local walls={} | ||
+ | local maze={} | ||
+ | |||
+ | for k,v in pairs(getroom(501).exits) do | ||
+ | table.insert(walls, | ||
+ | end | ||
+ | |||
+ | while #walls>0 do | ||
+ | local wallind=randnum(1,# | ||
+ | local wall=walls[wallind] | ||
+ | table.remove(walls, | ||
+ | | ||
+ | if not maze[wall.exit.toroom] then | ||
+ | wall.exit: | ||
+ | wall.exit: | ||
+ | wall.exit.toroom[revdir(wall.dir)]: | ||
+ | wall.exit.toroom[revdir(wall.dir)]: | ||
+ | maze[wall.exit.toroom]=true | ||
+ | for k,v in pairs(wall.exit.toroom.exits) do | ||
+ | table.insert(walls, | ||
+ | end | ||
+ | end | ||
+ | | ||
+ | | ||
+ | |||
+ | end | ||
+ | |||
end | end | ||
</ | </ |
lua/scripting/firetemple.1420101955.txt.gz · Last modified: 2015/01/01 08:45 by vodur