引用 | 编辑
ebolaman
2012-05-24 21:49 |
1楼
▲ ▼ |
增加什么功能?
我之前设计是 利用 FTP 自动检查更新,但之前除错功能设计的不是很好 错误应该是这行 : 'Copy file My.Computer.FileSystem.CopyFile(dataDir & "CS_Update" & cData.listUpdate(l), curDir & cData.listUpdate(l), True) 动作就是把 已经下载解压的档案复制到 目前资料夹下的 目录更新 cData.listUpdate(l) 应该是一串 Path 很有可能是找不到档案或资料夹路径 才会发生错误 可是为什么 Win7 没有错误 WinXP 就有错误 很有可能是因为先前解压动作失败,导致要复制时,来源档案 (Source files) 不存在,到这步骤才错 因为是利用 WinRAR 去帮忙解压缩,总归原因可能是 WinRAR 找不到下载回来的暂时 RAR 档案 详细情况就不知道 有时间的话有可能我会把整个 专案 重修一次 如果希望增加什么额外的功能可以说一下 ![]() |
引用 | 编辑
zsx123665
2012-05-25 08:41 |
2楼
▲ ▼ |
现在问题又多一个,就是它更新时会跑出"2"?
我判断可能是他侦测重复档案时会跳出,而下载的新档却不能取代旧档 请帮我看看,专案有更新 ![]() |
引用 | 编辑
zsx123665
2012-05-26 00:06 |
4楼
▲ ▼ |
下面是引用 ebolaman 于 2012-05-25 23:53 发表的 : 可否教我如何写vb 因为我还是初学者(有买书读过,但是不懂 = =) 虽然我朋友认识n3,而且也留过言请他教我,但是他因为要考试,所以无法上 and 能否写出一个比较完美的游戏启动器给我们 @@? 或者给我一些简单的专案让我研究 顺带一提,n3的自动更新你知道它是哪的FTP吗?? ![]() |
引用 | 编辑
n3ph223172
2012-05-26 03:14 |
5楼
▲ ▼ |
其实,搞自动更新的功能,会卡太久。。
![]() |
引用 | 编辑
ebolaman
2012-05-26 13:23 |
7楼
▲ ▼ |
n3 讲的没错
这个启动器每次都要上网检查更新版本,而且我做的不是很好,FTP 下载常会当掉 所以我看干脆这样好了,把这个启动器改的简单一点,就用 HTTP 直接检查版本数据,版本不同直接提示是否更新,然后使用者自行连到官网下载,而不要透过启动器 另外,这个启动器只是在模拟 "CSO" 的启动器 如果是 CS 其他版本 (现在到底有哪几个开发版本? 我只知道 BTE),如果要有自己的游戏风格的话 就该设计另外一套启动器 如果真的要让启动器做得很好 还要考虑到游戏本身的档案配置,周遭的环境,游戏的需求...等等 ![]() |
引用 | 编辑
n3ph223172
2012-05-26 16:06 |
9楼
▲ ▼ |
其实我碰CSO,不单单只有台服,总共6大服都有碰(韩、日、台、陆、新马、印尼)
而我BTE负责的是破解素材还有其他东西 每当我破解韩服的时候 其实,因为VPN关系我等了很久 但我也发现到了CSO更新的原理 开启启动器后,会先从伺服器接受更新资讯 进而更新ClientRegistry.blob 然后我发现到的是,CSO不是一次就把更新下载完 如果太久没更新,更新的时候常常会说:cstrike_tw.nar下载中(3个)之类的 所以我认为更新那个档案,其实就是告知启动器要下载哪些档案 所以我认为如果要在弄一个 不要弄索引档(index.txt)在FTP之上 先设定启动器要在FTP上接受哪个资讯档案,资讯档案内容最好是加密,进而告知启动器要下载哪些 这个资讯档案可能这样: [update1] mp.dll client.dll hw.dll [update2] mp.dll client.dll hw.dll GameUI.dll cstrike\models\v_ak47.mdl 先下载第一个更新的档案,在继续第二个 又或者采用打包的方式: [update1] CS:BTE_Update1.bte [update2] CS:BTE_Update2.bte 之类的 最好可以搞个独立解压程序之类的 不然也可改成rar,然而下载出来的档案单档请直接放对应目录,如果是打包的就放游戏主目录等候解压 之类的其实都可以 ![]() |
引用 | 编辑
ebolaman
2012-05-26 17:15 |
10楼
▲ ▼ |
下面是引用 n3ph223172 于 2012-05-26 16:06 发表的 : OK 也就是说,把之前的 index.txt 改成 直接告知启动器 "必须" 更新哪些档案 这样做的话,必须在客户端(使用者) 的 CS 资料夹内存放 "目前版本" 的资讯 程式上 FTP 检查,发现与最新版本不同的话 才来寻找对应的版本 ,的更新档案 例如 : 使用者 v1.0 伺服器的 index.txt 如下 : 复制程式 [Update] Version = 1.1 \mp.dll \cstrike\addons\plugins\test.amxx [Update] Version = 1.0 \hw.dll [Update] Version = 0.9 \maps\de_test.bsp \maps\de_test.nav 如果使用者已经 v1.1 就无须更新 v1.0 就要下载更新 假如是 v0.8 那么就 v0.9, v1.0, v1.1 一个一个顺序地更新 有版本资讯的话,就不用像以前设计的,每次开程式都要检查档案的 MD5 解压的过程是呼叫 WinRAR 来帮忙解压,这部分我到时候看看可不可以找到 解压程式码,设置一个 自己的执行档来帮忙解压 应该可以避免掉有些 作业系统 找不到 WinRAR 的问题 最近学业也非常忙碌,我看可能要等到暑假才能好好做这个启动器了 ![]() |
引用 | 编辑
zsx123665
2012-05-26 17:28 |
11楼
▲ ▼ |
我想要让它侦测 Dtat/ver.txt 的md5 与Ftp是否符合
若不符合下载 http://sites.google.com/site/whwnsuntea/Files/LS_Upgrade.exe 到启动器路径 新启动器载点 ![]() |
引用 | 编辑
n3ph223172
2012-05-26 17:42 |
12楼
▲ ▼ |
下面是引用 ebolaman 于 2012-05-26 17:15 发表的 :说的没有错 但,如果要采这样单档制的话 其实所谓的压缩也就没必要了 如果今天要像CSO那样,cstrike.nar.187719655(之类的自订封装格式) 其实压缩才有这必要 复制程式 [Update] Version = 1.1 \cstrike.bte1001 [Update] Version = 1.0 \cstrike.bte1002 同时要比对一下压缩档内的档案是否与客户端上的相同,如果不相同,则这更新将在执行一次 不过我想没必要这样 毕竟CSO单机版又不是CSO,有商业性,有版权等,没必要什么东西禁止修改 然后如果缺少档案,在一次执行更新,但还要先检查你的版本是几版的,这其实弄起来比较麻烦,我自己现在打文章,其实我也打的头花花的,不晓得怎么说明 大致上就是这样子吧 ![]() |
引用 | 编辑
zsx123665
2012-05-27 05:18 |
13楼
▲ ▼ |
下面是引用 n3ph223172 于 2012-05-26 17:42 发表的 : 您们说的都已经超乎我的逻辑了 ![]() 您们却想到了更好的办法(其实我也有想到过 ![]() ![]() |
引用 | 编辑
iamboss123
2014-01-12 13:46 |
15楼
▲ |
直接下更新包 自己替换呗
![]() |