[TLBB] Hướng dẫn add 1 khung giao diện mới
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 3 1 2 3 CuốiCuối
Kết quả 1 đến 10 của 22
  1. #1
    Super Moderator huuduyen_05's Avatar
    Ngày tham gia
    May 2006
    Đang ở
    Unknow
    Bài viết
    2,926
    Thanks
    122
    Thanked 2,109 Times in 650 Posts

    Hướng dẫn add 1 khung giao diện mới

    Như các bạn đã biết, Game.exe phiên bản hiện tại chỉ load được một số khung giao diện nhất định, để có thể hiển thị được thêm các khung của các tính năng mới như Tu luyện, Bí tịch, Võ hồn,... ta cần có các thao tác khai báo, chỉnh sửa và gọi khung giao diện đó.
    Phần này yêu cầu các bạn cần có 1 chút kiến thức về lập trình, cụ thể ở đây sử dụng ngôn ngữ lua, hiểu biết sơ qua về cấu trúc của server và client tlbb

    1. Căn bản
    Các file giao diện đều nằm trong các folder con của Interface.axp
    1 Khung giao diện căn bản gồm 2 file .lua và xml.
    File lua có cấu trúc căn bản gồm các hàm:
    _PreLoad() --Khai báo các sự kiện được phép nhận trong file
    _OnLoad() -- Dạng như cấu hình, khai báo ban đầu của file
    _OnEvent(event) --Hàm chờ các sự kiện
    Các hàm con...
    File xml là file dựng lên khung giao diện
    2. Khai báo khung giao diện
    Khai báo để Game.exe load được file giao diện mới trong file InterfaceEx.txt trong Config.axp
    Ví dụ:
    252 SuperWeaponUp SuperWeaponUp/SuperWeaponUp.layout.xml SuperWeaponUp/SuperWeaponUp.lua 3 0 0 ÉñÆ÷Éý¼¶
    253 Xiulian Xiulian\Xiulian.layout.xml Xiulian\Xiulian.lua 2 xljs 19 20 ÐÞÁ¶
    Lấy các dòng khai báo có sẵn bên FPT hoặc china
    3. Chỉnh sửa file giao diện
    Quá trình này hơi phức tạp và đòi hỏi bạn cần có kiến thức về lập trình
    2 File giao diện là lua và xml thì các bạn chỉ cần quan tâm tới file lua
    Vì là file giao diện mới nên có thể trong file sẽ có 1 số hàm mới mà Game.exe không load được, do vậy ta cần tìm các hàm này và bỏ đi
    Ví dụ trong file Xiulian.lua (khung tu luyện) có 1 số hàm:
    -- local level_11 = Player:GetXiuLianMiJiInfo(11,"Level")
    --local level_12 = Player:GetXiuLianMiJiInfo(12,"Level")
    4. Gọi file giao diện
    Có thể gọi từ server hoặc client, khung giao diện dạng như Tu luyện, võ hồn thì sẽ gọi từ client (Từ tab trang bị chuyển qua); khung giao diện đục lỗ, điêu văn thì cần gọi từ server (qua NPC)
    Mình ví dụ gọi khung Tu luyện từ khung trang bị:
    Các bạn mở file lua của khung trang bị SelfEquip.lua tìm đến hàm XiuLian_Page_Switch() xóa nội dung hàm và thay bằng PushEvent("UI_COMMAND",20111212)
    function XiuLian_Page_Switch()
    PushEvent("UI_COMMAND",20111212) --Truyền sự kiện UI_COMMAND với tham số 20111212 (số này để bất kỳ miễn không trùng với khung khác)
    SelfEquip_SetTabColor(0);
    end
    Nếu không có hàm trên thì có thể client của bạn chưa được update giao diện mới (có Tab Tu luyện),bạn nên unpact file Interface phiên bản mới nhất của chính hãng để lấy file xml và hàm trên qua
    P/s: Bạn có thể gọi từ server bằng hàm:
    BeginUICommand( sceneId )
    --UICommand_AddInt( sceneId, Prama) -- Prama: tham số truyền lên client nếu cần

    EndUICommand( sceneId )
    DispatchUICommand( sceneId, selfId, 20111212)
    Trong hàm _PreLoad() của file giao diện lua cần khai báo
    this:RegisterEvent("UI_COMMAND");--Khai báo sự kiện lệnh của UI, hầu hết các khung đều được khai báo sự kiện này
    Trong hàm _OnEvent(event) để ý đến cấu trúc
    if ( event == "OPEN_XIULIAN_PAGE" ) then
    ..........
    end
    if ... then
    ...
    end
    Đây chính là đoạn khi có sự kiện OPEN_XIULIAN_PAGE(dịch nôm na là mở trang tu luyện) được gọi thì sẽ thao tác ......Nhưng vì sự kiện này Game.exe không hiểu nên ta cần thay thế bằng 1 sự kiện của UI_COMMAND
    if (event == "UI_COMMAND" and tonumber(arg0) == 20111212) then

    if(this:IsVisible()) then
    this:Hide();
    return;
    end

    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_Update()

    Xiulian_SetTabState()
    end
    Đóng gói lại client, vào game và test thử, tất nhiên sẽ gặp 1 số lỗi nhỏ còn sót lại do quá trình chỉnh sửa lua chưa triệt để, hãy xem thông báo của client để tiến hành chỉnh sửa.
    Demo:

    [Only registered and activated users can see links. ]

    Sau khi đã hoàn thành add khung giao diện mới bạn có thể tiến hành phát triển trên nó như tạo tính năng tu luyện, điêu văn, võ hồn,...mới đây hơn là Kinh mạch, Bí tịch
    Nếu có thắc mắc xoay quanh các bạn vui lòng hỏi ở dưới.
    Chúc các bạn thành công!
    Khách viếng thăm hãy cùng huuduyen_05 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. The Following 26 Users Say Thank You to huuduyen_05 For This Useful Post:

    13giay (16-02-14), 1st.TheKing (18-03-14), abPro (17-02-14), akiem9x (16-02-14), chenglong (17-02-14), commale (22-08-14), dinhdtd (18-05-14), duc2071990 (24-03-14), hoangnhut1 (21-05-15), laemdo0705 (10-04-15), lamthanhat (18-02-14), LaoDaiPK (13-05-15), legend1250 (09-06-14), lexuanbach (28-02-14), LuxuryAngel (16-02-14), Oack123 (01-08-14), rikudo (17-02-14), ronglam (17-02-14), sac_no (04-05-15), Sói Đẹp Trai (16-02-14), songtu (01-03-14), thmodz (03-03-14), tualua2010 (17-02-14), vanthanh70 (18-02-14), versmore (15-07-14), vuhuy99v (16-02-14)

  3. #2
    Thành Viên Tâm Huyết
    Ngày tham gia
    Oct 2010
    Bài viết
    610
    Thanks
    196
    Thanked 218 Times in 99 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    Ngoài a huuduyen ra bao nhiêu người đã làm đến cái này rồi nhỉ
    Có thời gian thì khai thác bên client đi mấy bạn , cứ quay đi quay lại mấy cái event tự nghĩ trong game thì sẽ không tiến bộ được đâu !
    Lần sửa cuối bởi rikudo, ngày 17-02-14 lúc 04:20 PM.
    Không có gì là không thể

  4. Các thành viên gởi lời cảm ơn đến rikudo vì bài viết này !

    commale (22-08-14)

  5. #3
    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,069 Times in 1,403 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    Trích dẫn Gửi bởi rikudo [Only registered and activated users can see links. ]
    Ngoài a huuduyen ra bao nhiêu người đã làm đến cái này rồi nhỉ
    Có thời gian thì khai thác bên client đi mấy bạn , cứ quay đi quay lại mấy cái event tự nghĩ trong game thì sẽ không tiến bộ được đâu !
    Bạn có ý kiến thì cứ ý kiến đừng có đánh giá kiểu một chiều như vậy nhé. Ai thích mảng nào người ta sẽ phát triển mảng đó. Không tiến bộ thì đã chẳng ai làm.
    Phát triển event là một cái khá là hay. Game không có event thì có được nhiều người chơi không? Tất nhiên bên client đóng vai trò khá quan trọng. Mỗi người có một sở trường nhất định của mình, không thể nào kham hết được tất cả đâu.
    Lần sửa cuối bởi Sói Đẹp Trai, ngày 17-02-14 lúc 05:07 PM.
    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. Các thành viên gởi lời cảm ơn đến Sói Đẹp Trai vì bài viết này !

    thmodz (03-03-14)

  7. #4
    Thành Viên
    Ngày tham gia
    Jul 2010
    Bài viết
    620
    Thanks
    215
    Thanked 281 Times in 126 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    1/Song tiện cho em hỏi, khi mình mún học 1 cuốn bảo điển như trong hình thì mình phải click chuột vào nó và chọn chữ học, song em chỉ làm đc double click để học,anh có thể chỉ giúp phần còn lại đc ko!??
    [Only registered and activated users can see links. ]
    2/Cho em xin hàm lấy giới tính của nhân vật trong client(em đã thử sử dụng hàm Player:GetMySex() nhưng không thnh công!??)
    Khách viếng thăm hãy cùng vuhuy99v xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #5
    Super Moderator huuduyen_05's Avatar
    Ngày tham gia
    May 2006
    Đang ở
    Unknow
    Bài viết
    2,926
    Thanks
    122
    Thanked 2,109 Times in 650 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    1- Bạn gửi khung của bạn lên để mình xem sai chỗ nào nhé.
    2- Thử
    local pSex = Player:GetData("SEX")
    . Nếu không có thì phải nhờ server truyền xuống client.
    Khách viếng thăm hãy cùng huuduyen_05 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. The Following 2 Users Say Thank You to huuduyen_05 For This Useful Post:

    thmodz (03-03-14), vuhuy99v (17-02-14)

  10. #6
    Thành Viên
    Ngày tham gia
    Jul 2010
    Bài viết
    620
    Thanks
    215
    Thanked 281 Times in 126 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    Trích dẫn Gửi bởi huuduyen_05 [Only registered and activated users can see links. ]
    1- Bạn gửi khung của bạn lên để mình xem sai chỗ nào nhé.
    2- Thử . Nếu không có thì phải nhờ server truyền xuống client.
    1/nãy em mới coi lại, lúc em code em wen để cái local xiulian_liliang = Get_XParam_INT(1); này ngay trong cho click để chọn nên nó sai!^^"
    if XIULIAN_MIJI_SELECT == 1 then

    local xiulian_liliang = Get_XParam_INT(1);
    Clear_XSCRIPT();
    Set_XSCRIPT_Function_Name("XiulianStudy_CL");
    Set_XSCRIPT_ScriptID(390101);
    Set_XSCRIPT_Parameter(0,tonumber(g_ServerNpcId));
    Set_XSCRIPT_Parameter(1,xiulian_liliang);
    Set_XSCRIPT_ParamCount(3);
    Send_XSCRIPT();
    XiulianStudy_Update()
    Dạ tks anh nhé,tại em đang code cái kinh mạch mà cái đó có 2 cái hình nam và nữ,cái đó em ko bik nên cug pó tay,
    còn chân nguyên có ý tưởng ít ít định code thử^^
    Khách viếng thăm hãy cùng vuhuy99v xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  11. #7
    Super Moderator huuduyen_05's Avatar
    Ngày tham gia
    May 2006
    Đang ở
    Unknow
    Bài viết
    2,926
    Thanks
    122
    Thanked 2,109 Times in 650 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    à, nhắc mới nhớ. ko có hàm get giới tính ở client. Cái khung này mình cần lấy biến trả về từ server.
    Khách viếng thăm hãy cùng huuduyen_05 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  12. The Following 2 Users Say Thank You to huuduyen_05 For This Useful Post:

    thmodz (03-03-14), vuhuy99v (17-02-14)

  13. #8
    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
    625
    Thanks
    83
    Thanked 241 Times in 181 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    Thắc mắc về khung giao diện điêu văn 1 chút!! khi mình nhấn chuột vào món đồ thì sao nó ko chui vào ô mà lại bị mặc lên người mất nhi?? ai có cao kiến xin chỉ giáo !!
    Khách viếng thăm hãy cùng songtu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  14. #9
    Thành Viên GameZone
    Ngày tham gia
    Nov 2007
    Đang ở
    Hà Nội
    Bài viết
    312
    Thanks
    96
    Thanked 89 Times in 79 Posts

    Ðề: Hướng dẫn add 1 khung giao diện mới

    Trích dẫn Gửi bởi songtu [Only registered and activated users can see links. ]
    Thắc mắc về khung giao diện điêu văn 1 chút!! khi mình nhấn chuột vào món đồ thì sao nó ko chui vào ô mà lại bị mặc lên người mất nhi?? ai có cao kiến xin chỉ giáo !!
    Theo mình nghĩ, call bảng client lên còn phải chỉnh sửa bảng client nữa. Đồng thời tạo lua kết nối với Server!
    Khách viếng thăm hãy cùng ronglam xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  15. #10
    Thành Viên
    Ngày tham gia
    Apr 2011
    Bài viết
    20
    Thanks
    11
    Thanked 1 Time in 1 Post

    Ðề: Hướng dẫn add 1 khung giao diện mới

    Mình cũng gặp vấn đề khi add khung giao diện điêu văn vào, khi ấn chuột vào món đồ thì nó mặc lên người. Với lại, trong mấy code client thì mình cũng không thấy đoạn nào thực hiện việc này cả, có pro nào giúp mình với
    Khách viếng thăm hãy cùng eddie1412 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

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

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

  1. [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
  2. Trả lời: 0
    Bài viết cuối: 04-12-12, 04:06 PM
  3. [JX] Cần giúp về việc để vật phẩm ở khung phím tắt
    Bởi assaa trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 3
    Bài viết cuối: 26-08-12, 11:51 PM
  4. [JX] Làm sao viết chữ vào khung nhắc nhở
    Bởi nhoxmap_b7 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 12
    Bài viết cuối: 20-08-12, 11:01 AM
  5. Chỉnh server không giao dịch, có giao dịch.
    Bởi ngoctak546 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 1
    Bài viết cuối: 20-08-11, 05:19 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à 08:32 AM.
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ệ.