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

Status
Không mở trả lời sau này.
^
mình muốn làm 1 skill passive mà để buff
skill đó là + % AS MS, damage, armor, v..v
vì vậy mình làm = cách tạo 1 skill ko + gì sau đó dùng trigger add những skill kia vào
bạn tạo danh sách các skill đó, ròi add vào 1 cuốn spellbook, ròi disable cái spellbook đó cho player, sau đó khi cần thì add spellbook cho unit, tuy spellbook bị disable nhưng các skill bên trong vẫn có hiệu quả, chỉ có icon của spell book là ko hiện :D

Cho mình hỏi cái: giữa dùng hashtable và dùng 2 mảng để chạy vòng lặp kiểm tra từng cái handle trong mảng 1 ròi lấy index truy data mảng 2 thì cách nào chạy nhanh hơn? có cách nào từ handleID đổi về unit/item/widget/... đc ko ?

Ngoài ra mình còn muốn hỏi cái này vì chưa test đc: nếu 1 unit của player A có passive là 1 cái aura, mình disable cái ability đó cho player A thì có phải unit đó về mặt hiệu quả của aura sẽ hoàn toàn giống như ko có passive ko?

Mình muốn 1 hero khi ở gần unit A thì có skill Z, khi gần B lại có skill Y, mình tính dùng 1 timer kiểm tra liên tục = GroupEnumUnitsInRange để add/remove ability, cách đó có ổn ko? và có cách nào hay hơn ko, kiểu như dùng aura hay gì gì có AoE ròi dùng trigger kiểm tra khi unit nào đó bắt đầu bị ảnh hưởng của aura?
 
Chỉnh sửa cuối:
^
vậy thì gần cả 2 unit A B thì có skill .... Y Z ???

---------- Post added at 08:33 ---------- Previous post was at 07:58 ----------

cho em hỏi cách làm 2 skill passive này:
1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
cám on! :D
 
^
vậy thì gần cả 2 unit A B thì có skill .... Y Z ???

---------- Post added at 08:33 ---------- Previous post was at 07:58 ----------

cho em hỏi cách làm 2 skill passive này:
1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
cám on! :D

Đúng vậy, gần cả A B thì có cả X và Z :D

Bạn thử cái này xem?
 
^
link trên chả hiểu là cái gì luôn :|
down cái demo về rồi choảng nhau ì xèo, sau đó end game :|

---------- Post added at 10:02 ---------- Previous post was at 09:59 ----------

bạn tạo danh sách các skill đó, ròi add vào 1 cuốn spellbook, ròi disable cái spellbook đó cho player, sau đó khi cần thì add spellbook cho unit, tuy spellbook bị disable nhưng các skill bên trong vẫn có hiệu quả, chỉ có icon của spell book là ko hiện :D

Cho mình hỏi cái: giữa dùng hashtable và dùng 2 mảng để chạy vòng lặp kiểm tra từng cái handle trong mảng 1 ròi lấy index truy data mảng 2 thì cách nào chạy nhanh hơn? có cách nào từ handleID đổi về unit/item/widget/... đc ko ?

Ngoài ra mình còn muốn hỏi cái này vì chưa test đc: nếu 1 unit của player A có passive là 1 cái aura, mình disable cái ability đó cho player A thì có phải unit đó về mặt hiệu quả của aura sẽ hoàn toàn giống như ko có passive ko?

Mình muốn 1 hero khi ở gần unit A thì có skill Z, khi gần B lại có skill Y, mình tính dùng 1 timer kiểm tra liên tục = GroupEnumUnitsInRange để add/remove ability, cách đó có ổn ko? và có cách nào hay hơn ko, kiểu như dùng aura hay gì gì có AoE ròi dùng trigger kiểm tra khi unit nào đó bắt đầu bị ảnh hưởng của aura?

icon của spell book ko hiện? :|. đây là những cái mình cần:
1) 1 skill passive (ko nhấn đc)
2) khi 1 unit có skill passive đó thì add thêm những abi khác nhưng ko hiện icon abi đc add (nhưng vẫn hiện icon skill passive đó)
nhưng mà:
1) spell book thì nhấn đc, còn nếu disable thì... làm gì có hình spell book @@
2) mình ko biết cách disable spell book @@

---------- Post added at 10:04 ---------- Previous post was at 10:02 ----------

chỉ còn 1 cách duy nhất là làm như thằng If nhưng mình ko biết làm, là:
dùng icon ẩn nào đó thế chỗ cho các ô trống (giống rubick trong dota) thì làm như vậy các skill kia sẽ ko đc chen vào :D

---------- Post added at 10:20 ---------- Previous post was at 10:04 ----------

thôi bây giờ ko cần giúp cái add gì nữa, giúp 2 cái skill này dùm em đc rồi @@:
1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
 
