脚本调用LUA

 

 


 

切记:调用LUA时一般涉及到系统功能,比如某某排行榜需要做一些特殊的排序功能的脚本不太好计算的情况下调用一下,不要写在如:杀怪触发及切换地图触发等经常调用的功能里

另外调用时可在TXT里面上下位置写入打印耗时的命令,查看该调用的实际耗时,调用Lua时耗时大于20000微妙的全部需要优化

 

切记:调用LUA时一般涉及到系统功能,比如某某排行榜需要做一些特殊的排序功能的脚本不太好计算的情况下调用一下,不要写在如:杀怪触发及切换地图触发等经常调用的功能里

另外调用时可在TXT里面上下位置写入打印耗时的命令,查看该调用的实际损耗,调用Lua时耗时大于20000微妙的全部需要优化

 

切记:调用LUA时一般涉及到系统功能,比如某某排行榜需要做一些特殊的排序功能的脚本不太好计算的情况下调用一下,不要写在如:杀怪触发及切换地图触发等经常调用的功能里

另外调用时可在TXT里面上下位置写入打印耗时的命令,查看该调用的实际损耗,调用Lua时耗时大于20000微妙的全部需要优化

 

 


格式:CALLLUA 参数1 参数2
参数1:LUA文件名(文件必须放在Market_Def目录下,更新LUA文件重读NPC即可)
参数2:@调用LUA函数,向LUA脚本发送数据
注:向LUA发送数据用小写逗号,支持变量。保存LUA文件格式必须为(GB2312、ANSI)否则含有中文会乱码
注:txt调用lua会清空(-1)位置的数据!!!  txt调用lua会清空(-1)位置的数据!!!   txt调用lua会清空(-1)位置的数据!!!

 

 

示例一:

;==========================================

[@Main]

#IF

#ACT

;调用script.lua中的message函数

CallLua script @message

 

 

;LUA脚本示例

function message(player)

        sendmsg(player,1,'{"Msg":"打印测试","FColor":255,"BColor":0,"Type":1,"Time":3,"SendName":"xxx","SendId":"123"}')

end

;==========================================

 

 

 

示例二:

;==========================================

[@Main]

#IF

#ACT

;调用script.lua中的message函数

MOV S$lua文件 script

MOV S$lua函数 message

MOV S$发送数据 1000

CallLua <$str(S$lua文件)> @<$str(S$lua函数)>,<$str(S$发送数据)>

 

 

;LUA脚本示例

function message(player,ss)

    for i = 1, 100 do

ss = ss + 1

        sendmsg(player,1,'{"Msg":"'..ss..'","FColor":255,"BColor":0,"Type":1,"Time":3,"SendName":"xxx","SendId":"123"}')

    end

end

;==========================================

 

脚本调用Lua新读取方式
配置文件:格式必须为GB2312(ANSI)
LuaCondList.txt,LuaFuncList.txt,LuaFunc-0.lua,LuaCond-0.lua,文件存放在 Envir\Market_Def 下。
LuaFunc-0.lua 为lua代码文件(功能执行)
LuaCond-0.lua 为lua代码文件(判断条件)
LuaFuncList.txt 调用方法自定义的执行命令(不可与服务端提供的脚本接口重复)
LuaCondList.txt 调用方法自定义的检测命令(不可与服务端提供的脚本接口重复)
执行后的结果传递到脚本中的常量 <$LUARESULT>

[@LUA函数]
#act
addnumber 2000000 403435
sendmsg 6 <$LUARESULT>

LuaFunc-0.lua文件:
function addnumber(actor, aa, bb)
   return aa+ bb
end

LuaFuncList.txt文件:
addnumber

=======================

[@LUA判断]
#if
checkbig 10000
#act
sendmsg 6 比1000大
#elseact
sendmsg 6 比1000小

LuaCond-0.lua文件:
function checkbig(actor, aa)
   if tonumber(aa)>1000 then
      return true
   else
      return false
   end
end

LuaFuncList.txt文件:
checkbig