[JX] Tạo Trap theo cách mới (JX DEV)
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Kết quả 1 đến 4 của 4
  1. #1
    Thành Viên
    Ngày tham gia
    Aug 2013
    Bài viết
    2
    Thanks
    4
    Thanked 27 Times in 2 Posts

    Icon9 Tạo Trap theo cách mới (JX DEV)

    Xin chào tất cả các bạn. Mình gia nhập diễn đàn đã lâu mà chưa có gì đóng góp cả.
    Giờ chắc mọi người theo JX linux hết rồi nhưng mình vẫn thích vọc JX cũ. Chẳng biết còn ai như mình nữa không?
    Nếu ai còn quan tâm thì đọc tiếp còn không thì hãy dừng ở đây nhé! Vì mình sẽ nói về source cũ thôi.

    Thấy nhiều bạn đưa phương án tạo trap rồi, người thì viết hàm load riêng, người thì vào các Map để tạo hoặc sửa Region_S.
    Mình tích lũy được kiến thức của các bạn, tự nghiên cứu và phát triển theo cách riêng của mình. Kết quả là đã thành công, server load trước tất cả trap khi khời động và client chạy nhẹ tênh
    Có thể tùy ý load vài trăm cái trap trên mỗi map mà quản lý chúng rất dễ, rất tường minh, bỏ qua hết các thư mục toàn tiếng Tầu rắc rối kia.

    Dưới đây là cách làm của mình:
    bước 1- Tạo 1 tệp Trap.txt theo định dạng: IDMap, NumTrap,nX1,nY1,script1, nX2,nY2,script2,.......nXn,nYn,scriptn.
    Ví dụ mình tạo ở Ba Lăng Huyện: 53 2 195 203 53_myscript1 213 206 53_myscript2
    bước 2- Vào KSubWorld, void LoadMap gọi một thủ tục LoadTrap để lấy thông tin trên vào 1 Ktab. Sẽ lấy được số lượng trap trên mỗi bản đồ, tọa độ X,Y và script cho mỗi trap (Cái này các bạn có thể tham khảo thêm cách lấy từ bất kỳ đoạn code đọc Ini Load nào).
    Trong LoadMap, nếu Region có nX và nY trùng với giá trị của IDtrap thì gán cho nó 2 tham số: m_havetrap=1 (có trap) và tham số thứ 2 m_script là script của trap đó.
    Xong cái này là đã đỡ đi cả tháng ngồi soạn và tim trap ở mỗi Map rồi các bạn ạ.
    bước 3: Gọi từ Client bằng cách gán cho các lệnh OnRun, OnJump, OnWalk một hàm kiểm tra,
    Nếu thấy Region có trap mới gọi script của nó.
    Phương pháp này giống hệt của chương trình nguyên bản: Load region trước, trong đó có thông số Npc, Object vàTrap. Khi Player chạy đến một Region, nếu Region đó có Trap mới đọc. Dựa vào nguyên tắc trên, mình chỉnh sửa theo cách mới, khắc phục được phương thức mỗi lần chạy lại quét tìm các giá trị như các cách cũ, làm chậm tốc độ máy đi khá nhiều hoặc vọc các thư mục chứa Map cực kỳ tốn công mà khó quản lý. Mỗi nhân vật khi di chuyển đến 1 region mới chỉ phải kiểm tra có giá trị 1 hay 0 mà thôi!

    void KNpc:: DoTrap()
    {
    if (IsPlayer())
    {
    #ifdef _SERVER
    if (SubWorld[m_SubWorldIndex].m_Region[m_RegionIndex].m_HaveTrap==1)
    {
    sprintf(TrapActionScript, "\\script\\trap\\%s",SubWorld[m_SubWorldIndex].m_Region[m_RegionIndex].m_script);
    Player[m_nPlayerIdx].ExecuteScript(TrapActionScript,"main", 0);
    ZeroMemory(TrapActionScript, 80);
    }
    #endif
    }
    Nếu bài viết của mình lạc hậu, xin các bạn bỏ qua vì mình thích viết source hơn viết script.
    Mình không đưa code lên làm bài biết rắc rối mà không biết là còn có ích nữa không. Vì vậy mình chỉ nói hướng làm, mang tính trao đổi kinh nghiệm. Chi tiết nếu bạn nào cần thì ta bàn kỹ hơn nhé!

    PS: Hiện nay mình đã fix và cá nhân hóa thành công khá nhiều chức năng như chạy trên MiniMap, tự xếp chồng vật phẩm khi auto nhặt đồ, chuyển đồ tự động, ép đồ tím và hoàng kim, Load, public phi phong và các hiệu ứng như vòng sáng, danh hiệu, trùng sinh... cho người xung quanh thấy được không cần đưa vào Skill, thay đồ bằng click chuột, bán hàng offline, thay avatar,vv.... , chỉ còn post rao đồ trên Chat vẫn còn đang loay hoay vì có một mình (hic!). Mình rất cần có bạn bè đam mê JX để trao đổi thêm nhưng giờ vắng vẻ quá.
    Lần sửa cuối bởi hadoson, ngày 01-05-15 lúc 04:56 PM.
    Khách viếng thăm hãy cùng hadoson xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. The Following 6 Users Say Thank You to hadoson For This Useful Post:

    assaa (05-05-15), bil4i3n (02-05-15), gztlove114 (05-05-15), killer20099 (01-05-15), trananh88vt (01-05-15), voanhnhat20010 (01-05-15)

  3. #2
    Thành Viên
    Ngày tham gia
    Sep 2014
    Bài viết
    80
    Thanks
    5
    Thanked 27 Times in 13 Posts

    Ðề: Tạo Trap theo cách mới (JX DEV)

    Cho mình xin cái yahoo để trao đổi nhé
    Khách viếng thăm hãy cùng phongmous96 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #3
    Thành Viên
    Ngày tham gia
    Dec 2008
    Đang ở
    TP HCM
    Bài viết
    142
    Thanks
    55
    Thanked 189 Times in 27 Posts

    Ðề: Tạo Trap theo cách mới (JX DEV)

    Đúng là chỉ người lười biếng nhất mới làm công việc khó nhất bằng cách dễ dàng nhất, mình thì làm theo linux load cái maps.pak là xong, rồi code thêm hàm xóa trap thêm trap dùng cho scripts sự kiện event nữa là chia tay phần trap luôn, khỏi quan tâm đến trap nữa.
    Khách viếng thăm hãy cùng TranDoanDuc xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. #4
    Thành Viên Tâm Huyết assaa's Avatar
    Ngày tham gia
    Jul 2009
    Bài viết
    915
    Thanks
    271
    Thanked 416 Times in 236 Posts

    Ðề: Tạo Trap theo cách mới (JX DEV)

    Code source thì trước thienthanden2 và systemerror đã từng share rồi. Nhưng cũng cảm ơn bạn đã chia sẽ thêm kinh nghiệm cho ae cùng dev jx.
    Mình thì cũng load maps.pak của linux qua rồi gom lại mấy cái trap bên linux qua dùng cho khỏe đỡ công viết lại script
    Khách viếng thăm hãy cùng assaa xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 

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

  1. Vấn đề về đường dẫn Trap !
    Bởi thaihoa91 trong diễn đàn Guides - Kho Lưu trữ
    Trả lời: 8
    Bài viết cuối: 03-02-12, 09:10 AM
  2. Trap ..........
    Bởi banphaixanh trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 1
    Bài viết cuối: 19-06-11, 07:47 PM
  3. X Trap lỗi điên người
    Bởi svzodiac trong diễn đàn Các Server Không Nằm Trong Box
    Trả lời: 6
    Bài viết cuối: 13-01-09, 08:59 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à 05:14 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ệ.