Cho mình hỏi cái: giữa dùng hashtable và dùng 2 mảng để chạy vòng lặp kiểm tra từng cái handle trong mảng 1 ròi lấy index truy data mảng 2 thì cách nào chạy nhanh hơn?
Tùy xem số lượng là bao nhiêu. Nếu dữ liệu data khoảng 70 cái trở lên thì tớ nghĩ dùng hashtable lấy thẳng ra nhanh hơn

có cách nào từ handleID đổi về unit/item/widget/... đc ko ?
hashtable @@

Ngoài ra mình còn muốn hỏi cái này vì chưa test đc: nếu 1 unit của player A có passive là 1 cái aura, mình disable cái ability đó cho player A thì có phải unit đó về mặt hiệu quả của aura sẽ hoàn toàn giống như ko có passive ko?
Như vậy = unit đó ko có aura

Mình muốn 1 hero khi ở gần unit A thì có skill Z, khi gần B lại có skill Y, mình tính dùng 1 timer kiểm tra liên tục = GroupEnumUnitsInRange để add/remove ability, cách đó có ổn ko?
Có vì 1, 2 hero thì ko đáng kể. Hơn nữa về default thì aura cũng remove buff sau 2s ! tức timer cậu làm ko cần chạy quá liên tục.

và có cách nào hay hơn ko, kiểu như dùng aura hay gì gì có AoE ròi dùng trigger kiểm tra khi unit nào đó bắt đầu bị ảnh hưởng của aura?
Có khác gì cái kia khi cũng dùng groupenumunit để lấy ra unit bị ảnh hưởng bởi aura ???
Có 2 cách làm:
-Mỗi 1 unit lại 1 group chứa các unit affect 1 group để loop và mỗi 2s lại loop xung quanh các unit đó để lấy các unit bị ảnh hưởng và loại unit ko bị
-1 group chung cho tất cả và lấy toàn map kiểm tra unit nào có dính buff của aura đó để add unit affect và remove unit ko bị
Chỉ có sự khác biệt ở chỗ:
2+ unit có aura đó đứng gần nhau và có các unit bị ảnh hưởng bởi aura cũng đứng gần đó thì cách 1 chậm hơn cách 2 vì phải loop kiểm tra 2+
Còn ko thì cách 1 nhanh hơn
icon của spell book ko hiện? :|. đây là những cái mình cần:
1) 1 skill passive (ko nhấn đc)
- Tạo skill giả base từ 1 skill nào vốn passive và disable tác dụng skill đó đi
2) khi 1 unit có skill passive đó thì add thêm những abi khác nhưng ko hiện icon abi đc add (nhưng vẫn hiện icon skill passive đó)
dùng hero learn skill event(nếu là unit thì event enter map để check) để kiểm tra nếu skill học là skill giả thì add spell book (có skill bên trong và spell book đã được disable)
nhưng mà:
1) spell book thì nhấn đc, còn nếu disable thì... làm gì có hình spell book @@
disable spell book thì ko có hình nên mới cần tạo skill giả để có hình và tooltip ;)
2) mình ko biết cách disable spell book @@
Player - Disable Spell Book for Player #

chỉ còn 1 cách duy nhất là làm như thằng If nhưng mình ko biết làm, là:
dùng icon ẩn nào đó thế chỗ cho các ô trống (giống rubick trong dota) thì làm như vậy các skill kia sẽ ko đc chen vào :D
Theo như mình biết Dota ko làm vậy đâu. Nó cũng dùng spell book disable thôi

[/COLOR]thôi bây giờ ko cần giúp cái add gì nữa, giúp 2 cái skill này dùm em đc rồi @@:
1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
1) Ko Mui thì đơn giản: event bạn đã tự nêu được chỉ cần tạo biến lưu là xong
2) Ko mui vẫn đơn giản vì unit là hero và dùng biến lưu + dùng code để thêm agi
Hero - Modify Agility of Hero: Add/Subtract <số kill>
 
Chỉnh sửa cuối:
Mình cần 1 hướng dẫn tất cả các lỗi gây lag cho map, ai có biết thì share với mình nha ( có thể giúp cả người khác trong 4rum nữa đấy )

Lần thứ 2 rồi ! có ai giúp cái ko nào ? anh Tom ơi - Leo ơi giúp với
 
Lần thứ 2 rồi ! có ai giúp cái ko nào ? anh Tom ơi - Leo ơi giúp với

sao ko có thằng này nhỉ? :-/
1. Lỗi Events trong trigger (Every 0 seconds of the game time) sẽ gây ra bug lag
2. Dùng trigger Unit - Creat 1 ... cũng sẽ gây ra lag khi unit đc tạo ra quá nhiều
3. Trigger làm sai gây ra lag cực độ và dễ bị fatal error
đúng ko nhỉ anh Tom???
 
