Hướng dẫn sử dụng Object Merger

Thảo luận trong 'World Editor' bắt đầu bởi dh-g, 5/1/12.

  1. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    Hôm nay tớ sẽ giải thích làm thế nào để sử dụng Grimex Object Merger, một công cụ rất hữu ích.

    Object Merger là một trình cắm của JassNewgen ngoài ra nó còn có thể giúp tạo hoặc di chuyển dữ liệu trong Object của một bản đồ. Di chuyển dữ liệu đối tượng từ bản đồ này sang bản đồ kia. và có ích trong những trường hợp rất cụ thể. Tớ sẽ tập trung vào việc tạo ra các dữ liệu đối tượng mới, thay thế.

    Tạo dữ liệu đối tượng mới với ObjectMerger được thực hiện với một dòng lệnh. Để chạy một lệnh ObjectMerger hiện tại, lưu các bản đồ. Thoát khỏi bản đồ. Mở bản đồ. Dữ liệu mới của bạn sẽ được ở đó.

    Những gì đơn giản có thể làm. ví dụ cậu làm một spell pack bao gồm 4 kỹ năng. cậu có thể sử dụng Object Merger để thực điều đó tạo ra 4 kỹ năng theo rawcode chính tay cậu điều chỉnh

    Hướng dẫn này sẽ dạy cho cậu những cấu trúc cơ bản của một lệnh ObjectMerger để tạo ra các dữ liệu đối tượng mới.

    Yêu cầu
    Cậu nhập vào một lệnh Object Merger vào một trigger code jass hoặc trong một Custom Sciprt:

    Mã:
    [COLOR=#808080]
    //! external ObjectMerger 
    [/COLOR]
    //! là cho phép jasshelper biết rằng dòng lệnh đó để thực hiện.
    • w3u units
    • w3t items
    • w3b destructables
    • w3d doodads
    • w3a abilities
    • w3h buffs
    • w3q upgrades
    đây là danh sách loại Object mình cần tạo ra.

    ví dụ: tớ muốn thực hiện 1 ability tớ sẽ ghi là.

    mã này đã chỉ định rằng nó sẽ tạo Object theo phần kỹ năng.
    Mã:
    [COLOR=#808080]
    //! external ObjectMerger [B]w3a[/B]
    [/COLOR]
    tất nhiên! nó sẽ yêu cầu một rawcode gốc hoặc gọi là Base On
    tớ sẽ base từ kỹ năng Storm Bolt với rawcode mặc định nó là AHtb
    trong khi đó tớ sẽ đặt rawcode base từ AHtb sẽ là A000
    Mã:
    [COLOR=#808080]
    //! external ObjectMerger w3a [B]AHtb[/B] [B]A000[/B]
    [/COLOR]
    như thế này chúng ta đã hoàn thành phần Object Merger. nhưng đừng vội vàng. những gì mình tạo ra cần phải chỉnh sửa thông số của nó theo đúng ý của mình.

    các cậu sử dụng jassnewgen sẽ để ý có một phần (##) đó là id của thông số đó trong Object Merger

    [​IMG]

    những phần xanh là đại biểu thông số real/integer/string
    phần màu xám thông số code ObjectMerger

    Ability
    Mã:
    [COLOR=#808080]
     //! external ObjectMerger w3a [B]AHtb[/B] [B]A000[/B] anam [/COLOR][COLOR=#0000cd]"Bolt"[/COLOR][COLOR=#808080] aret [/COLOR][COLOR=#0000cd]"Learn Bolt - [|cffffcc00Level %d|r]"[/COLOR][COLOR=#808080] arut [/COLOR][COLOR=#0000cd]"info"[/COLOR][COLOR=#808080] aub1 1 [/COLOR][COLOR=#0000cd]"info 1 "[/COLOR][COLOR=#808080] aub1 2[/COLOR][COLOR=#0000cd] "info 2 "[/COLOR][COLOR=#808080] aub1 3 [/COLOR][COLOR=#0000cd]"info 3 "[/COLOR][COLOR=#808080] aub1 4 [/COLOR][COLOR=#0000cd]"info 4 "[/COLOR][COLOR=#808080] alev 4 amcs 1 [/COLOR][COLOR=#0000cd]75[/COLOR][COLOR=#808080] amcs 2 [/COLOR][COLOR=#0000cd]85[/COLOR][COLOR=#808080] amcs 3 [/COLOR][COLOR=#0000cd]95[/COLOR][COLOR=#808080] amcs 4 [/COLOR][COLOR=#0000cd]105[/COLOR][COLOR=#808080] acdn 1 [/COLOR][COLOR=#0000cd]2[/COLOR][COLOR=#808080] acdn 2 [/COLOR][COLOR=#0000cd]3[/COLOR][COLOR=#808080] acdn 3 [/COLOR][COLOR=#0000cd]4[/COLOR][COLOR=#808080] acdn 4 [/COLOR][COLOR=#0000cd]5[/COLOR][COLOR=#808080] Htb1 1 [/COLOR][COLOR=#0000cd]100 [/COLOR][COLOR=#808080]Htb1 2[/COLOR][COLOR=#0000cd] 125[/COLOR][COLOR=#808080] Htb1 3 [/COLOR][COLOR=#0000cd]150[/COLOR][COLOR=#808080] Htb1 4 [/COLOR][COLOR=#0000cd]175[/COLOR][COLOR=#808080] aher 1 abuf 1 [/COLOR][COLOR=#0000cd]B000[/COLOR][COLOR=#808080] abuf 2 [/COLOR][COLOR=#0000cd]B000[/COLOR][COLOR=#808080] abuf 3[/COLOR][COLOR=#0000cd] B000[/COLOR][COLOR=#808080] abuf 4 [/COLOR][COLOR=#0000cd]B000[/COLOR][COLOR=#808080] atar 1 [/COLOR][COLOR=#0000cd]air[/COLOR][COLOR=#808080] atar 2 [/COLOR][COLOR=#0000cd]air,ground[/COLOR][COLOR=#808080] atar 3 [/COLOR][COLOR=#0000cd]air,ground,debris[/COLOR][COLOR=#808080] atar 4 [/COLOR][COLOR=#0000cd]air,ground,debris,enemy,neutral,organic aart[/COLOR][COLOR=#808080] "[/COLOR][COLOR=#0000ff]ReplaceableTextures\CommandButtons\BTNDivineIntervention.blp[/COLOR][COLOR=#808080]"[/COLOR]
    Mã:
    [COLOR=#a9a9a9]//! external ObjectMerger w3h [B]BSTN B000[/B] ftip [/COLOR][COLOR=#0000ff]"Bolt Buff"[/COLOR][COLOR=#a9a9a9] fart [/COLOR][COLOR=#0000ff]"ReplaceableTextures\CommandButtons\BTNDivineIntervention.blp"[/COLOR][COLOR=#a9a9a9][COLOR=#0000ff]
    [/COLOR][/COLOR]


    anam << một thông số chỉ định tên kỹ năng đa số các object kỹ năng đều là anam , tên bằng string cần ghi bằng "ghi vào đây ". ngoài ra các Real/Integer mình sẽ không cần thêm ""
    ví dụ
    anam
    "Name" alev 4 . nhớ rằng nếu các thông số có level phần 1 phần 2 mình sẽ đặt thông số đó bằng cách <type> <level> <real> ví dụ tớ muốn thay đổi damage của Storm Bolt lv 3 bằng 200 damage tớ sẽ ghi là Htb1 1 200.00

    Chú ý:

    khi 1 bản đồ chứa code đó mình save xong nó sẽ hoạt động trong phần jasshelper nhưng sẽ không hoạt động nếu jasshelper đang trong giai đoạn disable. và khi đó đã save xong thì mình sẽ không thấy ability vừa được tạo cần phải tắt WE mở lại mới thấy kết quả, và nếu rawcode có sẵn trong bản đồ bị trùng với rawcode do ObjectMerger tạo thì sẽ gây lên tình trạng ghi đè raw mới vào raw cũ.

    mình có thể disable mã Object Merger đó bằng cách disable trigger hoặc

    chưa disable
    Mã:
    [COLOR=#0000ff][COLOR=#A9A9A9]//! external ObjectMerger[/COLOR]
    [/COLOR]
    đã disable
    Mã:
    [COLOR=#0000ff][COLOR=#008000]////! external ObjectMerger[/COLOR]
    [/COLOR]
    demo
     
    Chỉnh sửa cuối: 15/12/12
  2. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    disable: //! -> // không nhanh hơn à =))

    "làm sao để sử dụng" <--- định hỏi cách? =))
     
  3. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    post nhanh quá hok để ý title mong anh thông cảm :P

    P/S: nếu được anh tom rename dùm em là Hướng dẫn sử dụng Object Merger
     
  4. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Cậu nên bớt nóng vội 1 chút và nhớ tìm hiểu kĩ trước khi làm tut để tránh sai lệch về kiến thức

    Đúng đây là ObjectMerge là trình cắm (plugin, từ này thông dụng, dễ hiểu và chuẩn hơn trình cắm) của JNG(JassNewGen) nhưng mà cái cậu dạy là dùng tool đó = code thông qua external tool của jasshelper
    Có nghĩa là nếu ko có jasshelper thì ko có chạy được cái cậu hướng dẫn.

    Bonus thêm cho bài tut của cậu ;)

    Cách dùng ObjectMerge tool = JNG

    Bước 1:Tìm đến Menu item Extensions -> Merge Object Editor Data
    9e8a3a5d4cfd7cef4773e1e75612553690c21fe40659ddc9b779aa8506632ea66g.jpg
    Bước 2: Chọn các file có 1 trong các đuôi sau:

    *.w3u units
    *.w3t items
    *.w3b destructables
    *.w3d doodads
    *.w3a abilities
    *.w3h buffs
    *.w3q upgrades
    Bước 3: Nhấn Open và map sẽ tự động save
    Bước 4: Tắt World Editor đi rồi mở lại để thấy sự thay đổi

    Note: Luật khi merge với tool này
    - Object sẽ được thêm vào bằng cách raw id xác định
    - Nếu Raw id trùng thì các thông số của object đó sẽ bị ghi đè bằng cái mới !!! <<< lưu ý cái này
    - Muốn chỉnh thông số khi dùng tool này với code "//! external " thì phải biết tên của thông số đó trong object editor
    Nhìn vào bên phải tên của thông số trong Object
    a62595d1ade47381df86574a6d56d3969960c624dc0df35de7f51a1a594ca4176g.jpg

    Hoàn toàn tương tự cho Merge Trigger DataMerge Constants Data
     

Chia sẻ trang này