当前位置 : 主页>技术研究>传三技术>

教你使用传三自动更新系统

来源: 作者: 点击:
1、用mir3patch.exe实现自助更新的先决条件
需要的东西不多,首先你需要架一台ftp服务器,不会架的朋友不要问我,网上这种资料多的是,如果看资料还架不来,那我还是劝你不要用这种方式更新的好,省得到时用不来更麻烦
第二呢就是需要提起传奇3目录里面的mir3patch.exe和mir3patch.ini两个文件,exe文件是主执行文件,ini文件是设置信息文件,两者缺一不可
最后希望你会使用ue或minihex之中的任一种,用这两种工具可以修改mir3patch.exe,使其更新完成后自动执行你需要运行的游戏主程序

2、客户端的设置
mir3patch.exe和mir3patch.ini最好是每个游戏目录放一个
客户端的设置只有两项,当然如果你烦麻烦,只要做一项就够了
第一、设置mir3patch.ini
下面是一个完整的mir3patch.ini文件的内容:
[PATCH_FTP] //文件头,用来判断这个文件是否是传奇3的更新配置文件的,无需修改
ServerIP=192.168.0.250 //ftp服务器地址,可以是ip或域名(一般都内网的,用ip得了)
Port=21 //ftp端口号,不要填错哦
userid=anonymous //登录用户名,自己填,不要问我
passwd=user@host.com //ftp登录密码,不说了,填不来的找块豆腐撞死算了
BaseDirectory=/ //这是ftp里面存放该游戏更新文件的根目录
ListFile=!plist.lst //更新文件列表文件,可以自己取名
第一步完成
第二步、用ue或minihex修改mir3patch.exe,搜索"%smir3.exe",注意只有一个哦,将这个改成你要启动的游戏主程序

3、ftp服务器的设置
首先用serv-u等架设一台游戏更新ftp(可以多用途,别怪我多嘴,我只是不想误导造成浪费),服务器上可以根据游戏名称对各游戏进行分类,到时只需要把各游戏目录里面mir3patch.ini的BaseDirectory这项改成对应的ftp远程目录就行了

服务器上可以放上每次更新的更新包,或者就是放上整个的游戏也没关系,因为mir3patch是根据!plist.lst来进行更新的,只要这个!plist.lst里面没有提到的文件都不会被更新的
我们先来看一个完整的!plist.lst文件的内容:
C 2003-05-13 13:48 9442 BgmList.wwl /BgmList.wwl
C 2003-12-08 12:33 15450 CMList.dat /CMList.dat
C 2003-08-26 08:25 69 Config.ini /Config.ini
Z 2003-08-18 15:24 1016416:544459 DataLoginInterface.wil /Data/LoginInterface.wil.gz
Z 2003-08-18 15:24 84:97 DataLoginInterface.wix /Data/LoginInterface.wix.gz
Z 2003-07-08 16:36 21697118:12298334 DataWoodSmObjectsc.wil /Data/Wood/SmObjectsc.wil.gz
Z 2003-07-08 16:36 10816:8578 DataWoodSmObjectsc.wix /Data/Wood/SmObjectsc.wix.gz
Z 2003-08-23 09:52 22219967:14865300 DataWoodWallsc.wil /Data/Wood/Wallsc.wil.gz
Z 2003-08-23 09:52 18180:15630 DataWoodWallsc.wix /Data/Wood/Wallsc.wix.gz
C 2003-05-10 12:59 14735 Magic.exp /Magic.exp
C 2002-06-16 11:19 285 MExplain.exp /MExplain.exp
C 2003-06-30 18:22 42152 MInfo.dat /MInfo.dat
C 2003-12-22 10:59 251904 Mir3.exe /Mir3.exe
C 2003-05-20 03:11 204800 Mir3Patch.exe /Mir3Patch.exe
C 2004-01-09 18:51 23963 sellogin.ini /sellogin.ini
C 2003-06-05 13:59 19914 SoundList.wwl /SoundList.wwl
C 2002-12-24 14:34 2640 Weapon.ord /Weapon.ord
Z 2002-08-27 13:20 7167:402 MapZ014.map /Map/Z014.map.gz
Z 2003-06-05 11:22 960622:523065 DataM-Helmet2.wil /Data/M-Helmet2.wil.gz
Z 2003-06-05 11:22 24028:7452 DataM-Helmet2.wix /Data/M-Helmet2.wix.gz
Z 2003-06-05 11:22 928494:496017 DataWM-Helmet2.wil /Data/WM-Helmet2.wil.gz
Z 2003-06-05 11:22 24028:7456 DataWM-Helmet2.wix /Data/WM-Helmet2.wix.gz
Z 2003-06-05 11:21 5141600:2409681 DataM-Helmet1.wil /Data/M-Helmet1.wil.gz
Z 2003-06-05 11:21 119988:37740 DataM-Helmet1.wix /Data/M-Helmet1.wix.gz
Z 2003-06-05 11:22 5044562:2431475 DataWM-Helmet1.wil /Data/WM-Helmet1.wil.gz
Z 2003-06-05 11:22 119988:37693 DataWM-Helmet1.wix /Data/WM-Helmet1.wix.gz
C 2004-01-08 21:51 604 notice.ntc /notice.ntc
从这里可以看到,!plist.lst里面的每一行代表一个需要更新的文件。这里一行总共分为6列,每一列的含义如下:
第一列:c或z c是单独文件,z是压缩文件
第二列和第三列:文件建立日期和时间,好像用处不是很大,可以跳过
第四列:文件字节数,如果第一列是c,那么第四列是单独的一组数字;如果第一列是z,那么第四项是用:分开的两组数字,其中前一组是解压后文件的尺寸,用来判断本地文件尺寸是否合格,第二组是服务器上压缩包的文件尺寸(注意,只支持gz格式的压缩文件,不支持zip和rar格式,建议不要采用压缩包文件)
第五列和第六列分别是本地文件与服务器上文件对应的文件路径和文件名

注意一点:因为一台服务器上需要放很多游戏的更新文件,所以要在每个游戏的根目录都放上一个!plist.lst,并与客户机上mir2patch.ini里面的设置对应
在客户机随便找台机器将游戏升级后(或者直接在服务器上升级好),用explor2000找出哪几个文件更新过了,然后将这些文件的信息写入!plist.lst,以后客户机只要运行相应目录里面的mir3patch.exe就可以自动更新游戏到最新版本了
栏目列表