Topic hỏi đáp về cách làm map | version 11

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

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. mvcthinh

    mvcthinh Mr & Ms Pac-Man

    Tham gia ngày:
    18/8/11
    Bài viết:
    140
    Nơi ở:
    HCM
    Đây là cách bật chính xác nè.. bật bằng số Index chính xác tuyệt đối.. cả Walk cũng hoạt động.
    http://forum.gamevn.com/showthread....anh-em-Ve-cach-lam-map-&p=6948696#post6948696
     
  2. raivor

    raivor Dragon Quest Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    1,411
    Nếu không nhầm thì cái trigger đó là GUI, sao thiếu 2 cái đó được nhể :-?.
     
  3. Doom_Sage

    Doom_Sage Mr & Ms Pac-Man

    Tham gia ngày:
    24/7/11
    Bài viết:
    147
    vuongkkk khi nào onl yahoo anh hỏi về cjass tí nha :-?
     
  4. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    cjass là death project rồi mà sao mấy ông vẫn tìm hiểu thế :-?
     
  5. SJuddy

    SJuddy Mr & Ms Pac-Man

    Tham gia ngày:
    13/8/11
    Bài viết:
    177
    Nơi ở:
    ☺Tennessee☺
    đây là một ví dụ đơn giản về struct và method onDestroy và cách dùng đây:
    Mã:
    library test
    //========================================================
        globals
            private testa T
        endglobals
    //========================================================
    struct testa
        unit u
        real r
        static method create takes unit u1, real r1 returns testa
        local thistype this=thistype.allocate()
             set this.u=u1
             set this.r=r1
        return this
        endmethod
    
        method onDestroy takes nothing returns nothing
            set .u=null
        endmethod
    endstruct
    
    private function a takes nothing returns nothing
        local unit u=GetTriggerUnit()
        local testa aa=testa.create(u,1)
        set T=aa
        set u=null
    endfunction
    
    private function b takes nothing returns nothing
        local testa bb=T
        call bb.destroy()
    endfunction
    
    endlibrary
    here! method onDestroy nghĩa là mọi khi struct destroy sẽ gọi là remove leak giống như local rồi set nó =null vậy.Struct là một tập hợp hàm hiểu nghĩa với các giá trị array rộng (struct testa[MaxArray]). thay vì dùng một giá trị array, ng ta dùng struct. tuy nhiên, nó cũng như các giá trị bình thường, nếu sử dụng kô set =null hoặc destroy, remove đi thì vẫn còn leak => struct cũng vậy, thoạt trên là đơn giản khi sử dụng method onDestroy, khi sử dụng lệnh call whichstruct.destroy() nghĩa là bạn đã chạy method onDestroy.

    ---------- Post added at 10:52 ---------- Previous post was at 10:48 ----------

    @ cậu ấy convert sang text. vẫn lỗi ở chỗ thiếu mất cái event, còn 2 cái condition vẫn rờ rạch ở đó. có 2 lý do sau: cậu ta làm thiếu, 2 cậu ta copy thiếu!
     
  6. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    Nếu mình không nhầm thì member trong struct không cần phải set về null vì bản chất của struct là sử dụng mảng. Ông vuongkkk đâu rồi confirm hộ tôi cái vụ này với :D
     
  7. SJuddy

    SJuddy Mr & Ms Pac-Man

    Tham gia ngày:
    13/8/11
    Bài viết:
    177
    Nơi ở:
    ☺Tennessee☺
    ^ cái vụ về tại sao dùng method onDestroy thay vì set nó =null trong function mình chưa hiểu rõ. chờ blue lên giải quyết đi
     
  8. raivor

    raivor Dragon Quest Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    1,411
    Nếu không nhầm nữa thì cậu ấy copy ở phần jass helper chứ không phải convert sang text.
     
  9. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
  10. SJuddy

    SJuddy Mr & Ms Pac-Man

    Tham gia ngày:
    13/8/11
    Bài viết:
    177
    Nơi ở:
    ☺Tennessee☺
    @ mình nhớ hình như khi xem =jasshelper nó có ghi theo tên của trigger đó mà. còn convert hình như kô thấy đâu. @ hỏi tác giả là biết

    @ thế việc chứa method onDestroy, blue bảo cần có đấy.
     
    Chỉnh sửa cuối: 6/10/11
  11. raivor

    raivor Dragon Quest Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    1,411
    Đây này :| .
     
  12. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    Mã:
    struct dummy
    
    endstruct
    struct test
    dummy dum
    trigger t
    static method create takes nothing returns thistype
          local thistype this = thistype.allocate()
          
          set this.dum = dummy.create()
          set this.t      = CreateTrigger()
    
          return this
    endmethod
    
    method onDestroy takes nothing returns nothing
          call dum.destroy(this.dum)
          call DestroyTrigger(this.t)
          //ko can set this.t = null
    endmethod
    
    endstruct
    
    Trước h mình vẫn nghĩ và code theo kiểu này :-?

    ---------- Post added at 11:19 ---------- Previous post was at 11:16 ----------

    ặc
    Mã:
    call dum.destroy() Sửa lại dòng này, ko hiểu sao ko sửa đc bài bên trên
    


    ---------- Post added at 11:21 ---------- Previous post was at 11:19 ----------

    method onDestroy ko nhất thiết phải có.
     
  13. SJuddy

    SJuddy Mr & Ms Pac-Man

    Tham gia ngày:
    13/8/11
    Bài viết:
    177
    Nơi ở:
    ☺Tennessee☺
    ^ ^:)^ 41 bài chưa sửa bài đc là phải.
    theo mình nghĩ nhé, hỏi nhé: khi một giá trị được tạo ra như unit chả hạng nếu kô set =null cậu nghĩ sẽ có chuyện gì?
    @ đôi lúc mình thấy một số system kô có method onDestroy, mà hình như đa số là hàng có chứa recycle trong đó (ex: xecast)...
     
  14. 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 mấy cậu đang tranh luận cái gì thế.
    Hiểu bản chất thực của vấn đề là ổn thôi mà. Nó là thế này
    Create và Destroy
    Struct vốn nó đã là cơ cấu tái sử dụng với create (tạo) và destroy (hủy).
    Nếu create rồi thì ko thể tạo được 1 cái instant có cùng index được cho đến khi nào nó được destroy thì lại có thể dùng lại.
    Còn destroy là nhả cái index đấy ra để sau còn có thể dùng lại
    Leak với Struct
    Như code mẫu của bạn mvcthinh ko leak là bởi vì có CreateGroup và đã DestroyGroup rồi. Vậy là ổn
    Việc set variable = null chỉ cần ở local variable vì biến đó tạo ra để dùng 1 lần duy nhất trong function và ko dùng đến lần thứ 2. Nếu ko set=null thì nó vẫn tốn bộ nhớ
    2 cái trên tổng hợp lại thì có thể kết luận ko nhất thiết là phải có method onDestroy()
    Recycle là tái sử dụng
    Tái sử dụng nghĩa là ko hủy đi cái gì cả, dùng xong thì quăng nó vào stack để hồi sau dùng tiếp.
    Vậy thì ko có destroy là đúng rồi còn gì

    P/S: Tớ bảo cần method .destroy() là để ko bị leak instant. Tức là ko phải xây method onDestroy() nhưng phải dùng method .destroy()
     
    Chỉnh sửa cuối: 6/10/11
  15. babycat1819

    babycat1819 Youtube Master Race

    Tham gia ngày:
    28/1/10
    Bài viết:
    59
    Bạn Ryan ý của mình là For Loop Integer +2 chu ko phai Interger không nếu +2 thì là call RemoveLocation ( udg_Tênbiến[GetForLoopIndexA()+2] ) à ?
     
  16. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    ờ !
     
  17. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Ai biết làm trigger khi unit tấn công một unit khác thì thay đổi hình dạng thành unit bị đánh mà vẫn giữ nguyên chỉ số,skill .v.v. không :D ?
     
  18. Doom_Sage

    Doom_Sage Mr & Ms Pac-Man

    Tham gia ngày:
    24/7/11
    Bài viết:
    147
    Hình dạng thành unit bị đánh là như thế nào . Cho 1 ví dụ xem thử đc không :-??

    ---------- Post added at 20:09 ---------- Previous post was at 20:06 ----------

    Ngoài jass,vjass,cjass còn cái ngôn ngữ nào làm spell = text nữa không :|
     
  19. Evil_Hunter

    Evil_Hunter Mario & Luigi

    Tham gia ngày:
    18/9/11
    Bài viết:
    786
    Nơi ở:
    Evil Forest
    Dùng lệnh unit - replace unit
    ... Còn skil thì vào f6 chỉnh cho giống con đánh, dùng biến lưu level skil vào, xong set level x for last replace unit to biến...
     
  20. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mình thử rồi,nhưng chỉ số quan trọng primaty attribute lại thành của con bị đánh T_T vì replace attacking unit to unit-type of attacked unit <=== @@
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này