sao ko có thằng này nhỉ? :-/
1. Lỗi Events trong trigger (Every 0 seconds of the game time) sẽ gây ra bug lag
2. Dùng trigger Unit - Creat 1 ... cũng sẽ gây ra lag khi unit đc tạo ra quá nhiều
3. Trigger làm sai gây ra lag cực độ và dễ bị fatal error
đúng ko nhỉ anh Tom???

có j nữa ko? mấy cái này mình xem đi xem lại kỹ rồi mà vẫn lag
 
Lần thứ 2 rồi ! có ai giúp cái ko nào ? anh Tom ơi - Leo ơi giúp với

có j nữa ko? mấy cái này mình xem đi xem lại kỹ rồi mà vẫn lag

trigger làm sai là chẳng hạn như Events 1 đg, Condition 1 lối, Action 1 nẻo. Nói tóm lại là đọc vào chả hiểu gì hết. VD như: Events: 1 unit chết. Condition: ability đó là Shadow. Action: reset cooldown skill Aminate Dead. Như thế thì map cũng ko lag, nhưng khi 1 unit chết thì nó phải check trigger nên giật nhẹ 1 phát cũng làm player khó chịu
 
sạc, thế cũng gọi là giúp hả :( sao em làm đủ mọi cách mà vẫn ko hết lag, ai cho em các lý do khác ko
 
^
ko giúp ng ta thì ng ta cũng đâu có giúp mình :-/:))
muốn hết lag phải ko? Rất đơn giản. Delete trigger đó đi là xong =))

---------- Post added at 13:59 ---------- Previous post was at 13:33 ----------

Chỉ em cách upgrade skill (gậy xanh trong dota)
 
có cách nào từ handleID đổi về unit/item/widget/... đc ko ?
hashtable @@
Ý là có hàm nào ngược với GetHandleId ko :D


Cho mình hỏi cái: giữa dùng hashtable và dùng 2 mảng để chạy vòng lặp kiểm tra từng cái handle trong mảng 1 ròi lấy index truy data mảng 2 thì cách nào chạy nhanh hơn?
Tùy xem số lượng là bao nhiêu. Nếu dữ liệu data khoảng 70 cái trở lên thì tớ nghĩ dùng hashtable lấy thẳng ra nhanh hơ
Thường thì mấy cái đó mình hay dùng làm skill, kiểu như 1 unit loại A có skill summon ra unit loại B và mình cần xác định UnitB tương ứng của các UnitA trên map để làm 1 skill "Khi A dùng skill này thì 500 AoE quanh B tương ứng sẽ bị abcxyz..."

Mình tính tạo 2 mảng: arrUnitA, arrUnitB và 1 cái maxArr, 1 integer maxIndex

Khi trigger UnitA nào đó dùng skil "500 AoE quanh B tương ứng sẽ bị abcxyz..." thì mình cho Loop chạy từ maxIndex về 0so sánh từng phần tử với GetTriggerUnit() ròi khi 2 cái mình kiểm tra bằng nhau thì lấy index tương ứng bên arrUnitB để gây abcxyz trong 500 AoE xung quanh đó
Với số lượng Unit có skill này ko nhiều ( chỉ tầm vài chục Hero :D) nên sau này mình dùng thế thì ổn hơn hashtable nhỉ ?
Ai có thể làm giúp mình 1 map với skill MUI kiểu vậy để tham khảo ko :D


À có set 1 mảng = 1 mảng khác đc ko nhỉ ?
function ABC takes nothing returns nothing
local integer array A
local integer array B
set A[0]= 1
set A[1]= 2
set B=A
endfucntion
//Vậy có đc nhỉ? B[0]==1 và [B1]==2 ko?

Mình vừa test 1 cái về remove unit, cho mình hỏi có cách nào biết 1 unit đã bị remove khỏi game hay chưa ko? Vì khi unit bị remove thì mấy giá trị này kia của biến Unit hình như vẫn giữ như cũ nên mình ko biết kiểm tra sao nữa :D
Còn SetUnitUserData với GetUnitUserData là sao nhỉ ? 2 hàm này sử dụng thế nào và công dụng ra sao vậy?
 
