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

Status
Không mở trả lời sau này.
^
Thanks
Sao lại không được.. mình làm được đấy thôi.
hay là bạn thử đổi Buff mấy cái Gai thành 1 cái Buff khác mà khó nhận biết ý.. sẽ mất cái gai đi ngay thôi
Xem hình Attach nhé

View attachment 143507
hic , hay bạn cho mình cái map demo hay cái mấy cái pic bạn chỉnh trong OBJect đi , chỉnh hoài chả được nản quá :(

Anh Tom cho em hỏi mấy lỗi này là gì và sửa thế nào , em thử copy 1 spell jass ở mấy map demo của anh , đã sửa các id của spell và dummy , xong save thì nó báo lỗi :(
error.jpg
 
^
Thanks

hic , hay bạn cho mình cái map demo hay cái mấy cái pic bạn chỉnh trong OBJect đi , chỉnh hoài chả được nản quá :(

Anh Tom cho em hỏi mấy lỗi này là gì và sửa thế nào , em thử copy 1 spell jass ở mấy map demo của anh , đã sửa các id của spell và dummy , xong save thì nó báo lỗi :(
View attachment 143510
Cái này mình chỉ việc thay đổi cái Target trong Buff thành cái khác thôi... Xóa hết đi là được

View attachment 143517

TOM: update JassHelper đi, ngoài ra: Jass Helper / Disable vJass Syntax <-- cái này có đánh dấu ko? bỏ!
 
Last edited by a moderator:
Cho mình hỏi một chút về leak..

1. Variable Type Player có leak không . Với PlayerGroup thì mình biết xóa leak rồi (call RemoveForce ) nhưng còn Player thì nếu có leak thì xóa làm sao.
2. Start Location của 1 player nào đó có bị leak không?..
Vì mình sử dụng check leak check thì cái này nó không bị leak.. nhưng khó hiểu là đây là kiểu Location tại sao lại không bị leak được.. Với lại khi check bằng LeakCheck 3.1 thì cái Biến có Type Player nó lại báo là Type Location.. vì thế nào mình không dám tin vào cái này hoàn toàn.. nên ai có kinh nghiệm cho mình biết với.
3. không biểu bj_wantDestroyGroup = true/false thì có tác dụng như thế nào trong xóa leak???
 
>nhưng còn Player thì nếu có leak thì xóa làm sao.

leak làm sao được, từ đầu đến cuối thì chỉ có từng đó player, thêm vào ở đâu, ko dùng cái nào mà leak

>Start Location của 1 player nào đó có bị leak không?..

cứ lấy "location" mà ko xóa là leak

>không biểu bj_wantDestroyGroup = true/false thì có tác dụng như thế nào trong xóa leak???

ở cái lệnh:

Mã:
Unit Group - Pick every unit in [B][COLOR="#FF0000"](Units in (Playable map area))[/COLOR][/B] and do (Actions)
    Loop - Actions

thì sau khi thực hiện xong các Actions trong Loop, nếu bj_wantDestroyGroup mà là TRUE thì cái group đỏ đậm kia sẽ bị xóa
bạn mà hỏi: vì sao lại thế? thì câu trả lời là: lệnh đó chạy như vậy

vậy bình thường:
Mã:
Set TempGroup = (Units in (Playable map area))
Unit Group - Pick every unit in [B]TempGroup[/B] and do (Actions)
    Loop - Actions

Custom Script: call DestroyGroup( udg_TempGroup )

tuy nhiên có thể:

Mã:
Custom Script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions
tác dụng như nhau
 
Chỉnh sửa cuối:
Ý của em là khi dùng cái này. Sau khi dùng biến để lọc Player ra thì có cần phải set udg_Player = null không ?
Set Player = (Random player from (All enemies of (Player((Integer A)))))
 
không!

tuy nhiên: Set Player = (Random player from (All enemies of (Player((Integer A)))))

leak player group đó
 
không!

tuy nhiên: Set Player = (Random player from (All enemies of (Player((Integer A)))))

leak player group đó

Ok vậy em sẽ chỉnh lại.. do cũng không hay dùng PlayerGroup nên không để ý.. Tks anh lần nữa

---------- Post added at 12:25 ---------- Previous post was at 11:32 ----------

Mã:
Set TempGroup = (Units in (Playable map area))
Unit Group - Pick every unit in [B]TempGroup[/B] and do (Actions)
    Loop - Actions

Custom Script: call DestroyGroup( udg_TempGroup )

tuy nhiên có thể:

Mã:
Custom Script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions
tác dụng như nhau

Em muốn hỏi rõ thêm là.. nếu mình dùng như thế này

Mã:
Custom Script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions

thì khi dùng nhiều Unit Group

Mã:
Custom Script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions


Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions


Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions
Nếu dùng nhiều như vậy thì mình chỉ việc khai báo Custom Script: set bj_wantDestroyGroup = true ở đầu Trigger thôi hay phải khai báo trên mỗi Unit Group như thế này

Mã:
[I]Custom Script: set bj_wantDestroyGroup = true[/I]
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions
[I]Custom Script: set bj_wantDestroyGroup = true[/I]
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions
[I]Custom Script: set bj_wantDestroyGroup = true[/I]
Unit Group - Pick every unit in [B](Units in (Playable map area))[/B] and do (Actions)
    Loop - Actions
 
Nếu bạn hỏi phải dùng cái nào mới ko leak thì là cái cách dưới cùng, Custom Script: set bj_wantDestroyGroup = true trên mỗi lần Unit Group - Pick ...

TOM: sau mỗi lần Unit Group - Pick thì bj_wantDestroyGroup sẽ có giá trị là false
 
Last edited by a moderator:
mấy pro cho mình xin hướng dẫn Trigger để hero sống dậy
tk trước

---------- Post added at 13:52 ---------- Previous post was at 13:36 ----------

à còn nữa
làm sao để khi đánh chết hero là nó ra tiền
 
Cho em hỏi với : Hôm bữa em có copy một đoạn jass dán vào map nhưng em có chỉnh lại một số thứ thì nó ko chạy được. Em ko còn nhớ nguồn của đoạn code đó nữa. Mấy anh chỉ giúp giùm em

function ABC takes nothing returns nothing
Local location vitrilinh
set vitrilinh = GetRectCenter(gg_rct_VitriDAU)
call CreateNUnitsAtLoc( 1, 'hfoo', Player(2), vitri, bj_UNIT_FACING )
set vitrilinh = null
set vitrilinh = GetRectCenter(gg_rct_VitriCUOI)
call IssuePointOrderLoc( GetLastCreatedUnit(), "attack", vitrilinh )
set vitrilinh = null
endfunction
//
//
//
function XYZ takes nothing returns nothing
set gg_ABC = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_ABC, 2 )
// dong tren la event
// dong duoi la goi function dieu kien o tren
call TriggerAddAction( gg_ABC, function XYZ )
endfunction
 
Cho em hỏi với : Hôm bữa em có copy một đoạn jass dán vào map nhưng em có chỉnh lại một số thứ thì nó ko chạy được. Em ko còn nhớ nguồn của đoạn code đó nữa. Mấy anh chỉ giúp giùm em

function ABC takes nothing returns nothing
Local location vitrilinh
set vitrilinh = GetRectCenter(gg_rct_VitriDAU)
call CreateNUnitsAtLoc( 1, 'hfoo', Player(2), vitri, bj_UNIT_FACING )
set vitrilinh = null
set vitrilinh = GetRectCenter(gg_rct_VitriCUOI)
call IssuePointOrderLoc( GetLastCreatedUnit(), "attack", vitrilinh )
set vitrilinh = null
endfunction
//
//
//
function XYZ takes nothing returns nothing
set gg_ABC = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_ABC, 2 )
// dong tren la event
// dong duoi la goi function dieu kien o tren
call TriggerAddAction( gg_ABC, function XYZ )
endfunction
sai ở đây nè
call CreateNUnitsAtLoc( 1, 'hfoo', Player(2), vitri, bj_UNIT_FACING )
sửa lại
call CreateNUnitsAtLoc( 1, 'hfoo', Player(2), vitrilinh, bj_UNIT_FACING )
 
Mọi người cho mình hỏi làm sao để check được damage nào là dam đánh chay vs dam của spell .Chẳng là mình có làm 1 số passive dựa trên unit bị take dam , thành ra lúc cast spell nó cũng hoạt động :(
 
Xin hỏi cách làm Spell Critical Strike Aura..

Mình làm Spell Critical Strike Aura như sau.

Trigger thứ nhất.
Biến CriticalAuraLV type Integer Array
Mã:
Critical Aura
    Events
        Unit - A unit Learns a skill
    Conditions
        (Level of [Blade Master] Critical Aura  for (Learning Hero)) Greater than 0
    Actions
        Set CriticalAuraLV[(Player number of (Owner of (Learning Hero)))] = (Level of [Blade Master] Critical Aura  for (Triggering unit))

Trigger thứ 2.
G_CriticalAura type Unit Group
Mã:
Critical AuraBuff
    Events
        Time - Every 0.10 seconds of game time
    Conditions
    Actions
        Set G_CriticalAura = (Units in (Playable map area) matching ((((Matching unit) is alive) Equal to True) and ((((Owner of (Matching unit)) is in (All players)) Equal to True) and (((Matching unit) is A structure) Not equal to True))))
        Unit Group - Pick every unit in G_CriticalAura and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Picked unit) has buff [B]Critical Aura[/B] ) Equal to True
                    Then - Actions
                        Unit - Add [Blade Master] Critical Strike  to (Picked unit)
                        Player - Disable [Blade Master] Critical Strike  for (Owner of (Picked unit))
                        Unit - Set level of [Blade Master] Critical Strike (Hide Icon) for (Picked unit) to CriticalAuraLV[(Player number of (Owner of (Picked unit)))]
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                ((Picked unit) has buff [B]Critical Aura[/B] ) Equal to False
                            Then - Actions
                                Unit - Remove [Blade Master] Critical Strike  from (Picked unit)
                            Else - Actions
        Custom script:   call DestroyGroup( udg_G_CriticalAura )

Mô tả Spell: Mình tạo 3 Spell.
1 Spell giả dùng để cho Hero học.. Với Gốc là 1 chiu có thể thêm Buff vào cho đồng đội. (Spell này nằm trong Abi của Hero)
1 Spell Critical Stike Hidden thật với lv tương ứng Spell trên kia (Nằm trong Abi của Unit)
1 Spell dạng Spell Book .. Trong Spell Book này có Add Spell Critical Hidden
(Kiểu làm này học từ anh Tom)

khi một Unit có Buff Critical Aura thì Trigger 2 sẽ xét xem Unit này có nằm trong Unit Group không (thỏa điều kiện) sau đó nếu trong Unit group thì xét coi có Buff Critical Aura hay không sau đó quyết định thêm vào hoặc xóa đi .
Skill thêm vào là Spell Book .. dùng lệnh để Disable nó..
nếu mất buff thì xóa Skill Spell Book đi..

Chiu Spell book trong Trigger trên có tên là :Critical Strike
Chiu Mà Hero học có tên là Critical Aura
và Chiu mà được add sẵn vào Spell Book là Critical Strike Hidden (chiu thiệt)
Cách làm của mình như trên.

Tuy nhiên.. gặp 1 trục trặc lớn.
Đó là sau khi chơi 1 thời gian .. lúc đầu thì tụi Unit có buff nó đánh có thấy hiện màu đỏ, nghĩa là có tác dụng.
Nhưng một thời gian sau thì tự nhiên con nào vào trong Buff (Unit bị) là bị chết ngay lập tức luôn, Hero thì không bị.. chỉ có Unit bị..

Đây là điều khó hiểu .. nên hi vọng ai đó giúp giải quyết dùm vấn đề này với.
Tiện thể mọi người Check dùm xem làm như vậy đúng hay sai nha..

Bổ sung thêm 1 vài thứ vừa phát hiện được ..

Là sau khi dùng con Blade Master .. mình sử dụng Wind Walk .. trong khi windwalk thì buff không còn tác dụng lên các Nearby Friendly Unit nữa .. và lúc WW hết tác dụng thì đồng loại mấy con Unit Race Human ra đi hết.. khó hiểu.. mấy con của Race khác thì lại không bị.. và xe cũng không bị. còn lại Unit Race Human bị hết.
Cả chiu Mirror Image của Blade Master cũng làm cho chiu này nó thành ra như trên.. Ai giúp với. :(
 
Chỉnh sửa cuối:
> ((((Owner of (Matching unit)) is in (All players)) Equal to True)

cái này để làm gì?

> Player - Disable [Blade Master] Critical Strike for (Owner of (Picked unit))

disable spellbook thì làm ở Map Initialization và cho tất cả player luôn.

> Trigger thứ 2. G_CriticalAura type Unit Group

Mã:
If - Conditions
	((Picked unit) has buff Critical Aura ) Equal to True
Then - Actions

Else - Actions
	If (All Conditions are True) then do (Then Actions) else do (Else Actions)
		If - Conditions
			((Picked unit) has buff Critical Aura ) Equal to False
		Then - Actions
			Unit - Remove [Blade Master] Critical Strike  from (Picked unit)
		Else - Actions

khi chạy lệnh ELSE tức là ((Picked unit) has buff Critical Aura ) Equal to True không đúng và tương đương với ((Picked unit) has buff Critical Aura ) Equal to False
việc gì phải "If" nữa?

> trong khi windwalk thì buff không còn tác dụng lên các Nearby Friendly Unit nữa

unit tàng hình KHÔNG tỏa Aura.
có thể chỉnh trong Gameplay Constants

>Nhưng một thời gian sau thì tự nhiên con nào vào trong Buff (Unit bị) là bị chết ngay lập tức luôn, Hero thì không bị.. chỉ có Unit bị..

với trigger trên thì việc này là... không thể xảy ra, gửi map có cái này lên?
 
Mã:
Critical Aura
    Events
        Unit - A unit Learns a skill
    Conditions
        (Level of [Blade Master] Critical Aura  for (Learning Hero)) Greater than 0
    Actions
        Set CriticalAuraLV[(Player number of (Owner of (Learning Hero)))] = (Level of [Blade Master] Critical Aura  for (Learning Hero))
        Trigger - Turn on Critical AuraBuff <gen>
Mã:
Critical AuraBuff
    Events
        Time - Every 0.10 seconds of game time
    Conditions
    Actions
        Set G_CriticalAura = (Units in (Playable map area) matching (((Matching unit) is alive) Equal to True))
        Unit Group - Pick every unit in G_CriticalAura and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        ((Picked unit) has buff Critical Aura ) Equal to True
                    Then - Actions
                        Unit - Add [Blade Master] Critical Strike  to (Picked unit)
                        Unit - Set level of [Blade Master] Critical Strike (Hide Icon) for (Picked unit) to CriticalAuraLV[(Player number of (Owner of (Picked unit)))]
                    Else - Actions
                        Unit - Remove [Blade Master] Critical Strike  from (Picked unit)
        Custom script:   call DestroyGroup( udg_G_CriticalAura )

Đã chỉnh lại và hình như hết thấy bị chết Unit rồi..

Nghi ngờ do cái dòng này..
(((Matching unit) is A structure) Not equal to True))))

