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

Status
Không mở trả lời sau này.
@Flame: đặt no ra khỏi vòng IF
 
Cho mình hỏi tại sao khi tạo map bằng Jass thì máp của minh phải sủ dung patch 1.21 mới chơi đc map (máy nhà mình sử dụng patch 1.24e )và có cách nào khắc phuc không
 
@flame: ý mình là cho mấy cái custom script ra khỏi vòng if, như vậy thì sẽ xóa leak không thông qua điều kiện.
 
Cho mình hỏi tại sao khi tạo map bằng Jass thì máp của minh phải sủ dung patch 1.21 mới chơi đc map (máy nhà mình sử dụng patch 1.24e )và có cách nào khắc phuc không
hình như đâu phải 1.21 là 1.23> 1.24>,
đây là những lý do trong jass
[spoil]
--------------------------------------------------------------------------
Patch 1.24b
--------------------------------------------------------------------------

PC WORLD EDITOR CHANGES

- Increased max map file size from 4 MB to 8 MB.
- Added the ability to store hashtable handles in a hashtable.
- Added GetSpellTargetX and GetSpellTargetY natives.
- Added a new base handle type “Agent” of which many types now extend from.
- Added a SaveAgentHandle native which can be used for saving most handle types.
- Added a JASS optimization dealing with global variable change events.

FIXES

- Fixed a few false positives caused by the "return bug" fix.
- Fixed a crash related to hashtable reference counting.
- “Shadowing” global variables with local variables no longer is possible.
- Fixed a type conversion dealing with operators (i.e. adding a handle with an integer).

--------------------------------------------------------------------------
Patch 1.24
--------------------------------------------------------------------------

PC WORLD EDITOR CHANGES

- Added new JASS hash table functions to replace the lost functionality from
fixing unsafe type casting.
- Hash Table - Save Item Handle
- Hash Table - Save Unit Handle
- ...
- Hash Table - Load Item Handle
- Hash Table - Load Unit Handle
- ...
- Hash Table - Get Handle ID

FIXES

- Fixed an exploit related to unsafe type casting that allowed users to
execute arbitrary code in maps.
- Fixed the JASS unsafe type casting exploit ("return bug").
- Fixed several World Editor crashes.
[/spoil]

@flame: ý mình là cho mấy cái custom script ra khỏi vòng if, như vậy thì sẽ xóa leak không thông qua điều kiện.
kiểu đấy củng được nhân quan trọng máy cái lightning destroy dễ gây fatal :|
 
