[Tutorial] How to make custom Auto-Cast spells

Con sentry thì ta có 2 cách để cho efect lên tay. 1 là Trigger 2 là custom skill.
Trigger: dùng Trigger Effect attach effect to right hand rùi cho effect. 1 cái nữa cho lèt hand.
Custom Skill: Cho em ấy 1 skill armor bonus rùi chình armor bonus = 0 và special efect target thì cho effect vào (cho 2 cái để có effect khác nhau cho 2 tay) và fần dưới thì ghi cái attach point ra: Right rùi enter add string hand. Xuống dòng dưới và enter add string rùi ghi left rùi enter add string rùi ghi hand enter ok XONG!!!
 
Mình cho create special effect creat on right hand of unit sentry using <missile của frost wyrm> nó toàn bị mất hình,lúc hiện ra lúc không,quái vật thì bị mất đầu mất thân bó tay luôn.

Còn chiêu monsoon thì mặt đất phát sáng,lúc có mưa lúc không và không có sét giật vào đầu lũ quái :(

attachment.php


attachment.php
 

Attachments

  • WC3ScrnShot_091108_063713_01.jpg
    WC3ScrnShot_091108_063713_01.jpg
    206.5 KB · Đọc: 276
  • WC3ScrnShot_091108_063836_01.jpg
    WC3ScrnShot_091108_063836_01.jpg
    102.6 KB · Đọc: 212
Chắc bị lỗi war khi vừa bật WE vừa bật warcraft nó xung đột nhau.Hôm nay bật war lên thấy đẹp rạng ngời mà không chói lóa:D

cũng như dota đôi khi đánh mấy cái cây nó biến thành cái hộp đánh 1 lúc bị văng ra ngoài :(
 
cho em hỏi cái variables khi mình tạo một spell khác có thể dùng lại variables không hay phải tạo thêm variables, nếu phải tạo thì nếu ta tạo quá nhiều variables có làm máp nặng và lag hơn không
 
em vừa làm cái event này
UnitTakeDamage
Events
Conditions
Actions
Trigger - Turn off (This trigger)
-------- ---------------------- --------
Set HPLNTempUnit = (Triggering unit)
Set HPLNTempUnit2 = (Damage source)
Set HPLNTempReal = (Damage taken)
-------- Impetus --------
Set HPLNTempInt = (Level of Impetus for HPLNTempUnit2)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
HPLNTempInt Greater than 0
(HPLNTempUnit has buff Impetus ) Equal to True
Then - Actions
Unit - Remove Impetus buff from HPLNTempUnit
Unit - Create 1 TVDummy for (Owner of HPLNTempUnit2) at (Position of HPLNTempUnit2) facing Default building facing degrees
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Cause (Last created unit) to damage circular area after 0.00 seconds of radius 200.00 at (Position of HPLNTempUnit), dealing 100.00 damage of attack type Chaos and damage type Normal
Special Effect - Create a special effect at (Position of HPLNTempUnit) using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Else - Actions
-------- ---------------------- --------
Trigger - Turn on (This trigger)
khi em test thử thì spell hoạt động khá tốt, chỉ có điều hero của em cũng bị dính chưởng của spell, có cách nào đê hero của em không bị dính spell không, mong các anh chỉ giúp.
 
em vừa làm cái event này

khi em test thử thì spell hoạt động khá tốt, chỉ có điều hero của em cũng bị dính chưởng của spell, có cách nào đê hero của em không bị dính spell không, mong các anh chỉ giúp.

Cái này mình đọc sơ qua, không kỹ, nhưng có thể spell bạn là spell AOE nhỉ? nếu vậy thì đọc ở đây nhé. :D
http://forum.gamevn.com/showpost.php?p=8290822&postcount=1

À đọc sơ qua trigger, mặc dù mình gà nhưng mình vẫn nghi spell này có leak (nếu em nói sai thì xin tha, em gà mà) :D
 
Unit - Cause (Last created unit) to damage circular area after 0.00 seconds of radius 200.00 at (Position of HPLNTempUnit), dealing 100.00 damage of attack type Chaos and damage type Normal

đây là vấn đề, lệnh này thì deal dmg tất cả unit, dĩ nhiên hero ở trong vùng ảnh hưởng thì sẽ bị mât máu.
 
hì hì, hai bạn nói đúng, mình biết là spell có leak và vấn đề là câu lệnh:
Unit - Cause (Last created unit) to damage circular area after 0.00 seconds of radius 200.00 at (Position of HPLNTempUnit), dealing 100.00 damage of attack type Chaos and damage type Normal
và post bài để nhờ các bạn chỉ mình cách giải quyết (vì mình cũng mới tập làm spell thử và đây là spell đầu tiên mình làm).
@dannyminhduc: mình chưa xem topic bạn bảo nhưng cũng thank bạn rất nhiều.
 
cho em hỏi cái variables khi mình tạo một spell khác có thể dùng lại variables không hay phải tạo thêm variables, nếu phải tạo thì nếu ta tạo quá nhiều variables có làm máp nặng và lag hơn không

có ai trả lời giúp mình câu hỏi này không
 
Nếu 2 spell đó cast cùng nhau thì bạn nghĩ xem variable nào sẽ hoạt động cho spell nào? Vấn đề nặng hơn thì mình không sure (mà chắc có đó). Cố gắng xài ít Var với remove leak triệt để thì không lo khi chơi.
 
các biến mà "dùng luôn" có nghĩa là ko qua wait hay trigger khác thì có thể dùng chung -> tiết kiệm được một chút
Còn nếu biến lưu giá trị để qua wait hoặc qua trigger khác thì... rõ ràng phải tạo riêng.

Còn lượng variable quá nhiều, thì như ST nói, err.. miễn là ko có leak, ko thì ko ảnh hưởng.
 
Àh anh Tom cho em hỏi 1 vấn đề, có phải là các biến về Location thì có thể tạo ít, ko ảnh hưởng qua lại giữa các Trigger (ví dụ như em có thể tạo các biến Location : GlobalUnitCasterLoc, GlobalUnitTargetLoc, GlobalUnitAttackingLoc, ... ), còn các biến chỉ Unit hay Unit Group thì phải tạo riêng cho từng Trigger đúng không ạ ? Còn các biến Integer, Real hay Special Effect thì có thể tạo biến Global, hay biến Temp (dùng cho các Trigger khác nhau nhưng ko ảnh hưởng đến nhau) ? Vì em thấy Spell Chain Frost của anh cũng đặt các biến như thế : TempInteger, TempLoc1, TempLoc2, ChainFrostCaster, ChainFrostTarget ...
 
hix, sáng post bai hỏi mà không bít sao mất tiêu, bạn cho mình hỏi thêm một câu thiệt gà nha( tại mình mới mới tập làm triger thôi): leak là gì, và remove leak có phải là dùng các custom scrip không, nếu thế thì bạn cho mình những dòng lệnh để remove leak với.
 
@VanBaoPhong, ờ đúng. Temp là viết tắt của Temporary nghĩa là "tạm thời", biến nào là biến dùng "tạm thời", cái này viết trigger nhiều sẽ tự biết. :)

@emty838, leak hay memory leak là "dữ liệu" ta ko dùng đến nữa nhưng nó... vẫn ở trong bộ nhớ (RAM), có nghĩa là tốn bộ nhớ một cách vô ích. Tác hại của memory leak (khi quá nhiều):
- gây "chia server" nghĩa là trước game có 10 người chơi, sau đó bị "chia ra", 4 người một game và 6 người một game (chẳng hạn như vậy) và 4 người này thấy 6 người kia "left game" và 6 người kia thấy 4 người này "left game"
- lag rất "kinh khủng"
- "disconnect" lung tung <- chắc bạn hiểu.
- thấy map "chạy" chậm (ko hẳn là lag)

leak có nhiều nguyên nhân nhg nhiều nhất là do spell. Hãy tham hảo thêm: Memory Leak and Custom Script
 
Tom xem lại đi, cái bộ trigger này nó leak đó, disconnect nữa, test thì ko sao, chứ làm 1 map lớn thì biết liền hà :(
 
Khỏi cần phải như vậy, xài tool Leak Helper là biết hết tất cả các loại gây Leak và cách viết để remove những loại biến gây leak có array.
Cái này xài quá dễ rồi nên chả cần hướng dẫn, kô biết cách xài thì tớ nghĩ chả làm đc gì nữa đâu:-".
 

Attachments

Tom xem lại đi, cái bộ trigger này nó leak đó, disconnect nữa, test thì ko sao, chứ làm 1 map lớn thì biết liền hà :(
em biết chứ, nhưng việc sửa leak này thì... khá rắc rối, nên... :|
---
@game_war48, tool đó: cho tên variable, type -> đoạn script để dùng -> hơn gì cái tutorial trên link kia vậy 8-}
---
Dùng tool Leak Checkerv3 Tom gửi kèm ở dưới để tìm leak, và tất nhiên, sau khi tìm đc leak ta phải tự mình sửa leak (remove leak ra sao thì đọc link ở trên)

Cách dùng: chạy LeakCheck.exe
sau đó, ở cửa sổ bên trái, paste trigger cần check leak vào (Copy As Text trigger đó nhé, right click vào tên trigger ở bên phải -> Copy As Text)
paste xong ấn Scan, ở cửa sổ bên trái sẽ hiện ra các leak và cách sửa.
 

Attachments

Back
Top