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

Thảo luận trong 'World Editor' bắt đầu bởi Tom_Kazansky, 2/9/12.

  1. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Không có cách nào hết,mình thì dùng handle lưu level của ability vào unit đó rồi khi cần thì load lại.
     
  2. Evil_Hunter

    Evil_Hunter Mario & Luigi

    Tham gia ngày:
    18/9/11
    Bài viết:
    786
    Nơi ở:
    Evil Forest
    Ai cho mình xin demo Cluster Rocket mà custom đi, để chỉnh vài thứ :)
     
  3. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mình xem các demo jass một số spell không dùng tới các lệnh màu đỏ (thường thì là BJ) mà dùng các lệnh có màu tím,mình thắc mắc là hai cái đó khác nhau ở chỗ nào ?

    Điều kiện nào để được coi là vjass ?

    Và thực sự thì mình vẫn chưa hiểu GetUnitX và GetUnitY là gì,ai có thể vui lòng giải thích giúp mình cái này ? X,Y của Unit là giá trị gì từ unit đó ?
     
  4. HiroshiKaze

    HiroshiKaze Youtube Master Race

    Tham gia ngày:
    19/8/12
    Bài viết:
    66
    Nơi ở:
    Tp.HCM
    ^
    Về dòng màu đỏ thì miễn ý kiến... chỉ biết là tím thì chạy tốt hơn đỏ nên thôi cứ xài tím đi đừng thắc mắt làm chi cho mệt =))
    Điều kiện coi là vjass?? - pó tay
    X,Y cái này giải thích đơn giản thôi. Chú học qua lớp 7 là chắc biết được mặt phẳng tọa độ Oxy rùi chứ gì! X,Y ở đây là tọa độ trên map của unit thôi! (với (0,0) là ở giữa map)
     
  5. btvinh

    btvinh Donkey Kong

    Tham gia ngày:
    15/1/11
    Bài viết:
    343
    =)) cái redline đc tui vợt nay ý kiến ngon dữ há
     
  6. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM

    Down system này, trong đó có include spell (Rain of Arrow thì phải :-?) tương tự Cluster Rocket.
     
  7. HiroshiKaze

    HiroshiKaze Youtube Master Race

    Tham gia ngày:
    19/8/12
    Bài viết:
    66
    Nơi ở:
    Tp.HCM
  8. goldviper

    goldviper Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    7/1/10
    Bài viết:
    721
    Nơi ở:
    Tổ dân phố
    Ai cho hỏi làm sao để illusion có màu như Ethereal unit giống trong Dota ,đương nhiên illusion có thể attack
     
  9. frostwyrm_9x

    frostwyrm_9x Mr & Ms Pac-Man

    Tham gia ngày:
    12/7/09
    Bài viết:
    190
    Nơi ở:
    Warcraft III
    ai có map thiên kiếm unprotect k, mình cần 1 số model trong map
     
  10. minhtronglam90

    minhtronglam90 Donkey Kong GameOver

    Tham gia ngày:
    5/6/12
    Bài viết:
    422
    ai có thể chỉ mình làm 1 spell như này : khi xuất skill thì tấn công 4 lần với tốc độ cực nhanh và có hiệu ứng với mỗi cú đánh sau khi đủ 4 cái thì nó ngừng lại
     
  11. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Chắc cậu nhầm rồi! Ethereal có làm cho unit mờ đi và màu thì xanh lá hơn 1 chút. Nhưng mà trong dota có skill con kiến thì đấy chỉ là làm mờ đi 1 dummy có model con kiến và chả may con kiến màu nó khi mờ đi lại giống Ethereal.
    Nói chung là màu giống Ethereal thì đơn giản là làm mờ unit và giảm blue và red color của unit đó đi 1 chút (hem bik bao nhiu cho giống... )
    Animation - Change Unit Vertex Coloring
     
  12. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    Red: 96
    Green: 127
    Blue: 64
    Alpha: 127 (50%) <--- chắc thế

    thật ra Ethereal còn làm model sáng hơn nhưng cái này có lẽ hardcode rồi :@)

    một số cái khác:
    • Ice Slow Tint Color: 128 192 192
    • Illusion Tint Color: 20 96 255
    • Animated Tint Color: 160 64 64

    làm sao để test?
    [spoil]
    tạo một model màu trắng (dùng W3ME mở cái Textures\White.blp rồi save mdx) rồi import vào map
    cho model trên vào unit, đặt ra map
    trigger: chạy lệnh tắt model ngày đêm ( Custom script: call SetDayNightModels( "", "" ) )
    cast Banish vào unit này
    chụp hình, đưa vào photoshop rồi xem màu
    [/spoil]
     
  13. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Cho hỏi cách pick units vào group theo hình nón phía trước mặt.
    Hỏi thêm: nếu 1 unit đã add skill passive tên A nhưng ko hiện icon do hết slot skill thì khi dùng trigger như thế này
    Mã:
    Level ability A >= 1
    thì có check được ko ?
     
  14. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Hỏi thêm: nếu 1 unit đã add skill passive tên A nhưng ko hiện icon do hết slot skill thì khi dùng trigger như thế này

    Được
     
  15. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    Pick tất các unit xung quanh 1 bán kính x nào đó. sau đó lọc ra chỉ lấy các unit mà caster facing với unit đó 1 giá trị thỏa mãn (ý tưởng của mình là như thế ^^)
     
  16. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mọi người cho hỏi tại sao lệnh else ở đây không tác dụng ?

    Mã:
    static method Data takes unit caster,unit target returns Camna
             local thistype data = thistype.allocate()
             local timer ti = NewTimer()
             local location l1 = GetUnitLoc(caster)
             local location l2 = GetUnitLoc(target)         
             
             set data.caster = caster
             set data.target = target
             set data.lv     = GetUnitAbilityLevel(data.caster,CAMNA)
             set data.tik    = 20 + (5 * data.lv)
             set data.sfx    = SFX
             [SIZE=3][B]if GetUnitTypeId(caster) == XANH then
                set data.angle = AngleBetweenPoints(l2,l1)
             else
                set data.angle = AngleBetweenPoints(l1,l2)
             endif [/B]  [/SIZE]
             set data.dmg    = 50 * I2R(data.lv) + (GetHeroInt(data.caster,true) * 2)
             set data.speed  = 15
             
             call SetCSData(ti,data)
             call TimerStart(ti,TIME,true,function Camna.Loop)
             call RemoveLocation(l1)
             call RemoveLocation(l2)
             set l1 = null
             set caster = null
             set target = null
             set l2 = null
             set ti = null
             
             return data
    endmethod
    P/s: bậc cao tay toán học nào vui lòng chỉ giúp mình cách tính angle mà ko dùng lệnh AngleBetweenPoints với +_+
     
    Chỉnh sửa cuối: 24/9/12
  17. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    > Mọi người cho hỏi tại sao lệnh else ở đây không tác dụng ?

    unit-type của caster lúc nào cũng là XANH thì biểu thức đó luôn đúng => sao "else" chạy được

    > P/s: bậc cao tay toán học nào vui lòng chỉ giúp mình cách tính angle mà ko dùng lệnh AngleBetweenPoints với +_+

    không dùng lệnh đó thì dùng cái gì? =))
    không muốn dùng "location" thì click vào lệnh đó mà xem sau đó viết lại tùy theo ý muốn

    [spoil]
    Mã:
    //góc giữa (x1, y1) và (x2, y2) và trả về "độ"
    function AngleXY takes real x1, real y1, real x2, real y2 returns real
        return bj_RADTODEG * Atan2(y2 - y1, x2 - x1)
    endfunction
    
    //góc giữa (x1, y1) và (x2, y2) và trả về "radian"
    function AngleXYR takes real x1, real y1, real x2, real y2 returns real
        return Atan2(y2 - y1, x2 - x1)
    endfunction
    //lấy khoảng cách giữa (x1, y1) và (x2, y2)
    function DistanceXY takes real x1, real y1, real x2, real y2 returns real
        return SquareRoot( (x2-x1) * (x2-x1) + (y2-y1) * (y2-y1))
    endfunction
    //khoảng cách giữa 2 unit a và b
    function DistanceUnits takes unit a, unit b returns real
        local real dx = GetUnitX(b) - GetUnitX(a)
        local real dy = GetUnitY(b) - GetUnitY(a)
        return SquareRoot(dx * dx + dy * dy)
    endfunction
    //góc giữa 2 unit a và b, trả về "độ"
    function AngleUnits takes unit a, unit b returns real
        return bj_RADTODEG * Atan2(GetUnitY(b) - GetUnitY(a), GetUnitX(b) - GetUnitX(a))
    endfunction
    //góc giữa 2 unit a và b, trả về "radian"
    function AngleUnitsR takes unit a, unit b returns real
        return Atan2(GetUnitY(b) - GetUnitY(a), GetUnitX(b) - GetUnitX(a))
    endfunction
    
    [/spoil]
     
    Chỉnh sửa cuối: 24/9/12
    Ngoc LeO thích bài này.
  18. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    1.Không phải anh ơi :( em dùng caster với unit type khác cũng không else được,nếu em dùng lệnh elseif như này thì angle nó lúc nào cũng trả ra cả 2,anh có thể xem giúp em ở map demo bên dưới đc ko ?

    http://www.mediafire.com/?93srs8wm53b9u9g



    Mã:
    if GetUnitTypeId(caster) == XANH then
                set data.angle = AngleBetweenPoints(l2,l1)
             elseif GetUnitTypeId(caster) != XANH 
                set data.angle = AngleBetweenPoints(l1,l2)
    endif 
    2.Em muốn biết cách tính angle mà không cần dùng tới lệnh đó vì nó...màu đỏ,mà bảo màu đỏ thì không...mượt @@ nên...
     
    Chỉnh sửa cuối: 25/9/12
  19. Evil_Hunter

    Evil_Hunter Mario & Luigi

    Tham gia ngày:
    18/9/11
    Bài viết:
    786
    Nơi ở:
    Evil Forest
    Ai cho mình biết cách nào để một unit bị slide đến rìa map thì remove?. Nó toàn tới rìa map rồi dính, ... .:|
     
  20. Meepolisk

    Meepolisk Donkey Kong

    Tham gia ngày:
    8/2/08
    Bài viết:
    336
    tạo region gần bằng cái map, rồi khi dummy bay ra khỏi region, remove nó
     

Chia sẻ trang này