搜索
查看: 2244|回复: 19

经脉系统

[复制链接]
发表于 2021-3-21 11:19:01 | 显示全部楼层 |阅读模式
经脉系统,经脉加点类型倍攻、魔血、神圣属性、神圣防御、等级、心法等级、杀怪爆率。倍攻,最大10级,每级附加30%倍攻。魔血,最大10级,每级附加20%魔血。
神圣属性,最大10级,每级附加25%神圣属性。神圣防御,最大10级,每级50%神圣防御。
等级、心法等级,最大10级,每级提升1级。
杀怪爆率,最大10级,每级提升50%杀怪爆率。

多种路线,可以堆等级,堆杀怪爆率,堆魔血……

经脉点数有限,无法全满,未做重置加点功能。
等级和心法等级有压制效果,需要双方满级,一方的附加等级比一方等级高才能触发压制效果。
文件有点大,有补丁,所以传的网盘。永久有效的,链接挂了,请回帖或私信我。



补充内容 (2021-3-21 11:31):
补丁的密码均为HGEM2

补充内容 (2021-3-21 12:08):
关于等级限制,我这等级和心法等级上限1000,具体等级请根据自己版本更改。

补充内容 (2021-11-17 15:22):
原链接地址已失效,下载请移至17楼。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 2金钱 +1 热心值 +1 收起 理由
马不停蹄回城 + 1 连接已失效
咔咔咔咔咔咔 + 1 很给力!

查看全部评分

发表于 2021-3-21 11:36:33 | 显示全部楼层
 楼主| 发表于 2021-3-21 12:45:43 | 显示全部楼层
补充下,忘记加判断自身等级或心法等级(满级的前提下)比对方高(满级的前提下),是否经脉加点附加。
--计算攻击威力(返回输出威力,根据攻击者的等级,等级比对方高,造成额外伤害)
function on_GetAttackPower2(actor, Target, nPoint)
  local incPoint = 0
  local RaceId = actor:getRace()--种族ID
        if (RaceId == 66) or (RaceId == 0) then--(英雄或人物)按角色的等级,进行威力加倍输出
        local  level = actor:getLevel()        --取角色(攻击者)等级
        local  objlevel = Target:getLevel()        --取角色(目标对象)等级
        local sublv = level - objlevel
        local RaceId2 = Target:getRace()--种族ID
        local a1 = s.share.getMaxLevel()
        if level < a1 or objlevel < a1 then
                return
        else
    --判断附加的等级是否经脉加点所附加,若不是则返回       
        local Level = actor:getHumanVar("主号角色等级")
        local HeroLevel = actor:getHumanVar("英雄角色等级")  
                if Level == 0 then
                        return
                end
                if HeroLevel == 0 then
                        return
                end       
        end       
        if sublv > 0 then
                if (RaceId2 == 66) or (RaceId2 == 0) then--(目标是英雄或人物)按攻击角色的等级,进行威力加倍承受
                        for i = 1,sublv do
                                 incPoint= math.round(nPoint * (1 + i * 0.2))
                        end
                        local point = nPoint + incPoint
                        actor:sendMsg(1,"["..actor:getCharName().."]等级比对手".."["..Target:getCharName().."]高["..tostring(sublv).."]级,每级造成的威力加成20%,造成额外伤害["..tostring(incPoint).."]".."总威力为:"..point,-1,-1)  
                end
        end
        end
        return nPoint + incPoint
end

--计算攻击威力(返回输出威力,根据攻击者的心法等级,心法等级比对方高,造成额外伤害)
function on_GetAttackPower3(actor, Target, nPoint)
  local incPoint = 0
  local RaceId = actor:getRace()--种族ID
  if (RaceId == 66) or (RaceId == 0) then--(英雄或人物)按角色的等级,进行威力加倍输出
    local  level = actor:getHeartLevel()        --取角色(攻击者)心法等级
        local  objlevel = Target:getHeartLevel()        --取角色(目标对象)心法等级
        local sublv = level - objlevel
        local RaceId2 = Target:getRace()--种族ID
        if level < 999 or objlevel < 999 then
                return
        else
      --判断附加的心法等级是否经脉加点所附加,若不是则返回               
          local Level = actor:getHumanVar("主号心法等级")
          local HeroLevel = actor:getHumanVar("英雄心法等级")  
          if Level == 0 then
                return
          end
           if HeroLevel == 0 then
                return
          end         
        end       
        if sublv > 0 then
                if (RaceId2 == 66) or (RaceId2 == 0) then--(目标是英雄或人物)按攻击心法的等级,进行威力加倍承受
                        for i = 1,sublv do
                                 incPoint= math.round(nPoint * (1 + i * 0.3))
                        end
                        local point = nPoint + incPoint
                        actor:sendMsg(1,"["..actor:getCharName().."]心法等级比对手".."["..Target:getCharName().."]高["..tostring(sublv).."]级,每级造成的威力加成30%,造成额外伤害["..tostring(incPoint).."]".."总威力为:"..point,-1,-1)  
                end
        end
  end
  return nPoint + incPoint
end

 楼主| 发表于 2021-3-21 13:33:47 | 显示全部楼层
