vellydongdong 发表于 2025-11-23 23:10:25

刀剑2 添加新副本重魔试炼的方法

重魔试炼副本添加
入口就放在玖仟儿        5528,在后面新建一个
zhg_lmy_9200        64        0        5528        2        2                1        zhg_lmy_9200        0        0                                                                                        xn_jiuqianer_fight*tcl_chongmoshilian                                       
新建tcl_chongmoshilian.lua
function NpcTalk(npc, playerr)
        player = playerr
        if cdpd(55067) ~= nil then
                player:AddDlgItem(102046, bzs)
        else
                player:AddDlgItem(102046, bzs)       
        end
end
function bzs()
        local scn_id = 1309
        if cdpd(55067) ~= 0 then
                if duiwu ~= 0 then--且有队伍
                        player:ChgScn(bo2.eTransfer_NormalChg, scn_id, "lv1_lv5_supply", 0, 0, true)
                        --player:GroupChgScn(2, scn_id, "Playerbegin", scn_level)--组队传送
                        return
                else
                        player:ShowUIText(bo2.eSendModeFlag_Self, 1024)--如果没有队伍
                        return
                end
        else
                player:ShowUIText(bo2.eSendModeFlag_Self, 1723)
        end
end
function cdpd(cooldown)
    local cd = player:GetCooldown(cooldown)
    if cd ~= nil and cd.token ~= nil then
      return cd.token
    end
    if cd == nil or cd.token == nil then
      return nil
    end
end
在cooldown_list_scn.txt里新增 55067        0        30        1                                重魔试炼副本
在text_wh.txt里新增102046        <c+:#red>进入重魔试炼<c->       
scn_list修改
宝塔除妖        1309        fb_weilingta01        fb_weilingta01        0        100        100                512                sjy_chongmoshijian*sjy_qcjpingbilingyun*sjy_patacsh*obj_script        2                55067        75                                2                                                1                                                                1                1        1        2                        1                13                                                                                                                16                                       
在area_list里添加,                                                       
重魔试炼        2956        wlt_chongmoshilian01        1309                wltcwsl_chuansong                                                        1        重魔试炼                        1
添加刷新文件
wlt_chongmoshilian.txt
field1        field2        field3        field4        field5        field6        field7        field8        field9        field10        field11        field12        field13        field14        field15        field16        field17        field18        field19        field20        field21        field22
door_wlt_room_door_2        1        1        4848                                1        wlt_room_door_2                                                                                                       
一重入魔武者        2        1        139261                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        3        1        139262                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        4        1        139263                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        5        1        139264                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        6        1        139265                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        7        1        139266                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        8        1        139267                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        9        1        139268                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        10        1        139269                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        11        1        139270                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
一重入魔武者        12        1        139271                                1        lv1_lv5_supply        0                                                                                                wlt_chongmo_enemy
····一直到十重入魔侠士。emmm

新建wlt_chongmo_enemy.lua
-- chongmo_enemy_dead.lua
-- 重魔试炼敌人死亡处理脚本

function NpcDead(a_npc, a_dead_type)
    local scn = a_npc.scn_unit
    if scn == nil then
      return
    end

    -- 调用重魔试炼的敌人死亡处理函数
    sjy_chongmoshijian.handle_enemy_dead(scn, a_npc)
end
新建wltcwsl_chuansong.lua
-- chongmo_start_area.lua
-- 重魔试炼开始区域脚本

function AreaPlayerIn(scn, area_id, player)
    -- 开始重魔试炼
    sjy_chongmoshijian.start_chongmo_trial(scn)
end
新建sjy_chongmoshijian.lua
-- sjy_chongmoshijian.lua
-- 重魔试炼副本脚本 - 按照威灵塔模式

-- 定义常量
CHONGMO_LEVEL_CUR = 1   -- 当前重数标志
CHONGMO_LEVEL_STATE = 2   -- 副本状态标志
CHONGMO_MAX_LEVEL = 20    -- 最大重数

-- 重魔试炼数据
chongmo_tower_data = {}

