--[[ 環境変数取得 version 1.1 (2007/08/15) later: 2006/08/17 本ファイルをAI.luaにリネームして使うと、ROクライアント情報を 読み出せます。 documentation by silica as 冬物語の人 http://winter.sgv417.jp/ --]] local path = "./" -- AI: "./AI/", 単体実行: "./" require(path.."table.lua") -- グローバル変数 _G に本スクリプトの関数、変数が入らないようにする。 local file = path.."getfenv.txt" local env_table = getfenv(1) local list = { ["other"] = {}, ["number"] = {}, ["number2"] = {}, ["string"] = {}, ["string2"] = {}, ["function"] = {}, ["table"] = {}, ["table2"] = {}, } for i, v in pairs(env_table) do if(type(v) == "string") then table.insert(list["string"], i) table.insert(list["string2"], v) elseif(type(v) == "function") then table.insert(list["function"], i) elseif(type(v) == "table") then table.insert(list["table"], i) list["table2"][i] = {} for ii, vv in pairs(v) do if(type(vv) == "function") then table.insert(list["table2"][i], ii) end if(type(vv) == "number") then table.insert(list["number"], ii) table.insert(list["number2"], vv) end end else table.insert(list["other"], i.."("..type(v)..")") end end dofile( "tablesave.lua" ) table.save( list, "getfenv.tbl" ) --[[ local fp = io.open(file, "w") fp:write("other type: ", table.getn(list["other"]), "\n") fp:write(table.concat(list["other"], ", "), "\n\n") fp:write("number type: ", table.getn(list["number"]), "\n") fp:write(table.concat(list["number"], ", "), "\n\n") fp:write("number arg: ", table.getn(list["number2"]), "\n") fp:write(table.concat(list["number2"], ", "), "\n\n") fp:write("string type: ", table.getn(list["string"]), "\n") fp:write(table.concat(list["string"], ", "), "\n\n") fp:write("string arg: ", table.getn(list["string2"]), "\n") fp:write(table.concat(list["string2"], ", "), "\n\n") fp:write("function type: ", table.getn(list["function"]), "\n") fp:write(table.concat(list["function"], ", "), "\n\n") fp:write("table type: ", table.getn(list["table"]), "\n") for i, v in pairs(list["table2"]) do if(type(v) == "table") then fp:write(i, ": ", table.getn(list["table2"][i]), "\n") if(table.getn(v) ~= 0) then fp:write(table.concat(v, ", "), "\n") end end end -- read environment variables as if they were global variables local f=function (t,i) return os.getenv(i) end setmetatable(getfenv(),{__index=f}) -- an example --print(a,USER,PATH) if a==nil then a="nil" end if USER==nil then USER="nil" end if PATH==nil then PATH="nil" end fp:write(string.format("\n%s\t%s\t%s\n",a,USER,PATH)) fp:close() --]] function AI(myid) end