Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

Link đây,search google một cái là ra ngay,bạn down về giải nén,copy tất cả các file bên trong chép đè vào thư mục Warcraft III của bạn.
thank bạn nhưng mình hỏi tốc độ bay lên bay xuống để làm custom spell ý
Tiện thể hỏi luôn cái Model Editor của mình bị thế này khi xem model ,có ai biết chỉnh lại bình thường koView attachment 169363
Có vài vấn đề ở đây:Ai da... sau 2 ngày học vjass và cho ra cái này...
demo: http://www.mediafire.com/?exc2e4x0rbh4959
Nếu cậu làm custom theo như cách tớ đã nói thì tốc độ phụ thuộc thời gian bay (số lần loop) và độ cao maxthank bạn nhưng mình hỏi tốc độ bay lên bay xuống để làm custom spell ý
thanks nhiềuĐấy là cậu stun unit trước rồi cho unit đấy bay = cách thay đổi độ cao unit đó như map demo impale ko invu nàyai biết cách skill chọc đất impale khi đang air time thì ko bị invul ko
Thực ra là ko có cách nào. Nhưng nếu làm thế này thì có hiệu ứng tương tự!Cho mình hỏi có cách nào move vị trí item trong inventory mà ko dùng tới lệnh UnitDropItemSlot không ? Vì khi dùng lệnh này unit thường bị đứng khựng lạirất phiền
function ChangeSlot_Actions takes nothing returns nothing
local item it=UnitItemInSlot(gg_unit_Hpal_0000, 0)
local integer id=GetItemTypeId(it)
call RemoveItem(it)
call UnitAddItemToSlotById(gg_unit_Hpal_0000, id, 5)
endfunction
function InitTrig_ChangeSlot takes nothing returns nothing
set gg_trg_ChangeSlot = CreateTrigger( )
call TriggerRegisterPlayerEventEndCinematic( gg_trg_ChangeSlot , Player(0) )
call TriggerAddAction( gg_trg_ChangeSlot , function ChangeSlot_Actions )
endfunction
System của người ta tớ đã cho cậu link rồi!.chú vuongkkk có thể cho xin cái nick yahoo để có gì tui hỏi vài thứ được không??
có vài cái chú nói bên trên cũng chưa hiểu cách fix làm sao nên để hỏi riêng lại thì đỡ spam 4rum hơn
mới học nên sai sót nhiều cũng thường tình nên cần có người như chú chỉ sai và chỉ cách fixthanks nhiều
Cho mình hỏi có cách nào move vị trí item trong inventory mà ko dùng tới lệnh UnitDropItemSlot không ? Vì khi dùng lệnh này unit thường bị đứng khựng lạirất phiền
function UnitAddItemToSlot takes unit u, item it, integer [COLOR="#0000FF"]slot[/COLOR] returns boolean
local integer i = 0
local item array it2
local integer it2c = 0
local boolean ok
loop
exitwhen i > slot - 1
if UnitItemInSlot(u,i) == null then
set it2c = it2c + 1
set it2[it2c] = [COLOR="#0000FF"]SlotFiller[/COLOR][it2c-1]
call UnitAddItem(u,it2[it2c])
endif
set i = i + 1
endloop
call SetItemVisible(it,true)
set ok = UnitAddItem(u,it)
set i = 1
loop
exitwhen i > it2c
call UnitRemoveItem(u,it2[i])
call SetItemPosition(it2[i], [COLOR="#0000FF"]ItemHideX[/COLOR], [COLOR="#0000FF"]ItemHideY[/COLOR] )
set it2[i] = null
set i = i + 1
endloop
return ok
endfunction
ví dụ item muốn di chuyển là A:
drop A
lặp từ slot 1 đến slot cần di chuyển
nếu slot này trống, đưa "dummy item" cho hero, nếu không thì thôi
đưa item A cho hero
drop các "dummy item"
Mã:function UnitAddItemToSlot takes unit u, item it, integer [COLOR="#0000FF"]slot[/COLOR] returns boolean local integer i = 0 local item array it2 local integer it2c = 0 local boolean ok loop exitwhen i > slot - 1 if UnitItemInSlot(u,i) == null then set it2c = it2c + 1 set it2[it2c] = [COLOR="#0000FF"]SlotFiller[/COLOR][it2c-1] call UnitAddItem(u,it2[it2c]) endif set i = i + 1 endloop call SetItemVisible(it,true) set ok = UnitAddItem(u,it) set i = 1 loop exitwhen i > it2c call UnitRemoveItem(u,it2[i]) call SetItemPosition(it2[i], [COLOR="#0000FF"]ItemHideX[/COLOR], [COLOR="#0000FF"]ItemHideY[/COLOR] ) set it2[i] = null set i = i + 1 endloop return ok endfunction
ở đây:
slot là số slot cần di chuyển đến, từ 0 -> 5
SlotFiller là item array chứa các "dummy item" (tạo lúc mới vào game)
ItemHideX và ItemHideY là vị trí để dấu item
rất sáng tạo,em ko tài nào nghĩ đc như vậy

