XtGem Forum catalog
↓↓xuống cuối trang↓↓
Chào mừng bạn đến với wap DinhLoi.XtGem.Com | Chúc bạn có 1 năm mới vui vẻ tốt lành hạnh phúc! Hãy giới thiệu website này cho bạn bè nhé!img
DinhLoi.XtGem.Com =>> CaFe9x.Gq
Bạn đến từ quốc gia:



Hôm nay ngày
21.11.24/11:36
img- Hi. Xin chào! Mozilla/5.0
logo
.
HOMECHÁTTruyệnFORUM
BÀI IV (4): TÌM HIỂU VỀ STRING COUNTER
Trước khi bước vào con đường VH chính thức. Mình muốn nói về String Couter, về HEX, DEX.
Hai phần mềm quan trọng trong vấn đề VH nâng cao đó là CLASS EDITOR (CE) và LANG EDITOR (LE).
[red][b]CE[/b][/red]có thể xem tất cả các file duới dạng Hex, Dex.
[red][b]LE[/b][/red]có thể đọc file.lng có String couter.
Bài viết này mình sẽ hướng dẫn các bạn cách thức hoạt động của LE và cách thức quy định Hex, Dex trong CE. Nó sẽ rất quan trọng cho các bạn VH sau này. Chúng ta phải nắm rõ căn bản cho chặc chẽ.
Tìm hiểu về String counter
[red][b]STRING COUTER (SC)[/b][/color]đó là 2 byte Hex, Dex mà CE đọc ra trong các file chứa ngôn ngữ của game VH. Nó quy định độ dài ký tự của đoạn ngôn ngữ theo sau nó.
Nó giúp cho các class thực thi hiểu được đoạn ngôn ngữ cần thể hiện khi chạy game.
Vấn đề chúng ta đề cập ở đây là cách nhận biết chúng.Cách cộng trừ chúng ra sao khi ta VH.
Một đoạn ngôn ngữ cho các class thực thi không được vượt quá:[color=red][b]65535[/b][/color]ký tự. Điều này dễ hiểu vì sao[color=red][b]String couter[/b][/color]có 2 byte.
Chúng ta mổ xẻ một đoạn ngôn ngữ để xem thử nhé!
Các bạn chú ý rằng[color=red][b]1 byte[/b][/color]chỉ được tối đa là[color=red][b]255[/b][/color]ký tự.
Chúng ta hãy xem đoạn ngôn ngữ tiếng[color=red][b]English[/b][/color]trước nhé! Sau đó đến[color=red][b]Trung Quốc[/b][/color].
Xem hình:

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_01.png[/img]
Theo hình ta thấy đoạn ngôn ngữ đầu là:
[color=red][b]"Age Of Empires III Mobile"[/b][/color] có[color=red][b]25[/b][/color]ký tự. Ở đầu chúng có 2 byte[color=red][b]000 025[/b][/color]. Đây chính là string couter của đoạn ngôn ngữ này.

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_02.png[/img]
Tiếp theo đoạn ngôn ngữ[color=red][b]"Main Menu"[/b][/color]có 9 ký tự. Có string couter là[color=red][b]000 009[/b][/color]ở đầu đoạn ngôn ngữ.

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_03.png[/img]

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_04.png[/img]
Bây giờ các bạn đã biết xác định string couter rồi chứ!
Tiếp theo chúng ta xem thử 1 ngôn ngữ game[color=red][b]Trung Quốc[/b][/color]nào!

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_05.png[/img]

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_06.png[/img]
Ta thấy đoạn ngôn ngữ có 7 ký tự. String couter là[color=red][b]000 007[/b][/color]
Đoạn ngôn ngữ kế tiếp có 52 ký tự. String couter là[color=red][b]000 052[/b][/color]

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_07.png[/img]

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_08.png[/img]
Chúng ta chú ý[color=red][b]string couter[/b][/color]luôn là 2byte đứng trước đoạn ngôn ngữ.
Đây là điều cốt yếu để[color=red][b]LE[/b][/color]có thể dịch được.Lang Editor chỉ dịch được đoạn ngôn ngữ dạng sau:
[color=red][b][String couter] đoạn ngôn ngữ 1 [String couter] đoạn ngôn ngữ 2 [String couter] đoạn ngôn ngữ 3...[/b][/color]
Các đoạn ngôn ngữ có string couter phải liên tục nằm kề nhau không được tách nhau.
Như vậy, ta có thể copy đoạn ngôn ngữ tiếng[color=red][b]Eng[/b][/color]như sau:

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_09.png[/img]
Là LE có thể dịch được. Sau khi VH Lang sẽ tự động chỉnh sửa string couter cho chúng ta. Xem hình:

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_10.png[/img]
Tới đây các bạn có thể hiểu sơ được cách thức làm việc của LE rồi đấy.
Bây giờ chúng ta sẽ tìm hiểu cao hơn đối với những ngôn ngữ dài và phức tạp.
Các bạn down file này về để xem.
Test file[color=red][b]ltp.wxt[/b][/color]
Đối với file[color=red][b]ltp.wxt[/b][/color]ta thấy đoạn ngôn ngữ dài tới[color=red][b]452[/b][/color]ký tự. 2byte string couter là[color=red][b]001 196[/b][/color]chứ không phải là[color=red][b]000 452[/b][/color].

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_11.png[/img]

