找回密码
 register

QQ登录

只需一步,快速开始

搜索
查看: 147|回复: 1

[功能移植] 新源端X64中MDEX属性结算使用教程V0.1

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:375
  • 打卡月天数:23
  • 打卡总奖励:373
  • 最近打卡:2025-12-23 12:42:07
Waylee 发表于 2025-12-20 19:56 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

文章编辑:雪舞

本内容需配套引擎动态库:https://waylee.net/thread-3513-1-1.html

适合版本:X64位客户端 + X64位服务端 武道三版本

脚本下载地址(1金币):

回调脚本文件下载.zip (3.86 KB, 下载次数: 0)

如果不想下载附件,直接复制下面内容粘贴到你的版本里也可以!

ScriptGlobal.lua 添加内容

--MDEX属性引擎读取位
SYS_MAX_HP              = 200   --血上限
SYS_MAX_MP              = 201   --气上限
SYS_STR                 = 202   --力量
SYS_SPR                 = 203   --灵气
SYS_CON                 = 204   --体力
SYS_INT                 = 205   --定力
SYS_DEX                 = 206   --身法
SYS_WG                  = 207   --外功攻击
SYS_WF                  = 208   --外功防御
SYS_NG                  = 209   --内功攻击
SYS_NF                  = 210   --内功防御
SYS_MISS                = 211   --MISS
SYS_HIT                 = 212   --HIT
SYS_HUIXINGONG          = 213   --会心攻击
SYS_HUIXINFANG          = 214   --会心防御
SYS_ICE_ATTR            = 215   --冰攻
SYS_FIRE_ATTR           = 216   --火攻
SYS_LIGHT_ATTR          = 217   --玄攻
SYS_POSION_ATTR         = 218   --毒攻
SYS_ICE_DEC             = 219   --冰抗
SYS_FIRE_DEC            = 220   --火抗
SYS_LIGHT_DEC           = 221   --玄抗
SYS_POSION_DEC          = 222   --毒抗
SYS_ICE_SUB_DEC         = 223   --减冰抗
SYS_FIRE_SUB_DEC        = 224   --减火抗
SYS_LIGHT_SUB_DEC       = 225   --减玄抗
SYS_POSION_SUB_DEC      = 226   --减毒抗
SYS_ICE_SUB_LIMIT       = 227   --减冰抗下限
SYS_FIRE_SUB_LIMIT      = 228   --减火抗下限
SYS_LIGHT_SUB_LIMIT     = 229   --减玄抗下限
SYS_POSION_SUB_LIMIT    = 230   --减毒抗下限
SYS_MAX_HP_PERSENT      = 231   --血上限增加百分比 

Script.dat 脚本注册:

注意,下面代码任何字都要复制,包括 @WAYLEE 这一行代码

;穿戴完成\脱下完成
888892=\event\system\Callback_HumanEquip.lua
;属性结算脚本
866010=\event\system\EquipAttrComputeNew.lua
;@WAYLEE脚本加载结束@WAYLEE

结算脚本:

/home/tlbb1/Public/Data/Script/event/system/EquipAttrComputeNew.lua

--===================================================
-- 人物装备属性计算 EQUIP_COMPUTE
-- @雪舞制作 2025-12-20 V1.2
--===================================================

