AD商业广告自由选择
AD商业广告自由选择

传奇Lua使用说明 NPC

正文概述 开源人   2024-11-01 10:11:39  

M2现已支持多种模式:纯Lua脚本Npc、TXT脚本与Lua混编zmY1234FCOM专注游戏工具及源码例子分享
纯LuaNPC启用方法如下:zmY1234FCOM专注游戏工具及源码例子分享
删除原本的txt脚本,以ExternLua\Npcs\作为根目录(默认,可修改配置),以前在Market_Def怎么建文件夹、取文件名就还怎么弄,不过这次后缀换成.luazmY1234FCOM专注游戏工具及源码例子分享
用编辑器打开lua脚本,下面的示例进行编写即可zmY1234FCOM专注游戏工具及源码例子分享

--[[
NPC脚本说明:
使用局部变量定义表并返回
并且需要存在main函数,注意大小写,写错无法正确被M2识别并执行
local npc = {
    _click = function(self, args)
        self:_main(args)
    end,
    _main = function(self, args)
        local npc = TMerchant(args.pNpc)
        npc:Say('这是一段来自Lua脚本的对话!\\<跳转到另一个函数/@另一个触发>', true, args.pPlayer, args.sLabel)
    end,
    _另一个触发 = function(self, args)
        local npc = TMerchant(args.pNpc)
        npc:Say('这是另一条消息了,函数名是支持中文的,但Lua函数名不支持@符,所以函数名的@要换为_\\<我懂了/@back>', false, args.pPlayer, args.sLabel)
    end,
}
return npc
]]
local npc = {
    _click = function(self, args)
        local player = TPlayObject(args.pPlayer)
        self:_main(args)
    end,
    _main = function(self, args)
        local npc = TMerchant(args.pNpc)
        npc:Say('很好办的啦\\<搞起/@另一个触发>', true, args.pPlayer, args.sLabel)
    end,
    _另一个触发 = function(self, args)
        local npc = TMerchant(args.pNpc)
        npc:Say('或许吧\\<返回/@back>', false, args.pPlayer, args.sLabel)
    end,
}
return npc
 

TXT老NPC与Lua脚本混编:zmY1234FCOM专注游戏工具及源码例子分享
请参考下面的例子:zmY1234FCOM专注游戏工具及源码例子分享
Market_Def\比奇城\测试NPC2-0.txtzmY1234FCOM专注游戏工具及源码例子分享
zmY1234FCOM专注游戏工具及源码例子分享
[@main]zmY1234FCOM专注游戏工具及源码例子分享
#SAYzmY1234FCOM专注游戏工具及源码例子分享
混合写也可以的呢\ \<是的呢/@混合触发>zmY1234FCOM专注游戏工具及源码例子分享

[@混合触发]zmY1234FCOM专注游戏工具及源码例子分享
#ACTzmY1234FCOM专注游戏工具及源码例子分享
LUA_NPC_CALLzmY1234FCOM专注游戏工具及源码例子分享

[@给他整个活]zmY1234FCOM专注游戏工具及源码例子分享
#ACTzmY1234FCOM专注游戏工具及源码例子分享
SendMsg 5 草!走!忽略!zmY1234FCOM专注游戏工具及源码例子分享
zmY1234FCOM专注游戏工具及源码例子分享
ExternLua\npcs\测试NPC2-0.luazmY1234FCOM专注游戏工具及源码例子分享

local npc = {
    _混合触发 = function(self, args)
        --
        local npc = TNormNpc(args.pNpc)
        local player = args.pPlayer
        local sLabel = args.sLabel
        npc:Say('没错呢\\ \\<返回/@back>', true, player, sLabel)
        npc:GotoLabel(player, '@给他整个活', false, '')
    end,
}
return npc
 

zmY1234FCOM专注游戏工具及源码例子分享
注意:TXT脚本NPC缺失的触发自动检测相应的Lua脚本zmY1234FCOM专注游戏工具及源码例子分享



声明:本文系互联网搜索而收集整理,不以盈利性为目的,文字、图文资料源于互联网且共享于互联网。
如有侵权,请联系 yao4fvip#qq.com (#改@) 删除。