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

Status
Không mở trả lời sau này.
hehe thanks cảm ơn bác để mình test lại :D

---------- Post added at 18:27 ---------- Previous post was at 18:12 ----------

hehe cảm ơn bạn nhiều để mình thử lại :D
 
cho mình hỏi làm sao để mất cái vòng sáng theo màu của player nhỉ. không phải làm mất mà là nhỏ lại cho vừa với hero thôi. chứ to quá nhìn xấu. ai chỉ mình với. VD player red thì mọi hero đều có cái vầng màu đỏ dưới chân đó. làm sao để cho cái vâng đó nhỏ lại. dùng War3modelEditor phải không nhỉ ;;) nhưng mình không biết làm. ai chỉ với

Xóa Team Glow
(dịch từ Help file)

Bài này sẽ hướng dẫn xóa "glow" của một model.

Ta sẽ xóa glow của model Paladin, tất nhiên bạn có thể xóa glow ở model nào tùy thích, đây chỉ là hướng dẫn. Trước hết ta phải load model vào tool. Chỉ việc mở MPQ ra để lấy thôi.
  • Mở War3 Model Editor
  • Windows -> MPQ Browser để mở MPQ
  • Bỏ hết các "filter" (lọc), Filter \ None
  • Để lọc các model thì Filters \ Models
  • File \ War3.mpq để mở War3.mpq vì model Paladin trong mpq này
  • Tìm model paladin ở đường dẫn Units\Human\HeroPaladin
  • Click đúp vào HeroPaladin.mdx để load
chú ý: sử dụng các filter trên sẽ tìm được model, texture nhanh hơn nhưng nếu bạn không dùng cũng ko sao, bạn có thể tìm đường dẫn rồi mở luôn :)
[spoil]
attachment.php
[/spoil]

Giờ ta đã load xong model Paladin, ta có thể đóng MPQ Browser, ta không cần nữa (MPQ Browser sẽ mở cho tới khi ta click File \ Close hoặc thoát khỏi chương trình). Ta sẽ select (chọn) geoset Team Glow (khối glow) bằng cách CTRL-clicking trên ở cửa sổ chính và xóa khỏi Geoset Manager.
  • Mở Geoset Manager từ Windows \ Geoset Manager
  • Kéo cửa sổ Geoset Manager sang bên cạnh để nó ko che mất model.
  • Giữ CTRL và ấn chuột trái vào Team Glows trên ở cửa sổ chính (các glow thường là cùng một geoset nên click vào glow nào cũng được)
  • Nếu thành công thì Team Glow geoset sẽ được select trong Geoset Manager
    [spoil]
    glowclick.jpg
    [/spoil]
  • Và hãy quay camera để có góc nhìn tốt hơn
  • Ấn chuột phải vào geoset trên
  • Click vào Remove
  • Bạn sẽ gặp câu hỏi "có tháo "xương" ra không", hãy click Yes :D
Giờ glow đã mất, bạn có thể thấy kết quả ở cửa sổ chính. Giờ chúng ta cần lưu lại và nhập vào War3 để xem.
  • Trên menu, ấn File \ Save As
  • Đặt một tên cho hợp và Save, nhớ phải gõ cả đuôi .mdx cho tên :)
Chú ý:
Nếu geoset bạn vừa xóa đã được gắn với một geoset animation, bạn phải xóa cả geoset animation luôn, không thì Warcraft 3 sẽ "crash" đó.
Mở Geoset Animation Manager ( Windows \ Geoset Animation Manager) tìm các geoset animation mà có ID là "None", click chuột phải rồi xóa :)
(model Paladin ko có Geoset Animation nào nên không cần quan tâm :D)

Kết quả khi view trên War3 Model Editor:
[spoil]
paladinhasglow.jpg
paladinnonglow.jpg
[/spoil]

-------------------------------------------------------------------------------------------------
Quote by Tom Kazansky 01-08-2009 15:26

Em bik hỏi cái này có lẽ không đúng chủ đề nhưng ai có directX8.1 thì cho em xin ... không có cái này em không làm map được ... haizz !

cái này hỏi thì trong BoX Phần mềm nha trong đây là hỏi có vẻ không thích hợp :-"
http://www.download.com.vn/more+software+tools/7304_directx-9-0c.aspx
 
Cho mình hỏi cái dòng code này để làm gì đây:
Mã:
Custom script:   set bj_wantDestroyGroup = true


---------- Post added at 23:12 ---------- Previous post was at 23:02 ----------

Cho mình hỏi cái dòng code này để làm gì đây:
Mã:
Custom script:   set bj_wantDestroyGroup = true
 
