Topic tiếp nhận và giải đáp các câu hỏi của Newbies

Thảo luận trong 'World Editor' bắt đầu bởi Tiểu Quận Chúa, 20/11/11.

  1. jupiter994

    jupiter994 Youtube Master Race

    Tham gia ngày:
    10/8/09
    Bài viết:
    23
    Nơi ở:
    blah blah
    À các bro cho mình hỏi phát , cái action " clear all units from unit group" có phải chống leak memory của "unit group" hay không ??? Cảm ơn nhiều !
     
  2. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    Sau lệnh này thì group vẫn là group với 0 units
    Nếu ko dùng nữa bạn vẫn phải Destroy và set Group = null
    Theo mình biết là vậy.


    À mọi người cho hỏi có bất lợi gì trong việc tạo 1 số array tạm để truyền dữ liệu vào mấy cái hàm trong ForGroup/Timer hoặc Filter của GroupEnumUnits hay đại loại vậy ko?
    Mã:
    [COLOR="#0000FF"][B]globals[/B][/COLOR]
    integer array tmpInt
    group enumGroup=CreateGroup()
    [COLOR="#0000FF"][B]endglobals[/B][/COLOR]
    [COLOR="#0000FF"]
    [B]function[/B][/COLOR] DoSomething[COLOR="#A52A2A"] [B]takes[/B][/COLOR] nothing [COLOR="#A52A2A"][B]returns[/B][/COLOR] boolean
     local unit u=GetFilterUnit()
     call CreateItem(tmpInt[0],GetUnitX(u),GetUnitY(u))
     set u=null
    return false
    [COLOR="#0000FF"][B]endfucntion[/B][/COLOR]
    
    [COLOR="#0000FF"][B]function [/B][/COLOR]MotHamNaoDoSeGoiHamNay[COLOR="#A52A2A"] [B]takes[/B][/COLOR] integer itemID[COLOR="#A52A2A"][B] returns[/B][/COLOR] nothing
     set tmpInt[0]=itemID
     call GroupEnumUnitsInRect(enumGroup,bj_mapInitialPlayableArea,Filter(function DoSomething))
    [COLOR="#0000FF"][B]endfunction[/B][/COLOR]
    
    Kiểu dùng tmpInt vậy đó, rồi ví dụ khi có hàm khác cần 2 tham số dạng integer để hoạt động mình lại set tạm tmpInt[0]= đố số 1, tmpInt[1]= đối số 2 ròi mới gọi hàm.

    Và nếu kiểu làm đó có nhiều bất lợi thì có kiểu nào khác hiệu quả hơn ko ?
     
    Chỉnh sửa cuối: 20/2/12
  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
    Truyền cách của bạn thì chính là kiểu truyền thống trong GUI đó mà. Ko sao cả ngoại trừ việc khi dùng jass thì nên hạn chế số lượng max index trong biến mảng để hạn chế tối đa việc ngốn Ram.
    Ví dụ nếu max bạn chỉ truyền 2 integer là max thì nên sửa là
    integer array tmpInt[2]

    Đối với group thì ko nhất thiết phải truyền tham số kiểu của bạn. Mà có thể dùng cách
    Mã:
    local unit enumU 
    local group g= GroupEnumUnits //để lấy ra unit theo yêu cầu mà thôi
    loop
         set enumU=FirstOfGroup(g)
         exitwhen enumU==null
    // the codes
         call GroupRemoveUnit(g, enumU)
    endloop
    
    TimerStart thì đương nhiên ko thể dùng cách của group để truyền dữ liệu được rồi
    Chỉ có thể dùng cách TimerUtils của Vex hoặc T32 của jesus
     
    Chỉnh sửa cuối: 20/2/12
  4. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    Tôi thích KeyTimer hơn :)
    Mà ông ơi mãi chưa tìm ra bug gây disconnect :((
     
  5. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    1/ Vậy chắc mình cho giới hạn max là 5 là vừa, vì chắc ít có hàm nào xài hơn 5 tham số integer
    2/ Ko thể tin đc h mình mới biết tồn tại hàm FirstOfGroup :|
    3/ Tình hình là ko có vJASS nên ko xài TimerUtils, T32 hoặc KeyTimer :-s
     
  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
    nếu đã dùng jass new gen thì là có vjass rồi nhưng mà là bản cũ cần cập nhật. vjass chính là chức năng chính của jasshelper đó mà.
    Bản mới nhất là jasshelper 0.A.2.B ở đây

    Ko bạn à. Đó chỉ là xóa hết các unit trong group đó mà thôi.
    Muốn xóa leak với GUI thì bạn cần đặt thêm câu lệnh như thế này thôi:

    TOM: việc "clear" đó giống như bạn xé hết các trang trong một quyển sách ấy, hết thì nó vẫn còn bìa đó, để cái bìa lại thì... =))
    Mã:
    Actions
        Custom script:   set bj_wantDestroyGroup=true
        Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
            Loop - Actions
                Do something
    
    hoặc
    Mã:
    Unit Group Good
        Events
        Conditions
        Actions
            Set Temp_Group = (Units in (Playable map area))
            Unit Group - Pick every unit in Temp_Group and do (Actions)
                Loop - Actions
                    Unit - Kill (Picked unit)
            Custom script:   call DestroyGroup (udg_Temp_Group)
    
    Bạn có thể tham khảo thêm về leak và cách remove ở đây
     
    Last edited by a moderator: 21/2/12
  7. fantom2409

    fantom2409 Mr & Ms Pac-Man

    Tham gia ngày:
    15/8/11
    Bài viết:
    194
    cho mình hỏi làm sao để làm mấy cái skill tích trữ? (Giống như skill 3 NVm khi kill 1 unit thì dc tăng thêm 2 Dam)
     
  8. leviettuan123123

    leviettuan123123 Youtube Master Race

    Tham gia ngày:
    9/3/11
    Bài viết:
    79
    Nơi ở:
    Hòn Đảo Hoan
    topic có vẻ đắt khách nhỉ :D ,không bik mìk có gọi là newbie không nhỉ :-?

    ---------- Post added at 13:20 ---------- Previous post was at 13:14 ----------

    Trigger đây bạn:
    Mã:
    Untitled Trigger 001
        Events
            Unit - A unit Dies
        Conditions
            (Unit-type of (Killing unit)) Equal to (tên hero của bạn)
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    ((Triggering unit) is A Hero) Equal to True
                Then - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                Else - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                    Hero - Modify Strength of (Killing unit): Subtract 10[COLOR="Silver"]
    
    [SIZE=1]---------- Post added at 13:22 ---------- Previous post was at 13:20 ----------[/SIZE]
    
    [/COLOR]Fix trigger trên
    [code]Spell Nevermore
        Events
            Unit - A unit Dies
        Conditions
            (Unit-type of (Killing unit)) Equal to (Hero của bạn)
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    ((Triggering unit) is A Hero) Equal to True
                Then - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                Else - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                    Hero - Modify Strength of (Killing unit): Subtract 10[\code][COLOR="Silver"]
    
    [SIZE=1]---------- Post added at 13:23 ---------- Previous post was at 13:22 ----------[/SIZE]
    
    [/COLOR][quote="leviettuan123123, post: 20728821"]topic có vẻ đắt khách nhỉ :D ,không bik mìk có gọi là newbie không nhỉ :-?[COLOR="Silver"]
    
    [SIZE=1]---------- Post added at 13:20 ---------- Previous post was at 13:14 ----------[/SIZE]
    
    [/COLOR]
    Trigger đây bạn:
    [code]Untitled Trigger 001
        Events
            Unit - A unit Dies
        Conditions
            (Unit-type of (Killing unit)) Equal to (tên hero của bạn)
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    ((Triggering unit) is A Hero) Equal to True
                Then - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                Else - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                    Hero - Modify Strength of (Killing unit): Subtract 10[COLOR="Silver"]
    
    [SIZE=1]---------- Post added at 13:22 ---------- Previous post was at 13:20 ----------[/SIZE]
    
    [/COLOR]Fix trigger trên
    [code]Spell Nevermore
        Events
            Unit - A unit Dies
        Conditions
            (Unit-type of (Killing unit)) Equal to (Hero của bạn)
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    ((Triggering unit) is A Hero) Equal to True
                Then - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                Else - Actions
                    Hero - Modify Strength of (Killing unit): Add 3
                    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                    Hero - Modify Strength of (Killing unit): Subtract 10[\code][/QUOTE]
    
    bị sida @@ xin thông cảm
    [code]Spell Nevermore
    Events
    Unit - A unit Dies
    Conditions
    (Unit-type of (Killing unit)) Equal to (Hero của bạn)
    Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    ((Triggering unit) is A Hero) Equal to True
    Then - Actions
    Hero - Modify Strength of (Killing unit): Add 3
    Else - Actions
    Hero - Modify Strength of (Killing unit): Add 3
    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
    Hero - Modify Strength of (Killing unit): Subtract 10
     
  9. fantom2409

    fantom2409 Mr & Ms Pac-Man

    Tham gia ngày:
    15/8/11
    Bài viết:
    194
    Mình ho hỉu cái dòng cuối cùng này
    Mã:
    Hero - Modify Strength of (Killing unit): Add 3
    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
    Hero - Modify Strength of (Killing unit): Subtract 10
    
     
  10. leviettuan123123

    leviettuan123123 Youtube Master Race

    Tham gia ngày:
    9/3/11
    Bài viết:
    79
    Nơi ở:
    Hòn Đảo Hoan
    sorry mình nhấn nhầm Hero - Modify Strength of (Killing unit): Subtract 3 chứ không fải Hero - Modify Strength of (Killing unit): Subtract 10 đâu nha
    mình giải thích nè , Hero - Modify Strength of (Killing unit): Add 3 có nghĩa là Strength của người giết sẽ được cộng thêm vào 3 điểm
    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds có nghĩa là sẽ đợi sau (10 x với cấp độ skill của con nevermore) thời gian , rồi Hero - Modify Strength of (Killing unit): Subtract 3 strength của người giết sẽ bị trừ đi 3 điểm sau thời gian đó
     
  11. fantom2409

    fantom2409 Mr & Ms Pac-Man

    Tham gia ngày:
    15/8/11
    Bài viết:
    194
    thế thì mình hiểu rồi, tks

    ---------- Post added at 15:30 ---------- Previous post was at 15:03 ----------

    nhưng mà làm sao để giảm nó xuống???
     
  12. leviettuan123123

    leviettuan123123 Youtube Master Race

    Tham gia ngày:
    9/3/11
    Bài viết:
    79
    Nơi ở:
    Hòn Đảo Hoan
    Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds bạn tạo dòng này để chờ sau (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))) thời gian rồi sẽ sử dụng dòng Hero - Modify Strength of (Killing unit): Subtract 3để giảm strength xuống . Xong :)
     
  13. NNT_

    NNT_ Youtube Master Race

    Tham gia ngày:
    21/2/11
    Bài viết:
    36
    Nơi ở:
    Hà Nội
    Skill Necromastery của Nevermore trong DotA không phải là trigger với action là cộng thêm Stats Points mà là một trigger = JASS với câu lệnh modify damage "thêm vào" . Theo như cách làm của leviettuan123123 thì skill này gần giống với skill 3 của Cóc trong DotA (nhưng của Cóc khác ở chỗ là nó sẽ trừ Primary Attribute của attaked) và đặc biệt điều này chỉ cộng thêm Strenght cho hero và nó cũng chỉ có damage khi và chỉ khi hero đó có Primary AttributeStrenght :D
     
  14. tom3bie

    tom3bie Youtube Master Race

    Tham gia ngày:
    4/3/12
    Bài viết:
    4
    E có ý tưởng về 1 map ntn :
    - Map gồm 2 phe , và 1 con trùm cuối khá mạnh , phe nào giết được con trùm cuối đó thì thắng ! (2 phe có thể kill lẫn nhau)
    - Hệ thống quái xuất hiện như DDay .
    - Có thể ép đồ như map tổng hợp .
    - Boss phụ để kiếm thêm tiền (5' ra 1 con )
    - Cứ 15' thì sẽ có 1 món đồ tăng damge thêm +xxxxx xuất hiện tại 1 vị trí nhất định và được bao quanh bởi 4 iron gate ...2 phe sẽ phải phá cửa để ăn item và ra tỉa máu boss ...
    ý tưởng tạm thời như vậy , map tạo cho mấy đứa lớp chơi nên cũng lủng củng ...
    Em nhờ mấy bác tư vấn giúp e các bước thực hiện ...
     
  15. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Theo ý kiến riêng thì đừng nên làm cho nó điên cuồng cái kiểu nhảy dmg mấy triệu như trong cái MTH nhảm kia =.=! Combat nhạt nhẽo vãi ra ý =.=!
     
  16. tom3bie

    tom3bie Youtube Master Race

    Tham gia ngày:
    4/3/12
    Bài viết:
    4
    tại mìh còn gà , mà damge k có to đùg nkư trong MTH đâu , làm cho mấy đứa trong lớp chơi vs nkau cho vuj ...mà mới tìm tòi đc 3-4 ngày nên còn lơ tơ mơ ...:|
     
  17. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Đã có kinh nghiệm làm chưa? Nếu mà mới chỉ động vào WE đc 3 4 ngày thì để ra đc cái map hoàn chỉnh như nói trên là cả 1 quãng thời gian khá dài đấy :|
     
  18. tom3bie

    tom3bie Youtube Master Race

    Tham gia ngày:
    4/3/12
    Bài viết:
    4
    Dài cũng đc, nhưng phải vừa học vừa làm ...thực hành đi đôi vs lý thuyết chắc mau hiểu hơn ...
     
  19. leviettuan123123

    leviettuan123123 Youtube Master Race

    Tham gia ngày:
    9/3/11
    Bài viết:
    79
    Nơi ở:
    Hòn Đảo Hoan
    Thanks bạn đã góp ý , nhưng còn về cái "chỉ khi hero đó có Primary AttributeStrenght" này thì tùy chỉnh theo ý muốn không bắt buộc Strenght ,chỉnh thành Intelligence hoặc Agility tùy theo hero cũng được bạn àk

    ---------- Post added at 15:27 ---------- Previous post was at 15:23 ----------

    vậy chắc làm xong cái map chắc đến tết quá :D, thì cứ làm , có gì kó lên đây hỏi ,mọi người sẽ giải đáp mọi khó khăn của bạn để map mau hoàn thiện hơn :)
     
  20. nhansieutocdo

    nhansieutocdo Youtube Master Race

    Tham gia ngày:
    26/12/07
    Bài viết:
    15
    Cảm ơn các bạn nhiều lắm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     

Chia sẻ trang này