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

Status
Không mở trả lời sau này.
Dùng lệnh wait để đợi khi missle tới
Em đã thử rồi. Nếu dùng wait thì ko thể xác định đc nó đứng xa hay gần bao nhiêu. Với lại nếu nó giả vờ tấn công thì sau 1 lúc cũng gây damage.
 
Dùng lệnh wait để đợi khi missle tới

Thế lần 1 thằng cast cách target 100 range, lần 2 thằng cast cách target 500 range thì wait bao lâu?


Em đang làm skill 3 của Storm trong DotA. Nhưng nó cứ chuẩn bị tấn công thì ở chỗ thằng bị tấn công đã gây damage rồi. Ai biết làm cho cái missile của nó bay đến rồi mới gây damage ko thì chỉ em với.
Thay vì dùng event Unit is attacked, thì bạn nên dùng Unit take damage, nhưng do event này đặc biệt nên cần 1 trigger khác add event cho trigger chính
Mã:
Unit take damage 1
Event
    Time eslapse 0 second
Condition
Action
    Unit - Pick everys unit in playable map area
        Action - Loop
             Unit Group - Add pick unit to TakeDamageGroup
             Trigger - Add new event (Pick unit take damage) to Main Trigger
Mã:
Unit take damage 2
Event
     Unit entered playable map area
Condition
    Triggering unit is in TakeDamageGroup equal to false
Action
    Unit Group - Add triggering unit to TakeDamageGroup
    Trigger - Add new event (Triggering unit take damage) to Main Trigger
Mã:
Main Trigger
Event
Condition
Action
     <Your action>
Lưu ý: tất cả các trigger trên đều chưa xóa leak. Và 2 trigger Unit take damage 1 + 2 có thể dùng cho nhiều trigger khác nữa, nghĩa là mỗi lần cần dùng đến event Unit take damage thì add thêm action cho 2 trigger trên thôi, không cần mắc công làm lại
 
Chỉnh sửa cuối:
Quote vì chưa dc a NgOc Le0 hay ai khác giúp về demo
Câu hỏi 2 : cho em hỏi về cách làm 1 spell target vào đối thủ... giúp mìnk chạy tới đối thủ ( giống Charge Of Darkness của Barathrum trong DotA ) nhưng nếu đối thủ dưới 50% máu thì tốc độ chạy tăng 20%/30%/40% ... khi khoảng cách giữa mình và đối thủ còn 500AoE ... lập tức nhảy tới ....và stun 1s . Nếu khi đang chạy tới đổi thủ mà mình đổi hướng sang con khác thì sẽ mất khả năng tăng tốc độ chạy.
tks trước ạ !

up vì chưa dc ai giúp :((~ ...
 
^

Có vài cái tips thế này :
+Cast skill ->chạy timer,kiểm tra mỗi 0.04s.Nếu người chơi làm bất cứ gì ->destroy timer.Target chết->destroy timer.Khoảng cách < 500 -> destroy timer.Cho nó khả năng vượt terrain.
+Mỗi 0.04s,move nó 1 khoảng = (tốc độ chạy *0.04) *(1.2,1.3,1.4 nếu hp target<50%),hướng từ nó thẳng tới target.Check khoảng cách < 500 thì move thẳng tới target,stun @@.
+Đổi hướng thì chịu.Như dota đổi hướng là end skill rồi.
 
cho mình hỏi trong trigger này, tại sao Caster không Unhide được, Dummy không Remove được?
Mã:
Omniattack 1
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Omniattack 
    Actions
        Set Caster = (Casting unit)
        Set Target = (Target unit of ability being cast)
        Set Temp_Loc = (Position of (Target unit of ability being cast))
        Unit - Pause Caster
        Unit - Make Caster Invulnerable
        Unit - Hide Caster
        Animation - Change Caster's vertex coloring to (100.00%, 100.00%, 100.00%) with 65.00% transparency
        For each (Integer A) from 1 to 15, do (Actions)
            Loop - Actions
                Wait 0.10 seconds
                Set Temp_Group = (Units within 550.00 of Temp_Loc matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) belongs to an enemy of (Owner of Caster)) Equal to True) and (((Matching unit) is alive) Equal to True))))
                Set Temp_Group2 = (Random 1 units from Temp_Group)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Number of units in Temp_Group2) Greater than or equal to 0
                    Then - Actions
                        Unit Group - Pick every unit in Temp_Group2 and do (Actions)
                            Loop - Actions
                                Unit - Create 1 Dummy Omniattack for (Owner of Caster) at (Position of (Picked unit)) facing (Position of (Picked unit))
                                Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 65.00% transparency
                                Animation - Play (Last created unit)'s attack animation
                                Special Effect - Create a special effect attached to the chest of (Last created unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                                Unit - Cause (Last created unit) to damage (Picked unit), dealing 250.00 damage of attack type Spells and damage type Normal
                                Wait 0.65 seconds
                                Special Effect - Destroy (Last created special effect)
                                Unit Group - Add (Last created unit) to Temp_Group3
                                Unit Group - Pick every unit in Temp_Group3 and do (Actions)
                                    Loop - Actions
                                        Unit - Remove (Picked unit) from the game
                    Else - Actions
                        EGUI Leak - Destroy Temp_Group
                        Unit - Unpause Caster
                        Unit - Make Caster Vulnerable
                        Unit - Unhide Caster
                        EGUI Leak - Remove Temp_Loc
                        EGUI Leak - Destroy Temp_Group2
 
Làm sao để một unit xác định được player đang điều khiển unit đó khi các player share unit cho nhau ?

Mình đang làm con chim đưa đồ kiểu Dota,khi player nào điều khiển nó sẽ mang đồ tới cho Hero của player đó,mình thử dùng nhiều event rồi mà không khả thi cho lắm,ai có ý tưởng nào hay chỉ giúp mình với :)
 