Cho mình hỏi cái dòng code này để làm gì đây:

[/COLOR]Cho mình hỏi cái dòng code này để làm gì đây:
Mã:
Custom script:   set bj_wantDestroyGroup = true

dòng hàm set bj_wantDestroyGroup = true là một hành động chống rò rỉ ví dụ

Mã:
trigger
    Events
    Conditions
    Actions
        Set TempGroup = (Units in (Playable map area))
        Unit Group - Pick every unit in TempGroup and do (Actions)
            Loop - Actions
        Memory Leak - Destroy TempGroup
mình sẽ làm như thế này

Mã:
trigger
    Events
    Conditions
    Actions
        Custom script:   set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
            Loop - Actions
2 cái điều giống nhau tác dụng chống rò rỉ nhân cái set bj_wantDestroyGroup = true là xác định hàm untisgroup xóa rò rỉ. còn hàm Memory Leak - Destroy TempGroup củng như vậy.

không chỉ là 2 loại chống rò rỉ group mà có loại thứ 3 là tác dụng như 2 cái trên đoạn này để ở phần dưới unit group
Mã:
trigger
    Events
    Conditions
    Actions
        Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
            Loop - Actions
        Custom script:   DestroyGroup( GetLastCreatedGroup() )
call DestroyGroup( GetLastCreatedGroup() )
 
Coi hộ mình luôn cái đoạn code ==! Đang làm cái wave giống morph (MUI) mà những con lướt qua sẽ bị dính dmg + slow. Slow thì có Slam rồi. Còn cái khoản gây dmg 1 lần thì... Cast được mấy phát đầu ổn, chỉ gây dmg 1 lần nhưng... mấy phát sau lại cứ 0.03s gây dmg liên tục mấy lần liền... Chả hiểu tại sao =.=! Đang thắc mắc ở chỗ bôi xanh tại trigger thứ 2...
Mã:
Earth Wave (Initially ON)
Events
    Unit - A unit Starts the effect of an ability
Conditions
    (Ability being cast) Equal to Earth Wave 
Actions
    Set EarthWaveIndex = (EarthWaveIndex + 1)
    Set EarthWaveCaster[EarthWaveIndex] = (Casting unit)
    Set EarthWaveCasterLoc[EarthWaveIndex] = (Position of EarthWaveCaster[EarthWaveIndex])
    Set EarthWavePoint[EarthWaveIndex] = (Target point of ability being cast)
    Set EarthWaveDistance[EarthWaveIndex] = (Distance between EarthWaveCasterLoc[EarthWaveIndex] and EarthWavePoint[EarthWaveIndex])
    Set EarthWaveAngle[EarthWaveIndex] = (Angle from EarthWaveCasterLoc[EarthWaveIndex] to EarthWavePoint[EarthWaveIndex])
    For each (Integer A) from 1 to GrandSBCurrentIndex, do (Actions)
        Loop - Actions
            Custom script:   call RemoveLocation(udg_EarthWaveCasterLoc[GetForLoopIndexA()])
            Custom script:   call RemoveLocation(udg_EarthWavePoint[GetForLoopIndexA()])

Mã:
Earth Wave Move (Initially ON)
Events
    Time - Every 0.03 seconds of game time
