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

Status
Không mở trả lời sau này.
^ Để 10s mà shadow strike tác dụng có 2 3 giây thì quá ư là thừa. Để dư ra độ 0.1s so với thời gian tác dụng của shadow strike cũng là quá đủ rồi.
 
Hiện nay mình cùng 1 ng bạn đang làm model nhà cửa, cây cối,... cho map Việt nhưng gặp khó khăn 1 chút ở công đoạn cuối đó là add tex vào mô hình. trong topic hướng dẫn tạo model chỉ nói chung chung là add tex ( có thể gọi là tô màu cho model) cho cả 1 vật thể, nghĩa là cả vật thể đó chỉ có duy nhất 1 màu. Mình muốn bạn nào rành phần này hướng dẫn mình tô màu cho từng phần của vật thể như mái nhà màu vàng còn cửa nhà màu nâu. Tốt nhất là có hình ảnh cho dễ nhìn chứ mình mới làm quen với việc tạo model nên nói vắn tắt mình không theo đc. Hiện giờ model mình làm khá ổn về mặt hình học nhưng màu sắc loang lổ nên rất chán. Chỉ màu sắc rành mạch giữa 2 phần là đc. Bạn có thể chỉ cần vẽ 1 hình vuông và tô 2 mặt nó 2 màu khắc nhau cũng đc. Mình đang cần gấp hi vọng có ng quan tâm.
À cho mình hỏi lun máy mình hơi cùi không có vga rời thì chạy đc 3dmax mấy nhỉ? Tao model bằng wing3d ít tài liệu hướng dẫn quá.
 
Chỉnh sửa cuối:
Spammer is here. Non sense !!!!
em hỏi thật, em tạo nhiều unit có thời gian tồn tại là 5s, sau 5s unit đó ko còn nhưng vẫn còn cái model. làm sao để nó mất đi
 
em hỏi thật, em tạo nhiều unit có thời gian tồn tại là 5s, sau 5s unit đó ko còn nhưng vẫn còn cái model. làm sao để nó mất đi
Bạn tìm phần Combat - Death Type chỉnh thành Can't raise, Does not decay.

---------- Post added at 18:09 ---------- Previous post was at 18:01 ----------

Em đang làm skill Critical Strike bằng trigger và thêm một số hiệu ứng. Nhưng đến phần hiện damage em dùng Floating Text thì nó toàn hiện lên số thập phân (VD : 50,000). Có cách nào để nó ko hiện lên 3 số đằng sau dấu phẩy ko?
 
Bạn muốn làm 1 Spell Hex AOE,Banish AOE,Blooddust AOE.v.v. thì

Tạo một trigger
Tạo một Ability Dummy (dummy ở đây hiểu đơn giản là giả,là nền để mình làm skill) có AOE như blizzard
Tạo một Unit Dummy để cast skill Shadow strike chính
Tạo 1 Ability Shadow strike để add vào Unit dummy trên và cho unit này cast vào các mục tiêu trong AOE
Tạo 1 biến UnitGroup
Tạo 1 biến Point

Mã:
Unit - A unit Starts the effect of an ability - Khi một unit bắt đầu hiệu ứng của một ability

Conditions - Điều kiện để trigger hoạt động
   (Ability being cast) Equal to xxxx - xxxx là tên mình đặt tạm cho ability này
Actions
        Set Point[1] = (Target point of ability being cast) - Vị trí mà mình cast vào
        Set UnitGroup = (Units within 500.00 of Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is dead) Equal to False) - Set các mục tiêu và điều kiện các mục tiêu đó là ai,ở đây mục tiêu được chọn trong 500 phạm vi là kẻ thù của triggering unit,không phải là các công trình và không phải là các mục tiêu đã chết.
    Unit Group - Pick every unit in UnitGroup and do (Actions) - Pick các unit đó và 
        Loop - Actions
            Set Point[2] = (Position of (Picked unit))
            Unit - Create 1 Dummy for (Owner of (Triggering unit)) at Point[2] facing Default building facing degrees
            Unit - Add a 10.00 second Generic expiration timer to (Last created unit) - Vì sao phải add 10 giây expiration timer cho con dummy đó (không bắt buộc phải đúng 10s,chỉ cần hơn thời gian tác dụng của Shadow strike là đc ;) ) ? Vì đơn giản Skill Shadow strike có hiệu ứng kéo dài,gây sát thương liên tục trong nhiều giây,nếu remove con dummy sớm rồi mục tiêu Picked Unit mà chết do con dummy trong thời gian tác dụng thì không thể xác định được là do ai giết.
            Unit - Add  Shadow strike  to (Last created unit)
            Unit - Set level of Shadow strike for (Last created unit) to (Level of Ability being cast  for (Triggering unit))
            Unit - Order (Last created unit) to Night Elf Warden - Shadow Strike Picked Unit - Cho con dummy sử dụng skill vào các mục tiêu đã chọn trong phạm vi ấy.
            Custom script:   call RemoveLocation (udg_Point[2])
    Custom script:   call DestroyGroup (udg_UnitGroup)
    Custom script:   call RemoveLocation (udg_Point[1]) - Remove leak thôi