Cám ơn anh,em đã làm được rồi,cách chèn dummyitem vào các slot trống để move item tới slot mong muốn rất hayrất sáng tạo,em ko tài nào nghĩ đc như vậy
Nhưng em làm thử thì có vẻ nó ko move được item có sẵn trên người unit,vì thế em thêm dòng lệnh UnitRemoveItem() trước khi add nên đã làm được rồi![]()


Map 128~256,cho hết tất cả cây vào,dùng spell warstomp Fps có 58Cám ơn anh,em đã làm được rồi,cách chèn dummyitem vào các slot trống để move item tới slot mong muốn rất hayrất sáng tạo,em ko tài nào nghĩ đc như vậy
Nhưng em làm thử thì có vẻ nó ko move được item có sẵn trên người unit,vì thế em thêm dòng lệnh UnitRemoveItem() trước khi add nên đã làm được rồi
P/s: Không biết ở map mọi người ra sao,map của em có 4k7 doodads (trong đó 1 nửa là cây,một nửa là doodads) thôi mà khi dùng spell (warstomp,thunder clap.v.v.) fps giảm từ 64 xuống còn có 55 fps (em dùng fraps để đo)
Trước đó thì map em tầm 10k doodads thì giảm xuống tới 43 fps,em đã xóa hết ko dùng các model có animation,ko đặt sát nhau,ko dùng model đổi màu mà cũng chỉ được tới 55 fps (đã test thử khi xóa hết doodads). Map em size 128x128
Trong khi đó ở map Dota thì test các spell tương tự cũng chỉ chênh lệnh 62~64 fps
Liệu có phải do phần mềm nén map chưa tốt hay do một nguyên nhân nào đó ?
Ai có kinh nghiệm vụ này thì chia sẻ giúp![]()
(Dùng Frap để đo)
P/s: Không biết ở map mọi người ra sao,map của em có 4k7 doodads (trong đó 1 nửa là cây,một nửa là doodads) thôi mà khi dùng spell (warstomp,thunder clap.v.v.) fps giảm từ 64 xuống còn có 55 fps (em dùng fraps để đo)
Trước đó thì map em tầm 10k doodads thì giảm xuống tới 43 fps,em đã xóa hết ko dùng các model có animation,ko đặt sát nhau,ko dùng model đổi màu mà cũng chỉ được tới 55 fps (đã test thử khi xóa hết doodads). Map em size 128x128
Trong khi đó ở map Dota thì test các spell tương tự cũng chỉ chênh lệnh 62~64 fps
Liệu có phải do phần mềm nén map chưa tốt hay do một nguyên nhân nào đó ?
Ai có kinh nghiệm vụ này thì chia sẻ giúp![]()
mà chỉ dùng custom WarStomp và ThunderClap vì loại gốc có vụ rung terrain làm "ăn" FPS map lắm! 
Defending Blast Start
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Deafening Blast Main
Actions
Set DBCaster = (Casting unit)
Set DBTargetPoint = (Target point of ability being cast)
Set KnockBackDuration = 7.50
Set DBDamage = 12500.00
Set Position[1] = (Position of DBCaster)
Set Position[2] = (Position[1] offset by 70.00 towards (Angle from Position[1] to DBTargetPoint) degrees)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between Position[1] and DBTargetPoint) Less than or equal to 50.00
Then - Actions
Set DBAngle = (Facing of DBCaster)
Else - Actions
Set DBAngle = (Angle from Position[1] to DBTargetPoint)
Unit - Create 1 Defending Blast for (Owner of DBCaster) at Position[2] facing DBAngle degrees
Animation - Change (Last created unit)'s animation speed to 50.00% of its original speed
Unit - Add a 0.80 second Generic expiration timer to (Last created unit)
Set DBDummy = (Last created unit)
Custom script: call RemoveLocation( udg_Position[1] )
Custom script: call RemoveLocation( udg_Position[2] )
Trigger - Turn on Defending Blast Period <gen>
Trigger - Turn on Defending Blast Knock <gen>
Defending Blast Period
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(DBDummy is dead) Equal to True
Then - Actions
Trigger - Turn off (This trigger)
Else - Actions
Set Position[1] = (Position of DBDummy)
Set Position[2] = (Position[1] offset by 13.00 towards DBAngle degrees)
Unit - Move DBDummy instantly to Position[2]
Set EnemiesGroup = (Units within 225.00 of Position[1] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is in DamageDone) Equal to False)) and (((((Matching unit) is in DBDamageGroup) Equal to False) and (((Matching unit) is alive) Equal to Tru
Unit Group - Pick every unit in EnemiesGroup and do (Actions)
Loop - Actions
Unit Group - Remove (Picked unit) from EnemiesGroup
Unit Group - Add (Picked unit) to DBDamageGroup
Unit - Order (Picked unit) to Stop
Unit - Cause DBCaster to damage (Picked unit), dealing DBDamage damage of attack type Spells and damage type Unknown
Unit - Set the custom value of (Picked unit) to (Integer((KnockBackDuration / 0.03)))
Unit Group - Remove all units from EnemiesGroup
Custom script: call RemoveLocation( udg_Position[1] )
Custom script: call RemoveLocation( udg_Position[2] )
Defending Blast Knock
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
Unit Group - Pick every unit in DBDamageGroup and do (Actions)
Loop - Actions
Set KnockbackPosition[1] = (Position of (Picked unit))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Custom value of (Picked unit)) Less than or equal to 1
Then - Actions
Unit Group - Add (Picked unit) to DamageDone
Unit Group - Remove (Picked unit) from DBDamageGroup
Unit - Create 1 Dummy Unit for (Owner of DBCaster) at KnockbackPosition[1] facing Default building facing degrees
Unit - Add Defending Blast Attack Prevent to (Last created unit)
Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Drunken Haze (Picked unit)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Else - Actions
Unit - Set the custom value of (Picked unit) to ((Custom value of (Picked unit)) - 1)
Set KnockbackPosition[2] = (KnockbackPosition[1] offset by (7.00 / 5.00) towards DBAngle2 degrees)
Destructible - Pick every destructible within 150.00 of KnockbackPosition[2] and do (Actions)
Loop - Actions
Destructible - Kill (Picked destructible)
Unit - Move (Picked unit) instantly to KnockbackPosition[2]
Custom script: call RemoveLocation( udg_KnockbackPosition[1] )
Custom script: call RemoveLocation( udg_KnockbackPosition[2] )
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(DBDummy is alive) Equal to False
(Number of units in DBDamageGroup) Equal to 0
Then - Actions
Unit Group - Remove all units from DBDamageGroup
Unit Group - Remove all units from DamageDone
Unit Group - Remove all units from EnemiesGroup
Trigger - Turn off (This trigger)
Else - Actions
set Position[1] = position of picked unit
set Position[2] = position of DB_Dummy
set DBAngle3[custom value of picked unit] = Angle between Position[1] and Position[2]
Remove leak...
vì trong dota không dùng WarStomp,Thunder Clap cảmà chỉ dùng custom WarStomp và ThunderClap vì loại gốc có vụ rung terrain làm "ăn" FPS map lắm!
![]()