刀剑2 单人进双人本的方法,添加召唤分身道具
[ 本帖最后由 vellydongdong 于 2025-11-14 16:24 编辑 ]\n\n首先用的端是这个:【新提醒】【搬山道人】刀剑2·魔聚乌鹊山·五阶版本·GM控制台 - 网游单机下载 - 藏宝湾网游单机站 - Powered by Discuz!
开启轻功,按照这个:【新提醒】刀剑2添加“轻功试炼”活动的方法 - 网游单机讨论 - 藏宝湾网游单机站 - Powered by Discuz!
开启赛马单人。参考这个:【新提醒】刀剑2修改双人副本单人可进和赛马单人可进的方法 - 网游单机讨论 - 藏宝湾网游单机站 - Powered by Discuz!
开启单人进双人副本,这个lua里,修改如下:改后不需要通过GM控制台进入,跟NPC对话,进入。
function judge_team_num(player, num)
local allnum = player:GetAllMember()
local state = false
if num == 1 then
if allnum == 0 or allnum == num then
state = true
else
player:ShowUIText(bo2.eSendModeFlag_Self, 80273)
end
elseif num == 2 then
--直接注释
--local cur_Teammate = player:GetTeammateAmount(-1)
--if allnum == num and cur_Teammate == 1 then
state = true
else
player:ShowUIText(bo2.eSendModeFlag_Self, 80348)
end
end
return state
end
function check_cmn_all_state(player, excelID, isPayNow, isCheckInviteid)
local line = wuguan_table:find(excelID)
if line == nil then
return false
end
--检查状态的,直接注释后,返回true
--[[ local trans_premise = line.Event2_pre
local scn_id = line.Event2_scn
local pre_state = true
if trans_premise == 1 then
local fn = fn_tb
pre_state = pre_state and fn(player, 2)
if pre_state == false then
return false
end
end
local member
local function get_mem(mem)
if player.scn_unit == mem.scn_unit then
member = mem
end
end
player:ForEachTeammate(get_mem)
if member == nil then
return false
end
if isCheckInviteid == true then
local may1 = check_wuguan_same_invite(player, member)
if may1 == false then
player:ShowUIText(bo2.eSendModeFlag_Self, 73151)
return false
end
local may2 = check_wuguan_same_invite(member, player)
if may2 == false then
player:ShowUIText(bo2.eSendModeFlag_Self, 73150)
return false
end
end
for i = 1, trans_premise.size - 1 do
local ifvalue = trans_premise
if ifvalue == 1 then
local fn = fn_tb
if fn then
pre_state = pre_state and fn(player, 1, member, scn_id)
if pre_state == false then
return false
end
end
end
end
if line.scn2_cd ~= 0 and get_share_cd_state(player, member, line.scn2_cd) == false then
return false
end
if line.quest_2 ~= 1 then
local quest_state = get_quest_state(member, line)
if quest_state == false then
player:ShowUIText(bo2.eSendMode_Self, 85119)
member:ShowUIText(bo2.eSendMode_Self, 85120)
return false
end
end
if line.level_2 ~= 1 then
local levelstate = get_level_state(member, line)
if levelstate == false then
local v = sys.variant()
v:set(L("name"), member.name)
player:ShowUIText(bo2.eSendMode_Self, 86525, v)
member:ShowUIText(bo2.eSendMode_Self, 86525)
return false
end
end
if line.pay_id ~= 0 then
local paystate, itemtext = get_payitem_state(player, line)
if paystate == true then
if isPayNow == true then
local v = sys.variant()
v:set(packet.key.multi_item, itemtext)
player:SafeAward(v, nil, nil, 2151)
end
else
return false
end
end
return true, member--]]
return true, nil
end
function on_select_2(player, npc, line)
local event_stream = line.Event2
local event_func = line.Event2_Func
if event_stream ~= 0 and event_stream ~= nil then
local scn = player.scn_unit
quest_cmn.start(scn, player, npc, still, event_stream)
elseif event_func ~= L("") and event_func ~= nil then
local scn = player.scn_unit
bo2.RunScript(event_func, scn, player, npc, still)
else
local state, member = check_cmn_all_state(player, line.id, false, true)
if state == false then
return
end
-- 上面中间注释了一段,修改:直接进入,不进行双人检查
local scn_id = line.Event2_scn
local cd_id = line.scn2_cd
-- 检查CD
if cd_id ~= 0 and get_share_cd_state(player, nil, cd_id) ~= true then
return
end
-- 检查付费物品,会消耗耀武令
if line.pay_id ~= 0 then
local paystate, itemtext = get_payitem_state(player, line)
if paystate == true then
local v = sys.variant()
v:set(packet.key.multi_item, itemtext)
player:SafeAward(v, nil, nil, 2151)
else
return
end
end
-- 直接传送
player:ChgScn(2, scn_id, "playerbegin", 0, 0, true)
-- 添加CD
if cd_id ~= 0 then
local cd_line = bo2.gv_define:find(cd_id)
if cd_line ~= nil and cd_line.value.v_int ~= 0 then
local id = cd_line.value.v_int
player:AddCooldown(id)
end
end
end
end
还有群侠会这个活动也需要双人组队,这个改单人直接在服务端\data\script\scene\activity\qunxiahui的qxh_baoming.lua,改这个报名脚本。就可以直接进入了。
local dis_can_fight = 40
function NpcTalk(npc, player)
local cd_ok = true
local lvl_ok = true
local is_dead = false
local function get_member(member)
is_dead = member:IsDead()
if is_dead then
member:ShowUIText(bo2.eSendModeFlag_Self, 83715)
return
end
local player_lvl = member:GetAtb(bo2.eAtb_Level)
if player_lvl < 20 then
lvl_ok = false
return
end
cd_ok = cd_ok and member:MayAddCooldown(bo2.eKnightCD_Activity)
if cd_ok == false then
return
end
end
local function on_begin()
local cur_leadertype = player:IsCaptain()
if cur_leadertype == true then
local group_num = player:GetAllMember()
-- 修改这里:允许单人进入,不再检查队伍人数
if group_num <= 0 then
player:ShowUIText(bo2.eSendModeFlag_Self, 80752)
return
end
-- 删除队伍人数检查,允许单人进入
-- if group_num ~= 2 then
-- player:ShowUIText(bo2.eSendModeFlag_Self, 83186)
-- return
-- end
local player_num = player:GetTeammateAmount(dis_can_fight)
-- 修改这里:单人模式下不需要检查队友距离
if group_num > 1 then-- 如果有队友才检查距离
if player_num > 1 then
player:ShowUIText(bo2.eSendModeFlag_Self, 83186)
return
elseif player_num < 1 then
player:ShowUIText(bo2.eSendMode_Self, 80308)
return
end
end
player:ForEachTeammate(get_member)
if player:IsDead() then
player:ShowUIText(bo2.eSendModeFlag_Self, 83715)
return
end
if is_dead then
player:ShowUIText(bo2.eSendModeFlag_Self, 83714)
return
end
local player_lvl = player:GetAtb(bo2.eAtb_Level)
if lvl_ok == false or player_lvl < 20 then
player:ShowUIText(bo2.eSendModeFlag_BroadcastGroup, 83701)
return
end
cd_ok = cd_ok and player:MayAddCooldown(bo2.eKnightCD_Activity)
if cd_ok == false then
player:ShowUIText(bo2.eSendModeFlag_BroadcastGroup, 83308)
return
end
-- 修改这里:单人时直接传送,不需要GroupChgScn
if group_num == 1 then
player:ChgScn(bo2.eTransfer_NormalChg, 121, "playerbegin")
else
player:GroupChgScn(bo2.eTransfer_NormalChg, 121, "playerbegin", 0)
end
else
player:ShowUIText(bo2.eSendMode_Self, 80307)
end
end
local on_cancil = function()
end
player:ClearDlgTalkUI(npc)
player:SetDlgContent(75046)
player:AddDlgItem(83185, on_begin)
player:AddDlgItem(80057, on_cancil)
end
修改了先民祖庙的副本机关要两人才能开门的问题,现在只需要单人拉动开关就能开门。这个有问题。参考后面发的贴子,进行修改。
召唤分身道具是借鉴79端。在特权商店里。刀剑2单机版79端个人修改版【补充更新】 - 网游单机下载 - 藏宝湾网游单机站 - Powered by Discuz!
上面所有修改后的文件链接如下:
链接:https://pan.baidu.com/s/1WnQeaToNUB72rKEs-hagkA?pwd=gnsm 提取码:gnsm 复制这段内容后打开百度网盘手机App,操作更方便哦
谢谢分享 ::: 感谢分享哈 :: 7阶的能搞到吗 谢谢分享 能给个这端改好的data吗?这端还没开始玩 感谢分享 能给个这端改好的data吗?比较小白不会改 本帖最后由 vellydongdong 于 2025-10-29 23:07 编辑
链接如上 vellydongdong 发表于 2025-10-27 20:49
改好的data 通过网盘分享的文件:
链接: https://pan.baidu.com/s/1lBkEtfNPNTz0UNCyPlcS2w 提取码: 4hii...
多谢大佬
感谢分享 感谢分享哈 vellydongdong 发表于 2025-10-27 20:49
改好的data 通过网盘分享的文件:
链接: https://pan.baidu.com/s/1lBkEtfNPNTz0UNCyPlcS2w 提取码: 4hii...
大佬链接没了,还可以发一下不?来晚了,没赶上。 666太厉害了,不过不怎么能看懂。。。不明白是怎么改的,记事本打开什么文件改还是用什么编译软件进行改,lua是什么意思啊,是个文件吗 楼主你好,麻烦再次分享下改好的data谢谢了! 大佬知道推冰活动如何改冰块的刷新时间吗? 看别人说这个端40级主线不能做,是真的么?白衣门声望能正常得到么?魔域能正常走光圈进么?魔域任务能接么? 请问楼主如何添加召唤分身道具!能否给个教程谢谢!
页:
[1]