@flame: ý mình là cho mấy cái custom script ra khỏi vòng if, như vậy thì sẽ xóa leak không thông qua điều kiện.
Mình biết là cho ra ngoài vòng IF rồi, nếu cho ra thế này ( hình dưới)
Mã:
BX Trigger 2
    Events
        Time - Every 0.02 seconds of game time
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Distance between BX_Point[1] and BX_Target) Greater than or equal to (BX_Distance / 2.00)
            Then - Actions
                Set BX_Point[2] = (BX_Point[1] offset by BX_Distance towards BX_Angle degrees)
                Unit - Move BX_Caster instantly to BX_Point[2]
                Set BX_Point[1] = BX_Point[2]
                Set BX_Group = (Units within 200.00 of (Position of BX_Caster) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of BX_Caster)) Equal to True) and (((Matching unit
                Unit Group - Pick every unit in BX_Group and do (Actions)
                    Loop - Actions
                        Unit - Cause BX_Caster to damage (Picked unit), dealing BX_Dame damage of attack type Chaos and damage type Universal
                        Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit Group - Add (Picked unit) to BX_Group2
                        Custom script:   call DestroyGroup(udg_BX_Group)
            Else - Actions
                Trigger - Turn off BX Trigger 2 <gen>
                Unit - Turn collision for BX_Caster On
                Animation - Reset BX_Caster's animation
                Unit Group - Remove all units from BX_Group2
                Custom script:   call RemoveLocation(udg_BX_Target)
       [COLOR="#FF0000"] Custom script:   call RemoveLocation(udg_BX_Point[1])
        Custom script:   call RemoveLocation(udg_BX_Point[2])[/COLOR]
Sửa như thế này, thằng Cast tự động bay ra giữa map, còn nếu nhét vào Action hàm if thì thằng cast ko slide, nhét vào else thì bị leak :| Còn áp dụng bài Slide của bác Tom thì ko đc, cái đó Tick giảm thì dừng trigger, còn cái này dừng ngay chỗ target :|
 
Chỉnh sửa cuối:
cái đó thì tôi biết nhưng tôi không suy nghĩ ra cách nào để nó không như vậy . ông biết không biết thì chỉ tôi luôn đi.
cái vấn đề thứ 2 thì tôi có 3 món đồ mỗi món đồ có 2 ability tôi ghép 3 món đó lại thành 1 món và món đó có hết tất cả ability của 3 món kia.
vấn đề thứ 3 : thì ông có biết tại sao tôi tạo multiboard mà tên người chơi toàn là chữ màu trắng không có màu, tôi tìm hết rồi mà vẫn không thấy.
 
@Zhenghe: cảm ơn bạn :D mong bạn sẽ giúp đỡ mình sau này :D
 
Có thể mình sẽ sửa giúp bạn được. Xem thử 2 dòng đỏ nhé
Mã:
BX Trigger 2
    Events
        Time - Every 0.02 seconds of game time
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Distance between BX_Point[1] and BX_Target) Greater than or equal to (BX_Distance / 2.00)
            Then - Actions
                Set BX_Point[2] = (BX_Point[1] offset by BX_Distance towards BX_Angle degrees)
                Unit - Move BX_Caster instantly to BX_Point[2]
                Set BX_Point[1] = BX_Point[2]
                Set BX_Group = (Units within 200.00 of (Position of BX_Caster) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of BX_Caster)) Equal to True) and (((Matching unit
                Unit Group - Pick every unit in BX_Group and do (Actions)
                    Loop - Actions
                        Unit - Cause BX_Caster to damage (Picked unit), dealing BX_Dame damage of attack type Chaos and damage type Universal
                        Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit Group - Add (Picked unit) to BX_Group2
                        Custom script:   call DestroyGroup(udg_BX_Group)
                       [COLOR="#FF0000"] Custom script:   call RemoveLocation(udg_BX_Point[1])
                        Custom script:   call RemoveLocation(udg_BX_Point[2])[/COLOR]
            Else - Actions
                Trigger - Turn off BX Trigger 2 <gen>
                Unit - Turn collision for BX_Caster On
                Animation - Reset BX_Caster's animation
                Unit Group - Remove all units from BX_Group2
                Custom script:   call RemoveLocation(udg_BX_Target)


---------- Post added at 23:13 ---------- Previous post was at 23:09 ----------

Xin lỗi đưa 2 cái dòng đỏ ra khỏi unit group nhé ==! Viết vội quá nên nhầm. Đặt 2 dòng ý ngay dưới trigger Unit Group
 
Có thể mình sẽ sửa giúp bạn được. Xem thử 2 dòng đỏ nhé


---------- Post added at 23:13 ---------- Previous post was at 23:09 ----------

Xin lỗi đưa 2 cái dòng đỏ ra khỏi unit group nhé ==! Viết vội quá nên nhầm. Đặt 2 dòng ý ngay dưới trigger Unit Group
Theo như bạn, dưới Unit Group, nó bay ra giữa map và chạy mãi trigger ko tắt :|
Mã:
BX Trigger 2
    Events
        Time - Every 0.02 seconds of game time
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Distance between BX_Point[1] and BX_Target) Greater than or equal to (BX_Distance / 2.00)
            Then - Actions
                Set BX_Point[2] = (BX_Point[1] offset by BX_Distance towards BX_Angle degrees)
                Unit - Move BX_Caster instantly to BX_Point[2]
                Set BX_Point[1] = BX_Point[2]
                Set BX_Group = (Units within 200.00 of (Position of BX_Caster) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of BX_Caster)) Equal to True) and (((Matching unit
                Unit Group - Pick every unit in BX_Group and do (Actions)
                    Loop - Actions
                        Unit - Cause BX_Caster to damage (Picked unit), dealing BX_Dame damage of attack type Chaos and damage type Universal
                        Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                        Special Effect - Destroy (Last created special effect)
                        Unit Group - Add (Picked unit) to BX_Group2
                        Custom script:   call DestroyGroup(udg_BX_Group)
                [COLOR="#FF0000"]Custom script:   call RemoveLocation(udg_BX_Point[1])
                Custom script:   call RemoveLocation(udg_BX_Point[2])[/COLOR]
            Else - Actions
                Trigger - Turn off BX Trigger 2 <gen>
                Unit - Turn collision for BX_Caster On
                Animation - Reset BX_Caster's animation
                Unit Group - Remove all units from BX_Group2
                Custom script:   call RemoveLocation(udg_BX_Target)
 
cái đó thì tôi biết nhưng tôi không suy nghĩ ra cách nào để nó không như vậy . ông biết không biết thì chỉ tôi luôn đi.
cái vấn đề thứ 2 thì tôi có 3 món đồ mỗi món đồ có 2 ability tôi ghép 3 món đó lại thành 1 món và món đó có hết tất cả ability của 3 món kia.
Cho mấy cái ability của mấy món kia vào Spellbook rồi add cái spellbook đó cho cái item cần

Cho mình hỏi làm thế nào để thay cái chữ Loading ( trong khi load map ý ) bằng chữ khác , mò mãi ko thấy :|
 
mình cũng mò ra chữ Loading rồi. trong gameinterface nhưng sao đổi kiểu gì nó cũng không đổi cứ L O A D I N G miết à. có chữ waiting for orther player thì đổi được. nhưng không ra font chữ. ai giúp với :|
 
Cho mình hỏi cách làm skill lightning bolt của zeus với, chỉ rõ luôn, mình làm theo gợi ý mà hoài vẫn không được, hiệu ứng không xuất hiện, làm ví du. skill đó qua map rồi pót lên đây giùm mình được không?
 
Mình nghĩ bạn đọc 2 cái code của mình còn chưa hiểu ý chứ :| Cái spell ấy mình đang cố làm theo kiểu MUI đấy nên nó mới lằng nhằng thế chứ ==! Chứ ko MUI thì cái búa thứ 1 nó còn chả move nổi sau khi cái thứ 2 đc cast cùng lúc ý :| Vấn đề là nó gặp tí rắc rối ở cái biến nào đấy mà khi đẩy dần giá trị index đi thì cái biến của index cũ hình như ko được nhận nữa :|

Thì bạn cứ từ từ mà nghĩ nhé.
MUI mà vừa chạm vào unit là dừng à 8-}.
Ví dụ như trong tut này, không phải tự nhiên mà người ta dùng custom value đâu nhé.
 
Ai hướng dẫn giúp cách xài TimerUtil, ví dụ = 1 spell dạng damage over timer hoặc slide gì đấy. Trong GUI thì xài timer khá đơn giản còn Jass thì phải dính với struct nên phức tạp hơn. Hỏi thêm về cái vụ method, static method trong jass luôn, 2 cái này có công dụng gì?

Đây là tut của anh Tom về gắn data vào timer dùng CSData cũng là tiền thân của TimerUtils bây h. Bạn xem rồi tự hiểu nhé.
Nhân tiện nói luôn struct mới là đơn giản. Nó giống như là mảng nhưng là tập hợp nhiều mảng có cùng index và kiểu của mảng là bất kỳ kiểu nào => Dễ quản lý hơn nhiều ^,^

^^
@havikoro:Cho mình hỏi cách làm skill lightning bolt của zeus với, chỉ rõ luôn, mình làm theo gợi ý mà hoài vẫn không được, hiệu ứng không xuất hiện, làm ví du. skill đó qua map rồi pót lên đây giùm mình được không?

Đây là map melee có hero mô phỏng lại 1 vài skill đơn giản của dota và làm = GUI. Chủ yếu spell trong map dựa vào kinh nghiệm dùng dummy cast spell để tạo thành 1 spell mới không ảnh hưởng khi 1 unit có nhiều skill cast cùng loại. Ví dụ vài cái ChainLightning của Zeus
 
Chỉnh sửa cuối:
Thì bạn cứ từ từ mà nghĩ nhé.
MUI mà vừa chạm vào unit là dừng à 8-}.
Ví dụ như trong tut này, không phải tự nhiên mà người ta dùng custom value đâu nhé.

Dù gì thì cũng cám ơn bạn mình đã tìm ra fix đc rồi :)
 