[img]http://dinhloi.xtgem.com/thu-thuat/xu-li-java/images/hd-viet-hoa-game-java4_12.png[/img]
Vì sao? Như lúc đầu mình đã nói 1 byte chỉ thể hiện[color=red][b]255[/b][/color]ký tự thôi. Nếu vượt quá[color=red][b]255[/b][/color]ký tự thì nó sẽ chuyên thành 1 ở byte trước. Thì byte phía sau phải giảm[color=red][b]1[/b][/color].
Cụ thể như sau:
Đoạn ngôn ngữ 255 ký tự thì[color=red][b]SC là 000 255[/b][/color]
Đoạn ngôn ngữ dài 256 ký tự thì[color=red][b]SC là 001 000[/b][/color]
Tương tự, 257 ký tự là[color=red][b]001 001[/b][/color]
Vì vậy theo đoạn ngôn ngữ ở file[color=red][b]ltp.wxt[/b][/color]có[color=red][b]452[/b][/color]ký tự thì nó chuyển[color=red][b]255[/b][/color]từ byte sau thành[color=red][b]1[/b][/color]ở byte trước và trừ đi[color=red][b]1[/b][/color]thì sẽ còn:[color=red][b]452-255-1=196[/b][/color]. Vì thế string couter của đoạn ngôn ngữ thể hiện là:[color=red][b]001 196[/b][/color].
Các bạn chú ý: nếu chuyển 1 lần 255 thì trừ 1, chuyển 2 lần thì trừ 2...
Cụ thể, với đoạn ngôn ngữ dài[color=red][b]4000[/b][/color]ký tự thì string couter là:[color=red][b]015 160[/b][/color].
Ta chuyển 15 lần 255 lên byte trước thì phải trừ đi 15.
Đây là công thức đổỉ cho nhanh từ ký tự sang string couter và ngược lại.
Như trên, ngôn ngữ dài 4000 ký tự thì ta tính:
[color=red][b]4000 : 255=15 dư 175. Lấy 175-15=160[/b][/color](4000 là số kí tự, 255 là kí tự 1byte). Vậy string couter của 4000 ký tự là[color=red][b]015 160[/b][/color].
Ngược lại, string couter là[color=red][b]015 160[/b][/color]thì ta tính đoạn ngôn ngữ này dài bao nhiêu?
Ta lấy:[color=red][b]255x15+(160+15)=4000[/b][/color]. Vậy đoạn ngôn ngữ đó dài 4000 ký tự.
Rẩt dễ phải không? Nếu các bạn hiểu rõ về Hex, Dex trong CE thì VH game hãng EA và ảnh mã hóa sẽ trở nên dễ dàng.
Bài này khá khó hiểu. cần đầu tư thực hành nhiều hơn!
Nguồn: ForumMobile.Org
Tag:
Bạn đến từ:
Share: img img img img img
Gọi admin | SMS admin
Facebook:Nhox Attend

Thanks To:XtGem
Liên kết:U-ON
↑↑lên đầu trang↑↑