Topic hỏi đáp (tập 5) về cách làm map

Status
Không mở trả lời sau này.
[BL].Kunkka;15758481 nói:
Có ai giúp em làm cái Gậy Xanh giống như Dota kô? Tăng Level cho Ultimate Skill ý. Cảm ơn trước

cái này cực đơn giản
không cần xài GUi hay jasscode đâu
chỉ cần code melee =))
tức là mặt định =))

đầu tiên bạn set skils của kon tinker trong warcraft melee cái skils tên là (Engineering Upgrade) = item Ability (True)
rùi ví dụ skils của kon hero cần đeo item là
Thunder Clap đi
thì set cho nó là Thunder Clap 2 là skils khác
còn thunder clap 1 là skils của con hero
thì set agility này vào item ( ví dụ là item tên gạy xanh )đi là ok

có 2 cái thunderclap
cái thứ 2 là skils nên cho kon hero đổi :D

bị lỗi [ kích thước đầy đủ bản đồ phải là một bội số của 32 trong cả hai chiều ]

ai có thể tạo giúp em 1 trigger 1 món item sau wait mà không ai nhặt thì mất đc không

---------- Post added at 19:18 ---------- Previous post was at 19:16 ----------

ok đc rồi lấy full rồi chỉnh lại


Mã:
[COLOR="Blue"]Xoaitemtheowait
    Events
        Time - Every 60.00 seconds of game time //( thời gian cần wait thôi)
    Conditions
    Actions
        Item - Remove (Random item in (Entire map))
[/COLOR]

cái này Item - Remove (Random item in (Entire map)) chắc thêm nhiều vào mới có hiệu quả =))

---------- Post added at 13:29 ---------- Previous post was at 13:12 ----------

không rộng được bao nhiêu? ví dụ map từ 64x64, chỉnh ra 128x128 hay max là 256x256 mà còn muốn thế nào nữa :o



lưu mục tiêu vào Hashtable rồi dùng một timer để "order lại"

Các biến:
  • Hash - hashtable
  • Temp_Point - point
  • TempUnit - unit

khởi tạo hashtable
Mã:
Init Hashtable
    Events
        Map initialization
    Conditions
    Actions
        Hashtable - Create a hashtable
        Set Hash = (Last created hashtable)

lưu vị trí mà creep đang tấn công, sẽ lưu tọa độ X và Y của điểm cần tới.
phần code này được chạy sau những đoạn trigger order creep.
Mã:
Save Creep Target
    Events
    Conditions
    Actions
        Set TempUnit = <unit của bạn>
        Set Temp_Point = (Center of <region của bạn>)
        Hashtable - Save (X of Temp_Point) as (Key TargetX) of (Key CreepTargetLoc) in Hash
        Hashtable - Save (Y of Temp_Point) as (Key TargetY) of (Key CreepTargetLoc) in Hash
        Unit - Order TempUnit to Move To Temp_Point
        Custom script:   call RemoveLocation(udg_Temp_Point)

đây là trigger "order-lại", trigger này chạy mỗi 5s, pick tất cả các unit:
  • còn sống
  • có order hiện tại (current order) là <empty string>, nghĩa là unit đó đang "không làm gì"
  • unit-type là Footman <-- phải thay đổi hoặc thêm điều kiện

Mã:
ReOrder Creep
    Events
        Time - Every 5.00 seconds of game time
    Conditions
    Actions
        Custom script:   set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units in (Playable map area) matching (((((Matching unit) is alive) Equal to True) and ((String((Current order of (Matching unit)))) Equal to <Empty String>)) and ((Unit-type of (Matching unit)) Equal to Footman))) and do (Actions)
            Loop - Actions
                Set Temp_Point = (Point((Load (Key TargetX) of (Key CreepTargetLoc) from Hash), (Load (Key TargetY) of (Key CreepTargetLoc) from Hash)))
                Unit - Order (Picked unit) to Move To Temp_Point
                Custom script:   call RemoveLocation(udg_Temp_Point)

map gửi kèm ở dưới chỉ để xem lệnh nào ở đâu.



sau máy con creeps của dh-g cứ lâu lâu chọn điểm mid mà đi ta :-/
 

Attachments

  • untitled.JPG
    untitled.JPG
    129.7 KB · Đọc: 4
Last edited by a moderator:
sau máy con creeps của dh-g cứ lâu lâu chọn điểm mid mà đi ta