Conditions
Actions
    For each (Integer A) from 1 to EarthWaveIndex, do (Actions)
        Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    EarthWaveDistance[(Integer A)] Greater than 0.00
                Then - Actions
                    Unit - Make EarthWaveCaster[(Integer A)] Invulnerable
                    Unit - Turn collision for EarthWaveCaster[(Integer A)] Off
                    Animation - Change EarthWaveCaster[(Integer A)]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
                    Set EarthWaveLoc = (Position of EarthWaveCaster[(Integer A)])
                    Set EarthWaveLoc2 = (EarthWaveLoc offset by 45.00 towards EarthWaveAngle[(Integer A)] degrees)
                    Set EarthWaveDistance[(Integer A)] = (EarthWaveDistance[(Integer A)] - 45.00)
                    Unit - Move EarthWaveCaster[(Integer A)] instantly to EarthWaveLoc2
                    Special Effect - Create a special effect at EarthWaveLoc using Stonespear.mdx
                    Special Effect - Destroy (Last created special effect)
                    Special Effect - Create a special effect at EarthWaveLoc using Abilities\Spells\Orc\EarthQuake\EarthQuakeTarget.mdl
                    Special Effect - Destroy (Last created special effect)
                    [COLOR="#0000FF"]Set EarthWaveGroup[(Integer A)] = (Units within 225.00 of EarthWaveLoc matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner 
                    Unit Group - Pick every unit in EarthWaveGroup[(Integer A)] and do (Actions)
                        Loop - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    ((Picked unit) is in EarthWaveHitGroup[(Integer A)]) Not equal to True
                                Then - Actions
                                    Unit Group - Add (Picked unit) to EarthWaveHitGroup[(Integer A)]
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        If - Conditions
                                            ((Picked unit) has an item of type |cff0000ffEmblem of Water|r) Equal to True
                                        Then - Actions
                                            Unit - Cause EarthWaveCaster[(Integer A)] to damage (Picked unit), dealing (55.00 + (50.00 x (Real((Level of Earth Wave  for EarthWaveCaster[(Integer A)]))))) damage of attack type Spells and damage type Normal
                                            Unit - Cause EarthWaveCaster[(Integer A)] to damage (Picked unit), dealing 150.00 damage of attack type Spells and damage type Normal
                                            Floating Text - Create floating text that reads (|cff804000+150!|r + <Empty String>) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
                                            Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                                            Floating Text - Change (Last created floating text): Disable permanence
                                            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                                            Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                                        Else - Actions
                                            Unit - Cause EarthWaveCaster[(Integer A)] to damage (Picked unit), dealing (55.00 + (50.00 x (Real((Level of Earth Wave  for EarthWaveCaster[(Integer A)]))))) damage of attack type Spells and damage type Normal
                                Else - Actions[/COLOR]                    Unit - Create 1 Earth Wave Dummy for (Owner of EarthWaveCaster[(Integer A)]) at EarthWaveLoc facing Default building facing degrees
                    Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
                    Unit - Set level of Earth Wave Dummy  for (Last created unit) to (Level of Earth Wave  for EarthWaveCaster[(Integer A)])
                    Unit - Order (Last created unit) to Neutral - Slam
                    Custom script:   call DestroyGroup(udg_EarthWaveGroup[GetForLoopIndexA()])
                    Custom script:   call RemoveLocation(udg_EarthWaveLoc)
                    Custom script:   call RemoveLocation(udg_EarthWaveLoc2)
                Else - Actions
                    Unit Group - Remove all units from EarthWaveHitGroup[(Integer A)]
                    Unit - Turn collision for EarthWaveCaster[(Integer A)] On
                    Unit - Make EarthWaveCaster[(Integer A)] Vulnerable
                    Animation - Change EarthWaveCaster[(Integer A)]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency[COLOR="Silver"]

[SIZE=1]---------- Post added at 00:23 ---------- Previous post was at 00:21 ----------[/SIZE]

[/COLOR]
Mình đang cần cái này gấp lắm >"< Ai rảnh sửa dùm mình càng sớm càng tốt >"< Cảm ơn trước luôn :D
 
ví dụ con Footman nhé. kiếm phần Object Manager Sound - Unit Sound Set Footman
sau đó vào phần Sound Editor bấm kiếm Sound Set Footman Internal/Units/Footman ví dụ FootmanDeath.wav bấm chuột phải chọn Replace Internal Sound chọn sound nào đó là file wav là ok. vậy con footman chết sẽ ra sound đó'
Thế cho mình hỏi sound của Marine để ở đâu vậy mà mình kiếm chẳng thấy?
 
Coi hộ mình luôn cái đoạn code ==! Đang làm cái wave giống morph (MUI) mà những con lướt qua sẽ bị dính dmg + slow. Slow thì có Slam rồi. Còn cái khoản gây dmg 1 lần thì... Cast được mấy phát đầu ổn, chỉ gây dmg 1 lần nhưng... mấy phát sau lại cứ 0.03s gây dmg liên tục mấy lần liền... Chả hiểu tại sao =.=! Đang thắc mắc ở chỗ bôi xanh tại trigger thứ 2...
Mã:
Earth Wave (Initially ON)
Events
    Unit - A unit Starts the effect of an ability
Conditions
    (Ability being cast) Equal to Earth Wave 
Actions
    Set EarthWaveIndex = (EarthWaveIndex + 1)
    Set EarthWaveCaster[EarthWaveIndex] = (Casting unit)
    Set EarthWaveCasterLoc[EarthWaveIndex] = (Position of EarthWaveCaster[EarthWaveIndex])
    Set EarthWavePoint[EarthWaveIndex] = (Target point of ability being cast)
    Set EarthWaveDistance[EarthWaveIndex] = (Distance between EarthWaveCasterLoc[EarthWaveIndex] and EarthWavePoint[EarthWaveIndex])
    Set EarthWaveAngle[EarthWaveIndex] = (Angle from EarthWaveCasterLoc[EarthWaveIndex] to EarthWavePoint[EarthWaveIndex])
    For each (Integer A) from 1 to GrandSBCurrentIndex, do (Actions)
        Loop - Actions
            Custom script:   call RemoveLocation(udg_EarthWaveCasterLoc[GetForLoopIndexA()])
            Custom script:   call RemoveLocation(udg_EarthWavePoint[GetForLoopIndexA()])

Mã:
Earth Wave Move (Initially ON)
Events
    Time - Every 0.03 seconds of game time
Conditions
Actions
    For each (Integer A) from 1 to EarthWaveIndex, do (Actions)
        Loop - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    EarthWaveDistance[(Integer A)] Greater than 0.00
                Then - Actions
                    Unit - Make EarthWaveCaster[(Integer A)] Invulnerable
                    Unit - Turn collision for EarthWaveCaster[(Integer A)] Off
                    Animation - Change EarthWaveCaster[(Integer A)]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
                    Set EarthWaveLoc = (Position of EarthWaveCaster[(Integer A)])
                    Set EarthWaveLoc2 = (EarthWaveLoc offset by 45.00 towards EarthWaveAngle[(Integer A)] degrees)
                    Set EarthWaveDistance[(Integer A)] = (EarthWaveDistance[(Integer A)] - 45.00)
                    Unit - Move EarthWaveCaster[(Integer A)] instantly to EarthWaveLoc2
                    Special Effect - Create a special effect at EarthWaveLoc using Stonespear.mdx
                    Special Effect - Destroy (Last created special effect)
                    Special Effect - Create a special effect at EarthWaveLoc using Abilities\Spells\Orc\EarthQuake\EarthQuakeTarget.mdl
                    Special Effect - Destroy (Last created special effect)
                    [COLOR="#0000FF"]Set EarthWaveGroup[(Integer A)] = (Units within 225.00 of EarthWaveLoc matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner 
                    Unit Group - Pick every unit in EarthWaveGroup[(Integer A)] and do (Actions)
                        Loop - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    ((Picked unit) is in EarthWaveHitGroup[(Integer A)]) Not equal to True
                                Then - Actions
                                    Unit Group - Add (Picked unit) to EarthWaveHitGroup[(Integer A)]
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        If - Conditions
                                            ((Picked unit) has an item of type |cff0000ffEmblem of Water|r) Equal to True
                                        Then - Actions
                                            Unit - Cause EarthWaveCaster[(Integer A)] to damage (Picked unit), dealing (55.00 + (50.00 x (Real((Level of Earth Wave  for EarthWaveCaster[(Integer A)]))))) damage of attack type Spells and damage type Normal
                                            Unit - Cause EarthWaveCaster[(Integer A)] to damage (Picked unit), dealing 150.00 damage of attack type Spells and damage type Normal
                                            Floating Text - Create floating text that reads (|cff804000+150!|r + <Empty String>) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
                                            Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                                            Floating Text - Change (Last created floating text): Disable permanence
                                            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                                            Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
                                        Else - Actions
                                            Unit - Cause EarthWaveCaster[(Integer A)] to damage (Picked unit), dealing (55.00 + (50.00 x (Real((Level of Earth Wave  for EarthWaveCaster[(Integer A)]))))) damage of attack type Spells and damage type Normal
                                Else - Actions[/COLOR]                    Unit - Create 1 Earth Wave Dummy for (Owner of EarthWaveCaster[(Integer A)]) at EarthWaveLoc facing Default building facing degrees
                    Unit - Add a 0.01 second Generic expiration timer to (Last created unit)
                    Unit - Set level of Earth Wave Dummy  for (Last created unit) to (Level of Earth Wave  for EarthWaveCaster[(Integer A)])
                    Unit - Order (Last created unit) to Neutral - Slam
                    Custom script:   call DestroyGroup(udg_EarthWaveGroup[GetForLoopIndexA()])
                    Custom script:   call RemoveLocation(udg_EarthWaveLoc)
                    Custom script:   call RemoveLocation(udg_EarthWaveLoc2)
                Else - Actions
                    Unit Group - Remove all units from EarthWaveHitGroup[(Integer A)]
                    Unit - Turn collision for EarthWaveCaster[(Integer A)] On
                    Unit - Make EarthWaveCaster[(Integer A)] Vulnerable
                    Animation - Change EarthWaveCaster[(Integer A)]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency[COLOR="Silver"]

[SIZE=1]---------- Post added at 00:23 ---------- Previous post was at 00:21 ----------[/SIZE]

[/COLOR]
Mình đang cần cái này gấp lắm >"< Ai rảnh sửa dùm mình càng sớm càng tốt >"< Cảm ơn trước luôn :D

Tăng size group lên .
 
tăng size cái chỗ tạo Variable ý , mặc định của variable array là 1 thì bạn tăng nó lên
Spell wave mà dùng slam thì rất lag , nên dùng cripple lên từng picked unit thì hơn , condition thêm là con nào có buff slow rồi thì thôi ko cast buff vào nó nữa.
 
tăng size cái chỗ tạo Variable ý , mặc định của variable array là 1 thì bạn tăng nó lên
Spell wave mà dùng slam thì rất lag , nên dùng cripple lên từng picked unit thì hơn , condition thêm là con nào có buff slow rồi thì thôi ko cast buff vào nó nữa.

Size 12 rồi đấy mà nó vẫn phê :| Dùng slam thì có vẻ lag thật nên có lẽ mình sẽ chuyển sang cripple hoặc slow :)
 
Dạ là team của 2 phe luôn
 
Sr :P hỏi ko đúng: Làm sao để Shop có thể bán item cho nhìu hero cùng 1 lúc ai zúp zùm Thanks nhìu.
 
Quay lại cái skill Earth Wave kia phát. Mình mới nhận ra là size của cái HitGroup kia = bao nhiêu thì sau bấy nhiêu lần cast nó sẽ lại về tình trạng gây dmg liên tục ==! Ví dụ mình để 12 thì 12 lần cast đầu chỉ gây dmg 1 lần và từ lần 13 trở đi là lại cứ 0.03s gây dmg 1 lần ==! Ai biết cách khắc phục ko?
Mã:
Unit Group - Add (Picked unit) to EarthWaveHitGroup[(Integer A)] (Size = 12)
 
Quay lại cái skill Earth Wave kia phát. Mình mới nhận ra là size của cái HitGroup kia = bao nhiêu thì sau bấy nhiêu lần cast nó sẽ lại về tình trạng gây dmg liên tục ==! Ví dụ mình để 12 thì 12 lần cast đầu chỉ gây dmg 1 lần và từ lần 13 trở đi là lại cứ 0.03s gây dmg 1 lần ==! Ai biết cách khắc phục ko?
Mã:
Unit Group - Add (Picked unit) to EarthWaveHitGroup[(Integer A)] (Size = 12)

Cậu thử đừng dùng Group Array xem và trong cái hàm 0.03s gì đó có cả hàm Unit Group - Remove all units form Group nào đó - Tớ nghĩ chắc tại cái này ý!:-?
 
Hỏi :

làm sao để cho unti vào một khu unti kia được thiết lập làm sao để unti move qua là unti trong vùng đó chết?
 
Quay lại cái skill Earth Wave kia phát. Mình mới nhận ra là size của cái HitGroup kia = bao nhiêu thì sau bấy nhiêu lần cast nó sẽ lại về tình trạng gây dmg liên tục ==! Ví dụ mình để 12 thì 12 lần cast đầu chỉ gây dmg 1 lần và từ lần 13 trở đi là lại cứ 0.03s gây dmg 1 lần ==! Ai biết cách khắc phục ko?
Mã:
Unit Group - Add (Picked unit) to EarthWaveHitGroup[(Integer A)] (Size = 12)

Tại dùng Integer đấy. À mà cùng lắm thì tăng max size lên đi ;)).
 
