Topic tiếp nhận và giải đáp các câu hỏi của Newbies

À các bro cho mình hỏi phát , cái action " clear all units from unit group" có phải chống leak memory của "unit group" hay không ??? Cảm ơn nhiều !
 
À các bro cho mình hỏi phát , cái action " clear all units from unit group" có phải chống leak memory của "unit group" hay không ??? Cảm ơn nhiều !

Sau lệnh này thì group vẫn là group với 0 units
Nếu ko dùng nữa bạn vẫn phải Destroy và set Group = null
Theo mình biết là vậy.


À mọi người cho hỏi có bất lợi gì trong việc tạo 1 số array tạm để truyền dữ liệu vào mấy cái hàm trong ForGroup/Timer hoặc Filter của GroupEnumUnits hay đại loại vậy ko?
Mã:
[COLOR="#0000FF"][B]globals[/B][/COLOR]
integer array tmpInt
group enumGroup=CreateGroup()
[COLOR="#0000FF"][B]endglobals[/B][/COLOR]
[COLOR="#0000FF"]
[B]function[/B][/COLOR] DoSomething[COLOR="#A52A2A"] [B]takes[/B][/COLOR] nothing [COLOR="#A52A2A"][B]returns[/B][/COLOR] boolean
 local unit u=GetFilterUnit()
 call CreateItem(tmpInt[0],GetUnitX(u),GetUnitY(u))
 set u=null
return false
[COLOR="#0000FF"][B]endfucntion[/B][/COLOR]

[COLOR="#0000FF"][B]function [/B][/COLOR]MotHamNaoDoSeGoiHamNay[COLOR="#A52A2A"] [B]takes[/B][/COLOR] integer itemID[COLOR="#A52A2A"][B] returns[/B][/COLOR] nothing
 set tmpInt[0]=itemID
 call GroupEnumUnitsInRect(enumGroup,bj_mapInitialPlayableArea,Filter(function DoSomething))
[COLOR="#0000FF"][B]endfunction[/B][/COLOR]
Kiểu dùng tmpInt vậy đó, rồi ví dụ khi có hàm khác cần 2 tham số dạng integer để hoạt động mình lại set tạm tmpInt[0]= đố số 1, tmpInt[1]= đối số 2 ròi mới gọi hàm.

Và nếu kiểu làm đó có nhiều bất lợi thì có kiểu nào khác hiệu quả hơn ko ?
 
Chỉnh sửa cuối:
Truyền cách của bạn thì chính là kiểu truyền thống trong GUI đó mà. Ko sao cả ngoại trừ việc khi dùng jass thì nên hạn chế số lượng max index trong biến mảng để hạn chế tối đa việc ngốn Ram.
Ví dụ nếu max bạn chỉ truyền 2 integer là max thì nên sửa là
integer array tmpInt[2]

Đối với group thì ko nhất thiết phải truyền tham số kiểu của bạn. Mà có thể dùng cách
Mã:
local unit enumU 
local group g= GroupEnumUnits //để lấy ra unit theo yêu cầu mà thôi
loop
     set enumU=FirstOfGroup(g)
     exitwhen enumU==null
// the codes
     call GroupRemoveUnit(g, enumU)
endloop

TimerStart thì đương nhiên ko thể dùng cách của group để truyền dữ liệu được rồi
Chỉ có thể dùng cách TimerUtils của Vex hoặc T32 của jesus
 
Chỉnh sửa cuối:
Chỉ có thể dùng cách TimerUtils của Vex hoặc T32 của jesus
Tôi thích KeyTimer hơn :)
Mà ông ơi mãi chưa tìm ra bug gây disconnect :((
 
1/ Vậy chắc mình cho giới hạn max là 5 là vừa, vì chắc ít có hàm nào xài hơn 5 tham số integer
2/ Ko thể tin đc h mình mới biết tồn tại hàm FirstOfGroup :|
3/ Tình hình là ko có vJASS nên ko xài TimerUtils, T32 hoặc KeyTimer :-s
 
nếu đã dùng jass new gen thì là có vjass rồi nhưng mà là bản cũ cần cập nhật. vjass chính là chức năng chính của jasshelper đó mà.
Bản mới nhất là jasshelper 0.A.2.B ở đây

À các bro cho mình hỏi phát , cái action " clear all units from unit group" có phải chống leak memory của "unit group" hay không ??? Cảm ơn nhiều !

Ko bạn à. Đó chỉ là xóa hết các unit trong group đó mà thôi.
Muốn xóa leak với GUI thì bạn cần đặt thêm câu lệnh như thế này thôi:

TOM: việc "clear" đó giống như bạn xé hết các trang trong một quyển sách ấy, hết thì nó vẫn còn bìa đó, để cái bìa lại thì... =))
Mã:
Actions
    Custom script:   set bj_wantDestroyGroup=true
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
        Loop - Actions
            Do something
hoặc
Mã:
Unit Group Good
    Events
    Conditions
    Actions
        Set Temp_Group = (Units in (Playable map area))
        Unit Group - Pick every unit in Temp_Group and do (Actions)
            Loop - Actions
                Unit - Kill (Picked unit)
        Custom script:   call DestroyGroup (udg_Temp_Group)
Bạn có thể tham khảo thêm về leak và cách remove ở đây
 
Last edited by a moderator:
cho mình hỏi làm sao để làm mấy cái skill tích trữ? (Giống như skill 3 NVm khi kill 1 unit thì dc tăng thêm 2 Dam)
 
topic có vẻ đắt khách nhỉ :D ,không bik mìk có gọi là newbie không nhỉ :-?

---------- Post added at 13:20 ---------- Previous post was at 13:14 ----------

cho mình hỏi làm sao để làm mấy cái skill tích trữ? (Giống như skill 3 NVm khi kill 1 unit thì dc tăng thêm 2 Dam)
Trigger đây bạn:
Mã:
Untitled Trigger 001
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Killing unit)) Equal to (tên hero của bạn)
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is A Hero) Equal to True
            Then - Actions
                Hero - Modify Strength of (Killing unit): Add 3
            Else - Actions
                Hero - Modify Strength of (Killing unit): Add 3
                Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                Hero - Modify Strength of (Killing unit): Subtract 10[COLOR="Silver"]

[SIZE=1]---------- Post added at 13:22 ---------- Previous post was at 13:20 ----------[/SIZE]

[/COLOR]Fix trigger trên
[code]Spell Nevermore
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Killing unit)) Equal to (Hero của bạn)
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is A Hero) Equal to True
            Then - Actions
                Hero - Modify Strength of (Killing unit): Add 3
            Else - Actions
                Hero - Modify Strength of (Killing unit): Add 3
                Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                Hero - Modify Strength of (Killing unit): Subtract 10[\code][COLOR="Silver"]

[SIZE=1]---------- Post added at 13:23 ---------- Previous post was at 13:22 ----------[/SIZE]

[/COLOR][quote="leviettuan123123, post: 20728821"]topic có vẻ đắt khách nhỉ :D ,không bik mìk có gọi là newbie không nhỉ :-?[COLOR="Silver"]

[SIZE=1]---------- Post added at 13:20 ---------- Previous post was at 13:14 ----------[/SIZE]

[/COLOR]
Trigger đây bạn:
[code]Untitled Trigger 001
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Killing unit)) Equal to (tên hero của bạn)
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is A Hero) Equal to True
            Then - Actions
                Hero - Modify Strength of (Killing unit): Add 3
            Else - Actions
                Hero - Modify Strength of (Killing unit): Add 3
                Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                Hero - Modify Strength of (Killing unit): Subtract 10[COLOR="Silver"]

[SIZE=1]---------- Post added at 13:22 ---------- Previous post was at 13:20 ----------[/SIZE]

[/COLOR]Fix trigger trên
[code]Spell Nevermore
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Killing unit)) Equal to (Hero của bạn)
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is A Hero) Equal to True
            Then - Actions
                Hero - Modify Strength of (Killing unit): Add 3
            Else - Actions
                Hero - Modify Strength of (Killing unit): Add 3
                Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
                Hero - Modify Strength of (Killing unit): Subtract 10[\code][/QUOTE]

bị sida @@ xin thông cảm
[code]Spell Nevermore
Events
Unit - A unit Dies
Conditions
(Unit-type of (Killing unit)) Equal to (Hero của bạn)
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Triggering unit) is A Hero) Equal to True
Then - Actions
Hero - Modify Strength of (Killing unit): Add 3
Else - Actions
Hero - Modify Strength of (Killing unit): Add 3
Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
Hero - Modify Strength of (Killing unit): Subtract 10
 
Mình ho hỉu cái dòng cuối cùng này
Mã:
Hero - Modify Strength of (Killing unit): Add 3
Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
Hero - Modify Strength of (Killing unit): Subtract 10
 
Mình ho hỉu cái dòng cuối cùng này
Mã:
Hero - Modify Strength of (Killing unit): Add 3
Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds
Hero - Modify Strength of (Killing unit): Subtract 10
sorry mình nhấn nhầm Hero - Modify Strength of (Killing unit): Subtract 3 chứ không fải Hero - Modify Strength of (Killing unit): Subtract 10 đâu nha
mình giải thích nè , Hero - Modify Strength of (Killing unit): Add 3 có nghĩa là Strength của người giết sẽ được cộng thêm vào 3 điểm
Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds có nghĩa là sẽ đợi sau (10 x với cấp độ skill của con nevermore) thời gian , rồi Hero - Modify Strength of (Killing unit): Subtract 3 strength của người giết sẽ bị trừ đi 3 điểm sau thời gian đó
 
thế thì mình hiểu rồi, tks

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

nhưng mà làm sao để giảm nó xuống???
 
Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds có nghĩa là sẽ đợi sau (10 x với cấp độ skill của con nevermore) thời gian , rồi Hero - Modify Strength of (Killing unit): Subtract 3 strength của người giết sẽ bị trừ đi 3 điểm sau thời gian đó

Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds bạn tạo dòng này để chờ sau (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))) thời gian rồi sẽ sử dụng dòng Hero - Modify Strength of (Killing unit): Subtract 3để giảm strength xuống . Xong :)
 
