Hi mọi người, mình xin viết 1 bài phân tích tính năng có sẵn từ đó giải thích cách 1 khung giao diện được gọi và cách truyền dữ liệu từ Client lên Server và ngược lại
~~ Mong mọi người góp ý nếu mình viết sai hay thiếu sót <3 ~~
~~ Lần đầu viết nên văn lằn ngoằn khó đọc. mọi người k hiểu có thể viết lại chổ khó hiểu mình giải thích lại nhé ~~
Tóm tắc để add 1 khung tính năng ta cần quan tâm các bước sau
- Khai báo vào Data/Config/InterfaceEx.txt
- File XML của khung ( giao diện, bố trí của khung bao)
- File Lua của khung (Xử lý tính năng, nút bấm, thao tác trong giao diện khung)
- Phần Lua ở Server để xử lý tính năng
~~ Mong mọi người góp ý nếu mình viết sai hay thiếu sót <3 ~~
~~ Lần đầu viết nên văn lằn ngoằn khó đọc. mọi người k hiểu có thể viết lại chổ khó hiểu mình giải thích lại nhé ~~
Tóm tắc để add 1 khung tính năng ta cần quan tâm các bước sau
- Khai báo vào Data/Config/InterfaceEx.txt
- File XML của khung ( giao diện, bố trí của khung bao)
- File Lua của khung (Xử lý tính năng, nút bấm, thao tác trong giao diện khung)
- Phần Lua ở Server để xử lý tính năng
- Client: ở client chúng ta sẽ cần
- Khai Báo
- Để Client biết mình vừa thêm 1 khung mới thì phải khai báo tại Data/Config/InterfaceEx.txt
- cụ thể ở đây là dòng như sau: -
Mã:Xin hãy Đăng nhập hoặc Tạo tài khoản để xem nội dung !
Các bạn thêm khung mới thì nhớ ghi địa chỉ 2 file xml và lua vào nhé, cụ thể trong ví dụ này là
TLHUB/NewbieGift.layout.xml (file này quy định giao diện của khung)
TLHUB/NewbieGift.lua (file này là nơi xử lý các sự kiện, hành động của khung)
2 file này đặt trong folder Interface nhé
- Để Client biết mình vừa thêm 1 khung mới thì phải khai báo tại Data/Config/InterfaceEx.txt
- Gọi cái khung lên >>
- Để gọi cái khung này fapsu gọi từ 1 cái nút bấm ở Client, trong trường hợp này thì fapsu để cái nút bấm cạnh ảnh đại diện nhân vật nên ta tìm tại PlayerFrame.layout.xml
Đoạn khai báo nút quà như sau
Mã:Xin hãy Đăng nhập hoặc Tạo tài khoản để xem nội dung !
Phân tích trong XML ta có Event Click chuột sẽ gọi hàm PlayerFrame_NewbieGift()
Hàm này được viết trong PlayerFrame.lua
Mã:Xin hãy Đăng nhập hoặc Tạo tài khoản để xem nội dung !
Hàm này gọi sự kiện UI_COMMAND với biến ID là 1026001
-------------------------------------------------------------------------------------
Tại NewbieGift.lua có khai báo 2 sự kiện như sau
Mã:Xin hãy Đăng nhập hoặc Tạo tài khoản để xem nội dung !
Mã:Xin hãy Đăng nhập hoặc Tạo tài khoản để xem nội dung !
- Để gọi cái khung này fapsu gọi từ 1 cái nút bấm ở Client, trong trường hợp này thì fapsu để cái nút bấm cạnh ảnh đại diện nhân vật nên ta tìm tại PlayerFrame.layout.xml
- Khai Báo
Nội dung trong Lua và logic của từng tính năng khác nhau nên mình sẽ k phân tích sâu hơn, phần tiếp theo mình sẽ giải thích sơ qua về XSCRIPT, đây là thứ giúp truyền dữ liệu từ client lên máy chủ
Đầu tiên là phải thêm config vào AllowableScriptFunc.txt ở folder Server nhé
Tham khảo tại NewbieGift ta có đoạn sau tại client
Mã:
Xin hãy
Đăng nhập
hoặc
Tạo tài khoản
để xem nội dung !
giải thích như sau
Set_XSCRIPT_Function_Name("OnCreateItem"): Tên Hàm trong script 045050 được gôi
Set_XSCRIPT_ScriptID(045050): ScriptID sẽ được gọi
Set_XSCRIPT_Parameter(0,9): Biến truyền về với vị trí 0 và giá trị là 9
Set_XSCRIPT_Parameter(1,2): Biến truyền về với vị trí 1 và giá trị là 2
Set_XSCRIPT_Parameter(2,nIndex): Biến truyền về với vị trí 2 và giá trị là biến Index
Set_XSCRIPT_ParamCount(3): Tổng số biến truyền về là 3
Phía máy chủ sẽ nhận được tại Script 045050
Mã:
Xin hãy
Đăng nhập
hoặc
Tạo tài khoản
để xem nội dung !
giải thích như sau
x045050_OnCreateItem: ID Script và tên hàm
Sau sceneId, selfId là các biến nhận được từ client bắt đầu từ 0. Trong trường hợp này type là Parameter 0, giá trị truyền về là 9. Tương tự param 1 là Parameter 1 giá trị là 2
Phần cuối minh viết về cách truyền từ Server về Client. Thường mình sẽ dùng cách gọi sự kiện UI_COMMAND để truyền về, ví dụ như sau
Mã:
Xin hãy
Đăng nhập
hoặc
Tạo tài khoản
để xem nội dung !
Khi truyền về client sẽ nhận như sau
Mã:
Xin hãy
Đăng nhập
hoặc
Tạo tài khoản
để xem nội dung !
Chỉnh sửa lần cuối: