龙族风的影子 发表于 2020-9-10 21:14:07

LUA模块GOM套装技能威力有点问题


liuxu 发表于 2020-9-17 09:06:57

正在处理,关注更新日志

lua啊lua 发表于 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-.txt", "./Envir/LuaEnvir/Plugins/gc/log/LuaMemRefInfo-All-.txt")
--]]


页: [1]
查看完整版本: LUA模块GOM套装技能威力有点问题