Npc = {} ----* 注册npc点击初始化 Npc.clicknpcCfg = {} ----* 注册点击NPC function clicknpc(actor, npcID, sScript) Func.sendmsg9(actor, "点击NPC:" .. npcID) if sScript == "天关接待员" then TianGuanOBJ:publicMian(actor, npcID) return end if sScript == "个人天关" then TianGuanOBJ:selfNpcMian(actor, npcID) return end if sScript == "影之道传送" then ShabaKeOBJ:shadowTransfer(actor) return end if sScript == "赤月祭坛" then MapCfg.gotomap(actor, "赤月祭坛") return end ---* 分发点击NPC消息 local cfg = Npc.clicknpcCfg[npcID] if not cfg or not cfg.main then return end cfg:main(actor, npcID) end --检查一个对象的范围 function Npc.CheckRange(obj, x, y, range) local cur_x, cur_y = getbaseinfo(obj, ConstCfg.gbase.x), getbaseinfo(obj, ConstCfg.gbase.y) local min_x, max_x = x - range, x + range local min_y, max_y = y - range, y + range if (cur_x >= min_x) and (cur_x <= max_x) and (cur_y >= min_y) and (cur_y <= max_y) then return true end return false end --检查自己与npc的距离 function Npc.CheckNPCRange(actor, npcidx, range) range = range or 15 local npcobj = getnpcbyindex(npcidx) if npcobj == "0" then return false end local npc_mapid = getbaseinfo(npcobj, ConstCfg.gbase.mapid) local my_mapid = getbaseinfo(actor, ConstCfg.gbase.mapid) if npc_mapid ~= my_mapid then return false end local npc_x = getbaseinfo(npcobj, ConstCfg.gbase.x) local npc_y = getbaseinfo(npcobj, ConstCfg.gbase.y) return Npc.CheckRange(actor, npc_x, npc_y, range) end return Npc