--**********************************
--刷新人物属性函数
--**********************************
function x866010_StartComputeHumanData(sceneId,selfId,Update)
    if sceneId < 0 or selfId < 14999 or selfId > 29999 then
        return
    end

    if LuaFnIsObjValid(sceneId,selfId) ~= 1 or LuaFnIsCanDoScriptLogic(sceneId,selfId) ~= 1 then 
        return
    end

    local nLevel = GetLevel(sceneId,selfId)     

    --**********************************
    --基础属性
    --**********************************
    local STR,SPR,CON,INT,DEX,HP,MP,HP_PERSENT = 0,0,0,0,0,0,0,0

    --百分比血上限
    HP_PERSENT = 0
    --血量:
    HP  = 0
    --蓝量:
    MP  = 0
    --力量:
    STR = 0
    --灵气:
    SPR = 0
    --体力:
    CON = 0
    --定力:
    INT = 0
    --身法:
    DEX = 0

    --**********************************
    --二级属性
    --**********************************
    local AttackPhysics,AttackMagic,DefencePhysics,DefenceMagic,Hit,Miss,CriticalAttack,CriticalDefence = 0,0,0,0,0,0,0,0
    --外功攻击:
    AttackPhysics   = 0
    --内功攻击:
    AttackMagic     = 0
    --外功防御:
    DefencePhysics  = 0
    --内功防御:
    DefenceMagic    = 0
    --命中:
    Hit             = 0
    --闪避:
    Miss            = 0
    --会心攻击:
    CriticalAttack  = 0
    --会心防御:
    CriticalDefence = 0

    --**********************************
    --冰火玄毒属性:属性攻击
    --**********************************
    local IceAttack,FireAttack,LightAttack,PosionAttack = 0,0,0,0
    IceAttack       = 0
    FireAttack      = 0
    LightAttack     = 0
    PosionAttack    = 0

    --**********************************
    --冰火玄毒属性:属性抗
    --**********************************
    local IceDefence,FireDefence,LightDefence,PosionDefence = 0,0,0,0
    IceDefence      = 0
    FireDefence     = 0
    LightDefence    = 0
    PosionDefence   = 0

    --**********************************
    --属性减抗
    --**********************************
    local IceSubDefence,FireSubDefence,LightSubDefence,PosionSubDefence = 0,0,0,0
    IceSubDefence       = 0     
    FireSubDefence      = 0     
    LightSubDefence     = 0         
    PosionSubDefence    = 0     

    --**********************************
    --属性减抗下限
    --**********************************
    local IceSubDefenceLimit,FireSubDefenceLimit,LightSubDefenceLimit,PosionSubDefenceLimit = 0,0,0,0
    IceSubDefenceLimit = 0
    FireSubDefenceLimit = 0
    LightSubDefenceLimit = 0
    PosionSubDefenceLimit = 0

    --**********************************
    --引擎计算部分
    --**********************************
    --百分比增加血上限
    SetMissionDataEx(sceneId,selfId,SYS_MAX_HP_PERSENT,HP_PERSENT)
    --血上限
    SetMissionDataEx(sceneId,selfId,SYS_MAX_HP,HP)  
    --气上限
    SetMissionDataEx(sceneId,selfId,SYS_MAX_MP,MP)  

    --一级属性
    SetMissionDataEx(sceneId,selfId,SYS_STR,STR)
    SetMissionDataEx(sceneId,selfId,SYS_SPR,SPR)
    SetMissionDataEx(sceneId,selfId,SYS_CON,CON)
    SetMissionDataEx(sceneId,selfId,SYS_INT,INT)
    SetMissionDataEx(sceneId,selfId,SYS_DEX,DEX)

    --二级属性
    SetMissionDataEx(sceneId,selfId,SYS_WG,AttackPhysics)
    SetMissionDataEx(sceneId,selfId,SYS_WF,DefencePhysics)
    SetMissionDataEx(sceneId,selfId,SYS_NG,AttackMagic)
    SetMissionDataEx(sceneId,selfId,SYS_NF,DefenceMagic)
    SetMissionDataEx(sceneId,selfId,SYS_MISS,Miss)
    SetMissionDataEx(sceneId,selfId,SYS_HIT,Hit)
    SetMissionDataEx(sceneId,selfId,SYS_HUIXINGONG,CriticalAttack)
    SetMissionDataEx(sceneId,selfId,SYS_HUIXINFANG,CriticalDefence)

    --属性攻击
    SetMissionDataEx(sceneId,selfId,SYS_ICE_ATTR,IceAttack)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_ATTR,FireAttack)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_ATTR,LightAttack)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_ATTR,PosionAttack)

    --属性减免 抗性
    SetMissionDataEx(sceneId,selfId,SYS_ICE_DEC,IceDefence)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_DEC,FireDefence)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_DEC,LightDefence)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_DEC,PosionDefence)

    --减抗
    SetMissionDataEx(sceneId,selfId,SYS_ICE_SUB_DEC,IceSubDefence)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_SUB_DEC,FireSubDefence)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_SUB_DEC,LightSubDefence)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_SUB_DEC,PosionSubDefence)

    --减抗下限
    SetMissionDataEx(sceneId,selfId,SYS_ICE_SUB_LIMIT,IceSubDefenceLimit)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_SUB_LIMIT,FireSubDefenceLimit)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_SUB_LIMIT,LightSubDefenceLimit)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_SUB_LIMIT,PosionSubDefenceLimit)

    --GM超级属性
    -- if GetMissionFlag(sceneId,selfId,MF_GM_ATTRMAX) == 1 then
        -- x866010_GM_ATTRMAX(sceneId,selfId)
    -- end

    --刷新引擎人物结算属性
    if Update ~= nil then
        LuaFnRefreshEngine( sceneId, selfId )
    end

    --刷新角色评分
    -- x866010_LuaFnGetEquipGride(sceneId,selfId)   
