[TLBB] Hướng dấn mod lại khung tu luyện!
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 16
  1. #1
    Thành Viên songtu's Avatar
    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

    Icon1 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 
    Phần 2 : Gọi khung giao diện Xiulian từ client.
    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    修炼 
    B2: dùng lệnh PushEvent("UI_COMMAND",ID khung) --- lệnh này có nghĩa là gọi đến sự kiện UI_COMMAND , với ID là ID của khung giao diện. Tại sao lại là event UI_COMMAND vì event này file game nó hiểu đc,(tạm hiểu vậy thôi, sâu hơn nữa là váng đầu đấy). và một câu hỏi nữa là làm thế nào để biết đc số khung của giao diên? ID của khung được quy định trong file lua (trong trường hợp này là xiulian.lua) và không được trùng với số khung khác!! và nó thường đi kèm vs lời gọi khung bằng câu lệnh this:Show().
    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 
    Tiếp sửa trong Xiulian.lua nữa ..(giờ mục đíc là gọi đc cái khung nó hiển thị lên đã, còn màu mè tính sau!)
    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 
    các bạn làm thế nào mà nó hiện lên đc cái khung và hiện thông báo lên là đc bước đầu!!, nếu ko hiện thì phải xóa một thứ nữa, .... tại có một số hàm game ko load đc là nó ko load đến hàm this: Show() đâu!!



    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:
    BeginUICommandsceneId )
            
    UICommand_AddIntsceneIdgongli 
            .......
        
    EndUICommandsceneId )
        
    DispatchUICommandsceneIdselfId,  20150425
    Như vậy bên Client ở file Xiulian.lua trong hàm Xiulian_OnEvent(event) ta phải khai báo:
    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 dữ liệu từ sever và có các khai báo các hàm để cập nhật hiển thị ngay trên khung!!

    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
    Muốn hiển thị đc ảnh các bạn có thể khai báo <Property Name="BackImage" Value="" /> thành <Property Name="BackImage" Value="set:Xiulian1 image:Xiulian1_1" />, hoặc cho chuyên nghiệp hơn thì sẽ khai báo ở file lua với câu lệnh
    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é!

  2. 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)

  3. #2
    Thành Viên Dark.Hades's Avatar
    Ngày tham gia
    Apr 2014
    Đang ở
    cd /tmp/
    Bài viết
    646
    Thanks
    205
    Thanked 626 Times in 145 Posts

    Ðề: Hướng dấn mod lại khung tu luyện!

    Trích dẫn Gửi bởi songtu Xem bài viết
    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ể !!
    Vote 1 phiếu ủng hộ nhé, nếu thớt làm full bộ từ add đeens mod luôn thì tiện newbie thực hành
    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é!

  4. #3
    Thành Viên
    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!

    Trích dẫn Gửi bởi songtu Xem bài viết
    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ể !!
    Làm ngay và luôn đi bạn! hjhj! đa tạ trước!hjhj!
    Khách viếng thăm hãy cùng yuusen xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. #4
    Super Moderator Sói Đẹp Trai's Avatar
    Ngày tham gia
    Apr 2011
    Đang ở
    地獄
    Bài viết
    3,991
    Thanks
    369
    Thanked 4,049 Times in 1,402 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é!

  6. #5
    Thành Viên sintriu's Avatar
    Ngày tham gia
    Feb 2014
    Bài viết
    183
    Thanks
    33
    Thanked 25 Times in 22 Posts

    Ðề: 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é!

  7. #6
    Thành Viên
    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é!

  8. #7
    Thành Viên songtu's Avatar
    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!

    Trích dẫn Gửi bởi minixred Xem bài viết
    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.
    ban ơi vui lòng đừng trích dẫn bài kia,!! chỉ viết câu hỏi thắc mắc dưới này thui!!
    Khách viếng thăm hãy cùng songtu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #8
    Super Moderator Sói Đẹp Trai's Avatar
    Ngày tham gia
    Apr 2011
    Đang ở
    地獄
    Bài viết
    3,991
    Thanks
    369
    Thanked 4,049 Times in 1,402 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é!

  10. #9
    Super Moderator Sói Đẹp Trai's Avatar
    Ngày tham gia
    Apr 2011
    Đang ở
    地獄
    Bài viết
    3,991
    Thanks
    369
    Thanked 4,049 Times in 1,402 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é!

  11. #10
    Thành Viên akiem9x's Avatar
    Ngày tham gia
    Feb 2013
    Bài viết
    255
    Thanks
    260
    Thanked 187 Times in 99 Posts

    Ðề: 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é!

 

 
Trang 1 của 2 1 2 CuốiCuối

Các Chủ đề tương tự

  1. [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ầu
    Trả lời: 22
    Bài viết cuối: 11-11-14, 06:42 PM
  2. [TLBB] Cách Mở Rộng Khung Hiệu Ứng
    Bởi quyentran trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 4
    Bài viết cuối: 15-07-14, 12:53 AM
  3. [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ầu
    Trả lời: 0
    Bài viết cuối: 27-08-13, 10:43 AM
  4. Trả lời: 0
    Bài viết cuối: 04-12-12, 04:06 PM
  5. 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ầu
    Trả lời: 1
    Bài viết cuối: 30-05-12, 09:02 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 06:39 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.