bởi vì ko đặt TargetX, TargetY

cái này Item - Remove (Random item in (Entire map)) chắc thêm nhiều vào mới có hiệu quả

cụ thể là gì?
làm vậy, item vừa mới rơi ra có thể bị xóa
 
bởi vì ko đặt TargetX, TargetY



cụ thể là gì?
làm vậy, item vừa mới rơi ra có thể bị xóa

Y X đặt vào đâu :-/
có thể lấy một cái dota mẩu tạo ra xem hok :D
 
ở trigger Save Creep Target đó, post code và còn đưa cho map có trigger rồi mà không làm theo được thì tôi chịu.
xin lỗi, tôi không giúp nữa.
---
trả lời câu item đi kìa
 
ở trigger Save Creep Target đó, post code và còn đưa cho map có trigger rồi mà không làm theo được thì tôi chịu.
xin lỗi, tôi không giúp nữa.
---
trả lời câu item đi kìa

cái item kia là một loại dạng test :D
chỉ có thể xài tạm :D

---------- Post added at 15:16 ---------- Previous post was at 15:02 ----------

ở trigger Save Creep Target đó, post code và còn đưa cho map có trigger rồi mà không làm theo được thì tôi chịu.
xin lỗi, tôi không giúp nữa.
---
trả lời câu item đi kìa


biết là cái kia
mà dh-g chơi 3 loại untis

