蓝宇传奇私服技术论坛-三下五除二-单机传奇一键端版本库

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11|回复: 0

传奇私服脚本调用LUA技术教程-996引擎

[复制链接]
发表于 15 小时前 | 显示全部楼层 |阅读模式
传奇私服脚本调用LUA技术教程

切记:调用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)位置的数据!!!
注:不再支持CallLua QF QM 内标签 例如: CallLua QManage @Login 这类的
注:不再支持CallLua QF QM 内标签 例如: CallLua QManage @Login 这类的
建议用 脚本调用Lua新读取方式(LuaFunc-0.lua,LuaCond-0.lua),老方式不再维护建议舍弃使用


示例一:
;==========================================

[@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代码文件(判断条件)
LuaCondList.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

回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

QQ|小黑屋|蓝宇传奇私服技术论坛-三下五除二-单机传奇一键端版本库 ( 湘ICP备16009605号-1 )

GMT+8, 2025-12-12 20:49 , Processed in 0.071323 second(s), 25 queries .

热血传奇 chuanqi! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表