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

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

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

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    Anh em có vấn đề gì về cách làm map hãy hỏi, ai biết sẽ trả lời.

    Nghiêm cấm việc:
    - ko trả lời mà cứ chat nhảm 3:-O
    - trả lời ko rõ ràng :@)
    - trả lời với "hình như"

    Khi trả lời nếu có trigger phải cho vào code tag: [code]<trigger cho vô đây>[/code] hoặc dùng biểu tượng: [​IMG]

    Trả lời câu hỏi của ai, ở post nào phải quote (trích dẫn) rõ ràng. :bz

    ai muốn "thank" người đã giúp mình thì thay vì post 1 bài nói thank hãy click vào biểu tượng [​IMG] để thank :) (chú ý: ai chưa post đủ 50 bài sẽ ko thấy nút "Thanks", muốn thank thì vào profile của ng` kia, dùng VM (Visitor Message - Lời Nhắn) để thank)

    à trước khi hỏi gì, hãy đọc các topic chú ý:
    - Một số bài viết đáng chú ý của box
    - Tổng hợp các bài hướng dẫn
    - WE - object toàn thư
    Đồng thời tìm kiếm trong các topic hỏi đáp:
    ----
    ai có vấn đề gì ở topic cũ mà chưa đc trả lời hãy quote sang đây (chỉ đc quote 24h 1 lần với mỗi vấn đề chưa đc trả lời)
     
  2. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    723
    Nơi ở:
    Tổ dân phố
    Quote lại câu hỏi từ topic trước.
    View attachment 133866
     
  3. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Requote lần 2, ai giúp dùm mình cái
     
  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ác loại attack type:
    ATTACK_TYPE_CHAOS
    ATTACK_TYPE_HERO
    ATTACK_TYPE_MAGIC
    ATTACK_TYPE_NORMAL
    ATTACK_TYPE_MELEE
    ATTACK_TYPE_PIERCE
    ATTACK_TYPE_SIEGE

    ATTACK_TYPE là trợ giúp cách thức tính damage. Vào Game Constants sẽ rõ
    DAMAGE_TYPE là dam đó thuộc loại gì
     
    Chỉnh sửa cuối: 3/6/11
  5. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Hỏi cách install file LUA. Mình muốn install file Lua này thì làm thế nào?

    Nếu mình hiểu trong link nó nói thế nào thì đã ko post lên đây để ăn tạ :(
    Mã:
    //! i function getfilename()
        //! i return FILENAME
    //! i end
    
    Mã:
    //! import "luajass.FILE_NAME.j"
    Đây là LUA của mình
    Mã:
    //! import "luajass.Libram.j"
    Nhưng trigger đã Disable như vậy ko biết đã install LUA chưa?
     
    Last edited by a moderator: 3/6/11
  6. Ice_water

    Ice_water Dragon Quest

    Tham gia ngày:
    11/1/07
    Bài viết:
    1,457
    ĐÃ . Và sau khi save + close rồi open và viết lại
    Mã:
    ////! import "luajass.Libram.j"
     
  7. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    723
    Nơi ở:
    Tổ dân phố
    View attachment 133883
    Tình hình là câu trả lời của bạn thât ... :| Mình hỏi sao nó lỗi nếu thay NORMAL = SPELL
    ATTACK TYPE thì bạn còn liệt kê thiếu SPELL ( Khác MAGIC ) và câu hỏi thì mình đã để ở trên :|
    Theo mình biết thì người ta hay dùng Damage type normal và universal.
     
  8. KuKulKan

    KuKulKan T.E.T.Я.I.S

    Tham gia ngày:
    2/8/09
    Bài viết:
    629
    Nơi ở:
    Quận Thủ Đức, Thành phố Hồ Chí Minh
    Chỉ có những loại ATTACK_TYPE mà vuongkk kể trên thôi...
     
  9. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    đơn giản: không có ATTACK_TYPE_SPELL

    attack type spells ở GUI sang jass nó là ATTACK_TYPE_NORMAL

    tạo 1 trigger, viết lệnh Unit - Damage Target có kiểu attack là spells rồi convert ra JASS là thấy ngay thôi /:)
     
  10. boyquay

    boyquay Youtube Master Race

    Tham gia ngày:
    23/7/10
    Bài viết:
    32
    Cho mình hỏi làm sao để item cộng evade cộng dồn với nhau.
    Ví dụ : 1 item + 10 evade , mặc 3 cái thì được 30 evade. Hoặc item + evade và item + evade(của Ablility Critical Strike) , mặc cả 2 item evade được cộng dồn.
    Cám ơn.
     
  11. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Các pro cho hỏi, đối với dạng spell slide ( tức có 2 trigger 1 cái vào skill và 1 cái silde - có every x seconds) nên gắn trigger gây dame vào trigger every x seconds thì lượng dame gây ra hơi bị to, có cách nào set dame 1 cách nhất định - nghĩa là ví dụ thằng Hero đó slide 1 đoạn đường thằng thì toàn bộ creep trên đoạn đường đó dealing 1 lần dame duy nhất với 1 số nhất định.
     
  12. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    723
    Nơi ở:
    Tổ dân phố
    ^
    Ý của bạn Drake hỏi cũng giống vs ý định của mình vs những dạng spell wave hay slice .
    VD: khi mình đặt condition cho cái group mình cần deal dam là ko thuộc 1 Group A chẳng hạn.
    Khi pick xong và deal dam thì add mấy cái Picked unit này vào Group A ( để nó ko deal dam lần thứ 2 lên 1 unit )
    Nhưng kiểu gì cũng có vài em bị nhận dam lần thứ 2 , thậm chí thứ 3.:))
    Hỏi : có cách khác khắc phục ko :-?
     
  13. 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
    thì check đủ 3 cái items xài remove cả 3 rùi tạo 1 cái items tác dụng 30 evade thôi :|
    chỉ có cách này :|
    có thể sử dụng integer để check dmg(integerdmg) lớn hơn integer đặt là nothing!
     
  14. nhocabc123

    nhocabc123 Youtube Master Race

    Tham gia ngày:
    28/5/09
    Bài viết:
    63
    Mọi người cho mình xin trigger hiển thị thời gian 5phút đếm ngược giống như liên đấu của Thiên Kiếm. Hết 5 phút thì move all player đến khu vực liên đấu. Trong khi liên đấu, cũng có 1 thời gian đếm ngược 1phút, hết 1phút đó thì hết liên đấu. (giống Thiên Kiếm luôn nha).
     
  15. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Thế có ai cho cái demo để xem thử ko :|, nói chung chung ko pó tay
     
  16. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Đay là câu trả lời:
    Còn việc:
    Bạn chú ý những thứ như sau:
    Group đã add vào (Group A) như bạn nói không được xóa leak (DestroyGroup) mà chỉ Clear Group.
    Nếu group là Array (Group[1], Group[2]...) thì khi khai báo biến sửa con số Size cho bằng với số Group sẽ sử dụng.
     
  17. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    Cho mình hỏi làm sao để move cái dummy từ từ thành vòng tròn. Như dùng bjck nguyên trong TK. Chứ con của e dùng nó bay cái vèo k thấy gì lun @@
     
  18. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    lonewolf fix dùm tui cho nó dealing dame 1 lần ( thêm cái damegroup ấy) tui nhìn rối wa :|
    Mã:
    WE Trigger 1
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to Wild Axe 
        Actions
            For each (Integer A) from 1 to 2, do (Actions)
                Loop - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            WE_Dummy[(Integer A)] Equal to No unit
                        Then - Actions
                            Do nothing
                        Else - Actions
                            Unit - Kill WE_Dummy[(Integer A)]
                            Custom script:   call RemoveLocation(udg_WE_Location[bj_forLoopAIndex])
                            Trigger - Turn off WE Action <gen>
            Set WE_Caster = (Triggering unit)
            Set WE_Location[1] = (Position of WE_Caster)
            Set WE_Location[2] = (Target point of ability being cast)
            Set WE_Angle[1] = ((Angle from WE_Location[1] to WE_Location[2]) - 27.00)
            Set WE_Angle[2] = ((Angle from WE_Location[1] to WE_Location[2]) + 27.00)
            Set WE_Distance = (Distance between WE_Location[1] and WE_Location[2])
            For each (Integer A) from 1 to 2, do (Actions)
                Loop - Actions
                    Set WE_Integer[(Integer A)] = 0
                    Unit - Create 1 Wild Axe for (Owner of WE_Caster) at WE_Location[(Integer A)] facing WE_Angle[(Integer A)] degrees
                    Set WE_Dummy[(Integer A)] = (Last created unit)
                    Unit - Turn collision for WE_Dummy[(Integer A)] Off
            Trigger - Turn on WE Action <gen>
            Custom script:   call RemoveLocation( udg_WE_Location[1] )
    
    Mã:
    WE Action
        Events
            Time - Every 0.01 seconds of game time
        Conditions
        Actions
            Set WE_Location[1] = (Position of WE_Caster)
            For each (Integer A) from 1 to 2, do (Actions)
                Loop - Actions
                    Unit - Move WE_Dummy[(Integer A)] instantly to (WE_Location[1] offset by (WE_Distance x (Sin((1.00 x (Real(WE_Integer[(Integer A)])))))) towards WE_Angle[(Integer A)] degrees), facing WE_Angle[(Integer A)] degrees
                    Set WE_Integer[(Integer A)] = (WE_Integer[(Integer A)] + 1)
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Integer A) Equal to 1
                        Then - Actions
                            Set WE_Angle[(Integer A)] = (WE_Angle[(Integer A)] + 0.30)
                        Else - Actions
                            Set WE_Angle[(Integer A)] = (WE_Angle[(Integer A)] - 0.30)
                    Unit Group - Pick every unit in (Units within 150.00 of (Position of WE_Dummy[(Integer A)]) matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of WE_Caster)) Equal to True)))) and do (Actions)
                        Loop - Actions
                            [COLOR="Red"]Unit - Cause WE_Caster to damage (Picked unit), dealing ((Real((Level of Wild Axe  for WE_Caster))) x 2.00) damage of attack type Chaos and damage type Universal[/COLOR]
                    Destructible - Pick every destructible within 100.00 of (Position of WE_Dummy[(Integer A)]) and do (Actions)
                        Loop - Actions
                            Destructible - Kill (Picked destructible)
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            WE_Integer[(Integer A)] Equal to 180
                        Then - Actions
                            Trigger - Turn off (This trigger)
                            Unit - Remove WE_Dummy[(Integer A)] from the game
                            Custom script:   call RemoveLocation(udg_WE_Location[bj_forLoopAIndex])
                            Set WE_Dummy[(Integer A)] = No unit
                            Set WE_Caster = No unit
                        Else - Actions
            Custom script:   call RemoveLocation( udg_WE_Location[1] )
    
     
  19. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    723
    Nơi ở:
    Tổ dân phố
    ^
    ko set Group sao xóa leak :-?
    dưới dòng đỏ thì thêm action Add picked unit vào 1 Group A , thêm condition cho cái chỗ pick group là matching unit ko thuộc Group A

    Làm như vậy có bị leak ko ( 0.0x s 1 phát :o) và clear khi nào :-?
    Thường thì mình dùng Group array cho tiện .Group1 deal dam và Group2 để check , sau mỗi lần deal dam mình chỉ xóa leak Group1 còn Group2 đến cuối trigger mình mới xóa mà nó vẫn bị trùng dam.:(
    Vụ thêm Size mình chưa thử bao giờ vì cho đến bây h mình vẫn chưa hiểu rõ lắm ý nghĩa của Size. :|
     
    Chỉnh sửa cuối: 4/6/11
  20. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Spell này mình lấy được từ lâu rồi... và nó leak là chắc. @@!
    Làm Group như vậy đã nói rồi: Group nhận unit đã deal dam không được Destroy dù sau khi chạy hết spell chứ không phải cuối trigger, cuối trigger mà xóa thì khác gì add vào như không. Chỉ Clear khi spell đã hết (hết slide).
    Tạo Group Array như bạn nói cần Size = 2 vì đây là 1 dạng khai báo khi Preload, nếu ko có nó thì vào game chỉ có Group[1] có sẵn dù chưa trại spell. Group[2] không được set trong trigger, không được preload => không tồn tại trước => không thể add unit vào 1 Group không tồn tại.

    [spoil]
    Mã:
    WE Action
        Events
            Time - Every 0.01 seconds of game time
        Conditions
        Actions
            Set WE_Location[1] = (Position of WE_Caster)
             Do Multiple ActionsFor each (Integer A) from 1 to 2, do (Actions)
                Loop - Actions
                    Unit - Move WE_Dummy[(Integer A)] instantly to (WE_Location[1] offset by (WE_Distance x (Sin((1.00 x (Real(WE_Integer[(Integer A)])))))) towards WE_Angle[(Integer A)] degrees), facing WE_Angle[(Integer A)] degrees
                    Set WE_Integer[(Integer A)] = (WE_Integer[(Integer A)] + 1)
                     Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Integer A) Equal to (==) 1
                        Then - Actions
                            Set WE_Angle[(Integer A)] = (WE_Angle[(Integer A)] + 0.30)
                        Else - Actions
                            Set WE_Angle[(Integer A)] = (WE_Angle[(Integer A)] - 0.30)
                    [B][COLOR="Blue"]Set WE_Damage[(Integer A)] = (Units within 150.00 of (Position of WE_Dummy[(Integer A)]) matching ((((Matching unit) is A structure) Equal to (==) False) and ((((Matching unit) is in WE_DamageDone[(Integer A)]) Equal to (==) False) and (((Matching unit) belongs to an enemy of (Owner of W
                    Unit Group - Pick every unit in WE_Damage[(Integer A)] and do (Actions)
                        Loop - Actions
                            Unit - Cause WE_Caster to damage (Picked unit), dealing ((Real((Level of Wild Axe  for WE_Caster))) x 2.00) damage of attack type Chaos and damage type Universal
                            Unit Group - Add (Picked unit) to WE_DamageDone[(Integer A)]
                            Special Effect - Create a special effect attached to the overhead of (Picked unit) using Objects\Spawnmodels\Orc\Orcblood\BattrollBlood.mdl
                            Special Effect - Destroy (Last created special effect)
                    Custom script:   call DestroyGroup(udg_WE_Damage[bj_forLoopAIndex])[/COLOR][/B]
                    Destructible - Pick every destructible within 100.00 of (Position of WE_Dummy[(Integer A)]) and do (Actions)
                        Loop - Actions
                            Destructible - Kill (Picked destructible)
                     Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            WE_Integer[(Integer A)] Equal to (==) 180
                        Then - Actions
                            Trigger - Turn off (This trigger)
                             [B][COLOR="Blue"]Do Multiple ActionsFor each (Integer A) from 1 to 2, do (Actions)
                                Loop - Actions
                                    Custom script:   call RemoveLocation(udg_WE_Location[bj_forLoopAIndex])
                                    Custom script:   call DestroyGroup(udg_WE_Damage[bj_forLoopAIndex])
                                    Unit Group - Remove all units from WE_DamageDone[(Integer A)]
                                    Set WE_Dummy[(Integer A)] = No unit
                                    Unit - Remove WE_Dummy[(Integer A)] from the game[/COLOR][/B]
                            Set WE_Caster = No unit
                        Else - Actions
            Custom script:   call RemoveLocation( udg_WE_Location[1] )
    
    [/spoil]

    Tom: nên cho (Integer A) vào biến
     
    Chỉnh sửa cuối: 4/6/11
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này