Kết quả 1 đến 10 của 16
-
28-04-15, 09:58 PM #1
- Ngày tham gia
- Feb 2014
- Đang ở
- Còn lâu mới nói
- Bài viết
- 623
- Thanks
- 83
- Thanked 241 Times in 181 Posts
Hướng dấn mod lại khung tu luyện!
cái này cũ rồi, nhưng lâu lâu vào chả thấy ai share gì , nay mạo muội viết cái thớt này trong Releasses, mình sẽ viết chi tiết từng bước một để một người mới cũng có thể hiểu đc!!
Mọi người cho ý kiến cái nhể !!
Let's start!!
Mình sẽ chia nhỏ bài viết của mình thành nhiều phần!! vì lý do công việc ko có thời gian onl trên 4rum đc nhiều!!!
Phần 1 : Những thứ cần thiết và các file liên quan đến khung tu luyện (Xiulian)
Phần mềm các bạn cần là : notepad++, axppacker,...
Nguyên liệu cần thiết : nó là 2 file chuẩn của nhà phát hành là Xiulian.lua và Xiulian.layout.xml, nên lấy của FPT (vì của VNG bản 3D họ đổi các TypeWindow (tức là kiểu của cửa sổ) trong file .xml )
tại sao phải cần 2 file đó: vì xml tạo giao diện cho tlbb, và .lua để liên kết với giao diện đó ....
Lưu ý : với những bản client ngày xưa, thời mà chưa có khung tu luyện, thì cần tạo thẻ ở selfequib.layout.xml ... rồi lại phải thêm thư mục, tốt nhất nên kiếm client ver 3.0 để làm!! (vì nó đã có sẵn thư mục rồi)
Câu hỏi đặt ra là : client có sẵn khung tu luyện rồi, sao mà khi chơi game chức năng đó (ở tab tu luyện ko hiện ra..?) câu trả lời rất đơn giản!! Vì file game.exe không làm đc điều này (hoặc file .dll ko có chứa thư viện cho việc gọi khung tu luyện lên)
Giờ nhiệm vụ là : gọi khung tu luyện từ client (tức là khi nhấp vào tab Tu Luyện thì giao diện tu luyện sẽ hiện lên) và tương tác giữa client và server (tức là khi ta sử dụng công lực đan, thì chỉ số công lực sẽ đc cập nhật lên khung hiển thị Tu luyện!)
Link 2 file lấy từ FPT (chưa chỉnh sửa):PHP Code:https://drive.google.com/file/d/0B6mjZdT-L1CQUHFzSjQ0R1VOYUU/view?usp=sharing
B1:Gọi bất cứ một khung nào cũng vậy (trừ một số cái đặc biệt trong file config) thì đều liên quan đến file "InterfaceEx.txt" trong Config.axp , file đó khai báo nhưng khung đc gọi. Nếu file đó của bạn mà chưa đc khai báo cho Xiulian thì bạn có thể lấy từ bản của nhà phát hành, rồi tìm đến dòng khai báo cho khung đó, copy vào file của mình và lưu lại rồi pack (nén lại) lại vào trong Config.axp của chính mình!!
PHP Code:264 Xiulian Xiulian\Xiulian.layout.xml Xiulian\Xiulian.lua 2 xljs 19 20 修炼
Cũng có thể gọi khung từ server nhưng cái này mình sẽ nói sau.
Phần 3: Bắt tay vào làm nào!
Lưu ý các bạn nên backup lại các file của mình để tránh ...., mình thì tạo luôn 1 file Interface.axp_copy ra trong thư mục Data, dùng tool mở file copy ra rồi ghi đè lên file cũ!!
Mình đặt khung Xiulian của mình với ID là 20150109 (trùng vs hôm làm cái này chẳng hạn!!)
Mở SelfEquip.lua ra, tìm đến hàm XiuLian_Page_Switch() nội dung trong hàm sẽ có có câu lệnh PushEvent("UI_COMMAND",20150109 )
PHP Code:function XiuLian_Page_Switch()
PushEvent("UI_COMMAND",20150109)
end
tìm đến hàm Xiulian_OnEvent(event) sửa nội dung trong hàm if ( event == "OPEN_XIULIAN_PAGE" ) then ... end!!
xóa luôn dòng if (event == "OPEN_XIULIAN_PAGE" ) vì event này game exe ko hiểu, thay vào đó là :
PHP Code:if ( event == "UI_COMMAND" and tonumber(arg0)==20150109 ) then
....
this:Show();
PushDebugMessage("Begin_Load!!")
...
end
Phần 3: Hiển thị Icon, và các thứ linh tinh!!
Sau khi các bạn làm được , và nó hiển thị đc khung tu luyện lên, nhưng vẫn chưa có gì cả chỉ là khung và chưa có hình ảnh , chưa có cả hiện các chỉ số nữa!!
B1: tạo tính năng cập nhật cho khung tu luyện!!(cái này khó giải thích nhể ???) đại loại là khi nhấn vào item Công lực đan, thì số công lực sẽ hiển thị lên khung tu luyện!!
Có thể nói là tạo một vòng tròn liên kết giữa client và sever , rồi server lại liên kết vs khung!! Tư tưởng là như vậy nên ta làm như sau:
ý tưởng sẽ là : khi click vào tab tu luyện thì sẽ gọi khung lên, đồng thời cũng gửi tín hiệu về cho sever ở một script nào đó, sau đó script đó có nhiệm vụ gửi dữ liệu lại cho khung!
cách làm: Ngay trong lời gọi khung ở client, trong file Xiulian.lua các bạn viết :
Code:if ( event == "UI_COMMAND" and tonumber(arg0)==20150109 ) then if(this:IsVisible()) then this:Hide(); return; end Clear_XSCRIPT(); Set_XSCRIPT_Function_Name("ReturnAttrXiulian"); Set_XSCRIPT_ScriptID(390101); Set_XSCRIPT_Parameter(0,1); Set_XSCRIPT_ParamCount(1); Send_XSCRIPT(); local selfUnionPos = Variable:GetVariable("SelfUnionPos"); if(selfUnionPos ~= nil) then Xiulian_Frame:SetProperty("UnifiedPosition", selfUnionPos); end XIULIAN_BOOK_SELECT = 1; XIULIAN_MIJI_SELECT = -1; this:Show(); Xiulian_SetTabState() end
sr every once!! dịp nghỉ phải được uống nhiều nên rất ít khi tỉnh!!
đoạn code trên mình sử dụng Xscript (bạn nên tìm hiểu về cái này kỹ hơn nếu chưa biết, mây topic gần đây rất hay nói về nó) gọi đến hàm "ReturnAttrXiulian" , hàm này đc khai báo trong một Script nào đó(các bạn tự tạo, ví dụ:Xiulian.lua) với ID là 390101. Hơn hết ,để Xscript hoạt động đc cần khai báo trong AllowableScriptFunc.txt trong sever. Điều quan trọng ở đây là trong Script Xiulian.lua mình sẽ dùng cấu trúc sau để gửi data đến Client:
PHP Code:BeginUICommand( sceneId )
UICommand_AddInt( sceneId, gongli )
.......
EndUICommand( sceneId )
DispatchUICommand( sceneId, selfId, 20150425)
PHP Code:if ( event == "UI_COMMAND" and tonumber(arg0)==20150425 ) then
xiulian_gongli=Get_XParam_INT(0);
.....
Xiulian_Update();
Xiulian_JingJie_Selected_Update();
Xiulian_SetSelectState()
end
Nhân tiện nói về hàm :trong file lua ở client thì có những hàm mặc định và cách khai báo của nó (các bạn xem nhiều rồi sẽ quen vs cách thức khai báo của nó!).Những hàm mặc định này là gì , là những hàm mà game tự hiểu đc mà ko phải do vocker địn nghĩa (thì cũng là người nghĩ ra cả mà!) ví dụ như :_PreLoad() , _OnLoad(), _OnEvent(event) và bên cạnh đó không kém phần quan trọng là các hàm do moder or vocker khai báo,những hàm này có thể đc gọi bởi những hàm trong thân file lua và cũng có thể đc gọi từ file .xml. Điển hình nhất là khi tắt một khung giao diện, khi các bạn click chuột vào cái nút X ở cửa sổ , tức là bạn đã thực hiện hàm Close ở khung .xml đc gửi để file lua, hoặc xử lý ngay tại khung (nôm na thế thôi!!).
Như ta đã biết các file Xml là các khung giao diện , là các windows(các cửa sổ) , có thể hiểu là một đối tượng nhỏ đi!! Chúng thường có các kiểu, và tên.!! Có cửa sổ chỉ cho hiển thị ảnh mà ko cho click chuột vào, có của sổ chỉ để hiện chữ.... và cái kiểu WINDOWNS này HÌNH NHƯ đc quy định trong mấy file ở thư mục Schema, trong Interface.axp !!
Nói qua vậy thui, vào việc chính, việc vây giờ là các bạn cần hiển thị đc hình ảnh trong mấy cái ô nhỏ như mình đã làm, và thao tác click chuột trên mấy ô đó khả dụng!! Để làm đc điều đó , ta cần tìm đến vị trí của máy cái ô đó. Và trong si tiu ây sần này thì ô đầu tiên là ô "Xiulian_XinfaSkill_1 với câu trúc như sau:
PHP Code:<Window Type="TLBB_ActionButton" Name="Xiulian_XinfaSkill_1">
<Property Name="Position" Value="x:0.158046 y:0.040346"/>
<Property Name="AbsoluteSize" Value="w:34.000000 h:34.000000"/>
<Property Name="BackImage" Value="" />
<Event Name="Clicked" Function="Xiulian_Xinfa_Clicked(1);"/>
</Window>
XIULIAN_BOOKS[i]:SetProperty("BackImage",ImageXlBooks[i]) ở đây biến ImageXlBooks[i] của mình là cái "set:Xiulian1 image:Xiulian1_1". Lưu ý đổi với kiểu TLBB_ActionButton nó thường chỉ hiển thị ảnh đc với kiểu ảnh là "BackImage" mà hàm clcik chuột khả dụng!! Từ đó suy ngược lại xem cái hàm Xiulian_Xinfa_Clicked(1) nó nghĩa là gì !! Logic một tý và tính kiên trì một tý là có thể mod hệt như bản gốc!!
Đấy mới là xong phần hình ảnh! tiếp là phải hiện lên cái Tips cho nó, thế nó mới chuẩn như bản gốc được!! phần mod cái tip , mình xin chuyển sang một bài viết khác để hướng dẫn cụ thể hơn, vì nó dài và đòi hỏi một chút kỹ thuật!!
Hiện tại vì lý do công việc và bạn gái thì suốt ngày anh ơi nên khó tập trung đc !!mong anh em thông cảm !!
Lần sửa cuối bởi songtu, ngày 14-05-15 lúc 07:18 PM.
Khách viếng thăm hãy cùng songtu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
The Following 18 Users Say Thank You to songtu For This Useful Post:
0241618026 (24-02-20), 1st.TheKing (01-05-15), akiem9x (15-05-15), alonewjnd (29-04-15), athecang (28-06-15), Dark.Hades (02-05-15), hoalong1120 (05-02-16), makute7413 (28-04-15), minixred (29-04-15), roklin (15-05-15), s2bac95 (25-07-15), sac_no (16-06-15), shinno (05-05-15), sintriu (29-04-15), thedz (04-05-15), ttinle2008 (08-10-16), tului (02-05-15), yuusen (28-04-15)
-
28-04-15, 10:33 PM #2
- Ngày tham gia
- Apr 2014
- Đang ở
- cd /tmp/
- Bài viết
- 646
- Thanks
- 205
- Thanked 628 Times in 146 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Khách viếng thăm hãy cùng Dark.Hades xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
28-04-15, 10:38 PM #3
- Ngày tham gia
- Feb 2015
- Bài viết
- 119
- Thanks
- 49
- Thanked 11 Times in 7 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Khách viếng thăm hãy cùng yuusen xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
28-04-15, 11:07 PM #4
- Ngày tham gia
- Apr 2011
- Đang ở
- 地獄
- Bài viết
- 3,991
- Thanks
- 369
- Thanked 4,063 Times in 1,403 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Có giải thích rõ từng dòng lệnh + chức năng của nó + vì sao phải làm như thế + có cách nào khác không. Như thế thì đảm bảo ai cũng hiểu trừ...
Khách viếng thăm hãy cùng Sói Đẹp Trai xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-04-15, 07:14 AM #5
Ðề: Hướng dấn mod lại khung tu luyện!
Em ủng hộ bác
.
Dù ai đi ngược về xuôi nhớ ngày giỗ tổ ... ? (gợi ý câu trả lời: mung 10 thang 3)Khách viếng thăm hãy cùng sintriu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
02-05-15, 07:07 PM #6
- Ngày tham gia
- Apr 2015
- Bài viết
- 21
- Thanks
- 7
- Thanked 2 Times in 2 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Bác uống bia lâu quá hìhì. Tới cái bước quan trọng nhất hóng đỏ mắt luôn.
Lần sửa cuối bởi minixred, ngày 02-05-15 lúc 09:41 PM.
Khách viếng thăm hãy cùng minixred xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
02-05-15, 09:31 PM #7
- Ngày tham gia
- Feb 2014
- Đang ở
- Còn lâu mới nói
- Bài viết
- 623
- Thanks
- 83
- Thanked 241 Times in 181 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Khách viếng thăm hãy cùng songtu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
02-05-15, 10:27 PM #8
- Ngày tham gia
- Apr 2011
- Đang ở
- 地獄
- Bài viết
- 3,991
- Thanks
- 369
- Thanked 4,063 Times in 1,403 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Chưa thấy dính gì đến xml nhỉ. Mấy cái hàm thao tác như khi click phải thì làm gì là trong xml nó quy định. Nên giải thích kỹ hơn nữa cấu trúc file xml thay vì quá tập trung vào lua. Còn nữa cái quan trọng ko kém UI_Command là X_Script
Khách viếng thăm hãy cùng Sói Đẹp Trai xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
05-05-15, 11:38 AM #9
- Ngày tham gia
- Apr 2011
- Đang ở
- 地獄
- Bài viết
- 3,991
- Thanks
- 369
- Thanked 4,063 Times in 1,403 Posts
Ðề: Hướng dấn mod lại khung tu luyện!
Move qua mục Release phân vùng cho rõ tài liệu (Scripts) với mã nguồn (Release) để member tiện theo dõi.
Khách viếng thăm hãy cùng Sói Đẹp Trai xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
15-05-15, 09:17 PM #10
Ðề: Hướng dấn mod lại khung tu luyện!
Hàng lạ mà sao lặng yên thế nhỉ
Khách viếng thăm hãy cùng akiem9x xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
Các Chủ đề tương tự
-
[TLBB] khung hiển thị thông tin vật phẩm........
Bởi skythienlong trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 22Bài viết cuối: 11-11-14, 06:42 PM -
[TLBB] Cách Mở Rộng Khung Hiệu Ứng
Bởi quyentran trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 4Bài viết cuối: 15-07-14, 12:53 AM -
[MU] ai giúp mình về khung chát với
Bởi Darkku trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 0Bài viết cuối: 27-08-13, 10:43 AM -
[MU] Hiện kết quả từ 1 tới 1 của 1 Mất khung Màu chữ,Cỡ chữ,Font chữ khung soạn thảo
Bởi YouTobe trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 0Bài viết cuối: 04-12-12, 04:06 PM -
Cần hỏi cách sửa vỡ khung nhất kiếm
Bởi 033718730 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 1Bài viết cuối: 30-05-12, 09:02 PM