Nhưng mà sau khi ổn rồi thì lại không biết làm sao để nó không bị lag.

Khi học Spell này thì nó bị lag.. dù đã xóa leak rồi nhưng vẫn bị.. như vậy phải làm sao để khắc phục nó bây giờ.
 
Ai cho em hỏi lúc ghi giới thiệu skill em viết được có 6 dòng là max (xài Jassnewgen ) trong khi map Anh Rex em mỡ lên có nhiều skill lên tới 10 dòng ai chĩ em cách làm

---------- Post added at 22:17 ---------- Previous post was at 22:16 ----------

Có cách nào đễ chuyễn kẽ thù thành bạn không ai chĩ em
 
Ai cho em hỏi lúc ghi giới thiệu skill em viết được có 6 dòng là max (xài Jassnewgen ) trong khi map Anh Rex em mỡ lên có nhiều skill lên tới 10 dòng ai chĩ em cách làm

---------- Post added at 22:17 ---------- Previous post was at 22:16 ----------

Có cách nào đễ chuyễn kẽ thù thành bạn không ai chĩ em

Khi xuống dòng, bạn dùng |n, ví dụ: -tôi|n-đang|n-trả|n-lời|n-bạn.
Kết quả trong game sẽ thế này:
Mã:
-tôi
-đang
-trả
-lời
-bạn
 
Đã chỉnh lại và hình như hết thấy bị chết Unit rồi..

Nghi ngờ do cái dòng này..
(((Matching unit) is A structure) Not equal to True))))

Nhưng mà sau khi ổn rồi thì lại không biết làm sao để nó không bị lag.

Khi học Spell này thì nó bị lag.. dù đã xóa leak rồi nhưng vẫn bị.. như vậy phải làm sao để khắc phục nó bây giờ.

Hix. .. không xong rồi... sau khi chơi tiếp tục bị.. và phát hiện ra là không phải do Trigger sai mà là do xung khắc gì đó trong Upgrade gây ra..
Cứ Upgrade Weapon lên lv 2 là bắt đầu bị...
Anh TOM xem maps rồi hướng dẫn cách khắc phục giúp em với..
 
Chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Back
Top