Recipe Item System - System ghép đồ

Thảo luận trong 'World Editor' bắt đầu bởi vuongkkk, 2/2/11.

  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
    vào map đừng copy cái máy cái đoạn ở folder dưới là ok ...
     
  2. zzchaolegionzz

    zzchaolegionzz T.E.T.Я.I.S

    Tham gia ngày:
    27/9/07
    Bài viết:
    606
    Nơi ở:
    Black Parade
    không copy đoạn nào ạ. em thấy đoạn nào cũng có code. anh chỉ em với :|. mà ai chỉ mình cái này với. làm sao post tringger vào bài được. như thế này nè. đây là mình copy bài trên còn tự bỏ vào thì mình không biết.
    /*
    Cach xai`:
    Moi khi tao. 1 Item (Permanent gi gi do), thi tao them 1 Item base tu` 1 Item PowerUp (nhu sach mau' chang han)
    Sau do ghi lai RAW code cua 2 item do, goi item PowerUp la Tome, item chinh' (permanent j j do y) la Item (of course)
    Tai. Map Initializing, ghi dong` code:
    call AddItemTable(Tome_ID,Item_ID)
    Voi Tome_ID la RAW code cua Tome, Item_ID la RAW code cua Item
    Khi tao. shop, cho Shop ban Tome chu khong ban Item chinh.
    */
    library InitPowerUp initializer Init requires Table, ItemRecipeSys
    globals
    public Table ItemTable
    endglobals

    public function AddItemTable takes integer tomeid, integer itemid returns nothing
    set ItemTable[tomeid] = itemid
    endfunction

    private function GiveAction takes nothing returns nothing
    local unit a = GetBuyingUnit()
    local item b
    local location loc = GetUnitLoc(a)
    set b = CreateItemLoc(ItemTable[GetItemTypeId(GetSoldItem())],loc)
    if InventoryIsFull(a) then
    call ItemRecipeSys_Check(a,b)
    else
    call UnitAddItem(a,b)
    endif
     
    Chỉnh sửa cuối: 7/7/11
  3. 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ái bạn bảo lỗi thực ra là các chức năng phụ khác của system mình đó. Muốn mấy cái đó ko chạy thì đơn giản là đừng copy (delete nếu đã có) folder test là ổn thôi mà :)
     
  4. zzchaolegionzz

    zzchaolegionzz T.E.T.Я.I.S

    Tham gia ngày:
    27/9/07
    Bài viết:
    606
    Nơi ở:
    Black Parade
    à vậy hả. uh vậy ver 1.4 là fix đầy đủ hết ồi chứ gì. chỉ copy cái phần InnitiMap thôi hả.
     
  5. 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
    việc copy chỉ những trigger này nhá, bỏ vào map là ok rồi còn số trigger khác trong map thì đừng nên copy
    ChainData
    ItemInfo
    TriggerUtils
    ItemRecipeSys
    initRecipes
    SimError
    Table
     
  6. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Change Log:
    Ver 2.0:
    • Code giờ gọn hơn, dễ nhìn hơn, có lẽ là nhanh hơn 1 chút nữa :D
    • Đã hoàn chỉnh việc ghép đồ như dota!
    • Không cần nhiều trigger như trước chỉ có 4 cái thôi

    P/S:
    - Update lại trang 1 và thêm cách dùng rồi nhé
    - Anh Tom sửa hộ cái title cho thread với: Recipe Item System - System ghép đồ
     
    Chỉnh sửa cuối: 28/11/12
  7. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Double post!!! To bring attention

    Update ver 2.1:
    + Thêm chức năng
    + Thêm hướng dẫn dùng cụ thể ở trang đầu
    + Đảm bảo dễ dùng hơn ver 2.0 nhiều ;)
     
  8. World-Editor

    World-Editor Youtube Master Race

    Tham gia ngày:
    12/12/13
    Bài viết:
    4
    Bạn vuongkkk ơi! Có lỗi trong Recipe Item System của bạn này! Không biết bạn còn hoạt động trong 4rum ko nữa! Bạn còn hoạt động thì cố gắng fix dùm System của bạn với! Mình đang dùng System của bạn để tiết kiệm thời gian tự viết code ghép Item trong map của mình!
    :cuteonion17:
    Luôn xảy ra lỗi khi mua Item dạng Power Up (Item giả để trong Shop)đầu tiên, rồi mới mua các Item # trong công thức ghép để bắt đầu ghép!

    Hoặc lỗi khi Item giả ở các dạng khác, ngoài Power Up

    I - Trường hợp 1:
    set result = RIS_Result.create('I00B',0)
    set recipe = RIS_Recipe.create(result)
    call recipe.add('I00I','I00J',0)
    call recipe.add('I00L',0,0)
    _ Nghĩa là: Claws of Attack (+50) (Face trong Shop, và nó ở dạng Power Up) ghép Claws of Attack (+40) = Claws of Attack (+50) (Real)
    _ Thứ tự mua: 1) Claws of Attack (+50) (Face - Power Up) trước tiên
    2) Claws of Attack (+40) sau cùng
    _ Lỗi: Code đã remove hết các Item công thức để tạo thành Item thật là Claws of Attack (+50), nhưng không remove Ability của Claws of Attack (+40).
    Item thật sẽ + 90 Damage (Chứ không phải + 50 Damage), dù bỏ ra vẫn sẽ được + 40 Damage (Do ko được code remove đi)
    _ Lỗi không xảy ra khi trình tự mua được đảo ngược

    II - Trường hợp 2:
    set result = RIS_Result.create('I00B',0)
    set recipe = RIS_Recipe.create(result)
    call recipe.add('I00I',0,0)
    call recipe.add('I00L',0,0)
    _ Nghĩa là: Lần này không cho Item dạng Power Up vào công thức ghép nữa! Item giả (Để trưng bày, sẽ ở các dạng khác ngoài Power Up)
    - Thứ tự mua: Vẫn là mua cái Item giả trước, rồi mới mua Item Claws of Attack (+40) sau cùng!
    _ Lỗi: Như trên
    _ Lỗi không xảy ra khi trình tự mua được đảo ngược

    III - Để tách Item dễ dàng hơn:
    Bạn có thể chuyển Code sang Event khác được không? Hoặc chuyển code tách Item sang dạng GUI! (Tại mình gà Jass). Để như hiện giờ thì hơi khổ khi tách Item: Cứ phải Click đúp chuột phải vào Item thì Event mới bắt đc!
    Nhỡ đâu đang gần Hero địch, lỡ tay click đúp chuột phải 2 phát vào Item (Định di chuyển Item sang ô khác nhưng Full slot, lại đặt vị trí ban đầu!)...thì thôi rồi!
    Mã:
    Event
     Unit - A unit Is issued an order with no target
    
    Chuyển sang Event khác, ví dụ:
    Mã:
    Event
     Unit - A unit Starts the effects of an ability
    
    Map demo: RIS_2.1.w3x
     
  9. 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ái lỗi bạn nói mình cũng ko rõ lắm nhưng cách fix tạm thời là:
    Chuyển class của cái Claws of Attack (+40) sang Artifacts

    Mình đã có map dùng system này mà ko bị sao nên khi nào mình sẽ post lại cái system bên đó cho cậu dùng thử có khác j ko nhá @@
     
  10. World-Editor

    World-Editor Youtube Master Race

    Tham gia ngày:
    12/12/13
    Bài viết:
    4
    Bạn khi nào rảnh thì cứ post cho mình và mọi người tham khảo nhé!
     
  11. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    hehe, h mới có time để check @@
    Thực ra code này của tớ ko có bắt lỗi mà buộc ng` dùng phải dùng đúng cách! (Thêm bắt lỗi chỉ nặng code)

    ^ Cậu có dùng sai ở 1 chỗ là cái upgrade (công thức ép) của cậu chỉ gồm mỗi item power up ghép vs 1 đồ thật.
    Thực ra đây vẫn chỉ là ghép đồ thôi. Đáng ra khi mua mỗi cái upgrade thì vẫn có item trong hòm nếu cậu ko có đồ để nâng cấp. Sau sẽ dùng nó để nâng cấp hoặc bán lại lấy tiền.

    Tức chuẩn ra sẽ là như sau:
    set result = RIS_Result.create('I00C',0)
    set recipe = RIS_Recipe.create(result)
    call recipe.add('I0D1','I0D2',0)
    call recipe.add('I0U1','I0U2',0)
    Trong đó:
    I00C: item cuối cùng mà mình muốn sau khi nâng cấp
    I0D1: Đồ thật, mang thì cộng dam
    I0D2: Đồ giả, để trưng trong shop và khi mua nếu có full đồ thì tạo đồ thật dưới chân. Khi full hòm chứa I0U2 thì có luôn đồ cuối (I00C)
    I0U1: Đồ thật, để khi có đồ cấp thấp thì có thể upgrade mà ko cần mua lại
    I0U2: Đồ giả, để trưng trong shop và nếu có đồ cần nâng cấp thì nó lên luôn ko thì tạo ra I0U1

    Map demo cho cậu mình đính kèm bên dưới nhá
    View attachment Cach dung RIS 2.1 .rar
     
  12. World-Editor

    World-Editor Youtube Master Race

    Tham gia ngày:
    12/12/13
    Bài viết:
    4
    Cảm ơn bạn vuongkkk đã nhiệt tình giúp đỡ!

    Bởi vì trong Demo của bạn ko có ví dụ như này, và bạn cũng ko nói đến trường hợp "đặc biệt" này gì cả, nên mình mới không biết cách làm!

    Nhưng hiện giờ mình đang dùng [System] Item Combination của bạn LeoNguyen112 rồi! Mặc dù System này của bạn ấy vẫn có lỗi, nhưng vì là GUI nên mình biết cách sửa, còn của bạn lỗi ở đâu thì mình mù Jass! :cuteonion44:

    Mình cũng muốn post map của mình lên đây, nhưng chả hiểu sao không được đăng, mặc dù rất nhiều người khác ( dù là mới lập nick, hay là bài viết đầu tiên! ) vẫn cho đăng Theard mới! ( Dù biết là nó thông báo cần Mod duyệt! Vậy tại sao Mod Tom chả Online bao giờ, mà những bài đó việt đc đăng --> ko cần duyệt chăng, hay do nick mình có vấn đề??? )
     

Chia sẻ trang này