Wait (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))))) seconds bạn tạo dòng này để chờ sau (10.00 x (Real((Level of (Skill của bạn) for (Killing unit))) thời gian rồi sẽ sử dụng dòng Hero - Modify Strength of (Killing unit): Subtract 3để giảm strength xuống . Xong :)

Skill Necromastery của Nevermore trong DotA không phải là trigger với action là cộng thêm Stats Points mà là một trigger = JASS với câu lệnh modify damage "thêm vào" . Theo như cách làm của leviettuan123123 thì skill này gần giống với skill 3 của Cóc trong DotA (nhưng của Cóc khác ở chỗ là nó sẽ trừ Primary Attribute của attaked) và đặc biệt điều này chỉ cộng thêm Strenght cho hero và nó cũng chỉ có damage khi và chỉ khi hero đó có Primary AttributeStrenght :D
 
E có ý tưởng về 1 map ntn :
- Map gồm 2 phe , và 1 con trùm cuối khá mạnh , phe nào giết được con trùm cuối đó thì thắng ! (2 phe có thể kill lẫn nhau)
- Hệ thống quái xuất hiện như DDay .
- Có thể ép đồ như map tổng hợp .
- Boss phụ để kiếm thêm tiền (5' ra 1 con )
- Cứ 15' thì sẽ có 1 món đồ tăng damge thêm +xxxxx xuất hiện tại 1 vị trí nhất định và được bao quanh bởi 4 iron gate ...2 phe sẽ phải phá cửa để ăn item và ra tỉa máu boss ...
ý tưởng tạm thời như vậy , map tạo cho mấy đứa lớp chơi nên cũng lủng củng ...
Em nhờ mấy bác tư vấn giúp e các bước thực hiện ...
 
E có ý tưởng về 1 map ntn :
- Map gồm 2 phe , và 1 con trùm cuối khá mạnh , phe nào giết được con trùm cuối đó thì thắng ! (2 phe có thể kill lẫn nhau)
- Hệ thống quái xuất hiện như DDay .
- Có thể ép đồ như map tổng hợp .
- Boss phụ để kiếm thêm tiền (5' ra 1 con )
- Cứ 15' thì sẽ có 1 món đồ tăng damge thêm +xxxxx xuất hiện tại 1 vị trí nhất định và được bao quanh bởi 4 iron gate ...2 phe sẽ phải phá cửa để ăn item và ra tỉa máu boss ...
ý tưởng tạm thời như vậy , map tạo cho mấy đứa lớp chơi nên cũng lủng củng ...
Em nhờ mấy bác tư vấn giúp e các bước thực hiện ...

Theo ý kiến riêng thì đừng nên làm cho nó điên cuồng cái kiểu nhảy dmg mấy triệu như trong cái MTH nhảm kia =.=! Combat nhạt nhẽo vãi ra ý =.=!
 
tại mìh còn gà , mà damge k có to đùg nkư trong MTH đâu , làm cho mấy đứa trong lớp chơi vs nkau cho vuj ...mà mới tìm tòi đc 3-4 ngày nên còn lơ tơ mơ ...:|
 
Đã có kinh nghiệm làm chưa? Nếu mà mới chỉ động vào WE đc 3 4 ngày thì để ra đc cái map hoàn chỉnh như nói trên là cả 1 quãng thời gian khá dài đấy :|
 
Dài cũng đc, nhưng phải vừa học vừa làm ...thực hành đi đôi vs lý thuyết chắc mau hiểu hơn ...
 
Skill Necromastery của Nevermore trong DotA không phải là trigger với action là cộng thêm Stats Points mà là một trigger = JASS với câu lệnh modify damage "thêm vào" . Theo như cách làm của leviettuan123123 thì skill này gần giống với skill 3 của Cóc trong DotA (nhưng của Cóc khác ở chỗ là nó sẽ trừ Primary Attribute của attaked) và đặc biệt điều này chỉ cộng thêm Strenght cho hero và nó cũng chỉ có damage khi và chỉ khi hero đó có Primary AttributeStrenght :D

Thanks bạn đã góp ý , nhưng còn về cái "chỉ khi hero đó có Primary AttributeStrenght" này thì tùy chỉnh theo ý muốn không bắt buộc Strenght ,chỉnh thành Intelligence hoặc Agility tùy theo hero cũng được bạn àk

---------- Post added at 15:27 ---------- Previous post was at 15:23 ----------

Dài cũng đc, nhưng phải vừa học vừa làm ...thực hành đi đôi vs lý thuyết chắc mau hiểu hơn ...

vậy chắc làm xong cái map chắc đến tết quá :D, thì cứ làm , có gì kó lên đây hỏi ,mọi người sẽ giải đáp mọi khó khăn của bạn để map mau hoàn thiện hơn :)
 
Cảm ơn các bạn nhiều lắm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Back
Top