|
发表于 2020-9-17 14:45:00
|
显示全部楼层
等引擎更新,自己获取隔位攻击对象
- --[[
- m2_init.lua文件中,绑定技能LUA的拓展脚本文件
- SKILLFILE("LuaEnvir\\LuaSkill.lua");
- 此文件操作各技能的效果脚本
- 其中domain中的参数n为伤害值,由M2传递进来
- 内置技能对象变量 MyMagic
- 函数说明
- getMapObjects
- 获取指定地图坐标上的对象列表,包含人物和怪物,返回列表中的对象.
- 参数为一行字符串逗号(,)为分隔符.
- 因DELPHI中的列表下标是从0开始的,故此处传入的下标数值需要减1.
- 以上函数仅在本文件内有效
- 对象可使用的方法列表:
- DamageHealth(nValue): 伤害造成血量改变,参数为负数时可以加血;
- MakePosion(nType, nTime, nPoint):中毒。中毒类型(参数1)参考HX脚本手册
- DefenceUp(nTime):增加防御力,类似道士的神圣防御加防御
- MagDefenceUp(nTime):增加魔法防御力,类似道士的幽灵盾
- OffenceUp(nTime):增加攻魔道,类似神武术
- DefenceDown(nTime):减防,同上增加方法
- MagDefenceDown(nTime)减魔防,同上
- OffenceDown(nTime)减攻魔道,同上
- MagBubbleDefenceUp(nLevel, nSec):开启nLevel等级的魔法盾nSec秒
- 可以触发:普攻,
- 战士:烈火剑法,攻杀剑术,刺杀剑术,半月弯刀,抱月剑法,龙影剑法,狂风斩,逐日剑法,开天斩,倚天辟地,野蛮冲撞,
- 法师:雷电术,大火球,爆裂火焰,地狱雷光,冰咆哮,火焰冰,群体雷电术,彻地钉,寒冰掌,灭天火,火龙之息,
- 飓风破,噬血术,流星火雨,
- 道士:灵魂火符,
- 治愈术(获取不到技能名,n值无意义)
- 幽灵盾(获取不到技能名,n值无意义)
- 神圣战甲术
- 隐身术
- 集体隐身术
- 诅咒术
- --]]
- function getFontTarget(role)
- local dir = role.direction
- local mapcode,x,y = role.mapcode,role.x,role.y
- local tarX,tarY,interval= 0,0,2
- if dir == 0 then
- tarX = x
- tarY = y - interval
- elseif dir == 1 then
- tarX = x + interval
- tarY = y - interval
- elseif dir == 2 then
- tarX = x + interval
- tarY = y
- elseif dir == 3 then
- tarX = x + interval
- tarY = y + interval
- elseif dir == 4 then
- tarX = x
- tarY = y + interval
- elseif dir == 5 then
- tarX = x - interval
- tarY = y + interval
- elseif dir == 6 then
- tarX = x - interval
- tarY = y
- elseif dir == 7 then
- tarX = x - interval
- tarY = y - interval
- end
- -- 返回目标坐标对象列表的第一个
- return unpack(server.getMapObjects(mapcode,tarX,tarY,0),1,1)
- end
- function domain(n)
- local role = server.getMyself()
- local target = role.getTarget() or getFontTarget(role) -- 近身攻击目标找不到就找隔位攻击目标
- if MyMagic.magicname ~= "普通攻击" then
- server.print(string.format("name:%s idx:%d power:%d",MyMagic.magicname,MyMagic.magidx,MyMagic.power))
- server.print(string.format(" 目标%s在(%d,%d)被%s攻击.",target.name,target.x,target.y,role.name))
- end
- --role.attackTarget(81)
- --target.damageHealth(50)
-
- if role and role.race == 0 and not role.isDummy then
- if(GlobalUtils) then
- server.print('初始值'..n)
- if(role.checkinarea(0) == 0) and (target.checkinarea(0) == 0) and (target.race~=10 and target.race~=11) then
- n = GlobalUtils.roleLuaNewAttr(role,target,n) + GlobalUtils.roleLuaSkillPD(role,target,MyMagic,n)
- server.print('加成后'..n)
- end
- end
- end
-
- return n
- end
- --[[
- Lua 内存占用记录打印示例:
- local mri = require("Envir.LuaEnvir.Plugins.gc.MemoryReferenceInfo")
- mri.m_cConfig.m_bAllMemoryRefFileAddTime = false
- mri.m_cMethods.DumpMemorySnapshot("./Envir/LuaEnvir/Plugins/gc/log", "1-Before", -1)
- mri.m_cMethods.DumpMemorySnapshot("./Envir/LuaEnvir/Plugins/gc/log", "2-After", -1)
- mri.m_cMethods.DumpMemorySnapshotComparedFile("./Envir/LuaEnvir/Plugins/gc/log", "Compared", -1, "./Envir/LuaEnvir/Plugins/gc/log/LuaMemRefInfo-All-[1-Before].txt", "./Envir/LuaEnvir/Plugins/gc/log/LuaMemRefInfo-All-[2-After].txt")
- --]]
复制代码 |
|