楼上的代码报错,因为只有主号才能读取自定义变量,要将英雄转主号才能读取变量。
--计算攻击威力(返回输出威力,根据攻击者的等级,等级比对方高,造成额外伤害)
function on_GetAttackPower2(actor, Target, nPoint)
        local incPoint = 0
        local RaceId = actor:getRace()--种族ID
        local Level = 0
        local HeroLevel = 0  
        if RaceId == 0 then  
                Level = actor:getHumanVar("主号角色等级")
                HeroLevel = actor:getHumanVar("英雄角色等级")
        else
                local masterActor = actor:getMaster()--获取主人对像
                if masterActor ~= nil then
                  local masteroname = masterActor:getCharName()       
                  --print("主人:["..masteroname.."]")
                Level = masterActor:getHumanVar("主号角色等级")
                HeroLevel = masterActor:getHumanVar("英雄角色等级")                
                end
        end       
        if (RaceId == 66) or (RaceId == 0) then--(英雄或人物)按角色的等级,进行威力加倍输出
        local  level = actor:getLevel()        --取角色(攻击者)等级
        local  objlevel = Target:getLevel()        --取角色(目标对象)等级
        local sublv = level - objlevel
        local RaceId2 = Target:getRace()--种族ID
        local a1 = s.share.getMaxLevel()
        if level < a1 or objlevel < a1 then
                return
        else
        --判断附加的等级是否经脉加点所附加,若不是则返回       
                if Level == 0 and HeroLevel  == 0 then
                        return
                end
        end       
        if sublv > 0 then
                if (RaceId2 == 66) or (RaceId2 == 0) then--(目标是英雄或人物)按攻击角色的等级,进行威力加倍承受
                        for i = 1,sublv do
                                 incPoint= math.round(nPoint * (1 + i * 0.2))
                        end
                        local point = nPoint + incPoint
                        actor:sendMsg(1,"["..actor:getCharName().."]等级比对手".."["..Target:getCharName().."]高["..tostring(sublv).."]级,每级造成的威力加成20%,造成额外伤害["..tostring(incPoint).."]".."总威力为:"..point,-1,-1)  
                end
        end
        end
        return nPoint + incPoint
end

--计算攻击威力(返回输出威力,根据攻击者的心法等级,心法等级比对方高,造成额外伤害)
function on_GetAttackPower3(actor, Target, nPoint)
        local incPoint = 0
        local RaceId = actor:getRace()--种族ID
        local Level = 0
        local HeroLevel = 0
        if RaceId == 0 then  
                Level = actor:getHumanVar("主号心法等级")
                HeroLevel = actor:getHumanVar("英雄心法等级")
        else
                local masterActor = actor:getMaster()--获取主人对像
                if masterActor ~= nil then
                        local masteroname = masterActor:getCharName()       
                        --print("主人:["..masteroname.."]")
                        Level = masterActor:getHumanVar("主号心法等级")
                        HeroLevel = masterActor:getHumanVar("英雄心法等级")                
                end
        end               
        if (RaceId == 66) or (RaceId == 0) then--(英雄或人物)按角色的等级,进行威力加倍输出
        local  level = actor:getHeartLevel()        --取角色(攻击者)心法等级
        local  objlevel = Target:getHeartLevel()        --取角色(目标对象)心法等级
        local sublv = level - objlevel
        local RaceId2 = Target:getRace()--种族ID
        if level < 999 or objlevel < 999 then
                return
        else
                --判断附加的心法等级是否经脉加点所附加,若不是则返回               
                if Level == 0 and HeroLevel  == 0 then
                        return
                end
        end       
        if sublv > 0 then
                if (RaceId2 == 66) or (RaceId2 == 0) then--(目标是英雄或人物)按攻击心法的等级,进行威力加倍承受
                        for i = 1,sublv do
                                 incPoint= math.round(nPoint * (1 + i * 0.3))
                        end
                        local point = nPoint + incPoint
                        actor:sendMsg(1,"["..actor:getCharName().."]心法等级比对手".."["..Target:getCharName().."]高["..tostring(sublv).."]级,每级造成的威力加成30%,造成额外伤害["..tostring(incPoint).."]".."总威力为:"..point,-1,-1)  
                end
        end
        end
        return nPoint + incPoint
end

发表于 2021-3-21 13:46:08 | 显示全部楼层
这个厉害了
发表于 2021-3-21 14:22:37 | 显示全部楼层
好像树根啊
发表于 2021-3-21 17:29:38 | 显示全部楼层
感谢大神的无私分享,祝合家欢乐,万事如意。
发表于 2021-3-21 17:30:41 | 显示全部楼层
功能很强大,就是界面看着眼花
 楼主| 发表于 2021-3-21 17:31:41 | 显示全部楼层
修改了下,现在只判断双方经脉加点的角色等级和心法等级,前提还是需要满级。比如,自己等级是1003,心法等级是1005,只对低于自己经脉角色等级或心法等级对手有效,反之则无效。
额外威力的提示我注释了,需要测试,请自行去除注释。

主号等级,调整主号等级的脚本命令突然不能用,只好在Lua提升主号等级了。
心法等级达到上限,脚本命令只提升一级,所以心法不能满级。解决办法是心法上限1010级,到1000级就限制心法升级,只可通过经脉加点升级。
剩下只有判断是否有装备提升等级或心法等级的物品,若有就添加变量保存,重新登陆后读取统计起来提升等级。

这个就不做了,主要是懒。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2021-3-22 12:10:31 | 显示全部楼层
6666666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2024-11-21 23:36 , Processed in 0.545623 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表