引用 | 編輯
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樓
▲ |
直接下更新包 自己替換呗
![]() |