Mình bị mắc ở đoạn code
Set UnitGroup = (Units within 500.00 of Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is dead) Equal to False) - Set các mục tiêu và điều kiện các mục tiêu đó là ai,ở đây mục tiêu được chọn trong 500 phạm vi là kẻ thù của triggering unit,không phải là các công trình và không phải là các mục tiêu đã chết.
đoạn đó mình viết hoài mà không thể giống được hic hic bạn có thể chỉ cho mình được không nếu được cho mình xin cái map demo skill đó để xem cho dễ mới tập làm mà mò hoài không được
 
Bạn tìm phần Combat - Death Type chỉnh thành Can't raise, Does not decay.

---------- Post added at 18:09 ---------- Previous post was at 18:01 ----------

Em đang làm skill Critical Strike bằng trigger và thêm một số hiệu ứng. Nhưng đến phần hiện damage em dùng Floating Text thì nó toàn hiện lên số thập phân (VD : 50,000). Có cách nào để nó ko hiện lên 3 số đằng sau dấu phẩy ko?

Bạn dùng biến Integer chứ đừng dùng biến Real :D


Mình bị mắc ở đoạn code
Set UnitGroup = (Units within 500.00 of Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is dead) Equal to False) - Set các mục tiêu và điều kiện các mục tiêu đó là ai,ở đây mục tiêu được chọn trong 500 phạm vi là kẻ thù của triggering unit,không phải là các công trình và không phải là các mục tiêu đã chết.
đoạn đó mình viết hoài mà không thể giống được hic hic bạn có thể chỉ cho mình được không nếu được cho mình xin cái map demo skill đó để xem cho dễ mới tập làm mà mò hoài không được

Bạn tìm tòi trong conditon ấy =-= demo mình không có,mò nhiều là rành ngay thôi,kinh nghiệm của mình là thế :D
 
Chỉnh sửa cuối:
Bạn dùng biến Integer chứ đừng dùng biến Real :D




Bạn tìm tòi trong conditon ấy =-= demo mình không có,mò nhiều là rành ngay thôi,kinh nghiệm của mình là thế :D

viết đc đến đây thì tịt

Unit Group - Pick every unit in (Units within 512.00 of Point matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)) and do (action)
 
Bạn tìm phần Combat - Death Type chỉnh thành Can't raise, Does not decay.

---------- Post added at 18:09 ---------- Previous post was at 18:01 ----------

Em đang làm skill Critical Strike bằng trigger và thêm một số hiệu ứng. Nhưng đến phần hiện damage em dùng Floating Text thì nó toàn hiện lên số thập phân (VD : 50,000). Có cách nào để nó ko hiện lên 3 số đằng sau dấu phẩy ko?

Đầu tiên là sử dụng convert String => Integer. Rồi tiếp tục sử dụng convert Integer to Real thì số hiện ra sẽ không phải là số thập phân.
 
Mình bị mắc ở đoạn code
Set UnitGroup = (Units within 500.00 of Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is dead) Equal to False) - Set các mục tiêu và điều kiện các mục tiêu đó là ai,ở đây mục tiêu được chọn trong 500 phạm vi là kẻ thù của triggering unit,không phải là các công trình và không phải là các mục tiêu đã chết.
đoạn đó mình viết hoài mà không thể giống được hic hic bạn có thể chỉ cho mình được không nếu được cho mình xin cái map demo skill đó để xem cho dễ mới tập làm mà mò hoài không được

dùng "And"