mình cũng mò ra chữ Loading rồi. trong gameinterface nhưng sao đổi kiểu gì nó cũng không đổi cứ L O A D I N G miết à. có chữ waiting for orther player thì đổi được. nhưng không ra font chữ. ai giúp với :|

Đổi được font chữ thì cần restart lại map lần nữa (không phải khởi động lại game nhé) thì mới nạp font trong map vào game được.
Chữ Loading đó thì thay đổi cũng làm như vậy,mà chả phải USMWE đã bảo rồi sao? - Floating Text Font (broken) -hoặc hàm thay font tương tự nghĩa là bị hư, không load ngay được, cần nạp ở lần vào map sau.
 
Pro nào cho xin cái bài sửa skin gì đó ( Mountain King thành Fire MK) bữa có thấy mà ko nhớ nó nằm đâu
Mã:
Special Effect Good 2
    Events
    Conditions
    Actions
        Set Temp_Point = (Center of (Playable map area))
        Special Effect - Create a special effect at Temp_Point using Abilities\Spells\Undead\UnholyAura\UnholyAura.mdl
        [COLOR="#FF0000"]Set Temp_SFX[(Integer A)] = (Last created special effect)
        Custom script:   call RemoveLocation (udg_Temp_Point)
        Wait 2.00 seconds
        Special Effect - Destroy Temp_SFX[(Integer A)][/COLOR]
Cái này của coi của bác Tom mà thấy hơi lạ, ko có vòng Loop vẫn set là Integer A đc à
P.S: Ai chỉ cách import dùm con, mình import vào map hoài mà ko đc
http://www.mediafire.com/?7l7h0zhi3aqrr70
Nếu như có 1 cái Varible dạng Point mà đc set ở trigger đầu và wa trigger 2 thì có dòng
Mã:
(SW_Caster is in (Units within 50.00 of SW_TargetPoint)) Equal to True
Thì có gây LEAK ko ?
 
Chỉnh sửa cuối:
còn cái teleport từ A sang B và B sang A sao không ai giúp tôi hết vậy trời!!!
 
@Nhok: Ví dụ: 1 unit vào A thì nó sẽ nhảy sang B ngay lập tức, nhưng cùng lúc đó bạn có 1 trigger khi 1 unit vào B thì nhảy sang A ngay lập tức, vậy thì 1 unit vào A sẽ lập tức nhảy sang B rồi từ B nhảy lại về A rồi lại tiếp tục từ A nhảy đến B đến khi nào crash thì thôi :|
Cách khắc phục là cho unit vào A đến B rồi muốn về thì từ C về D.
 
Status
Không mở trả lời sau này.
Back
Top