Các pro jass cho hỏi xíu là làm sao biết được SKill,Unit..... mang mã gì mà gắn vào jass vậy các mã A000 hay A001 ý.
Bác Tom có rảnh thì hướng dẫn các Code cơ bản thường sử dụng dùm. thank nha . ___________Auto Merge________________ . cho em hỏi thêm cái nữa là sao lại dùng if (not mà ko chỉ if không
rảnh ư ? nope "code cơ bản thường sử dụng" <- ko hiểu Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A000' ) ) then return false endif return true endfunction Cái này tôi cũng chả hiểu Blizzard nghĩ gì mà làm thế cả Nhg If hay If not thì cũng ko nên dùng trong điều kiện này, thế này: Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A000' endfunction là gọn nhất, nếu phải thỏa mãn nhiều điều kiện một lúc thì dùng and giữa các điều kiện, dùng or khi chỉ cần thỏa mãn 1 trong nhiều điều kiện Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A000' and GetUnitState( GetTriggerUnit() , UNIT_STATE_LIFE ) >= 1000 endfunction Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A000' or GetSpellAbilityId() == 'A001' or GetSpellAbilityId() == 'A002' endfunction
call trong Jass tức là bạn gọi 1 function nào đó vd : Mã: call UnitAddAbility(u,'A02J') tức bạn call 1 function: Mã: native UnitAddAbility takes unit whichUnit, integer abilityId returns boolean đây là 1 function có sẵn trong Jass có nhiệm vụ add thêm ability cho bạn. locate thì làm gì có chỉ có local tức là tạo 1 varible chỉ có thể sử dụng trong function đó thường có: local integer a ~> tạo 1 var integer local real a ~> tạo 1 var real group unit lightning ...... location ~> địa điểm tương đương với point còn cái vụ if not là vì nó sử dụng trong CONDITION and : nếu hok phải thì cho là sai tức hok thực hiện nói chung theo mình thì Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A000' ) ) then return false endif return true endfunction sẽ tương đương với Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean if GetSpellAbilityId() != 'A000' then // ở đây != là khác return false endif return true endfunction hoặc Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean if GetSpellAbilityId() == 'A000' then return true endif return false endfunction nhưng Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A000' ) ) then return false endif if ( not ( GetUnitAbilityLevel(GetSpellAbilityUnit(),GetSpellAbilityId()) >3 then return false endif return true endfunction thì sẽ có nghĩa là condition and còn: Mã: function Trig_Untitled_Trigger_001_Conditions takes nothing returns boolean if GetSpellAbilityId() == 'A000' then return true endif if GetUnitAbilityLevel(GetSpellAbilityUnit(),GetSpellAbilityId()) >3 then return true endif return false endfunction sẽ có nghĩa là condtion or :whew: vừa post xong đã thấy anh Tom post roài ps : anh tom sai nhé if hok viết hoa chứ hok phải If
cái : loop set u = FirstOfGroup(g) exitwhen u==null if IsUnitEnemy(u, GetOwningPlayer(cast))==true then call GroupRemoveUnit(g,u) call AddSpecialEffectTargetUnitBJ( "origin", u , "Abilities\\Spells\\Orc\\Purge\\PurgeBuffTarget.md l" ) endif endloop là 1 loop vô tận vì nếu có 1 unit hok phải là enemy thì sẽ loop mãi mãi phải là loop set u = FirstOfGroup(g) exitwhen u==null // call GroupRemoveUnit(g,u) // thêm cái này vào if IsUnitEnemy(u, GetOwningPlayer(cast))==true then call AddSpecialEffectTargetUnitBJ( "origin", u , "Abilities\\Spells\\Orc\\Purge\\PurgeBuffTarget.md l" ) endif endloop set dumb = CreateNUnitsAtLoc( 1, 'e001', GetOwningPlayer(caster), p , bj_UNIT_FACING ) create NUnits là thành 1 group quên hok destroy group và remove point rồi kìa sao phải : local trigger t set t=CreateTrigger() mà hok viết lun : local trigger t = CreateTrigger() ps : @Tom : anh tôm ơi có Inukami chắp 17 rồi đấy :X nhưng 3 tháng sau mới có 18 cơ
Cho em hỏi cách câu lệnh trong jass thì dựa trên j... có bảng gì hướng dẫn rõ câu lệnh nào đc dùng trong trường hợp j hôk ?... hay chỉ tự suy diễn = English
Mã: set u = FirstOfGroup(g) call GroupRemoveUnit(g,u) exitwhen u==null khi u = FirstOfGroup(g) chưa biết u có là no unit hay ko, sao lại remove khỏi group g ? anh chỉ biết remove 1 unit ko ở trong group thì ko sao, nhg remove "null" tức là no unit khỏi group thì ko biết có sao ko, nhg dù sao cũng cẩn thận Mã: set u = FirstOfGroup(g) exitwhen u==null call GroupRemoveUnit(g,u) Ngoài ra kingkod quên ko destroy effect nữa ---- @CDCode, chưa biết lệnh jass thì cứ viết lệnh GUI ra rồi convert ra jass, ngoài ra có thể dùng tool này: http://www.hiveworkshop.com/forums/tools.php?id=ge7tzt để xem các lệnh P/S: mọi người post jass, xin hãy đặt vào code tag ( ) như thế sẽ dễ đọc hơn, vì các khoảng trống đc giữ nguyên
Hehe mình mới tập làm jass cho đúng ,chưa làm spell thực sự nên chưa quan tâm đến chuyện chống leak, cho mình hỏi là sao lại thêm //, cái // để làm gì thank
Mã: function remove takes unit cast, real wait returns nothing call TriggerSleepAction(wait) call RemoveUnit(cast) endfunction function start takes nothing returns nothing call remove(udg_caster, 1.00) endfunction Mã: function condition takes unit cast returns boolean return IsUnitDeadBJ(cast) endfunction function start takes nothing returns nothing call TriggerSleepAction(0.01) if condition(udg_caster)==true then call RemoveUnit(udg_caster) endif endfunction OK tiếp tục vấn đề đây là trích trong cái hướng dận của pác Tom cho hỏi ở Code call function đằng sau nó có biến vậy biến này có ý nghĩa gì, trong cái Hướng dận pác tom ko nói rõ (vì theo tui nghị nó sẽ giống Run triggle bên Gui nên ko biết biến đằng sau để làm gì)
cái biến đằng sau là các biến bạn lấy từ function này sang function khác, chả qua cái udg_caster là 1 var global ( tức toàn map) nên function nào cũng được nhưng sang local thì hok được ngay mình thành thật khuyên bạn cứ làm = GUI cho nhuần nhuyễn đi đã rồi convest sang Jass mà xem chứ hỏi nhìu cái đơn giản như thế này thì hok phải lúc nào cũng có người trả lời cho bạn được đâu::(
đối với Gui tui có thể làm bình thường rùi Pác ơi xem map Change Myth cua tui thì biết còn hỏi thì ko biết phải hỏi chứ (trong GUI đâu có mấy vụ này) và cobert rừ Gui sang Bizzard cứ làm lòng vòng nhứa cã đầu
bạn có để ý mấy cái function có sẵn như : call PauseUnit(unit,boolean) hok ? thì cái cast ~ với cái unit nài . Mà khởi đầu thì bạn cứ quan tâm Native function với BJ function đi đã đừng vội sang function tự tạo :wink: 1.00 chính là real wait
Nói như bà chị vậy lập diễn đàn war ra làm gì ? lập ra để cho ng ta ko bít thì mới hỏi, ko nắm cái cơ bản sao lên đc cái khó. Có gì mạo fạm thì tôi cũng nói vậy àh, có lòng, tâm huyết thì bà chị hướng dẫn chứ ko đừng nói "hỏi nhìu cái đơn giản như thế này thì koh fải lúc nào cũg có ng trả lời" cho bà chị nói riêng và nhưng ng khác nói chung, mỗi khi có ng hỏi thì 1 số pro hay nói :"mấy cái này tự tìm hĩu đi, còn ko thì đi học thêm tiếng anh đi ..." nói vậy mùh chi ? vậy thà đừng trả lời chứ cmt kiểu đó thì cmt chi ??? . ___________Auto Merge________________ . Có gì mạo fạm thì bà chị bỏ qua cho mình :hug:, thẳng tính có sao nói vậy ...
ai viết giúp mình 1 đoạn JASS làm hiện số damge trên đầu unit đi , thử vài cách mà lag wá , văng lun T_T
các dòng code trong jass có số thứ tự nhất định... nếu đổi nó thì có sao hôk ? - và box native có rất nhìu code... nếu code đó add vào trong jass thì nó có thể hiện rõ ra game khi chơi ko ? ( để biết đc code nó có tác dụng j thôi í mà ) - Và cho hỏi function là j . ___________Auto Merge________________ . Àh... Làm sao để tạo ra địa điểm screep ra giống như Green TD và biến đổi theo thời gian