Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Còn rất nhiều custom map khác đang song song tồn tại trong cộng đồng game online Việt. Tuy nhiên, đây là những custom map phổ biến và được nhiều người chơi nhất. Không khó để có thể tìm thấy rất nhiều room trên Garena cũng như các hình thức giả lập khác.

Last edited by Evil_Hunter on 17.06.12 12:08; edited 7 times in total (Reason for editing : http://www.phutu.org)

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

sheiila

2012-02-06303811714094DTA.LenaThánh

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Re: [Tutorial] Tạo các hiệu ứng skill

hì mình cũng thjk thú mấy cái này lắm mà chưa hiểu căn bản big grin. đầu tiên là viết xong code thì phải thử như nào map test ở đâu mà viết code thì ném vào đâu mong chủ thớt giải thjk luôn

Action này thường được các MapMaker sử dụng để tạo một skill hay nhờ sự kết hợp giữa chỉ số nhân vật và dmg sẵn của skill

-- [Trigger]

Action Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing ((Real((Strength of (Triggering unit) (Include bonuses)))) x 2.00) damage of attack type Spells and damage type Normal

Hình ảnh

Bài đăng phổ biến từ blog này

Red |c00FF0303 Blue |c000042FF Teal |c001CE6B9 Purple |c00540081 Yellow |c00FFFC01 Orange |c00FEBA0E Green |c0020C000 Pink |c00E55BB0 Gray |c00959697 LightBlue |c007EBFF1 Dark Green |c00106246 Brown |c004E2A04 VD: Bạn có 1 nhân vật tên Kenji và muốn có tên hiển thị màu xanh dương = |c000042FF Kenji |r . Nhớ là phải có " |r " kết thúc ở cuối từ nhé. Vào game sẽ thấy kết quả. Viết liền tù tì ko cách ciếc gì cả. Link gốc bài viết cho bạn nào cần: http://forum.gamevn.com/showpost.php?p=6952887&postcount=29

Cách chạy NewGen B1: Vào Folder NewGen, tìm file có tên là WE.exe Click vào và mở. Thường thì nó sẽ bắt tìm đường dẫn đến thư mục Warcraft, khi đó bạn cứ đưa đến Folder Warcraft đã cài là xong Lưu ý: Trong B1 có thể có lỗi, liên quan đến "HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\InstallPath" ... mình dính rồi, lúc này bạn có thể xử lý như sau: Vào ổ chứa War, chạy cái WolrdEdit.exe hoặc chạy cái eurobattle.reg trong đó cũng được !! B2.1: Vào Jass, bạn phải chỉnh lại các thông số mới nếu không Jass không làm việc được trên 1.24, đôi khi không mở được MAP nữa. 2.2 - Tick vào 2 dòng đầu (Enable UMSWE and Custom Editor Extensions) 2.3 - Xem Grimorie, Tick vào dòng nào cũng được hết ngoại trừ 9 , 10 Jasshelp - Không quan tâm (Bỏ hết đi cũng được) Khởi động lại Jass để hoàn thành B2 Khi xuất hiện Trigger Database Error = > thành công, làm MAP thoải mái trên 1.24 B3 : Mở 1 map nào đó sẵn có hoặc lập hẳn 1 MAP mới => Làm bình thường n

Sơ lượt về World Editor World Editor hay WE là một Game engine nổi tiếng. được biết đến trong Warcraft III: Reign of Chaos và bản mở rộng Warcraft III: Frozen Throne. và phát triển bởi Blizzard Entertainment. Mặc dù nó được tạo ra để phát triển bản đồ thể loại Melee cho Warcraft. nhưng do tính linh hoạt cao của nó. nhiều người dùng đã tạo ra nhiều bản đồ hay nhất từng được biết đến. bao gồm cả Defense of the Ancients(DotA),Dday Judgemen t. với bản đồ mức độ đầu tư địa hình tương đối cao như. Diablo III Warcraft và TKoK -Eastern Kingdom. Không ai khác, hầu như tất cả bản đồ chơi trên Battle.net được tạo ra bởi chương trình này. Mặc dù WE đã xuất hiện từ năm 2003 so với hiện tại. đã hơn một thập kỷ, nhưng chưa lạc hậu. vì cộng đồng map-developer đã tạo nên nhiều ý tưởng độc đáo khiến WE luôn luôn là một niềm đam mê với Map maker. Ngôn ngữ lập trình GUI Trong WE, GUI là một giao diện người dùng với JASS, Đó là một cách giao tiếp với JASS bằng hình ảnh và Chữ viết th

Vì trigger ko có event: "Generic unit take damage" chỉ có "Specific unit take damage". Nên ta sẽ pick từng unit rồi add event cho trigger cần dùng, pick unit là "specific" rồi đó.

Trigger thứ 1: Ta cần 2 biến unit group, TempGroup và TakeDamGroup. Khi 1 unit đã có event take damage rồi thì phải add vào TakeDamGroup (để biết là nó "đã có event") nếu add event 2 lần thì sẽ lỗi, unit đó sẽ take 2 lần damage. Trigger này để add event cho các unit đã đc đặt sẵn.

Trigger này là khi 1 unit "đi" vào bản đồ, cho dù là đc summon, create (trigger),... Tất nhiên vẫn phải kiểm tra xem unit này đã ở trong TakeDamGroup chưa, nếu chưa thì mới add. (cẩn thận vẫn hơn)

Trigger này là trigger chính đây. Variable: TempUnit, TempUnit2 - unit, TempLoc, TempLoc2 - point TempInt - integer TempReal - real

Trigger này chưa có event, nhưng event đã đc add nhờ 2 trigger trên. Bây giờ có "event a unit takes damage" rồi. Đối với event này thì có: (Triggering unit) là unit bị mất máu (một trong những unit đã add event ấy). (Damage source) là unit deal damage.

Trước hết phải turn off trigger này, rồi turn on sau khi xong. Ko turn off sẽ có chuyện ko hay xảy ra. Sau đó kiểm tra xem Damage source có ability Impetus ko (level > 0), rồi kiểm tra Triggering unit có buff ko. (thật ra chỉ cần điều kiện này thôi, ko cần nhiều) Nếu Trigger unit có buff, tức là bị Damage source làm mất máu khi dùng Impetus. Vậy ta sẽ cho Damage source deal thêm damage theo khoảng cách giữa 2 unit này. Có số damage rồi thì dùng floating text để show và dùng Unit - Damage Target để deal damage thôi. Nhớ là pure damage thì nên dùng ATTACK_TYPE_CHAOS và DAMAGE_TYPE_UNIVERSAL.

Đến đây thì đã xong rồi, từ cách làm này các bạn có thể tạo các auto cast spell mà mình muốn. Hoặc vài spell như trong DotA: Glaive of Wisdom (deal damage = % Int ) Arcane Orb (deal damage = % current mana) ----

- BONUS SPELLS:

Thêm 1 spell nữa nhá. Ai chơi DotA 6.53 rồi sẽ biết Magina ( Anti Mage ) có cái blink rất "ảo" (nhiều người cho rằng rất "cool", tôi cũng nghĩ thế, chỉ hơi thiếu tí sound thôi)

Ta cần các biến sau: InstantMovementCaster, InstantMovementDummy - unit //caster và dummy InstantMovementFade - real //đây là biến đếm cho việc "mờ" của dummy và caster InstantMovementBlink - boolean //biến này để kiểm tra xem caster đã cast xong chưa, xong rồi thì mới hiện dummy và bắt đầu "mờ" dummy, caster.

Cần 4 trigger (

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
)

InstantMovementBegin

Events
    Unit - A unit Begins casting an ability
Conditions
    (Ability being cast) Equal to Instant Movement 
Actions
    Set InstantMovementCaster = (Casting unit)
    Set TempLoc = (Position of InstantMovementCaster)
    Set TempLoc2 = (Target point of ability being cast)
    Unit - Create 1 Dummy Instant Movement for (Owner of InstantMovementCaster) at TempLoc facing (Angle from TempLoc to TempLoc2) degrees
    Set InstantMovementDummy = (Last created unit)
    Animation - Play InstantMovementDummy's spell throw animation
    Animation - Change InstantMovementDummy's vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
    Custom script:   call RemoveLocation( udg_TempLoc )
    Custom script:   call RemoveLocation( udg_TempLoc2 )
Vì vấn đề animation nên ta phải tạo dummy ngay từ lúc caster bắt đầu cast. Nhưng lúc này phải cho transperency của dummy = 100% (ko nhìn thấy gì) và bắt dummy thực hiện động tác (animation) "spell throw" như caster.

InstantMovementBlink

Events
    Unit - A unit Starts the effect of an ability
Conditions
    (Ability being cast) Equal to Instant Movement 
Actions
    Set InstantMovementFade = 50.00
    Set InstantMovementBlink = True
    Animation - Change InstantMovementCaster's vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
    Animation - Change InstantMovementDummy's vertex coloring to (100.00%, 100.00%, 100.00%) with 50.00% transparency
    Trigger - Turn on InstantMovementTimer <gen>
Start effect, tức là đã caster đã cast xong (bây giờ đã move rồi). Vậy thì hiện dummy ra với 1 nữa transperency và caster cũng phải "mờ" đi 1 nửa. Bậy trigger "mờ" dummy và caster lên. Nhớ rằng biến InstantMovementBlink phải = true (vì đã cast xong)

InstantMovementStop

Events
    Unit - A unit Stops casting an ability
Conditions
    (Ability being cast) Equal to Instant Movement 
Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        If - Conditions
            InstantMovementBlink Equal to False
        Then - Actions
            Unit - Remove InstantMovementDummy from the game
        Else - Actions
stop casting là dừng cast, có thể là cast xong, có thể là bị stun chẳng hạn, nói chung là bị interrupt (gián đoạn
Hướng dẫn làm custom skill trong warcraft 3 năm 2024
, "cắt cơn" ấy :'> ) Nếu chưa cast xong thì remove dummy, ko thì thôi.

InstantMovementTimer

Events
    Time - Every 0.01 seconds of game time
Conditions
Actions
    Set InstantMovementFade = (InstantMovementFade + 1.00)
    Animation - Change InstantMovementCaster's vertex coloring to (100.00%, 100.00%, 100.00%) with (100.00 - InstantMovementFade)% transparency
    Animation - Change InstantMovementDummy's vertex coloring to (100.00%, 100.00%, 100.00%) with InstantMovementFade% transparency
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        If - Conditions
            InstantMovementFade Equal to 100.00
        Then - Actions
            Unit - Remove InstantMovementDummy from the game
            Trigger - Turn off (This trigger)
        Else - Actions
Sau khi cast xong thì bật trigger này, cứ 0.01s dummy sẽ mờ đi 1% và caster sẽ hiện rõ hơn 1%.

50 + 1 = 51 -> 100 - 50 = 49 => số này nhỏ dần, caster sẽ hiện ra dần dần

Khi InstantMovementFade = 100 tức là dummy đã mờ hẳn và caster đã hiện ra rõ hẳn.

Đến đây đã xong.

PS: à mà spell này ko MUI nhg tôi nghĩ blink chỉ trong 0.33s nên ko có vấn đề gì to lớn. Mà nếu ko chắc thì có lẽ tôi sẽ nghĩ ra cách làm cho MUI. --- Hy vọng mọi người hiểu.

Tom đã gửi kèm map demo.

Các file đính kèm:

  • > Mô phật
    Hướng dẫn làm custom skill trong warcraft 3 năm 2024
    1 skill auto cast làm = 4 trigger.Em nghĩ newbie không có đủ kiên nhẫn đâu anh Tom ới ời.Skill nhảy từ point này tới point kia, làm hiệu ứng nhảy lên của chém điên [mà nhảy từ point này sang point kia chứ ko chỉ nhảy lên] khi đạt tới pointkia thì nó xả kiếm xuống, nổ cái bùm dưới chân và đất lõm xuống trong 1 s .Trong lúc nhảy có phoenix fire trong người để cho người ta thấy đường vòng cung di chuyển. Chiêu đó 3 trigger, thằng đệ của em nó đòi xin map để học nhưng mà khi thấy vậy nó nản ngay, nói gì tới 4 trigger thì...
  • > Sao lại 4 trigger, cái auto cast có 3 trigger thôi. Trigger thứ 3 là trigger chính. Mà tất cả spell auto cast cho vào 1 trigger thứ 3 là đc.

    4 trigger kia là cái spell Instant Movement đấy chứ.

    > à anh ! trong pick unit có vụ pick con gần con mình rồi match nó là matching unit equal to an illusion >>> em định làm chiêu ảo ảnh, tức là khi tạo ra các con phân thân thì mình sẽ pick lũ đó, rồi mỗi 0.5 s thay đổi sự mờ ảo của nó ,thay đổi màu sắc nó , cho chiêu đó 1 effect thật mờ ảo đúng như ý định của skill : làm confuse địch. Nhưng không thể pick đc. Tại sao nhỉ .Em đã cẩn thận set con caster là 1 biến, sau 2 giây mới pick đám xung quanh con caster [vì thời gian cast phân thân lâu mà ] và đám đó phải là illusion mới pick rồi khi pick đc sẽ đưa chúng vào 1 unit group để trigger 2 sẽ thay đổi độ mờ ảo và màu sắc của chúng . thế mà chẳng pick đc con nào cả >>>> ????

Còn nữa ,đã chơi qua HAVOC của anh, thấy hệ thống giấu hero info rất hay, anh chỉ em làm đc ko ?

@ PS : mọi người hãy xem qua topic memory leak của anh Tom nếu chưa xem

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

bonongvodoi Youtube Master Race

Tham gia ngày: 3/6/08 Bài viết: 58 Còn em thì làm theo kiểu này khác anh Tom, với kiểu em làm chỉ cần dùng 2 trigger thôi , nhưng chỉ hoạt động lúc auto cast , kô hoạt động khi ta cast spell

Vi dụ , em tạo 1 skill với tên Frost arrows : Gắn ảnh hưởng của băng vào mỗi phát tấn công , làm chậm và deal thêm damage các unit trong aoe qui định sẵn (Khi bắn thì tất cả các unit quanh unit bị bắn đều bị frost nova

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
)

Việc cần làm bây h là tạo 1 skill Cold arrows , hạ hết thông số để nó trở thành skill mượn nhưng chú ý sửa : ++Text - Order String - Turn off : uncoldarrows ++Text - Order String - Use/Turn on : coldarrows Rồi tạo ra 1 skill frost nova cho unit , tạo 1 dummy unit kô có model

Trigger1 : Order -Event : A unit is issued an order with no target \-Condition : để kô -Action :

++If (Issued order) equal to (order(coldarrrows)) then Trigger - Turn on Frost arrows ++If (Issued order) equal to (order(uncoldarrrows)) then Trigger - Turn off Frost arrows

Trigger2 :Frost arrows ( Tạo hai biến : Attacking và Attacked đều là kiểu unit) \
-Event : A unit is a attacked -Condition : +Level of Frost arrows for attacking unit great than or equal to 1 +Mana of attacking unit great than or equal to *lượng mana tối thiểu còn phóng được skill Frost nova* \-Action

++Set Attacking = (Attacking unit) ++Set Attacked= (Attacked unit) ++Wait ((Distance between (Position of Attacking) and (Position of Attacked))/*Tốc độ đạn bay của Hero*) second *Đợi cái missel của hero vừa bay tới attacked unit*

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
++Bắt tất cả unit trong phạm vi 180 Aoe của Attacked với điều kiện ..... +Tạo 1 con Dummy unit tại vị trí Attacked +Set thời gian sống 1s +Add skill Frost nova cho last created unit +Set level của Frost nova cho last created unit to level của skill Frost arrows cho Hero +Order last created unit bắn frost nova lên các picked unit. Em có làm thư rồi và thấy nó hoat động khá tốt Mấy anh coi thử được hem ...
Hướng dẫn làm custom skill trong warcraft 3 năm 2024
Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

bonongvodoi Youtube Master Race

Tham gia ngày: 3/6/08 Bài viết: 58 Hì hì Thứ 1 , đúng là em hơi sai thật , nhưng mà thôi cũng tạm chấp nhận được , bởi vì có thằng nào bít đâu mà spam , trừ khi nó đọc và hỉu được trigger em là thôi

Thứ 2 , hè hè , sorry các pác , ở nhà em text với mấy thằng lính đứng yên , nên thấy thời gian nó nổ nova rất chính xác , mà quên mất cái vụ nó chạy lung tung nữa ( cái này thì , em có thể tạo 1 buff mới trong cái skill cold arrows, rồi wait tới khi thằng attacked có buff đó rồi nổ nova cũng ổn

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
)

Thứ 3 , thì em đã nói rồi , spell đó chỉ phục vụ cho auto cast thôi

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Hì , mà thôi làm theo cách của ông anh tom là ổn nhất , em mới làm thử rồi , chuẩn xác vãi .....

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
Hướng dẫn làm custom skill trong warcraft 3 năm 2024
Hướng dẫn làm custom skill trong warcraft 3 năm 2024

> anh em có bít cách làm cho 1 trig làm cho khi attack thì add abi báh vô tới khi đánh phát tiếp thì remove abi đó đi ko > - Cậu này thật pó tay.Câu hỏi của cậu cũng chính là câu trả lời chứ gì nữa ? tóm tắt họat động : khi bắn 1 phát , nếu shootflag = 0 [thì ban đầu nó = 0 mà ] thì cho nó = 1 và remove ability [??] , bắn phát tiếp theo [lúc này shootflag đã = 0 rồi ] thì add ability [??] của cậu vào.
Hướng dẫn làm custom skill trong warcraft 3 năm 2024

P/S : đây đâu phải auto cast ???

> - Mô phật :o ! đưa cả cái trigger ra chình ình mà phán câu xanh rờn vậy ? Quyết tâm ko bao giờ chỉ tên này nữa .Chỉ chuốc bực vào thân X(
Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Jin Axl > Draw 2 Life Moderator GVN Veteran

> anh Tom ơi muốn làm 1 skill auto - cast melee thì sao ạ? >
Hướng dẫn làm custom skill trong warcraft 3 năm 2024
giấu cái mèo gì....như trên
> Tương tự thôi, nhưng có lẽ dùng Black Arrow. (ko lo về cái effect gọi xương hay unit chết bị mất xác, khi nó take dam mà có thể chết thì chưa chết ngay đâu, remove buff luôn có lẽ ko sao, anh nghĩ thế
Hướng dẫn làm custom skill trong warcraft 3 năm 2024
)
Hướng dẫn làm custom skill trong warcraft 3 năm 2024

Ice_water Dragon QuestGVN Veteran

Tham gia ngày: 11/1/07 Bài viết: 1,457 Cách hay nhất là xài ability của mấy cái orb

Hướng dẫn làm custom skill trong warcraft 3 năm 2024

> Phần Action không có lệnh bắt dummy unit dùng skill custom mình mới tạo à:( > Đây nè,mình định làm skill auto blizzard tự động tạo 1 dummy unit cast blizzard tại chỗ mình target mà không biết sai chỗ nào.Ai check giùm với:(

Các file đính kèm:

> Các lỗi:

- Về trigger:

UnitTakeDamage Events Conditions Actions [B]Trigger - Turn off (This trigger)[/B] // (1) Set TempUnit = (Triggering unit) Set TempUnit2 = (Damage source) Set TempReal = (Damage taken)

Blizzard Rain

Set TempInt = (Level of Blizzard Rain<arow> for TempUnit2) If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions TempInt Greater than 0 (TempUnit has buff Blizzard Rain ) Equal to True Then - Actions Unit - Remove Blizzard Rain buff from TempUnit Unit - Create 1 Blizzard Rain Caster for (Owner of TempUnit2) at (Position of TempUnit) facing Default building facing degrees Unit - Set level of Blizzard Rain<auto> for (Last created unit) to (Level of Blizzard Rain<arow> for TempUnit2) [B]Special Effect - Create a special effect at (Position of TempUnit) using Abilities\Spells\Human\Blizzard\BlizzardTarget.mdl[/B] // (2) Unit - Order (Last created unit) to Human Archmage - Blizzard (Position of TempUnit) [B]Unit - Remove (Last created unit) from the game[/B] // (3) Else - Actions

(1) trigger này khi chạy phải turn off, sau đó làm gì đó xong thì turn on lại, vì nếu ko turn off, có chuyện sẽ xảy ra. (2) tạo special effect xong ko destroy, leak (3) tạo dummy unit xong lại remove luôn, sao nó cast Blizzard đc ?

Hướng dẫn làm custom skill trong warcraft 3 năm 2024
Add expired timer thôi, 5 wave x 1s => add 5.1s là ổn

Ngoài ra còn point leak. Cuối cùng, trigger sẽ như sau:

UnitTakeDamage Events Conditions Actions Trigger - Turn off (This trigger)

----

Set TempUnit = (Triggering unit) Set TempUnit2 = (Damage source) Set TempReal = (Damage taken)

Blizzard Rain

Set TempInt = (Level of Blizzard Rain<arow> for TempUnit2) If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions TempInt Greater than 0 (TempUnit has buff Blizzard Rain ) Equal to True Then - Actions Unit - Remove Blizzard Rain buff from TempUnit Set TempLoc = (Position of TempUnit) Unit - Create 1 Blizzard Rain Caster for (Owner of TempUnit2) at TempLoc facing Default building facing degrees Unit - Set level of Blizzard Rain<auto> for (Last created unit) to (Level of Blizzard Rain<arow> for TempUnit2) Unit - Add a 5.10 second Generic expiration timer to (Last created unit) Unit - Order (Last created unit) to Human Archmage - Blizzard TempLoc Custom script: call RemoveLocation( udg_TempLoc ) Else - Actions

----

Trigger - Turn on (This trigger)

- Về Object: Cái skill Blizzard của dummy, có Stats - Casting Time = 0 => skill nà sẽ bị hỏng, để default 1, Dummy unit thì dùng Art - Model File là .mdl

Ngoài ra melee unit ko dùng Auto - Cast skill đc (Combat - Attack - Weapon Type: Melee, phải là Missile mới là range)

Rất tiếc là melee unit mà dùng Auto - Cast skill, cụ thể là Black Arrow thì cho dù đã deactive auto cast vẫn như đang auto - cast ::( và các skill auto cast khác thì hoàn toàn ko dùng đc. -----

Đã sửa map và gửi kèm ở dưới

Các file đính kèm:

  • Quá hay,cám ơn anh. Em cứ tưởng cho unit cast skill xong thì remove nó luôn cho đỡ tốn bộ nhớ:( Về sau các skill tương tự thế này chỉ cần thay unit,thay spell,thacòn mấy cái trigger trên vẫn giữ lại được đúng không ạ?