CHo mình hỏi làm sao để thấu kính Z tăng xa hơn nữa để có thể nhìn thấy ngọn núi từ xa chứ không phải thấy nền trời như trong hình vẽ vậy.Bro nào chỉ giùm mình với .Thanks
nhchpmnhnh_2012-04-04_162157.png

nhchpmnhnh_2012-04-04_203433.png

map gì trông có vẻ hay hay vậy hả bạn
 
Mình muốn tạo crep ra liên tục trong khoảng 1 phút sau đó sẽ dừng không ra nữa để chuyển qua đợt crep khác (quái khác).Ai biết co thể hướng dẫn mình được không thank nhiều
 
cho mình hỏi trong trigger này, tại sao Caster không Unhide được, Dummy không Remove được?
Mã:
Omniattack 1
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Omniattack 
    Actions
        Set Caster = (Casting unit)
        Set Target = (Target unit of ability being cast)
        Set Temp_Loc = (Position of (Target unit of ability being cast))
        Unit - Pause Caster
        Unit - Make Caster Invulnerable
        Unit - Hide Caster
        Animation - Change Caster's vertex coloring to (100.00%, 100.00%, 100.00%) with 65.00% transparency
        For each (Integer A) from 1 to 15, do (Actions)
            Loop - Actions
                Wait 0.10 seconds
                Set Temp_Group = (Units within 550.00 of Temp_Loc matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) belongs to an enemy of (Owner of Caster)) Equal to True) and (((Matching unit) is alive) Equal to True))))
                Set Temp_Group2 = (Random 1 units from Temp_Group)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Number of units in Temp_Group2) Greater than or equal to 0
                    Then - Actions
                        Unit Group - Pick every unit in Temp_Group2 and do (Actions)
                            Loop - Actions
                                Unit - Create 1 Dummy Omniattack for (Owner of Caster) at (Position of (Picked unit)) facing (Position of (Picked unit))
                                Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 65.00% transparency
                                Animation - Play (Last created unit)'s attack animation
                                Special Effect - Create a special effect attached to the chest of (Last created unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                                Unit - Cause (Last created unit) to damage (Picked unit), dealing 250.00 damage of attack type Spells and damage type Normal
                                Wait 0.65 seconds
                                Special Effect - Destroy (Last created special effect)
                                Unit Group - Add (Last created unit) to Temp_Group3
                                Unit Group - Pick every unit in Temp_Group3 and do (Actions)
                                    Loop - Actions
                                        Unit - Remove (Picked unit) from the game
                    Else - Actions
                        EGUI Leak - Destroy Temp_Group
                        Unit - Unpause Caster
                        Unit - Make Caster Vulnerable
                        Unit - Unhide Caster
                        EGUI Leak - Remove Temp_Loc
                        EGUI Leak - Destroy Temp_Group2

Có anh rảnh đến mưá giup được mình không?
 
cho mình hỏi trong trigger này, tại sao Caster không Unhide được, Dummy không Remove được?
Mã:
Omniattack 1
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Omniattack 
    Actions
        Set Caster = (Casting unit)
        Set Target = (Target unit of ability being cast)
        Set Temp_Loc = (Position of (Target unit of ability being cast))
        Unit - Pause Caster
        Unit - Make Caster Invulnerable
        Unit - Hide Caster
        Animation - Change Caster's vertex coloring to (100.00%, 100.00%, 100.00%) with 65.00% transparency
[B]        For each (Integer A) from 1 to 15, do (Actions)[/B]
            Loop - Actions
[B]                Wait 0.10 seconds[/B]
                Set Temp_Group = (Units within 550.00 of Temp_Loc matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) belongs to an enemy of (Owner of Caster)) Equal to True) and (((Matching unit) is alive) Equal to True))))
                Set Temp_Group2 = (Random 1 units from Temp_Group)
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Number of units in Temp_Group2) Greater than or equal to 0
                    Then - Actions
                        Unit Group - Pick every unit in Temp_Group2 and do (Actions)
                            Loop - Actions
                                Unit - Create 1 Dummy Omniattack for (Owner of Caster) at (Position of (Picked unit)) facing (Position of (Picked unit))
                                Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 65.00% transparency
                                Animation - Play (Last created unit)'s attack animation
                                Special Effect - Create a special effect attached to the chest of (Last created unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
                                Unit - Cause (Last created unit) to damage (Picked unit), dealing 250.00 damage of attack type Spells and damage type Normal
                                [B]Wait 0.65 seconds[/B]
[B]                                Special Effect - Destroy (Last created special effect)[/B]
                                Unit Group - Add (Last created unit) to Temp_Group3
                                Unit Group - Pick every unit in Temp_Group3 and do (Actions)
                                    Loop - Actions
                                        Unit - Remove (Picked unit) from the game
                    Else - Actions
                        EGUI Leak - Destroy Temp_Group
                        Unit - Unpause Caster
                        Unit - Make Caster Vulnerable
                        Unit - Unhide Caster
                        EGUI Leak - Remove Temp_Loc
                        EGUI Leak - Destroy Temp_Group2

trigger hoàn toàn không có MUI và có thể giảm hiệu suất map code hok được tối ưu lắm. có thể gọi là không!, mà vì Wait 0.65 seconds nên trigger có chút không ổn nhất là Unit Group - Add (Last created unit) to Temp_Group3 trong khi đó đã wait 0.65 có thể dẫn ra việc nhập sai Last created unit vì việc đó cũng có thể gây lên dummy không được remove thậm chí còn có thể remove unit thuộc dạng thứ 3, và trigger bạn thật sự quá leak X_X. nhớ sẵn tạo 1 variable dành cho Loop tránh loop.

bạn thử đưa Unit Group - Add (Last created unit) to Temp_Group3 dưới 1 hàng Unit - Create 1 Dummy Omniattack for (Owner of Caster) at (Position of (Picked unit)) facing (Position of (Picked unit)) thử!
 
Chỉnh sửa cuối:
1/ trigger mình leak chỗ nào? Chỉ giùm mình đi để mình sửa
2/ chưa MUI vì mình chưa học? Mà học thế nào?
3/ tại sao Caster không được Unhide?
4/ tại sao chỉ gây dam được một unit?
 
CHo mình hỏi làm sao để thấu kính Z tăng xa hơn nữa để có thể nhìn thấy ngọn núi từ xa chứ không phải thấy nền trời như trong hình vẽ vậy.Bro nào chỉ giùm mình với .Thanks
nhchpmnhnh_2012-04-04_162157.png

nhchpmnhnh_2012-04-04_203433.png

thử chỉnh Far Clippling (Far Z) của camera lên xem sao

nhưng cái này mà cao => nhìn thấy nhiều hình hơn => tụt fps (giật hơn)

Làm sao để một unit xác định được player đang điều khiển unit đó khi các player share unit cho nhau ?

Mình đang làm con chim đưa đồ kiểu Dota,khi player nào điều khiển nó sẽ mang đồ tới cho Hero của player đó,mình thử dùng nhiều event rồi mà không khả thi cho lắm,ai có ý tưởng nào hay chỉ giúp mình với :)

để kiểm tra player này có share unit cho player kia hay không thì dùng lệnh

Mã:
//Player - Player Alliance Towards Player

(Player 2 (Blue) is giving Player 1 (Red) Shared units) Equal to True

nhưng việc biết được player nào điều khiển unit thì... không thể.

DotA sử dụng một unit stock (bán unit) trong courier, khi courier bán unit sẽ chạy đến hero của player sở hữu unit được bán.

1/ trigger mình leak chỗ nào? Chỉ giùm mình đi để mình sửa
2/ chưa MUI vì mình chưa học? Mà học thế nào?
3/ tại sao Caster không được Unhide?
4/ tại sao chỉ gây dam được một unit?

1/ và 2/ khó trả lời

3/ vì lệnh unhide đặt trong "Else" nếu IF đúng thì THEN sẽ chạy và IF của cái ELSE kia thì luôn luôn đúng, số unit trong group lớn hơn hoặc bằng 0, làm sao số unit trong group âm được mà đòi unhide =))

4/ trong Loop - Actions của Unit Group - Pick... KHÔNG ĐƯỢC dùng wait, nếu có wait thì cái loop đó sẽ bị dừng ngay lập tức => chỉ có một unit bị (thậm chí ở đây, special effect còn không được destroy)
 
Chỉnh sửa cuối:
có vài vấn đề mình muốn hỏi mong mọi người giúp đỡ
1.Mình tạo 1 cái ice Gate và ice rock gate nhưng đập mãi mà nó không sập .Giờ mình muốn làm nó sập thì phải làm gì
2.mình muốn tạo 1 bãi train cho hero.Khi mà hero đi vào thì quái ra,khi mà hero ra ngoài thì quái dừng không ra nữa
3.mình muốn tạo 1 cổng dịch chuyển khi hero đi vào thì nó cho lựa chọn vùng muốn chuyển đến.khi hero chọn xong thì sẽ được dịch chuyển đến nơi yêu cầu
Ai biết xin giúp mình :(
 
Ann Tom cho em hỏi
group đã destroy
point đã destroy
special effect cũng thế? Sao lại leak?
 
Status
Không mở trả lời sau này.
Back
Top