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

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

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

    bahomao12345 Mr & Ms Pac-Man

    Tham gia ngày:
    9/6/12
    Bài viết:
    111
    Bạn nói zay mình sao hiểu ? Còn ko hướng dẫn nói vậy thì...Dù sao cũng thanks vì comment
     
  2. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    không đọc bài tôi rep hả. không có cách nào ngoài cách đó đâu
     
  3. bahomao12345

    bahomao12345 Mr & Ms Pac-Man

    Tham gia ngày:
    9/6/12
    Bài viết:
    111
    Ủa bạn Reply hồi nào z ậy sao mình hổng thấy. Và bạn cũng chỉ kĩ kĩ chút cho mình đc ko PRO :D
     
  4. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    đấy, có chịu đọc đâu. Lật trang trước đi
     
  5. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    câu hỏi của mình về UnitIndexSystem
    Với lại mình vẫn ko hiểu lắm về cách sử dụng timer, ai có thể cho mình biết 1 số hệ thống timer người ta hay dùng bây h, và công dụng của nó như thế nào?

    p/s vuongkkk: mình vừa biết đc là là sau khi unit bị remove 1 tí thì nó mới mất UserData và các thông tin khác :D
     
    Chỉnh sửa cuối: 29/6/12
  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
    ^UnitIndexSys của cậu có lẽ ko vấn đề gì nhưng nên chú ý cách dùng là ko dùng SetUnitUserData khác ngoài system có thể gây lỗi cả hệ thống
    Và tớ vẫn băn khoăn tại sao cái PUI_Action để check lỗi của cậu lại chỉ chạy đến IPUI_maxcount=10?
    Nếu lỗi nằm ở index > 10 thì lỗi cả hệ thống !!!

    Timer loop 1(one shot) lần thường là dùng để tạo game event hoặc là delay 1 action nào đó sau 1 khoảng thời gian.
    Cái đó thì có thể dùng TimerUtils của Vex trên wc3c.net
    Còn timer loop đi lặp lại và thường có period time ngắn thì dùng để làm spell cần xử lý overtime như slide hay là deal dam độc chả hạn
    Cái này thì có thể dùng T32 của Jesus4Lif trên thehelper hoặc là Constant Timer Loop 32 của Nestharus

    Edit: Thực ra ngay ở event unit death thì nó đã mất thông tin về buff rồi nên ko thể check buff lúc đấy. Và lúc unit leave map thì là lúc unit bắt đầu bị remove hoặc tự biến mất thì ngay trong trigger đó thông tin unit vẫn còn nguyên. sang trigger khác thì mới mất. chứ ko phải mất 1 lúc nó mới mất. Có thể nói là mất ngay sau khi bị remove
     
    Chỉnh sửa cuối: 29/6/12
  7. bahomao12345

    bahomao12345 Mr & Ms Pac-Man

    Tham gia ngày:
    9/6/12
    Bài viết:
    111
    Mình đọc nhưng ko hiểu lắm, bạn hướng dẫn mình kĩ đi
     
  8. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    À à tại trong lúc test mình để 10 để nó clear nhanh :D


    Vừa test lại đúng thế thật.
    Nhưng vẫn ko hiểu ngay trong trigger đó thông tin unit vẫn còn nguyên. sang trigger khác trigger đó là sao và trigger khác là sao, khá mơ hồ thế nào là trigger :D


    Mấy hệ thống timer đó ích lợi gì nhỉ? Nếu mình xài timer local và cẩn thận destroy này kia thì việc dùng mấy hệ thống timer đó có thật sự cần thiết ko?
     
    Chỉnh sửa cuối: 29/6/12
  9. WorldCyberGames

    WorldCyberGames Youtube Master Race

    Tham gia ngày:
    27/6/12
    Bài viết:
    99
    nói tóm lại cách 1 khá rắc rối và bất khả thi vì enemy target là UNDEAD \m/

    ---------- Post added at 11:38 ---------- Previous post was at 09:43 ----------

    cho em hỏi: nếu là ally thì dùng "belongs to an ally", nếu là enemy thì dùng " belongs to an enemy", vậy thì self thì.... dủng cái gì :-??

    ---------- Post added at 11:41 ---------- Previous post was at 11:38 ----------

    sẵn cho em hỏi cái này nữa: sao trigger này lại deal damage có 1 phát là thằng đó chết tươi :-??:
    Mã:
    lord 2
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to lord 2 
        Actions
            If (((Target unit of ability being cast) belongs to an ally of (Owner of (Casting unit))) Equal to True) then do (Unit - Set life of (Target unit of ability being cast) to (100.00 x (Real((Level of lord 2  for (Casting unit)))))) else do (Do nothing)
            If (((Target unit of ability being cast) belongs to an enemy of (Owner of (Casting unit))) Equal to True) then do (Unit - Set life of (Target unit of ability being cast) to (-100.00 x (Real((Level of lord 2  for (Casting unit)))))) else do (Do nothing)
     
  10. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Cho hỏi bình thường mọi người soạn jass thì dùng soft gì hỗ trợ hay viết tay hết,mình xem trong JassCraft thấy nó đâu có đầy đủ,ví dụ 1 dòng event đầy đủ:

    call TriggerRegisterAnyUnitEventBJ( gg_trg_t, EVENT_PLAYER_UNIT_SPELL_EFFECT)

    nhưng trong jasscraft nó rời rạc hai cái đó.

    Mình đang tập mò về Jass nên không biết gì cả :| đành tìm hiểu từ những cái cơ bản nhất,mọi người chỉ giáo thêm :|
     
  11. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    đặt máu thành số âm như thế thì chả chết tươi =))

    dùng JNGP là đc rồi, có màu code, có tự động nhắc tên function,...

    với trigger thì cứ convert từ GUI ra thôi, các lệnh từ GUI ra JASS mà chưa nhớ thì cũng convert nốt
    tuy nhiên thay thế các BJ "có hại" bằng các native. Ví dụ:
    [spoil]
    đây là hàm Unit - Add Ability trong GUI
    Mã:
    function UnitAddAbilityBJ takes integer abilityId, unit whichUnit returns boolean
        return UnitAddAbility(whichUnit, abilityId)
    endfunction
    
    nó không làm gì cả ngoài việc gọi native UnitAddAbility
    Mã:
    native UnitAddAbility takes unit whichUnit, integer abilityId returns boolean
    có cái khác là vị trí của các tham số đã thay đổi ( ability cần add, unit ) thay vì (unit, ability cần add) như native

    nên dùng luôn native
    Mã:
    [s]call UnitAddAbilityBJ( 'ANab', GetTriggerUnit() )[/s]
    //thay bằng
    call UnitAddAbility( GetTriggerUnit(), 'ANab' )
    
    [/spoil]
    và dùng biến local thay cho global (nếu được)
    ---
    cái này tự học là chính, tôi muốn chỉ rõ ràng cũng khó :-??
     
  12. WorldCyberGames

    WorldCyberGames Youtube Master Race

    Tham gia ngày:
    27/6/12
    Bài viết:
    99
    như thế thì đó là đặt máu cho đâu phải bom máu x-(
    vậy dùng trigger gì để heal khi target là ally và deal khi target là enemy @@
     
  13. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    bạn dùng set life thành số âm r` .... là 1 hit nó chết ngắc r` ..... fải thay như sau :
    Mã:
    lord 2
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to lord 2 
        Actions
            If (((Target unit of ability being cast) belongs to an ally of (Owner of (Casting unit))) Equal to True) then do (Unit - Set life of (Target unit of ability being cast) to ([B][COLOR="#0000CD"](Life of (Target unit of ability being cast )[/COLOR][/B]) + 100.00 x (Real((Level of lord 2  for (Casting unit)))))) else do (Do nothing)
            If (((Target unit of ability being cast) belongs to an enemy of (Owner of (Casting unit))) Equal to True) then do (Unit - Set life of (Target unit of ability being cast) to ([B][COLOR="#0000CD"](Life of (Target unit of ability being cast )[/COLOR][/B]) - 100.00 x (Real((Level of lord 2  for (Casting unit)))))) else do (Do nothing)
    [/QUOTE]
    còn về (Life of (Target unit of ability being cast ) ở đâu thì bạn vào Unit - Property nhé :D
     
  14. WorldCyberGames

    WorldCyberGames Youtube Master Race

    Tham gia ngày:
    27/6/12
    Bài viết:
    99
    ^
    vấn đề trở nên đơn giản hơn nhờ bạn
    tks!!! \m/
     
  15. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Nhưng vẫn ko hiểu ngay trong trigger đó thông tin unit vẫn còn nguyên. sang trigger khác trigger đó là sao và trigger khác là sao, khá mơ hồ thế nào là trigger :D
    Nôm na jass là các câu lệnh được xử lý liên tục từ trên xuống dưới. Và 1 event sẽ gọi 1 đoạn mã lệnh. Thực hiện hết đoạn mã lệnh là hết 1 trigger. Lúc xử lý xong trigger leave map thì unit đó coi như hết nhiệm vụ và bị xóa. Có gì khó hiểu ở đây ko ???

    Mấy hệ thống timer đó ích lợi gì nhỉ? Nếu mình xài timer local và cẩn thận destroy này kia thì việc dùng mấy hệ thống timer đó có thật sự cần thiết ko?
    Cái đó cậu làm spell nhiều và khi nào làm phức tạp 1 chút chắc sẽ cần dùng.
    Ví dụ là di chuyển lighning liên tục để nối giữa 2 unit và thực hiện việc hút mana bên này và tăng mana bên kia chả hạn ....
     
  16. WorldCyberGames

    WorldCyberGames Youtube Master Race

    Tham gia ngày:
    27/6/12
    Bài viết:
    99
    nếu target là ally thì dùng trigger "belongs to an ally", nếu target là enemy thì dùng trigger "belongs to an enemy"
    vậy còn self thì... :-??
     
  17. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    Nó cũng kiểu như tạo 1 cái SetUnitTimerData để save 1 integer ứng với 1 timer để dùng vậy thôi phải ko nhỉ ? Giống như hệ thống đánh index cho Unit nhưng là cho Timer?
     
  18. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Đấy là timerutils còn T32 với CTL32 thì là loop 1 loạt các struct overtime
     
  19. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    "Belongs to an ally" là tính cả self trong đó rồi.

    ---------- Post added at 19:22 ---------- Previous post was at 19:15 ----------

    Ai hướng dẫn mình lại vụ slide unit mà ko bị mất order bằng GUI với. VD : Bình thường thì Set Point 1 = Position of unit, Point 2 = Point 1 Offset by 100 toward ... , rồi move unit to Point 2, giờ ko muốn bị mất order khi move thì phải làm thế nào?
     
  20. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Ai giúp mình cái này với :
    1:mình định làm cái skill blizard (bắn nước :D) ,Nhưng mà giờ mình muốn là khi bắn nước xuống thì quái ở trong phạm vi đó sẽ bị freezing breath hoặc là frost atack
    2:Mình định làm kiểu skill passive atack này nhưng không hiểu cách làm ntn :2cool_sad: -mình dùng frost atack kết hợp với barrage nhưng không được :( Khi vào game thì nó cũng bắn nhiều tên nhưng trong đó thì chỉ có 1 tên là frost attack :(
    -Mình cũng làm giống kiểu trên nhưng mà là đánh gần (Frost Attack + Cleaving Attack)
    P/S:Hy vọng mấy bạn giúp dùm mình với :2cool_burn_joss_sti
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này