bên player 1
1 loại ở top cùng là Archer
2 loại ở mid cùng là Archer
3 loại ở bot cùng là Archer
mà bên player 8 củng như vậy
1 loại ở top cùng là Imp
2 loại ở mid cùng là Imp
3 loại ở bot cùng là IMP
việc này hơi khó :((

---------- Post added at 16:03 ---------- Previous post was at 15:16 ----------

@tom :((
bạn tom ơi
cứu
sao cái map của mình nó test trong vòng khoản 20 phút gì nó
thì bắt đâu bị relay
tức là mình điều khiển con tướng
kêu nó đi qua tây nó tư từ từ mới đi
sao kỳ dạ :((
 
Cho em hỏi, mình làm cái skill như kiểu trap của lana trong dota ý, học 1 skill ra thêm 1 skill nữa kiểu gì. Xài enable/disable skill à ??
 
Cho em hỏi, mình làm cái skill như kiểu trap của lana trong dota ý, học 1 skill ra thêm 1 skill nữa kiểu gì. Xài enable/disable skill à ??

Giả sử skill A là skill đc learn, skill B là skill add thêm khi learn skill A thì trigger như thế này:

Mã:
Learn Skill A
    Events
        Unit - A unit Learns a skill
    Conditions
        (Learned Hero Skill) Equal to Skill A
    Actions
        Unit - Add Skill B to (Triggering unit)
 
có cách nào kiểm tra 1 unit xem unit đấy đã được pick chưa ko

giả sử làm 1 spell pick unit quanh caster roài stun .1s sau pick tiếp . nhưng chỉ stun những con mới, unit pick roài thì thôi
 
^

Thì add những con pick rồi vào 1 group gọi tên là DaStun chẳng hạn,rồi sau 1 giây pick aoe những con nào trong group DaStun thì ko stun nữa :D.

Mọi người ai có ý tưởng nào về việc hiển thị damage sao cho nó không bị trùng với nhau không (tức là có thời gian nhất định giữa 2 lần hiển thị damage trên 1 unit ấy,vd 0,1 giây 1 lần chẳng hạn-tức là khi đã có text bay lên thì những text sau phải đợi 0,1s mới được hiện ra)

Phew,xong cái show damage mới rùi :D
 
Chỉnh sửa cuối:
Cho mình hỏi làm cái skill kiểu poison nova kill đc unit thì như nào :|
 
Cho mình hỏi làm cái skill kiểu poison nova kill đc unit thì như nào :|

không kill đc chỉ khi bạn để intinal damage tức là damage trực tiếp đâm vào mặt con bị dính poison nova (điều kiện chết là hp của con đó = intinal damage và chưa bị dính poison nova)

Cách để kill
Mã:
Untitled Trigger 001
    Events
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) has buff Poison Nova Equal to True
                (Life of (Triggering unit)) Less than or equal to 2.00
            Then - Actions
                Unit - Create 1 Dummy for Owner of (ở đây có biến là con cast poison nova) at (Center of (Playable map area)) facing Default building facing degrees
                Unit - Cause (Last created unit) to damage (Triggering unit), dealing 1000000000.00 damage of attack type Spells and damage type Normal
            Else - Actions
 
^
^
Dùng bất kì system nào đấy có damage over time ví dụ xedamage.

Hoặc không thì bạn thử cái slow poison xem,add cho dummy xong order dummy attack target.
 
ai chỉ dùm cách Remove Leak hok ?

Mã:
Denied Untis Se
    Events
        Unit - A unit Dies
    Conditions
        ((Dying unit) belongs to an ally of Player 1 (Red)) Equal to True
        ((Killing unit) belongs to an ally of Player 1 (Red)) Equal to True
        (Owner of (Dying unit)) Not equal to Neutral Hostile
        (Owner of (Killing unit)) Not equal to Neutral Hostile
        ((Dying unit) is A structure) Not equal to True
        ((Dying unit) is A Hero) Not equal to True
    Actions
        Special Effect - Create a special effect attached to the origin of (Dying unit) using Deniad.mdx
        Special Effect - Destroy (Last created special effect)
        Floating Text - Create floating text that reads (Player_Colors[(Player number of (Owner of (Killing unit)))] +  Denied!|r) above (Dying unit) with Z offset 0.00, using font size 9.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
        Floating Text - Change (Last created floating text): Disable permanence
        Floating Text - Set the velocity of (Last created floating text) to 30.00 towards 90.00 degrees
        Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
        Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
        Set Dedead[(Player number of (Owner of (Killing unit)))] = (Killing unit)

đoạn code này thì làm sao diệt leak ?
 
Chỉnh sửa cuối:
Nói thật là mình ko hiểu mấy cái trigger poison nova kill unit =))
 
ai chỉ dùm cách Remove Leak hok ?

Mã:
Denied Untis Se
    Events
        Unit - A unit Dies
    Conditions
        ((Dying unit) belongs to an ally of Player 1 (Red)) Equal to True
        ((Killing unit) belongs to an ally of Player 1 (Red)) Equal to True
        (Owner of (Dying unit)) Not equal to Neutral Hostile
        (Owner of (Killing unit)) Not equal to Neutral Hostile
        ((Dying unit) is A structure) Not equal to True
        ((Dying unit) is A Hero) Not equal to True
    Actions
        Special Effect - Create a special effect attached to the origin of (Dying unit) using Deniad.mdx
        Special Effect - Destroy (Last created special effect)
        Floating Text - Create floating text that reads (Player_Colors[(Player number of (Owner of (Killing unit)))] +  Denied!|r) above (Dying unit) with Z offset 0.00, using font size 9.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
        Floating Text - Change (Last created floating text): Disable permanence
        Floating Text - Set the velocity of (Last created floating text) to 30.00 towards 90.00 degrees
        Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
        Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
        Set Dedead[(Player number of (Owner of (Killing unit)))] = (Killing unit)

đoạn code này thì làm sao diệt leak ?

leak ở đâu?

Nói thật là mình ko hiểu mấy cái trigger poison nova kill unit =))

chỉnh Data - Stack Type trong ability poison dùng để deal dmg ấy, đánh dấu cái Kill Unit
 
Em dùng phoenix fire :| chỉnh initial dam thành 2 à :|
 
có ai cho hỏi, khi kill unit rớt item k? (create)
thì khi đó, jass có event item đó ko?
 
cho hỏi tý
giờ tôi đang tạo 1 map = editwar 12.3 nhưng khi chơi 12.4b
sứ dụng editwar 12.4b khi chơi 12.3
thì sẽ có lỗi gì hay chỉ thay đổi độ nặng của map thôi
 
Cho hỏi cách làm 1 skill Jass đơn giản. Nếu convert từ GUI -> Jass thì ko có cái Local Var. Cho hỏi luôn Local Var và Gobal Var khác nhau thế nào ?? Cái nào để làm MUI ???
P/s: Nếu muốn làm Damage Spell = damage base của hero thì có phải dùng lệnh GetUserData() ko ???
 
Cho hỏi cách :
1. Làm 1 unit bị giảm attack range (tất nhiên là với ranger) và movement speed, càng cầm nhiều item càng giảm.
2. Ép đồ bằng ngọc như trong map của Rex (ko nhớ tên) và map Fday của Kan, cụ thể là ấn cái item "ngọc" vào item muốn ép ấy thì ra 1 item mới.
 
Status
Không mở trả lời sau này.
Back
Top