Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do
- --
- local lpeg = require("lpeg")
- local bit = require("bit")
- --
- fold = function(flags, f)
- --
- local alist = {
- Angry = 128
- ,Diseased = 64
- ,Invisible = 32
- ,Hiding = 16
- ,Translucent = 8
- ,["Golden Aura"] = 4
- ,["Red Aura"] = 2
- ,["White Aura"] = 1
- ,D = 64
- ,I = 32
- ,H = 16
- ,T = 8
- ,G = 4
- ,R = 2
- ,W = 1
- }
- --
- mask = alist[f] or 0
- --
- return bit.bor(flags,mask)
- --
- end
- --
- local text = zs.param( 1) or ""
- --
- local C, Cc, Cf, Cg, Ct, P = lpeg.C, lpeg.Cc, lpeg.Cf, lpeg.Cg, lpeg.Ct, lpeg.P
- --
- lpeg.locale(lpeg)
- --
- local g = Cc(0) * P('(' * C((1 - P(')'))^1) * ')' * lpeg.space^0)^0
- --
- local db = lpeg.match(Ct(Cg(Cf(g, fold), "flags")), text)
- --
- local mode = zs.func.roommode()
- --
- db.name = zs.param( 2)
- --
- zs.func.roommode( 1)
- --
- db.room = zs.func.roomvnum()
- --
- zs.func.roommode( 0)
- --
- db.vnum = zs.func.roomvnum()
- --
- zs.func.roommode( mode)
- --
- db.zone = zs.func.roomzone()
- --
- return db
- --
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement