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

Status
Không mở trả lời sau này.
cho mình hỏi vài câu :
+ Skill "phá nhà" của Tinker ( đại loại là đánh vào nhà thì thấm hơn ) có thể áp dụng trên Unit , và nó có stack vs critical strike :-? ?

MÌnh chỉ biết 2 skill critical strike còn có stack với nhau còn skill phá nhà đó base trên Demonlish là 1 spell khác thì tại sao lại ko stack nhỉ ? Cái này bạn nên thử đi.
Còn skill này hoàn toàn có thế tác dụng trên unit và cả trên hero. Tác dụng của nó trên các thể loại nói trên là khác nhau vì trong abi Demonlish có 3 phần data riêng biệt cho mỗi thể loại. :-@

---------- Post added at 01:48 ---------- Previous post was at 01:43 ----------

Skill cuối Abaddon là skill active mà?

Chẹp. Chưa chơi dota, mới chỉ nghe nói ... nó tự active khi máu dưới 400 nên nhầm :">

---------- Post added at 01:55 ---------- Previous post was at 01:48 ----------

Mình nghĩ là làm như sau. Tạo skill active bình thường. nghĩa là có cooldown. Sau đó tạo một trigger khi unit tự begin cast thì bắt unit stop. Và tạo trigger để sử dụng skill khi cần thiết là xong.

Tại không không tạo 2 skill:
1 là passive và khi ta muốn nó coldown thì thay = skill 2 biết quay cooldown , rồi ta order cho nó quay luôn. Tạo thêm 1 cái timer đếm time cooldown. Khi hết timer sẽ add lại skill passive kia. Như vậy mấy tên nghịch khỏi bấm ;)) và skill ko bị chúng nó đè lún xuống khi bấm =))
 
Làm sao khi hết time hay tắt skill Metamorphosis thì hero tự chưởng đường thẳng trước mặt hero như skill shockwave ? Thanks nhìu
 
[Yami];17776193 nói:
Có cách nào để skill passive thể hiện là đang xoay cooldown không ạ =))

Đã góp ý là nên khai thác hết base skill từ lúc mở topic hỏi đáp làm map rồi mà :-<
Cách làm như sau:
Tạo 1 skill mới cho hero,base skill là orb of slow
trong phần này sửa lại các thông số tùy theo ý muốn
có 2 điều cần chú ý:
1/Effect Ability:Bạn phải chắc chắn rằng là effect của skill slow của unit human ( vì skill này có Data-Auto cast False,sửa lại cd tùy ý,3600s cũng được,nếu bạn làm map cũng lâu rồi thì chắc phần này ko cần giải thích gì thêm )
2/Buff:Tạo 1 buff mới cũng base slow và add vào buff của skill
->Kết quả là có 1 skill passive cooldown 2s sau mỗi lần đánh trúng (khi mình làm) và unit bị đánh trúng sẽ bị slow
-------------------
Cho em hỏi thêm
Làm barrage với projectile tên băng có buff slow ntn :|

---------- Post added at 10:18 ---------- Previous post was at 09:56 ----------

Làm sao khi hết time hay tắt skill Metamorphosis thì hero tự chưởng đường thẳng trước mặt hero như skill shockwave ? Thanks nhìu

skill đâu có tắt được lúc đang effect
 
Làm sao khi hết time hay tắt skill Metamorphosis thì hero tự chưởng đường thẳng trước mặt hero như skill shockwave ? Thanks nhìu

Khi hết time unit có metamorphosis sẽ trở về dạng thường và dùng trigger với event bt không có cách để phát hiện trừ khi dùng timer

Khi metamorphosis vẫn còn hiệu lực mà skill metamorphosis đã cooldown xong và dùng sẽ chuyển về dạng unit thường, cái này vẫn detect được vì thực ra đây ko phải tắt mà là sử dụng skill metamorphosis => bắt sự kiện = Event - Unit - A unit Starts the effect of an ability + Condition - (Ability being cast) Equal to Metamorphosis. Nhưng phải biết là unit vẫn đang hóa hay ở dạng thường để phân biệt "tắt" với "mở" skill của bạn.

Tóm lại là phức tạp
 
Khi hết time unit có metamorphosis sẽ trở về dạng thường và dùng trigger với event bt không có cách để phát hiện trừ khi dùng timer

Khi metamorphosis vẫn còn hiệu lực mà skill metamorphosis đã cooldown xong và dùng sẽ chuyển về dạng unit thường, cái này vẫn detect được vì thực ra đây ko phải tắt mà là sử dụng skill metamorphosis => bắt sự kiện = Event - Unit - A unit Starts the effect of an ability + Condition - (Ability being cast) Equal to Metamorphosis. Nhưng phải biết là unit vẫn đang hóa hay ở dạng thường để phân biệt "tắt" với "mở" skill của bạn.

Tóm lại là phức tạp

Không cần phức tạp đến thế đâu. Ở đây ta có thể sử dụng biến đếm (vd: khi cast set biến đếm = biến đếm +1; nếu biến đếm là số chẵn thì dùng dummy cast shockwave, nếu số lẽ thì thôi), hoặc dùng biến kiểu boolean cũng được.
 
^ vs ^
^
Các bác pro quá, nếu được em cậy xin cái map nói về dạng spell này để nghiên cứu . Thanks nhìu nhìu, sr vì em chicken
 
cho mình hỏi,muốn làm con lính chết hồi sinh tại chỗ làm sao vậy :(
 
Cho mình hỏi tại sao cái War3ModelEditornhà mình nó lại báo cái lỗi này, ai biết cách fix chỉ dùm mình đi

"This application has failded to start because d3dx9_35.dll was not found"
 
Cho mình hỏi tại sao cái War3ModelEditornhà mình nó lại báo cái lỗi này, ai biết cách fix chỉ dùm mình đi

"This application has failded to start because d3dx9_35.dll was not found"

Bạn đã cài directX 9 chưa? Nên thử cài đi dù bạn đã cài hay chưa. File đó là của directX đó

Ai cho xin vị trí sắp xếp item trong shop

| 0.0 | 0.1 | 0.2 | 0.3 |
| 1.0 | 1.1 | 1.2 | 1.3 |
| 2.0 | 2.1 | 2.2 | 2.3 |

Với hình mình họa trên 0.2 là Y.X

ví dụ bạn muốn add vào ô thứ 2 tính từ trái sang và thứ 3 từ trên xuống thì chỉnh Button position (X) = 1 và Button position (Y) = 2
Tương tự với ability (Spell or Skill)
 
Chỉnh sửa cuối:
Cho em hỏi cái này, đây là trigger Spell của em, cho em hỏi 3 trigger ở dưới có leak hay lỗi gì hok mà khi dùng spell gây lag rất khó chịu và nếu có thì phải chỉnh như thế nào????/
Trigger 1
Mã:
Amaterasu
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Amaterasu 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Amaterasu_Integer[1] Equal to 0
            Then - Actions
                Trigger - Turn on Amaterasu Loop <gen>
            Else - Actions
        Set Amaterasu_Integer[1] = (Amaterasu_Integer[1] + 1)
        Set Amaterasu_Integer[2] = (Amaterasu_Integer[2] + 1)
        Set Amaterasu_Caster[Amaterasu_Integer[2]] = (Triggering unit)
        Set Amaterasu_Target[Amaterasu_Integer[2]] = (Target unit of ability being cast)
        Set Amaterasu_CasterPosition[Amaterasu_Integer[2]] = (Position of Amaterasu_Caster[Amaterasu_Integer[2]])
        Set Amaterasu_ExplosionTime[Amaterasu_Integer[2]] = 0.25
        Set Amaterasu_Distance[Amaterasu_Integer[2]] = 500.00
        Set Amaterasu_DamageRange[Amaterasu_Integer[2]] = 300.00
        Set Amaterasu_CreateTime[Amaterasu_Integer[2]] = 0.50
        Set Amaterasu_Damage[Amaterasu_Integer[2]] = ((Real((Level of Amaterasu  for Amaterasu_Caster[Amaterasu_Integer[2]]))) x ((Real((Strength of Amaterasu_Caster[Amaterasu_Integer[2]] (Include bonuses)))) x 5.00))
        Set Amaterasu_AttackType[Amaterasu_Integer[2]] = Spells
        Set Amaterasu_DamageType[Amaterasu_Integer[2]] = Mind
        Unit - Pause Amaterasu_Target[Amaterasu_Integer[2]]
        Custom script:   call RemoveLocation (udg_Amaterasu_CasterPosition[udg_Amaterasu_Integer[3]])
Trigger 2
Mã:
Amaterasu Die
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Dying unit)) Equal to Amaterasu Dummy
    Actions
        Unit - Remove (Dying unit) from the game
Trigger 3
Mã:
Amaterasu Loop
    Events
        Time - Every 0.01 seconds of game time
    Conditions
    Actions
        For each (Integer Amaterasu_Integer[3]) from 1 to Amaterasu_Integer[2], do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                    Then - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                Amaterasu_CreateTime[Amaterasu_Integer[3]] Greater than 0.00
                            Then - Actions
                                Set Amaterasu_CreateTime[Amaterasu_Integer[3]] = (Amaterasu_CreateTime[Amaterasu_Integer[3]] - 0.01)
                                Set Amaterasu_TargetPosition[Amaterasu_Integer[3]] = (Position of Amaterasu_Target[Amaterasu_Integer[3]])
                                Set Amaterasu_CreatePoint2[Amaterasu_Integer[3]] = (Amaterasu_TargetPosition[Amaterasu_Integer[3]] offset by Amaterasu_Distance[Amaterasu_Integer[3]] towards (Random angle) degrees)
                                Unit - Create 1 Amaterasu Dummy for (Owner of Amaterasu_Caster[Amaterasu_Integer[3]]) at Amaterasu_CreatePoint2[Amaterasu_Integer[3]] facing (Random angle) degrees
                                Set Amaterasu_Dummy[Amaterasu_Integer[3]] = (Last created unit)
                                Custom script:   call RemoveLocation (udg_Amaterasu_TargetPosition[udg_Amaterasu_Integer[3]])
                                Custom script:   call RemoveLocation (udg_Amaterasu_CreatePoint2[udg_Amaterasu_Integer[3]])
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        Amaterasu_Distance[Amaterasu_Integer[3]] Greater than 50.00
                                    Then - Actions
                                        Set Amaterasu_DummyGroup[Amaterasu_Integer[3]] = (Units of type (Unit-type of Amaterasu_Dummy[Amaterasu_Integer[3]]))
                                        Unit Group - Pick every unit in Amaterasu_DummyGroup[Amaterasu_Integer[3]] and do (Actions)
                                            Loop - Actions
                                                Set Amaterasu_TargetPosition[Amaterasu_Integer[3]] = (Position of Amaterasu_Target[Amaterasu_Integer[3]])
                                                Set Amaterasu_MovePoint2[Amaterasu_Integer[3]] = (Amaterasu_TargetPosition[Amaterasu_Integer[3]] offset by Amaterasu_Distance[Amaterasu_Integer[3]] towards (Random angle) degrees)
                                                Set Amaterasu_Distance[Amaterasu_Integer[3]] = (Amaterasu_Distance[Amaterasu_Integer[3]] - 0.02)
                                                Set Amaterasu_SpinDummy[Amaterasu_Integer[3]] = (Picked unit)
                                                Unit - Move Amaterasu_SpinDummy[Amaterasu_Integer[3]] instantly to Amaterasu_MovePoint2[Amaterasu_Integer[3]]
                                                Custom script:   call RemoveLocation (udg_Amaterasu_TargetPosition[udg_Amaterasu_Integer[3]])
                                                Custom script:   call RemoveLocation (udg_Amaterasu_MovePoint2[udg_Amaterasu_Integer[3]])
                                                Custom script:   call DestroyGroup (udg_Amaterasu_DummyGroup[udg_Amaterasu_Integer[3]])
                                    Else - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                Amaterasu_ExplosionTime[Amaterasu_Integer[3]] Greater than 0.00
                                            Then - Actions
                                                Set Amaterasu_ExplosionTime[Amaterasu_Integer[3]] = (Amaterasu_ExplosionTime[Amaterasu_Integer[3]] - 0.01)
                                                Set Amaterasu_DummyGroup[Amaterasu_Integer[3]] = (Units of type (Unit-type of Amaterasu_Dummy[Amaterasu_Integer[3]]))
                                                Unit Group - Pick every unit in Amaterasu_DummyGroup[Amaterasu_Integer[3]] and do (Actions)
                                                    Loop - Actions
                                                        Set Amaterasu_RemoveDummy[Amaterasu_Integer[3]] = (Picked unit)
                                                        Unit - Remove Amaterasu_RemoveDummy[Amaterasu_Integer[3]] from the game
                                                Set Amaterasu_TargetPosition[Amaterasu_Integer[3]] = (Position of Amaterasu_Target[Amaterasu_Integer[3]])
                                                Unit - Create 1 Amaterasu Explosion Dummy for (Owner of Amaterasu_Caster[Amaterasu_Integer[3]]) at Amaterasu_TargetPosition[Amaterasu_Integer[3]] facing Default building facing degrees
                                                Set Amaterasu_ExplosionDummy[Amaterasu_Integer[3]] = (Last created unit)
                                                Animation - Play Amaterasu_ExplosionDummy[Amaterasu_Integer[3]]'s birth animation
                                                Unit - Add a 3.00 second Generic expiration timer to Amaterasu_ExplosionDummy[Amaterasu_Integer[3]]
                                                Custom script:   call RemoveLocation (udg_Amaterasu_TargetPosition[udg_Amaterasu_Integer[3]])
                                                Custom script:   call DestroyGroup (udg_Amaterasu_DummyGroup[udg_Amaterasu_Integer[3]])
                                            Else - Actions
                                                Set Amaterasu_TargetPosition[Amaterasu_Integer[3]] = (Position of Amaterasu_Target[Amaterasu_Integer[3]])
                                                Set Amaterasu_DamageGroup[Amaterasu_Integer[3]] = (Units within Amaterasu_DamageRange[Amaterasu_Integer[3]] of Amaterasu_TargetPosition[Amaterasu_Integer[3]] matching (((Matching unit) belongs to an enemy of (Owner of Amaterasu_Caster[Amaterasu_Integer[3]])) Equal to True))
                                                Unit Group - Pick every unit in Amaterasu_DamageGroup[Amaterasu_Integer[3]] and do (Actions)
                                                    Loop - Actions
                                                        Set Amaterasu_DamagedUnits[Amaterasu_Integer[3]] = (Picked unit)
                                                        Unit - Cause Amaterasu_Caster[Amaterasu_Integer[3]] to damage Amaterasu_DamagedUnits[Amaterasu_Integer[3]], dealing Amaterasu_Damage[Amaterasu_Integer[3]] damage of attack type Amaterasu_AttackType[Amaterasu_Integer[3]] and damage type Amaterasu_DamageType[Amaterasu_Integer[3]]
                                                Unit - Unpause Amaterasu_Target[Amaterasu_Integer[3]]
                                                Custom script:   call RemoveLocation (udg_Amaterasu_TargetPosition[udg_Amaterasu_Integer[3]])
                                                Set Amaterasu_Integer[1] = 0
                    Else - Actions
                        Unit - Unpause Amaterasu_Target[Amaterasu_Integer[3]]
                        Set Amaterasu_Integer[1] = 0
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Amaterasu_Integer[1] Equal to 0
            Then - Actions
                Set Amaterasu_Integer[2] = 0
                Trigger - Turn off (This trigger)
            Else - Actions
và cho e hỏi thêm làm thế nào để phân thân đánh mất máu được

quote lần 1, ai trả lời giúp kái này với
 
Không nên dùng Time - Every 0.01 seconds of game time với time là 0.01, lag lắm...bạn thử dùng 0.03 hoặc 0.04 là tốt nhất tuy nó không được "mút" cho lắm :D
 
Thực ra hiện mình hay xài 0.025s, nhưng nói chung để 0.03s là tương đối Smooth, mà đỡ lag nữa : )
 
Mã:
Custom script:   call RemoveLocation (udg_Amaterasu_CasterPosition[udg_Amaterasu_Integer[[U][B]3[/B][/U]]])
ở trên set là 2 mà ở dưới remove là 3 :|
 
cho em hỏi: làm thế nào để sau khi cast 1 skill sẽ có 1 dòng chữ hiện lên trên đầu hero cast skill đó. Em thấy trong map TLBB làm mà ko biết làm ntn?. Dùng trigger và có map demo nhé
 
cho em hỏi: làm thế nào để sau khi cast 1 skill sẽ có 1 dòng chữ hiện lên trên đầu hero cast skill đó. Em thấy trong map TLBB làm mà ko biết làm ntn?. Dùng trigger và có map demo nhé
Mã:
Event
         Unit start effect of an ability
Action
         Floating Text - Create floating text that reads String(Name of (Ability being cast)) above (Triggering Unit) using font size 8.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
         Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
         Floating Text - Change (Last created floating text): Disable permanence
         Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds
         Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
Demo map xin kiếu, mình vừa cài lại Win xong.:D

cho mình hỏi,muốn làm con lính chết hồi sinh tại chỗ làm sao vậy :(
Trừ Hero các Unit không hs được bạn, chỉ có tạo con mới thôi.

Cho em hỏi cái này, đây là trigger Spell của em, cho em hỏi 3 trigger ở dưới có leak hay lỗi gì hok mà khi dùng spell gây lag rất khó chịu và nếu có thì phải chỉnh như thế nào????
và cho e hỏi thêm làm thế nào để phân thân đánh mất máu được
Amateratsu_Integer[3] ở đâu vậy bạn, nhìn nãy h không ra.:(
Phân thân có dam thì Data - Damage Dealt chỉnh số lên (theo % của caster)
 
Ai giải thích hộ mình các thông số của skill cluster rocket nhé:
Damage Amount? Damage Interval? Effect Duration? Max Damage? và Missile Count?

Trừ Hero các Unit không hs được bạn, chỉ có tạo con mới thôi.

Unit vẫn hs đc bạn. thêm skill Reincarnation vào thì hồi sinh được với điều kiện phần Death type phải để Can raise
 
Status
Không mở trả lời sau này.
Back
Top