跳到主要内容

npc功能

NPC对话效果展示

NPC对话效果展示

上述效果展示说明:在比奇(333,266)处新增一个名叫测试员的NPC,点击测试员,展示对话框,该对话框包含标题,内容,传送功能按钮, 关闭按钮。

配置流程

  • 配置路径\dev\config\npc_cs.xlsx

  • 重要参数含义

    NPCid地图id坐标x坐标yNPC外貌NPC名字
    24133326650031测试员
  • \dev\modules\npc\npc24.lua,在该模块下新增npc文件,命名方式npcxx.lua xx表示NPCid

  • 基础结构

local util = include("npc.npc_util")--引擎提供接口

local function _onClick(player)
local root = util.build_root_context(player,module.ID)--[复制并放置最前面]获取NPC界面节点,构造NPC自身内容
util.say(player, root) --展示构造内容
end

edi.event:reg_npc_click(module.ID, _onClick) --[必加]npc点击事件注册
  • 样例说明

NPC对话框

  • 样例代码
local util = include("npc.npc_util")

local module = {}
module.ID = 24
module.Name = "测试员(新手)"

local function _onClick(player)
local root = util.build_root_context(player,module.ID)
util.add_title_btn(root, "新手-派大星")
util.content(root, "派大星和它最好的朋友海绵宝宝去比奇堡捉水母啦~")

util.add_transfer_to_static_scene_random_btn(root, "出发啦", 10)
util.add_close_btn(root, "关闭")
util.say(player, root)
end

edi.event:reg_npc_click(module.ID, _onClick)

return module
  • npc_util 控件说明
  • 获取NPC界面节点,构造NPC自身内容。build_root_context(player, npcId)参数含义:玩家对象,指定NPCid
local root = util.build_root_context(player,NPCid)
  • 添加NPC标题, add_title_btn(root, title)参数含义:NPC界面节点,NPC标题
util.add_title_btn(root, "新手-测试员")
  • 对话内容,content(root, content)参数含义:NPC界面节点,内容
util.content(root, "请进入比奇矿洞,完成任务")
  • 添加关闭按钮,add_close_btn(root, content) 参数含义:NPC界面节点,按钮标题
util.add_close_btn(root, "关闭")
  • 传送到静态场景地图指定位置 ,add_transfer_to_static_scene_btn(root, content, scene_id, x, y) 参数含义:NPC界面节点, 按钮标题, 场景ID, 坐标位置
util.add_transfer_to_static_scene_btn(root, "进入盟重", 10, 255, 255)
  • 传送到静态场景地图随机点 ,add_transfer_to_static_scene_random_btn(root, content, scene_id) 参数含义:NPC界面节点,按钮标题, 场景ID
util.add_transfer_to_static_scene_random_btn(root, "进入盟重", 10)
  • 添加打开ssr界面按钮 add_open_ssr_btn(root, content, ssrid, ...)参数含义:NPC界面节点,按钮标题,界面ID(\dev\config\ui.xlsx 表id),自定义参数列表
util.add_open_ssr_btn(root, "打开ssr界面", 11001)