打印

[輕石器 原始碼] 編譯後運行時出現錯誤

[輕石器 原始碼] 編譯後運行時出現錯誤

原始碼來源 : http://lab.welovesa.com/viewthread.php?tid=3481&extra=page%3D1

伺服器端把全部編碼換成 utf-8,翻成繁體
客戶端把編碼換成 big-5,翻成繁體

實際執行遇到幾個問題不知道從何改起
1. 客戶端一打開就破圖

https://imgur.com/0MyBggz

2. 客戶端字都是亂碼

https://imgur.com/undefined

3. 兩邊連線後就跳錯誤掉線

https://imgur.com/kZu0DdT

然後我看這個錯誤碼是下面這個 define 才有的,但是註解掉一樣會噴錯
#define _NEW_FUNC_DECRYPT¦  ¦   //新解密機制

https://imgur.com/GAF1sVa

想請問這些問題怎麼解決,照理說客戶端跟伺服器端應該是配套好的才對?
另外使用者帳號密碼是在哪註冊,是要先手動 insert 使用者資料到 DB 裡面嗎

[ 本帖最後由 ddczx 於 2021-9-10 18:36 編輯 ]

TOP

1.破圖是因為你沒有分離補丁
1-1.分離補丁需要加密,你沒有加密器

2.亂碼是因為你的環境跟源碼編碼環境不同

3.連線跳錯誤是因為freelogincheck這個function處理的

4.帳號密碼應該要在saac裡面編譯,可以用cf控制是否能夠自動註冊

TOP

回復 2# 的帖子

1. 破圖是因為你沒有分離補丁,分離補丁需要加密器
對補丁跟圖片還有加密器的概念不懂,有比較詳細的解說嗎,或該怎麼操作

2. 我執行環境是繁中,裡面的源碼也都轉成 big-5 編碼
還有甚麼地方要調整的嗎

3. 我看他 server 跳錯誤的地方是在 util_GetFunctionFromSlice
裡面 MesgSlice[] 的值不知道從哪來的,似乎跟 freelogincheck 無關?

TOP

回復 3# 的帖子

1. 破圖是因為你沒有分離補丁,分離補丁需要加密器
對補丁跟圖片還有加密器的概念不懂,有比較詳細的解說嗎,或該怎麼操作
A:加密器通常是沒有,分離補丁會在path資料夾,如果你可以直接讀明檔(*.adrn) 那就有解

2. 我執行環境是繁中,裡面的源碼也都轉成 big-5 編碼
還有甚麼地方要調整的嗎
A:整個CODE預設是接收GBK2312,所以你執行環境不是簡體中文就會顯示不出來
你必須要去讓client預設接收BIG5才能顯示

3. 我看他 server 跳錯誤的地方是在 util_GetFunctionFromSlice
裡面 MesgSlice[] 的值不知道從哪來的,似乎跟 freelogincheck 無關?
A:錯誤的地方有很多種,登入錯誤也有可能是封包錯,fromslice應該就是切字串
大概是切的過程出了甚麼問題,但理論上應該就是Freelogincheck

TOP

1.
其實你並沒有破圖,你可以正常顯示real_137相關內容
代表主程式是沒問題的
再來只是你分離補丁的差異
有沒有加解密的過程而已

假設你分離有加密,但是你客戶端沒有解密key或者過程
自然只能檢視原本主程式內容

2.
不太建議你一開始就對編碼做處理
如果你一開始就動編碼 基本上你只能猜測編碼問題
加上你客戶端傳遞走big5 服務端吃utf8
最好的狀況是你維持原樣編譯然後測試沒問題才做改動

3.
DME代表你連線封包過不了 可能是封包加解密KEY的問題
也可能是兩邊版本傳遞資訊不同
最後就有可能是你改動編碼有些字符吃不到導致DME


提醒你一下 因為GMSV跟客戶端是會傳遞中文字符的
亂動編碼你會衍伸很多其他問題
繁體還有歡樂的功蓋許
在你不熟專案的前提下 不建議做這樣的選擇

哦對 另外看你應該是ubuntu
石器gmsv/saac建議環境是centos

[ 本帖最後由 o3124568 於 2021-9-13 15:56 編輯 ]
踩坑大師

TOP