刀剑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基础的,先在宝湾找基础修改教程再看这个。
自己修改的附件,可以参考:
感谢分享: 本帖最后由 qq5787256 于 2025-7-20 11:36 编辑
谢谢分享 大佬,请问lua脚本如何解密的?网上找的那种解密以后复制下来可以直接使用吗?如果有其他工具能否共享一下?另外有没有裙服玩? 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/ jy02512459 发表于 2025-7-21 08:55
大佬,请问lua脚本如何解密的?网上找的那种解密以后复制下来可以直接使用吗?如果有其他工具能否共享一下 ...
裙服没了,在玩单机了 学习 。。。。。。。 q2430591974 发表于 2025-7-21 09:25
我用的unluac反编译的,是个java开发的程序,需要安装java运行环境,地址:https://sourceforge.net/proj ...
谢谢指导。~ 感觉复杂了,直接在进入函数加个时间器,时间够了然后调用开门函数 本帖最后由 q2430591974 于 2025-7-21 22:23 编辑
tsangwinghou 发表于 2025-7-21 21:27
感觉复杂了,直接在进入函数加个时间器,时间够了然后调用开门函数
我这把if else end都算一行就多了四行代码,也不复杂吧,可以把你的发出来学习下吗? q2430591974 发表于 2025-7-21 22:08
我这把if else end都算一行就多了四行代码,也不复杂吧,可以把你的发出来学习下吗?
嗯,本身这东西也没啥复杂的,我的也差不多,在进入场景的函数那里添加一个局部函数运行开门的那个函数,然后再添加多一个定时器调用这个局部函数~~我这个可能简单点,不用直接删掉就行了,没改过原代码的结构,不过定时器得计算好时间,可能会和开门倒计时有一点时间误差~~大佬要是有兴趣研究刀剑2改端的话,不妨私一下Q加个群或者好友探讨下? tsangwinghou 发表于 2025-7-21 23:41
嗯,本身这东西也没啥复杂的,我的也差不多,在进入场景的函数那里添加一个局部函数运行开门的那个函数, ...
我不是大佬,也就这几天单机自己随便改改,你才是真正的大佬啊,B站UP大佬: 感谢大佬的无私分享,受教了 请问下,boss吃控制修改哪个,还有饱食度7500上限哪里修改呀 qq5787256 发表于 2025-7-23 10:27
请问下,boss吃控制修改哪个,还有饱食度7500上限哪里修改呀
不清楚,没研究过 大佬多来点教程,我们小白也能跟着一起修改研究一下。这才是藏宝湾该有的分享精神
页:
[1]