Chỉnh sửa cuối:
sạc, thế cũng gọi là giúp hả :( sao em làm đủ mọi cách mà vẫn ko hết lag, ai cho em các lý do khác ko

sửa đi sửa lại mà vẫn lag.... chỉ còn 1 cách thôi....
mình chỉ cho bạn, bạn hứa ko đc nói với ai nghe chưa! :8onion13:
[spoil]tạo lại map mới thử đê! :cuteonion23::2onion2:[/spoil]

như mình đã nói đấy thôi:
1. Doodad nhìu 1 chỗ lag
2. tạo một lượt nhìu unit lag
3. timer loop nhìu lần nhìu đơn vị lag
4. một vài action ko hợp lệ trong hàm lag
5. period time của skill buff ko đúng chỉ định lag
6. blah blah blah... lag...
:cuteonion15:

sửa ko hết thì cách đấy là nước cờ cuối cùng!
 
Chỉnh sửa cuối:
Mấy Pro chỉ em cái, em dở nhất mấy cái vụ Trigger và biến nên không làm một số spell hay được mong các bác giúp giùm em.:2cool_beated:
1: Biến
Hướng dẫn cách làm biến tạo Unit ngay tại bản thân( chơi chiêu ấy)
Hướng dẫn cách làm biến tạo Unit ở các Unit xung quanh một vùng.
2: Spell
Một spell cơ bản về sử dụng chiêu gây sát thương bằng chính lượng damage của mình
Một spell cơ bản về sử dụng chiêu gây sát thương bằng các chỉ số Agi, Str ...
Một spell cơ bản về sử dụng chiêu gây sát thương bằng chính lượng mana hoặc Hp của mình ấy.
(Lưu ý cơ bản thôi nha đùng quá phức tạp:4cool_oh:)

Mong các Pro chỉ dùm cho, cảm ơn nhiều :cuteonion57::cuteonion57:
 
sửa đi sửa lại mà vẫn lag.... chỉ còn 1 cách thôi....
mình chỉ cho bạn, bạn hứa ko đc nói với ai nghe chưa! :8onion13:
[spoil]tạo lại map mới thử đê! :cuteonion23::2onion2:[/spoil]

như mình đã nói đấy thôi:
1. Doodad nhìu 1 chỗ lag
2. tạo một lượt nhìu unit lag
3. timer loop nhìu lần nhìu đơn vị lag
4. một vài action ko hợp lệ trong hàm lag
5. period time của skill buff ko đúng chỉ định lag
6. blah blah blah... lag...
:cuteonion15:

sửa ko hết thì cách đấy là nước cờ cuối cùng!

nói như thế ng ta cũng... "lag" (lắc) =))
quote lại lần nữa: cần hướng dẫn hoặc cho sẵn demo skill 2 nvm \m/
 
nói như thế ng ta cũng... "lag" (lắc) =))
quote lại lần nữa: cần hướng dẫn hoặc cho sẵn demo skill 2 nvm \m/

tôi nhắc lại lần nữa, không trả lời thì đừng post lung tung

và hãy quote lại câu hỏi 24h một lần
 
^
cho em hỏi cách làm -repick thế nào các anh nhỉ? :-/
 
@Ice Dragon
Ý là có hàm nào ngược với GetHandleId ko :D
hồi bản 1.23 thì có giờ thì ko ....

Khi trigger UnitA nào đó dùng skil "500 AoE quanh B tương ứng sẽ bị abcxyz..."
Nếu 1 unit A chỉ summon ra 1 unit B thì có thể dùng
- Gắn: SetUnitRallyUnit(unitA, unitB)
- Lấy: GetUnitRallyUnit(unitA)=unitB
Nếu 1 unit A summon ra nhiều unit B thì nên
- học thêm 1 chút vjass và dùng các system dùng để đánh index cho unit
- tạo array group grpB và set/get bằng cách grpB[GetUnitIndex(unitA)] add/remove unitB
Ko thì cách của cậu cũng được hashtable cũng ko sao. Còn để test độ lag thì cho dùng spell liên tục và bật Frame per Second = /fps để kiểm tra độ lag của map

À có set 1 mảng = 1 mảng khác đc ko nhỉ ?
Ko

Mình vừa test 1 cái về remove unit, cho mình hỏi có cách nào biết 1 unit đã bị remove khỏi game hay chưa ko? Vì khi unit bị remove thì mấy giá trị này kia của biến Unit hình như vẫn giữ như cũ nên mình ko biết kiểm tra sao nữa :D
Dùng lệnh RemoveUnit là đảm bảo unit đã bị xóa sổ. Còn kiểm tra bằng cách DisplayText: GetUnitName(removeUnit) trước và sau khi remove.
Nếu unit đó tồn tại trong map thì sẽ ra unit name = tên cụ thể nếu ko tồn tại trong map thì sẽ ra (null)

Còn SetUnitUserData với GetUnitUserData là sao nhỉ ? 2 hàm này sử dụng thế nào và công dụng ra sao vậy?
Tác dụng là gắn vào 1 unit 1 giá trị integer và Get là lấy ra giá trị đã gắn. Nếu ko dùng hàm set thì mặc định khi get là 0.
Đây chính là hàm mấu chốt cho các system để "đánh số báo danh" cho 1 unit
 
Chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Back
Top