Chỉnh sửa cuối:
Cậu thử đừng dùng Group Array xem và trong cái hàm 0.03s gì đó có cả hàm Unit Group - Remove all units form Group nào đó - Tớ nghĩ chắc tại cái này ý!:-?

Thôi bỏ đi :) Mình để size lên 2000 =)) 1 game chắc chả ai cast đủ 2000 lần đâu nhỉ =))

---------- Post added at 13:48 ---------- Previous post was at 13:46 ----------

Sr :P hỏi ko đúng: Làm sao để Shop có thể bán item cho nhìu hero cùng 1 lúc ai zúp zùm Thanks nhìu.
Bình thường shop đã bán item cho nhiều hero cùng lúc rồi :| Còn nếu 1 player có nhiều hero đứng xung quanh shop thì con hero nào có hình mũi tên ở trên đầu sẽ được ưu tiên mua trước.
 
Thôi bỏ đi :) Mình để size lên 2000 =)) 1 game chắc chả ai cast đủ 2000 lần đâu nhỉ =))

Cẩn thận với group đấy nhé, với cái integer số to quá cũng có vấn đề đấy.

Tom's edit: để size lên 2000 cẩn thận game ko load nhé =))
 
Last edited by a moderator:
Status
Không mở trả lời sau này.
Back
Top