经过测试,32位的剑灵用这个脚本只能双开,三开会报错
64位的经过测试能三开,四开没试过
2017/12/27 更新
对 bin64 文件夹生成链接
2017/12/2 更新
修复路径名中有空格会出错的问题
剑灵不能双开原因在于
剑灵根目录\contents\Local\TENCENT\data 目录下的 *.dat 文件
剑灵根目录bns\contents\Local\TENCENT\CHINESES\data 目录下的 *.dat 文件
是单一剑灵程序在独占使用
只要同一份的剑灵文件 的不同进程读取不同的上述文件即可双开剑灵
我的办法是使用 windows 的 目录联接,使剑灵的大部分文件都链接一份出来,只有上述文件是复制的
这样每个新剑灵只有那堆复制文件的大小,大概200m,左右
批处理代码 剑灵双开.bat 在下面
使用办法:
1.
下载 剑灵多开.bat 文件
用记事本打开此文件
2.
找到这行 set SrcDir=C:\game\bns
把 C:\game\bns 改成你的剑灵根目录
3.
找到这行 set DstDir=E:\bns
把 E:\bns 改成放置新剑灵的目录
4.
保存
5.
双击运行
6.
按照提示操作
7.
成功会显示操作完成
失败会显示操作失败
注意1
不要删除原始那份剑灵文件,不然其他的统统失效
注意2
如果剑灵有更新,请务必先打开原始那份剑灵来更新,等更新完成后,然后在运行批处理脚本来同步更新,才能打开其他的剑灵
注意3
如果你修改了 xml.dat 文件,需要直接运行批处理脚本来同步修改
剑灵双开.bat 的代码内容,如果你不想下载的话
@echo off
echo 本程序可创建一份新的剑灵游戏文件,但将会基本不占用空间
echo ver0.02
echo ------------------------------------------------------
rem 本程序使用目录联接(一种快捷方式)的方式来节省硬盘空间
rem 剑灵不能同程序多开的原因是因为剑灵在读取部分文件时使用独占,
rem 然后再开第二个剑灵时,那个被第一个剑灵独占的文件无法打开,所以
rem 第二个剑灵就会加载失败
rem 解决办法是:把剑灵独占的文件复制一份,让第二个剑灵读取另外一份文件即可避免此问题
rem SrcDir 是原始剑灵目录
rem DstDir 是新的剑灵目录
set SrcDir=C:\game\bns
set DstDir=E:\bns
echo 原始剑灵游戏目录 : %SrcDir%
echo 新的剑灵游戏目录 : %DstDir%
echo ------------------------------------------------------
echo 请确认游戏目录有没有设置错误
echo ------------------------------------------------------
choice /c yn /m "确定请按 y,否则请按 n 或者直接关掉本窗口"
if errorlevel 2 goto goodbye
if errorlevel 1 goto do_it
:do_it
echo 正在检查文件
if not exist "%SrcDir%" set errorDir="%SrcDir%" & goto findNotExistError
mkdir "%DstDir%"
mklink /j "%DstDir%\bin" "%SrcDir%\bin"
mklink /j "%DstDir%\bin64" "%SrcDir%\bin64"
mklink /j "%DstDir%\TAO" "%SrcDir%\TAO"
mklink /j "%DstDir%\TCLS" "%SrcDir%\TCLS"
mkdir "%DstDir%\contents"
mklink /j "%DstDir%\contents\bns" "%SrcDir%\contents\bns"
mkdir "%DstDir%\contents\Local\TENCENT"
mkdir "%DstDir%\contents\Local\TENCENT\CHINESES"
mklink /j "%DstDir%\contents\Local\TENCENT\CHINESES\CookedPC" "%SrcDir%\contents\Local\TENCENT\CHINESES\CookedPC"
mklink /j "%DstDir%\contents\Local\TENCENT\CHINESES\Splash" "%SrcDir%\contents\Local\TENCENT\CHINESES\Splash"
mklink /j "%DstDir%\contents\Local\TENCENT\CHINESES\web" "%SrcDir%\contents\Local\TENCENT\CHINESES\web"
xcopy /I /Y "%SrcDir%\contents\Local\TENCENT\CHINESES\data" "%DstDir%\contents\Local\TENCENT\CHINESES\data"
xcopy /I /Y "%SrcDir%\contents\Local\TENCENT\data" "%DstDir%\contents\Local\TENCENT\data"
goto good_end
:goodbye
echo 请使用记事本打开此文件
echo 找到 set SrcDir=XXX (XXX是任意字符) 这一行,请把XXX改成你的原始剑灵目录
echo 找到 set DstDir=YYY (YYY是任意字符) 这一行,请把YYY改成你的新的剑灵目录
goto good_end
:good_end
echo 操作完成
pause
exit
:bad_end
echo 操作失败
pause
exit
:findNotExistError
echo 目录 %errorDir% 不存在,请检查原始剑灵文件是否完整
goto bad_end