Em đang làm skill Critical Strike bằng trigger và thêm một số hiệu ứng. Nhưng đến phần hiện damage em dùng Floating Text thì nó toàn hiện lên số thập phân (VD : 50,000). Có cách nào để nó ko hiện lên 3 số đằng sau dấu phẩy ko?

Convert Integer To String( Convert Real To Integer ( Damage ) )
 
Cho e hỏi tý :D: có 3 e unit 1-2-3. unit 1 là unit chính. khi 2 e unit 2 hay 3 bị mất máu thì trừ lun số lượg máu tươg ứng vào unit 1 ko trừ máu vào unit 3 khi unit 2 bị tấn công và ngược lại thanks nhìu :D
 
Làm sao để:
- 1 dummy không thể bị "slide" ra khỏi playable map.
- Dummy không thể move xuyên cliff nhưng vẫn xuyên unit + doodad.
- Xác định vị trí 1 point có moveable, buildeable, và có phải là water hay không.
Ai giải được giúp mình nhé :x
 
Mã:
(Terrain pathing at <Point>) of type Walkability is off) Equal to True

Check point:
Walkability is off - Ko thể đi bộ qua
Flyability is off - Ko thể bay
Buildability is off - Ko thể xây
.....................

Còn mấy cái nữa, nói chung check đc tất cả đặc điểm của point đó.
 
@LeoNguyen112:

paster đoạn code này vào map là được!

sẽ giúp không cho dummy ra khỏi map
[SPOIL]
Mã:
library BoundSentinel initializer init
//*************************************************
//* BoundSentinel
//* -------------
//*  Don't leave your units unsupervised, naughty
//* them may try to get out of the map bounds and
//* crash your game.
//*
//*  To implement, just get a vJass compiler and
//* copy this library/trigger to your map.
//*
//*************************************************

//=========================================================================================
    globals
        private constant boolean ALLOW_OUTSIDE_PLAYABLE_MAP_AREA = false
        private real maxx
        private real maxy
        private real minx
        private real miny
    endglobals

//=========================================================================================
    private function dis takes nothing returns boolean
        local unit u = GetTriggerUnit()
        local real x = GetUnitX(u)
        local real y = GetUnitY(u)
        if GetUnitTypeId(u) != 'n00K' then

            if(x > maxx) then
                set x = maxx
            elseif(x < minx) then
                set x = minx
            endif
            if(y > maxy) then
                set y = maxy
            elseif(y < miny) then
                set y = miny
            endif
            call SetUnitX(u, x)
            call SetUnitY(u, y)
            set u = null
        endif
        return false
    endfunction

    private function init takes nothing returns nothing
        local trigger t = CreateTrigger()
        local region r = CreateRegion()
        local rect map
        local rect rc

        if ALLOW_OUTSIDE_PLAYABLE_MAP_AREA then
            set map = GetWorldBounds()
        else
            set map = bj_mapInitialPlayableArea
        endif

        set minx = GetRectMinX(map)
        set miny = GetRectMinY(map)
        set maxx = GetRectMaxX(map)
        set maxy = GetRectMaxY(map)
        set rc = Rect(minx, miny, maxx, maxy)
        call RegionAddRect(r, rc)
        call RemoveRect(rc)
        if ALLOW_OUTSIDE_PLAYABLE_MAP_AREA then
            call RemoveRect(map)
        endif

        call TriggerRegisterLeaveRegion(t, r, null)
        call TriggerAddCondition(t, Condition(function dis))

        set rc = null
        set map = null
    endfunction
endlibrary
[/SPOIL]
Mã:
(Terrain pathing at <Point>) of type Walkability is off) Equal to True

Check point:
Walkability is off - Ko thể đi bộ qua
Flyability is off - Ko thể bay
Buildability is off - Ko thể xây
.....................

Còn mấy cái nữa, nói chung check đc tất cả đặc điểm của point đó.

vậy nói chung làm sao để check ciff :-/
 
Chỉnh sửa cuối:
OK, đã làm được, thanks minh_pro_hy & dh-g phát :9cool_sweet_kiss:
Giờ hỏi thêm câu này, làm sao để flying unit vẫn giữ nguyên độ cao khi bay qua cây?

@dh-g: giờ tớ mới nghĩ ra cách check unit is in map, chỉ cần Unit is in playable map area equal to true là được :|
 