end

--**********************************
--GM超级属性
--**********************************
function x866010_GM_ATTRMAX(sceneId,selfId) 
    SetMissionData(sceneId,selfId,SYS_MAX_HP,55800000)
    SetMissionData(sceneId,selfId,SYS_MAX_MP,5000000)
    --一级属性
    SetMissionDataEx(sceneId,selfId,SYS_STR,19500)
    SetMissionDataEx(sceneId,selfId,SYS_SPR,19500)
    SetMissionDataEx(sceneId,selfId,SYS_CON,19500)
    SetMissionDataEx(sceneId,selfId,SYS_INT,19500)
    SetMissionDataEx(sceneId,selfId,SYS_DEX,19500)

    --属性攻击
    SetMissionDataEx(sceneId,selfId,SYS_ICE_ATTR,198808)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_ATTR,198808)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_ATTR,198808)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_ATTR,198088) 
    --属性减免
    SetMissionDataEx(sceneId,selfId,SYS_ICE_DEC,1024)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_DEC,1024)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_DEC,1024)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_DEC,1024)
    --减抗
    SetMissionDataEx(sceneId,selfId,SYS_ICE_SUB_DEC,1024)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_SUB_DEC,1024)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_SUB_DEC,1024)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_SUB_DEC,1024)
    --减抗下限
    SetMissionDataEx(sceneId,selfId,SYS_ICE_SUB_LIMIT,100)
    SetMissionDataEx(sceneId,selfId,SYS_FIRE_SUB_LIMIT,100)
    SetMissionDataEx(sceneId,selfId,SYS_LIGHT_SUB_LIMIT,100)
    SetMissionDataEx(sceneId,selfId,SYS_POSION_SUB_LIMIT,100)
end

--**********************************
-- 屏幕中间提示
--**********************************
function x866010_Tips(sceneId,selfId,msg)
    BeginEvent(sceneId)
        AddText(sceneId,msg);
    EndEvent(sceneId)
    DispatchMissionTips(sceneId,selfId)
end

穿戴回调脚本:

/home/tlbb1/Public/Data/Script/event/system/Callback_HumanEquip.lua

--装备变动回调
x888892_g_scriptId = 888892

--**********************************
--装备完成穿戴前回调 0放行,其他值拦截
--**********************************
function x888892_OnUesEquipCallback(sceneId,selfId,nEquipPointn,BagPos)
    -- x888892_Tips(sceneId,selfId,"完成穿戴前拦截")
    return 0;
end

--**********************************
--装备完成穿戴后回调
--**********************************
function x888892_OnEquipUseFinishCallback(sceneId,selfId,nEquipPointn,BagPos)

    x888892_Tips(sceneId,selfId,"装备完成穿戴后回调")
    CallScriptFunction(866010, "StartComputeHumanData", sceneId,selfId);
end

--**********************************
--装备卸下 0放行,其他值拦截
--**********************************
function x888892_UnEquipCallback(sceneId,selfId,nEquipPoint,nBagPos)
    return 0;
end

--**********************************
-- 装备完成摘除后回调
-- nEquipPoint:发生脱下的装备点
-- nBagPos:装备回到的背包位置
--**********************************
function x888892_OnEquipUnFinishCallback(sceneId,selfId,nEquipPoint,nBagPos)

    x888892_Tips(sceneId,selfId,"装备完成摘除后回调")
    CallScriptFunction(866010, "StartComputeHumanData", sceneId,selfId);
end

--**********************************
-- 屏幕中间提示
--**********************************
function x888892_Tips(sceneId,selfId,msg)
    BeginEvent(sceneId)
        AddText(sceneId,msg);
    EndEvent(sceneId)
    DispatchMissionTips(sceneId,selfId)
end
  • 打卡等级:即来则安
  • 打卡总天数:16
  • 打卡月天数:12
  • 打卡总奖励:16
  • 最近打卡:2025-12-23 02:53:00
vinhtlbb 发表于 2025-12-21 23:23 | 显示全部楼层 | Google Chrome | Windows 10
真是绝了…………………………666666666666666666
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 ) |网站地图|天天打卡

GMT+8, 2025-12-23 15:11 , Processed in 0.095674 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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