|
- require("luaScript.Extension.MathExt")
-
- -- 给evalServerScript使用的函数环境
- ServerScriptEnv = {}
- ServerScriptEnv.__index = ServerScriptEnv;
- --根据对指定的条件计算结果为 TRUE 或 FALSE,返回不同的结果。
- function ServerScriptEnv.ternary(logical_test , value_if_true , value_if_false)
- if logical_test then
- return value_if_true
- else
- return value_if_false
- end
- end
- ServerScriptEnv.Math = Math;
- -- 实现三元表达式
- IF = ServerScriptEnv.ternary;
-
-
- -- 执行字符串,并返回这个字符串计算后的值,相当于javascript的eval
- -- @str 脚本,这个脚本只能调用ServerScriptEnv和env里定义的函数与变量
- -- @env 供脚本使用的环境变量,必须是一个table
- -- @return 返回脚本计算完毕后的值
- function evalServerScript(str , env)
- if type(str) == "string" then
- local e
- if type(env) == "table" then
- e = env;
- setmetatable(e , ServerScriptEnv);
- else
- e = ServerScriptEnv
- end
- local ret , err = load("return " .. str , "" , "t" , e);
- if ret == nil then
- error("解析公式出错" .. str .. " 错误信息:" .. err);
- else
- return ret();
- end
- else
- error("is not a string")
- end
- end
-
- function emptyFunction()
- print("空函数调用");
- end
|