Chỉnh sửa cuối:
OK, đã làm được, thanks minh_pro_hy & dh-g phát :9cool_sweet_kiss:
Giờ hỏi thêm câu này, làm sao để flying unit vẫn giữ nguyên độ cao khi bay qua cây?

vào Destructibles tìm cây chọn Art - Fly-Over Height chỉnh là 0
 
Cho hỏi là giờ có 1 unit có facing là 0 chẳng hạn, nếu muốn unit NGAY LẬP TỨC quay đầu ngược lại (180) thì làm sao? Bt unit còn có thời gian delay để quay đầu (turn rate thì phải).
 
Cho hỏi là giờ có 1 unit có facing là 0 chẳng hạn, nếu muốn unit NGAY LẬP TỨC quay đầu ngược lại (180) thì làm sao? Bt unit còn có thời gian delay để quay đầu (turn rate thì phải).
Cho Rate đó cho = 0 là quay lại ngay lập tức

Mình có vài cái thắc mắc như sau:
- Chiêu gọi tê giác chạy của Beastmaster, chỗ tạo hiệu ứng máu tóe ra, khi mình tạo 1 skill từ base skill gốc này mún chỉnh hiệu ứng máu tóe đó thành 1 hiệu ứng khác thì nó ko tác dụng vẫn giữ nguyên máu tóe nhưng khi sửa hiệu ứng máu tóe ở skill gốc thì mới thay đổi :|
- Skill Avatar khi tạo 1 Buff khác add vào thì nó vẫn hiện là Buff của Avatar, chỉ khi đổi lại Buff gốc của Avatar thì nó mới thay đổi theo :|
Nguyên nhân là tại sao thế ?
 
Chỉnh sửa cuối:
Cho hỏi là giờ có 1 unit có facing là 0 chẳng hạn, nếu muốn unit NGAY LẬP TỨC quay đầu ngược lại (180) thì làm sao? Bt unit còn có thời gian delay để quay đầu (turn rate thì phải).

không thể quay đầu ngay lập tức

Cho Rate đó cho = 0 là quay lại ngay lập tức

Mình có vài cái thắc mắc như sau:
- Chiêu gọi tê giác chạy của Beastmaster, chỗ tạo hiệu ứng máu tóe ra, khi mình tạo 1 skill từ base skill gốc này mún chỉnh hiệu ứng máu tóe đó thành 1 hiệu ứng khác thì nó ko tác dụng vẫn giữ nguyên máu tóe nhưng khi sửa hiệu ứng máu tóe ở skill gốc thì mới thay đổi :|
- Skill Avatar khi tạo 1 Buff khác add vào thì nó vẫn hiện là Buff của Avatar, chỉ khi đổi lại Buff gốc của Avatar thì nó mới thay đổi theo :|
Nguyên nhân là tại sao thế ?

hard-coded, cái này phải hỏi nhà sản xuất =))
 
Cho mình hỏi luôn là ví dụ đang làm 1 cái map ở bối cảnh Icecrown Glacier giờ muốn giữ nguyên toàn bộ Trigger và F6 mà thay đổi bối cảnh thành Sunken Ruins có đc ko ?
 
Cho mình hỏi luôn là ví dụ đang làm 1 cái map ở bối cảnh Icecrown Glacier giờ muốn giữ nguyên toàn bộ Trigger và F6 mà thay đổi bối cảnh thành Sunken Ruins có đc ko ?

Advanced \ Modify Tileset
Icecrown Glacier -> Sunken Ruins
OK

---
còn chuyển map thì:

F4, Export Trigger
F6, Export All Object Data
dùng MPQ, mở map, lấy war3mapMisc.txt (đây là Gameplay Constants)
extract luôn các import ra một folder
dùng MPQ, mở map mới, cho war3mapMisc.txt đã lấy ở trên vào
vào map mới, dùng Extensions \ Import Directory, chọn folder chứa các file vừa extract
import object, trigger

về Game Interface, có file war3mapSkin.txt đó, nhưng đây toàn là string, nó lại là string trong file war3map.wts (đây là file text) nên trước khi import (bằng MPQ) thì phải lấy string bên file wts (đoạn này khó giải thích, thôi bạn mở ra thì rõ)
 
Status
Không mở trả lời sau này.
Back
Top