-- 各重武者的ID范围配置(每重18个敌人)
chongmo_enemy_ranges = {
    = {start_id = 2, end_id = 19},   -- 一重武者: ID 2-19 (18个)
    = {start_id = 20, end_id = 37},    -- 二重武者: ID 20-37 (18个)
    = {start_id = 38, end_id = 55},    -- 三重武者: ID 38-55 (18个)
    = {start_id = 56, end_id = 73},    -- 四重武者: ID 56-73 (18个)
    = {start_id = 74, end_id = 91},    -- 五重武者: ID 74-91 (18个)
    = {start_id = 92, end_id = 109},   -- 六重武者: ID 92-109 (18个)
    = {start_id = 110, end_id = 127},-- 七重武者: ID 110-127 (18个)
    = {start_id = 128, end_id = 145},-- 八重武者: ID 128-145 (18个)
    = {start_id = 146, end_id = 163},-- 九重武者: ID 146-163 (18个)
    = {start_id = 164, end_id = 181}, -- 十重武者: ID 164-181 (18个)
    = {start_id = 182, end_id = 199}, -- 十一重武者: ID 182-199 (18个)
    = {start_id = 200, end_id = 217}, -- 十二重武者: ID 200-217 (18个)
    = {start_id = 218, end_id = 235}, -- 十三重武者: ID 218-235 (18个)
    = {start_id = 236, end_id = 253}, -- 十四重武者: ID 236-253 (18个)
    = {start_id = 254, end_id = 271}, -- 十五重武者: ID 254-271 (18个)
    = {start_id = 272, end_id = 289}, -- 十六重武者: ID 272-289 (18个)
    = {start_id = 290, end_id = 307}, -- 十七重武者: ID 290-307 (18个)
    = {start_id = 308, end_id = 325}, -- 十八重武者: ID 308-325 (18个)
    = {start_id = 326, end_id = 343}, -- 十九重武者: ID 326-343 (18个)
    = {start_id = 344, end_id = 361}-- 二十重武者: ID 344-361 (18个)
}

-- 场景初始化
function ScnInit(scn)
    -- 初始化副本状态
    scn:SetTmpFlag(CHONGMO_LEVEL_CUR, 0)-- 从第0重开始
    scn:SetTmpFlag(CHONGMO_LEVEL_STATE, 0) -- 状态:未开始

    -- 初始化数据
    chongmo_tower_data = {}
end

-- 开始试炼(由区域触发调用)
function start_chongmo_trial(scn)
    if scn:GetTmpFlag(CHONGMO_LEVEL_STATE).v_int ~= 0 then
      return -- 已经开始
    end

    scn:SetTmpFlag(CHONGMO_LEVEL_STATE, 1) -- 状态:进行中
    next_level_start(scn)
end

-- 开始下一重
function next_level_start(scn)
    local current_level = scn:GetTmpFlag(CHONGMO_LEVEL_CUR).v_int
    local next_level = current_level + 1

    if next_level > CHONGMO_MAX_LEVEL then
      -- 所有重数完成
      chongmo_complete(scn)
      return
    end

    -- 设置当前重数
    scn:SetTmpFlag(CHONGMO_LEVEL_CUR, next_level)

    -- 刷新当前重的随机敌人
    refresh_random_enemy(scn, next_level)
end

-- 刷新随机敌人
function refresh_random_enemy(scn, level)
    local enemy_range = chongmo_enemy_ranges
    if enemy_range == nil then
      Log.CmnLog("chongmo_enemy_ranges for level " .. level .. " not found!")
      return
    end

    -- 随机选择一个敌人ID
    local random_id = bo2.Rand(enemy_range.start_id, enemy_range.end_id)

    -- 刷新敌人
    scn:RefreshNpc(L("wlt_chongmoshilian"), 0, random_id, random_id, nil)

    Log.CmnLog("重魔试炼第" .. level .. "重: 刷新敌人ID " .. random_id)
end

-- 敌人死亡处理
function handle_enemy_dead(scn)
    local current_level = scn:GetTmpFlag(CHONGMO_LEVEL_CUR).v_int

    -- 延迟一段时间后开始下一重
    local function start_next()
      if sys.check(scn) then
            next_level_start(scn)
      end
    end

    -- 1秒后开始下一重
    bo2.AddTimeEvent(10, start_next)
end

-- 副本完成
function chongmo_complete(scn)
    scn:SetTmpFlag(CHONGMO_LEVEL_STATE, 2) -- 状态:完成

    -- 延迟一段时间后传送玩家离开
    local function transfer_players_out()
      if sys.check(scn) then
            scn:ForEachPlayer(function(player)
                player:ChgScn(bo2.eTransfer_NormalChg, 102, "zhg_lmy_9200", 0, 0, true)
            end)
      end
    end

    -- 3秒后传送离开
    bo2.AddTimeEvent(3000, transfer_players_out)
end

-- 玩家进入场景
function ScnPlayerIn(scn, player)
    -- 无文本提示
        if scn:GetTmpFlag(CHONGMO_LEVEL_STATE).v_int == 0 then
      start_chongmo_trial(scn)
    end
end

-- 玩家重新加载场景
function ScnPlayerReload(scn, player)
    -- 无文本提示
end
然后你就可以从一重入魔武者一直杀到十重入魔侠士啦。




wangyiyang 发表于 2025-11-23 23:24:19

感谢分享!~

heroesv 发表于 2025-11-24 09:53:42

愿分享精神永存,支持lz分享

a1051984656 发表于 2025-11-24 12:38:01

大佬回归,感谢大佬无私分享

liyicheng556 发表于 2025-11-25 09:10:35

感谢分享哈,不错
页: [1]
查看完整版本: 刀剑2 添加新副本重魔试炼的方法

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明