q2430591974 发表于 2025-7-19 15:39:03

刀剑2修改双人副本单人可进和赛马单人可进的方法

本帖最后由 q2430591974 于 2025-7-19 15:51 编辑

一.双人副本单人可进
只修改服务端dpk目录下的data\script\scene\special_script\mojiawuguan\wuguan_cmn_trans.lua
(1) 修改函数function judge_team_num(player, num)
if allnum == num and cur_Teammate == 1 then
改成
if allnum >= 1 then
(2)修改函数function check_cmn_all_state(player, excelID, isPayNow, isCheckInviteid)
if member == nil then
    return false
end
改成
local cur_num = player:GetAllMember()
if member == nil then
    if cur_num > 1 then
      return false
    end
    member = player
end
(3)修改函数function on_ack(player, m, datatable, ack_index)
    第一处修改:
      else
          player:ShowUIText(bo2.eSendModeFlag_Self, 73126)
          return
      改成(直接注释)
      --else
          --player:ShowUIText(bo2.eSendModeFlag_Self, 73126)
          --return
         
      第二处修改:
                  player:AddCooldown(id)
                  member:AddCooldown(id)
                  player:GM_AddActivation(5)
                  member:GM_AddActivation(5)
                  改成
                  if member == player then
                  member:AddCooldown(id)
                  member:GM_AddActivation(5)
                  else
                  player:AddCooldown(id)
                  member:AddCooldown(id)
                  player:GM_AddActivation(5)
                  member:GM_AddActivation(5)
                  end


二.赛马单人可进
(1)修改战场配置文件data\mb\etc\battle_list.txt,服务端和客户端目录的这个文件都要修改
赛马      5      112*153      120      2      30      2      10                20      100      10      40      1                              2      
改成
赛马      5      112*153      1800      2      30      2      10                20      100      10      40      1                              2      
(2)只修改服务端dpk目录下的data\script\scene\activity\horse_racing\interface\horse_race_scn.lua
function OnStateChgWaiting(scn)
local function Broadcast_SoonBegin(player)
    local v = sys.variant()
    v:set(L("leave_time"), TimeTip)
    player:ShowUIText(bo2.eSendMode_Self, 2046, v)
end
local function SendSoonBegin()
    if scn == nil then
      return
    end
    scn:ForEachScnPlayer(Broadcast_SoonBegin)
    TimeTip = TimeTip - 30
end
TimeTip = 90
for i = 1, 3 do
    bo2.AddTimeEvent(750 * i, SendSoonBegin)
end
end
改成
function OnStateChgWaiting(scn)
local function Broadcast_SoonBegin(player)
    local v = sys.variant()
    v:set(L("leave_time"), TimeTip)
    player:ShowUIText(bo2.eSendMode_Self, 2046, v)
end
local function SendSoonBegin()
    if scn == nil then
      return
    end
    if TimeTip > 0 then
      scn:ForEachScnPlayer(Broadcast_SoonBegin)
      TimeTip = TimeTip - 30
    else
      BattleGroupStateChg(scn, bo2.eBattleGroupState_Begin)
    end
end
TimeTip = 90
for i = 1, 4 do
    bo2.AddTimeEvent(750 * i, SendSoonBegin)
end
end
(3)打包客户端和服务端的dpk并替换

说明:lua代码非常注重代码缩进,稍有不慎编译出错。有些端的lua文件是编译后的,需要对lua文件进行反编译后才能修改。不会修改DPK基础的,先在宝湾找基础修改教程再看这个。
自己修改的附件,可以参考:

bossini02 发表于 2025-7-19 16:11:19

感谢分享:

qq5787256 发表于 2025-7-20 11:33:03

本帖最后由 qq5787256 于 2025-7-20 11:36 编辑

谢谢分享

jy02512459 发表于 2025-7-21 08:55:49

大佬,请问lua脚本如何解密的?网上找的那种解密以后复制下来可以直接使用吗?如果有其他工具能否共享一下?另外有没有裙服玩?

q2430591974 发表于 2025-7-21 09:25:08

jy02512459 发表于 2025-7-21 08:55
大佬,请问lua脚本如何解密的?网上找的那种解密以后复制下来可以直接使用吗?如果有其他工具能否共享一下 ...

我用的unluac反编译的,是个java开发的程序,需要安装java运行环境,地址:https://sourceforge.net/projects/unluac/。
你可以用其它的反编译工具,注意用版本是5.1的lua反编译工具。反编译之后修改完成,不需要进行编译,直接源码替换就行。
哦对了,还有个网站可以在线反编译,但我不知道兼容5.1的lua不,地址:https://www.luatool.cn/

q2430591974 发表于 2025-7-21 09:29:29

jy02512459 发表于 2025-7-21 08:55
大佬,请问lua脚本如何解密的?网上找的那种解密以后复制下来可以直接使用吗?如果有其他工具能否共享一下 ...

裙服没了,在玩单机了

小风子 发表于 2025-7-21 10:14:49

学习    。。。。。。。

jy02512459 发表于 2025-7-21 14:18:41

q2430591974 发表于 2025-7-21 09:25
我用的unluac反编译的,是个java开发的程序,需要安装java运行环境,地址:https://sourceforge.net/proj ...

谢谢指导。~

tsangwinghou 发表于 2025-7-21 21:27:36

感觉复杂了,直接在进入函数加个时间器,时间够了然后调用开门函数

q2430591974 发表于 2025-7-21 22:08:41

本帖最后由 q2430591974 于 2025-7-21 22:23 编辑

tsangwinghou 发表于 2025-7-21 21:27
感觉复杂了,直接在进入函数加个时间器,时间够了然后调用开门函数
我这把if else end都算一行就多了四行代码,也不复杂吧,可以把你的发出来学习下吗?

tsangwinghou 发表于 2025-7-21 23:41:14

q2430591974 发表于 2025-7-21 22:08
我这把if else end都算一行就多了四行代码,也不复杂吧,可以把你的发出来学习下吗?

嗯,本身这东西也没啥复杂的,我的也差不多,在进入场景的函数那里添加一个局部函数运行开门的那个函数,然后再添加多一个定时器调用这个局部函数~~我这个可能简单点,不用直接删掉就行了,没改过原代码的结构,不过定时器得计算好时间,可能会和开门倒计时有一点时间误差~~大佬要是有兴趣研究刀剑2改端的话,不妨私一下Q加个群或者好友探讨下?

q2430591974 发表于 2025-7-22 08:55:13

tsangwinghou 发表于 2025-7-21 23:41
嗯,本身这东西也没啥复杂的,我的也差不多,在进入场景的函数那里添加一个局部函数运行开门的那个函数, ...

我不是大佬,也就这几天单机自己随便改改,你才是真正的大佬啊,B站UP大佬:

a1051984656 发表于 2025-7-22 09:07:18

感谢大佬的无私分享,受教了

qq5787256 发表于 2025-7-23 10:27:55

请问下,boss吃控制修改哪个,还有饱食度7500上限哪里修改呀

q2430591974 发表于 2025-7-23 11:43:02

qq5787256 发表于 2025-7-23 10:27
请问下,boss吃控制修改哪个,还有饱食度7500上限哪里修改呀

不清楚,没研究过

joyliu521 发表于 2025-7-23 15:30:36

大佬多来点教程,我们小白也能跟着一起修改研究一下。这才是藏宝湾该有的分享精神
页: [1]
查看完整版本: 刀剑2修改双人副本单人可进和赛马单人可进的方法

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