魔法门吧 关注:26,313贴子:411,734

回复:整合版休闲脚本--增加物理系伤害,同时杀死怪物有额外奖励

只看楼主收藏回复

我刚改的打怪也打出高额伤害了


IP属地:上海来自Android客户端18楼2023-06-23 21:39
收起回复


    IP属地:广东19楼2023-06-23 21:40
    回复
      这么牛的脚本,要是把他们做成几个神器就更好玩了


      IP属地:湖南20楼2023-06-24 09:08
      回复
        小白的整合版,打开ZHCN_ItemsTxt文件,发现有好多神器,但是实际上并没有
        545 远 战 大 师 圣 物 弓 箭 技 能 依 等 级 附 加 伤 害 并 减 少 攻 击 恢 复 间 隔 。
        546 武 器 大 师 圣 物 武 器 使 用 术 能 附 加 伤 害 并 减 少 攻 击 恢 复 间 隔 。
        547 暗 夜 舞 者 圣 物 武 器 使 用 术 能 增 加 所 有 武 器 技 能 与 空 手 博 斗 术 等 级 。
        548 弓 箭 大 师 圣 物 ( 弓 箭 技 能 增 加 5 级 ) 弓 箭 技 能 每 级 附 加 一 点 伤 害 并 减 少 攻 击 间 隔 。
        549 格 斗 之 王 圣 物 空 手 博 斗 术 与 闪 躲 术 按 技 能 等 级 附 加 伤 害 并 减 少 攻 击 恢 复 间 隔 。
        550 格 斗 权 杖 圣 物 手 杖 , 空 手 博 斗 术 及 闪 躲 术 +5 , 手 杖 与 空 手 博 斗 术 按 技 能 等 级 附 加 一 点 伤 害 并 减 少 攻 击 间 隔 , 手 杖 技 能 按 等 级 增 加 闪 躲 术 与 空 手 博 斗 术 等 级 。
        551 荣 耀 之 剑 圣 物 ( 长 剑 技 能 增 加 5 级 ) 长 剑 与 武 器 使 用 术 技 能 等 级 最 高 者 每 级 附 加 一 点 伤 害 并 减 少 攻 击 间 隔 , 吸 血 属 性 。
        552 屠 杀 之 斧 圣 物 ( 战 斧 技 能 增 加 5 级 ) 战 斧 与 武 器 使 用 术 技 能 等 级 最 高 者 每 级 附 加 一 点 伤 害 并 减 少 攻 击 间 隔 , 吸 血 属 性 。
        553 天 外 飞 锤 圣 物 ( 钉 锤 技 能 增 加 5 级 ) 钉 锤 与 武 器 使 用 术 技 能 等 级 最 高 者 每 级 附 加 一 点 伤 害 并 减 少 攻 击 间 隔 , 吸 血 属 性 。
        554 长 虹 贯 日 圣 物 ( 长 矛 技 能 增 加 5 级 ) 长 矛 与 武 器 使 用 术 技 能 等 级 最 高 者 每 级 附 加 一 点 伤 害 并 减 少 攻 击 间 隔 , 吸 血 属 性 。
        555 生 命 指 环 圣 物 ( 健 身 术 增 加 5 级 ) 根 据 健 身 术 技 能 等 级 回 复 HP ( 普 通 2 倍 效 果 , 专 家 5 倍 , 大 师 9 倍 , 宗 师 15 倍 效 果 ) 。
        556 魔 法 指 环 圣 物 ( 冥 想 术 增 加 5 级 ) 根 据 冥 想 术 技 能 等 级 回 复 SP ( 普 通 2 倍 效 果 , 专 家 5 倍 , 大 师 9 倍 , 宗 师 15 倍 效 果 ) 。
        557 力 量 指 环 圣 物 根 据 玩 家 耐 力 值 回 复 HP 。
        558 能 量 指 环 圣 物 根 据 玩 家 个 性 值 或 智 力 值 回 复 SP ( 取 二 者 最 大 值 决 定 回 复 效 果 ) 。
        559 泰 坦 指 环 圣 物 根 据 玩 家 耐 力 值 回 复 HP , 根 据 玩 家 个 性 值 或 智 力 值 回 复 SP ( 取 二 者 最 大 值 决 定 回 复 效 果 ) 。
        560 好 运 护 符 圣 物 根 据 玩 家 幸 运 值 提 升 全 元 素 与 自 我 魔 法 抗 性 ( 每 2 点 幸 运 属 性 提 供 1 点 效 果 ) 。
        561 神 速 圣 物 根 据 玩 家 速 度 值 提 升 攻 击 速 度 ( 每 15 点 速 度 属 性 降 低 1 点 攻 击 恢 复 间 隔 ) 。
        562 神 力 圣 物 根 据 玩 家 力 量 值 提 升 攻 击 伤 害 与 命 中 概 率 ( 每 5 点 力 量 属 性 提 供 1 点 效 果 ) 。
        563 神 之 守 护 圣 物 ( 四 系 元 素 魔 法 或 三 系 自 我 魔 法 能 强 化 光 明 与 黑 暗 魔 法 效 果 。 同 时 , 光 明 与 黑 暗 魔 法 等 级 也 能 平 均 分 配 至 元 素 或 自 我 魔 法 强 化 其 效 果 ) 这 双 缭 绕 着 莫 名 光 蕴 的 手 套 受 到 了 光 明 与 黑 暗 之 神 的 祝 福 , 能 为 配 戴 者 带 来 极 其 强 大 的 魔 法 力 量 。
        564 元 素 之 戒 圣 物 ( 四 系 元 素 魔 法 之 神 曾 经 使 用 并 祝 福 过 的 神 器 戒 指 , 上 面 隐 约 可 见 岁 月 刻 下 的 痕 迹 : 火 焰 象 征 极 速 与 破 坏 , 空 气 象 征 灵 巧 与 速 度 , 流 水 象 征 智 慧 与 魔 法 , 大 地 象 征 忍 耐 与 生 命 ) 这 枚 元 素 之 戒 能 全 面 提 升 配 戴 者 的 各 项 能 力 。
        565 自 我 之 戒 圣 物 ( 三 系 自 我 魔 法 之 神 曾 经 使 用 并 祝 福 过 的 神 器 戒 指 , 上 面 隐 约 可 见 岁 月 刻 下 的 痕 迹 : 灵 魂 象 征 人 格 与 魔 法 , 心 智 象 征 极 速 与 破 坏 , 肢 体 象 征 忍 耐 与 生 命 ) 这 枚 自 我 之 戒 能 全 面 提 升 配 戴 者 的 各 项 能 力 。
        566 混 沌 之 戒 圣 物 ( 两 系 混 沌 魔 法 之 神 曾 经 使 用 并 祝 福 过 的 神 器 戒 指 , 上 面 隐 约 可 见 岁 月 刻 下 的 痕 迹 : 光 明 象 征 治 愈 与 生 命 , 黑 暗 象 征 毁 灭 与 破 坏 ) 这 枚 混 沌 之 戒 能 全 面 提 升 配 戴 者 的 各 项 能 力 。
        567 大 爹 之 戒 圣 物 根 据 武 器 使 用 术 , 空 手 博 斗 术 及 弓 箭 技 能 等 级 最 高 者 减 少 攻 击 恢 复 间 隔 并 附 加 伤 害。
        568 烈 焰 狂 刀 圣 物


        IP属地:湖南21楼2023-06-24 09:13
        收起回复
          大佬强!


          IP属地:江苏22楼2023-06-25 08:53
          回复
            我就在laser大神的代码上改了一点点。
            我2.81版里的代码:
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then -- 剑
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Sword])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Sword then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            if mas1 == const.Master then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*8)
            end
            if mas1 == const.GM then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*9)
            end
            if mas1 <= const.Expert then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*5)
            end
            end
            end
            end
            end
            ---------------------------------
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then -- 匕首
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Dagger])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Dagger then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            if mas1 == const.Master then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*8)
            end
            if mas1 == const.GM then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*9)
            end
            if mas1 <= const.Expert then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*5)
            end
            end
            end
            end
            end
            --------------------------------------------------
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then -- 斧
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Axe])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Axe then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            if mas1 == const.Master then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*8)
            end
            if mas1 == const.GM then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*9)
            end
            if mas1 <= const.Expert then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*5)
            end
            end
            end
            end
            end
            -------------------------------------------------------------------------------
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then -- 棍棒
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Staff])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            local sk2, mas2 = SplitSkill(t.Player.Skills[const.Skills.Unarmed])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Staff then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            if mas1 == const.Master then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*8)+math.max(0,(sk2-10)*2)
            end
            if mas1 == const.GM then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*9)+math.max(0,(sk2-10)*2)
            end
            if mas1 <= const.Expert then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*5)+math.max(0,(sk2-10)*2)
            end
            end
            end
            end
            end
            -------------------------------------------------------------------------------
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then -- 矛
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Spear])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Spear then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            if mas1 == const.Master then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*8)
            end
            if mas1 == const.GM then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*9)
            end
            if mas1 <= const.Expert then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*5)
            end
            end
            end
            end
            end
            -------------------------------------------------------------------------------
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then --锤棍
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Mace])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Mace then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            if mas1 == const.Master then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*8)
            end
            if mas1 == const.GM then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*9)
            end
            if mas1 <= const.Expert then
            t.Result = t.Result + math.max(0,(mi-300)*2)+math.max(0,(sk-10)*15)+math.max(0,(sk1-10)*5)
            end
            end
            end
            end
            end
            -------------------------------------------------------------------------------
            function events.CalcStatBonusBySkills(t)
            if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then --弓
            local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Bow])
            local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
            if mas == const.GM then -----const.Novice是基础,const.Expert是专家,const.Master是大师,const.GM是宗师
            local it = t.Player:GetActiveItem(const.ItemSlot.MainHand)
            if it and it:T().Skill == const.Skills.Bow then
            local le= t.Player:GetLevel()
            local mi= t.Player:GetMight()
            local sp= t.Player:GetSpeed()
            local en= t.Player:GetBaseEndurance()
            local ac= t.Player:GetBaseAccuracy()
            local lu= t.Player:GetBaseLuck()
            local nt= t.Player:GetBaseIntellect()
            local pe= t.Player:GetBasePersonality()
            t.Result = t.Result +math.max(0,(sk-10)*3)
            end
            end
            end
            end


            IP属地:上海24楼2023-06-26 21:58
            收起回复
              优化了下脚本,现在只有武器使用术和空手能加强物理伤害。现在主手拿任何武器都能增加伤害了(除了榴弹枪)。
              function events.CalcStatBonusBySkills(t)
              if t.Result ~= 0 and t.Stat == const.Stats.MeleeDamageBase then -- 近战
              local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
              local sk2, mas2 = SplitSkill(t.Player.Skills[const.Skills.Unarmed])
              if mas1 >= const.Novice or mas2 >= const.Novice
              then
              local le= t.Player:GetLevel()
              local mi= t.Player:GetMight()
              local sp= t.Player:GetSpeed()
              local en= t.Player:GetBaseEndurance()
              local ac= t.Player:GetBaseAccuracy()
              local lu= t.Player:GetBaseLuck()
              local nt= t.Player:GetBaseIntellect()
              local pe= t.Player:GetBasePersonality()
              local tr1= math.min(1000, (mi + sp))
              local tr2= math.min(1500, (en + ac + lu))
              local tr3= math.min(1000, (nt + pe))
              if mas1 >= mas2 then
              t.Result = t.Result + (t.Result + sk1*mas1)*tr1/400+ (t.Result + sk1*mas1)*le/10+ (t.Result + sk1*mas1)*tr2/750+ (t.Result + sk1*mas1)*tr3/900
              else
              t.Result = t.Result + (t.Result + sk2*mas2)*tr1/400+ (t.Result + sk2*mas2)*le/10+ (t.Result + sk2*mas2)*tr2/750+ (t.Result + sk2*mas2)*tr3/900
              end
              end
              end
              end
              ---------------------------------
              function events.CalcStatBonusBySkills(t)
              if t.Stat == const.Stats.RangedDamageBase then
              local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Bow]) -- 远程
              if mas >= const.Novice then
              local it = t.Player:GetActiveItem(const.ItemSlot.Bow)
              if it and it:T().Skill == const.Skills.Bow then
              local le= t.Player:GetLevel()
              local mi= t.Player:GetMight()
              local sp= t.Player:GetSpeed()
              local en= t.Player:GetBaseEndurance()
              local ac= t.Player:GetBaseAccuracy()
              local lu= t.Player:GetBaseLuck()
              local nt= t.Player:GetBaseIntellect()
              local pe= t.Player:GetBasePersonality()
              local tr1= math.min(1000, (mi + sp))
              local tr2= math.min(1500, (en + ac + lu))
              local tr3= math.min(1000, (nt + pe))
              t.Result = t.Result + (t.Result + sk*mas)*tr1/400+ (t.Result + sk*mas)*le/20+ (t.Result + sk*mas)*tr2/750+ (t.Result + sk)*tr3/900
              end
              end
              end
              end


              IP属地:广东26楼2023-07-03 21:32
              回复
                再次更新,所有武器武器都能随着人物等级,技能等级,武器使用术和空手的等级和相关掌握程度增加伤害。
                function events.CalcStatBonusBySkills(t)
                if t.Stat == const.Stats.MeleeDamageBase then -- 近战
                local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
                local sk2, mas2 = SplitSkill(t.Player.Skills[const.Skills.Unarmed])
                local sk3, mas3 = SplitSkill(t.Player.Skills[const.Skills.Staff])
                local sk4, mas4 = SplitSkill(t.Player.Skills[const.Skills.Sword])
                local sk5, mas5 = SplitSkill(t.Player.Skills[const.Skills.Dagger])
                local sk6, mas6 = SplitSkill(t.Player.Skills[const.Skills.Axe])
                local sk7, mas7 = SplitSkill(t.Player.Skills[const.Skills.Spear])
                local sk8, mas8 = SplitSkill(t.Player.Skills[const.Skills.Mace])
                local skM= math.max(sk1, sk2, sk3, (2*sk4), sk5, sk6, sk7, sk8)
                local skW= math.max(sk3, (2*sk4), sk5, sk6, sk7, sk8)
                if skM >= 1 then
                local le= t.Player:GetLevel()
                local mi= t.Player:GetMight()
                local sp= t.Player:GetSpeed()
                local en= t.Player:GetBaseEndurance()
                local ac= t.Player:GetBaseAccuracy()
                local lu= t.Player:GetBaseLuck()
                local nt= t.Player:GetBaseIntellect()
                local pe= t.Player:GetBasePersonality()
                local tr1= math.min(1000, (mi + sp))
                local tr2= math.min(1500, (en + ac + lu))
                local tr3= math.min(1000, (nt + pe))
                if mas1 >= mas2 then
                t.Result = t.Result + skW*le/5+ (t.Result + sk1*mas1)*tr1/400+ t.Result * sk1*mas1/8+ (t.Result + sk1*mas1)*tr2/750+ (t.Result + sk1*mas1)*tr3/900
                else
                t.Result = t.Result + skW*le/5+ (t.Result + sk2*mas2)*tr1/400+ t.Result * sk2*mas2/8+ (t.Result + sk2*mas2)*tr2/750+ (t.Result + sk2*mas2)*tr3/900
                end
                end
                end
                end
                ---------------------------------
                function events.CalcStatBonusBySkills(t)
                if t.Stat == const.Stats.RangedDamageBase then
                local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Bow]) -- 远程
                if mas >= const.Novice then
                local it = t.Player:GetActiveItem(const.ItemSlot.Bow)
                if it and it:T().Skill == const.Skills.Bow then
                local le= t.Player:GetLevel()
                local mi= t.Player:GetMight()
                local sp= t.Player:GetSpeed()
                local en= t.Player:GetBaseEndurance()
                local ac= t.Player:GetBaseAccuracy()
                local lu= t.Player:GetBaseLuck()
                local nt= t.Player:GetBaseIntellect()
                local pe= t.Player:GetBasePersonality()
                local tr1= math.min(1000, (mi + sp))
                local tr2= math.min(1500, (en + ac + lu))
                local tr3= math.min(1000, (nt + pe))
                t.Result = t.Result + (t.Result + sk*mas)*tr1/400+ (t.Result + sk*mas)*le/80+ (t.Result + sk*mas)*tr2/750+ (t.Result + sk)*tr3/900
                end
                end
                end
                end


                IP属地:广东27楼2023-07-03 23:04
                回复
                  laserluo大,我发现一个小问题。
                  你的代码好像只对自己加的技能点数有效果,如果是物品加的和随从加的武器技能点数则没效果。
                  我试了一下,好像只要把local sk1, mas1 = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
                  改成local sk1, mas1 = SplitSkill(t.Player:GetSkill(const.Skills.Armsmaster))
                  就行了,你看看有没有问题


                  IP属地:上海29楼2023-07-05 19:55
                  收起回复
                    补上2段武器使用术加近战攻击,和弓箭技能加远程攻击的代码。以免命中率不够。
                    function events.CalcStatBonusBySkills(t)
                    if t.Stat == const.Stats.MeleeAttack then
                    local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Armsmaster])
                    if mas >= const.Novice then
                    local le= t.Player:GetLevel()
                    t.Result = t.Result + sk*mas*le
                    end
                    end
                    end
                    ------------------------------
                    function events.CalcStatBonusBySkills(t)
                    if t.Stat == const.Stats.RangedAttack then
                    local sk, mas = SplitSkill(t.Player.Skills[const.Skills.Bow])
                    if mas >= const.Novice then
                    local le= t.Player:GetLevel()
                    t.Result = t.Result + sk*mas*le
                    end
                    end
                    end


                    IP属地:广东30楼2023-07-07 20:33
                    回复
                      再共享个之前大神们写的自动升级,避免训练的脚本。个人喜好哈。
                      function AutoTrain()
                      for _, player in Party do
                      newLevelBase = math.floor(math.sqrt(player.Experience / 500 + 1/4) - 1/2) + 1
                      if newLevelBase > player.LevelBase then
                      player.LevelBase = player.LevelBase + 1
                      player.SkillPoints = player.SkillPoints + (math.floor(player.LevelBase / 10) + 5) * 1
                      end
                      end
                      RemoveTimer(AutoTrain)
                      end
                      function events.MonsterKilled()
                      Timer(AutoTrain, const.Second)
                      end
                      function events.ExitNPC()
                      AutoTrain()
                      end
                      function events.AfterLoadMap()
                      AutoTrain()
                      end


                      IP属地:广东31楼2023-07-07 20:45
                      回复
                        @chensan13, 下面是一些我自己改的脚本,除了MenuChooseCharacter(这个脚本一般不建议调整,定义游戏开始角色的技能和物品,以及其他一些内容)放到\Scripts\General,其他的放到\Scripts\Global,应该可以解决你的问题。
                        链接:https://pan.baidu.com/s/14jbJIPfvvjIH3rzmK3F1XA?pwd=a123
                        提取码:a123


                        IP属地:广东32楼2023-07-08 06:26
                        收起回复
                          简单介绍下我共享的脚本:
                          1.旅行宝戒指男女角色通用,是最强宝物,所有异常状态免疫,火免疫,加武器使用术10点,箭术10点和100点基础属性,80点血法,为宝物额外技能可累加;
                          2.兵器大师为最强NPC;
                          3.杀死怪物得到属性奖励,物品和神器奖励;
                          4.可以自动升级,不需要训练;
                          5.范围伤害除了帕西弗远程有点用之外,近战范围伤害已经很弱鸡了。最强物理伤害应该是下面三位其中之一,一个是宗师剑术和宗师武器使用术,双持华里斯的骑士,一个是宗师矛和宗师武器使用术单持神器叉的骑士,另外一个是宗师空手,宗师棍子和大师武器使用术的僧侣。


                          IP属地:广东33楼2023-07-08 07:12
                          收起回复
                            试了下,想增加弓的伤害只有在ExtraArtifacts.lua里面加入下面代码,可以增加伤害,但只能是对神器弓有用了。
                            -- -- Percival只对神器弓帕西弗有用,想改为其他神器弓箭,需要把下面的2025改为相应的物品ID。
                            OnHitEffects[2025] = {
                            Add= 10,
                            Special = function(t)
                            local le= t.Player:GetLevel()
                            local sk2, mas2 = SplitSkill(t.Player:GetSkill(const.Skills.Bow))
                            local mi= t.Player:GetMight()
                            local tr1= math.min(500, mi )
                            t.Result = t.Result + tr1*t.Result+ sk2*mas2*le
                            end}


                            IP属地:广东34楼2023-07-11 23:04
                            回复
                              玩得很开心😄,谢谢楼主


                              IP属地:上海来自Android客户端35楼2023-07-17 14:15
                              回复