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

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

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. 0978788673

    0978788673 Youtube Master Race

    Tham gia ngày:
    10/1/12
    Bài viết:
    47
    Cho mình hỏi cách làm Trigger có nội dung: Chỉ cho phép Player (mọi Player) mua tối đa 5 Unit nào đó? Khi unit đó chết thì mới dc mua thêm :)
     
  2. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    @thodevil1:

    mình ghi như thế left - hand ví dụ
    Special Effect - Create a special effect attached to the left - hand of (Triggering unit) using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl


    @0978788673:

    Player - Limit training of Footman to 1 for Player 1 (Red)
     
  3. 0978788673

    0978788673 Youtube Master Race

    Tham gia ngày:
    10/1/12
    Bài viết:
    47
    Câu trên t đã mò dc, thì ra nó có hàm riêng
    t muốn hỏi vụ Upgrade nữa :). Ví dụ trong map Chống Cửa bằng chòi, thì Chòi A sẽ có thể Upgrade lên Chòi B, rồi lên Chòi C. Vậy nếu mình muốn giới hạn, chỉ cho phép Player upgrade lên 5 chòi B thì làm như thế nào? Nếu từ Chòi B mà Upgrade lên Chòi C thì lại vẫn nâng cấp 1 Chòi A lên Chòi B dc.
     
  4. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    cũng dùng cái đó, hoạt động tốt cho building upgrade.
     
  5. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Mấy bác cho hỏi, cái Animation giúp unit change hieght ấy ( fly ) dùng integer hàm sin cos gì đó giúp unit bay lên xong tự hạ xuống
     
  6. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    height = A * Sin( x )

    A là độ cao tối đa
    x là góc chạy từ 0 -> 180

    Sin( 0 ) -> Sin( 90 ) -> Sin( 180 ) : 0 -> 1 -> 0
    nhân với A ta được: 0 -> A -> 0

    vậy là unit sẽ bay lên đến độ cao A rồi lại hạ xuống.
    chú ý: một số unit có "default fly height" thì phải cộng thêm số này vào "height" trên.
     
  7. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    cho mình hỏi làm sao để tạo text như vầy.
    [​IMG]
    Vùng khoanh đỏ
     
  8. Sinni

    Sinni Donkey Kong

    Tham gia ngày:
    11/6/11
    Bài viết:
    311
    Nơi ở:
    kw_corp@yh
    cái đó là vài cái tab và enter thui mà :|
    nhìn kỹ thì đâu có canh giữa đâu :-j
    p/s: câu lệnh tab và xuống dòng là gì lun vậy, lâu quá nên ko nhớ nữa :(
     
  9. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    @Dylankyo: nhớ cho vào thẻ spoil, to quá. Xài show text cũng đc, ko thì Sim error, muốn thay đổi vị trí thì thay offset.


    Mình có vài câu hỏi, xin mọi người giúp tí.
    1) libary và scope là gì và dùng ntn vậy ? Nếu có thể mình xin link tut được không ?
    2) Phần Text - Propers name used là số tên mà hero được dùng, vậy khi vào map thì tên này đặt là random hay có quy luật không ?
    3) Nếu mình SetTextTagVelocity, SetTextTagPermanent, SetTextTagLifespan thì text không hiện, như vậy là lỗi hay code nó vậy ?
    [spoil]
    Mã:
        set t = CreateTextTagUnitBJ( "-" + I2S(R2I( GetUnitStateSwap(UNIT_STATE_MAX_MANA, a) * 0.20 )), a, 14.00, 12.00, 25.00, 100.00, 25.00, 10.00 )
        call SetTextTagVelocityBJ( t, 64, 90 )
        call SetTextTagPermanentBJ( t, false )
        call SetTextTagLifespanBJ( t, 4.00 )
    [/spoil]
     
    Chỉnh sửa cuối: 13/1/12
  10. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    @DylandKyo:

    cái đấy là tác dụng của system DisplayCenteredText

    cách sử dụng có thể tạo 1 custom script call DisplayCenteredTextToPlayer (udg_TempPlayer,udg_TempReal,udg_TempString)

    TempPlayer là player cần hiển thị còn TempReal là vị trí Y còn TempString là những gì cần ghi

    Mã:
    library DisplayCenteredText initializer Init requires Table
    
    //*****************************************************************
    //*  DisplayCenteredText
    //*
    //*  written by: Anitarf
    //*
    //*  A set of functions for displaying centered game messages. The
    //*  functions do two things in order to center the message: first,
    //*  they add spaces at the start of the message string so the
    //*  message is "pushed" to the center of the area available for
    //*  game messages, which is about two thirds of the screen; and
    //*  second, they display the message at a certain x offset so the
    //*  above mentioned area gets centered on the screen.
    //*
    //*  The values used were experimentally determined and are only
    //*  approximations, but results are very reliable in practice in
    //*  nearly all game resolution and with almost all input strings.
    //*
    //*  The following functions are available:
    //*
    //*    function GetCenteredMessage takes string line returns string
    //*    function DisplayCenteredTextToPlayer takes player toPlayer, real y, string message returns nothing
    //*    function DisplayTimedCenteredTextToPlayer takes player toPlayer, real y, real duration, string message returns nothing
    //*
    //*  Note that if the string is too long to fit in the available
    //*  area then the game will split it before displaying, centering
    //*  won't work in this case, the solution is to give the functions
    //*  shorter strings to work with.
    //*
    //*****************************************************************
    
        globals
            private constant real DEFAULT_CHAR_WIDTH = 156 //default width for all undefined characters
            private StringTable uppercase
            private StringTable lowercase
        endglobals
    
        private function Init takes nothing returns nothing
            set uppercase = StringTable.create()
            set lowercase = StringTable.create()
    
            // experimentally determined values, in 1/10000 of max message width
            // more info: http://www.wc3campaigns.net/showthread.php?t=90599
            set uppercase["a"]= 206
            set uppercase["b"]= 162
            set uppercase["c"]= 183
            set uppercase["d"]= 193
            set uppercase["e"]= 153
            set uppercase["f"]= 122
            set uppercase["g"]= 204
            set uppercase["h"]= 200
            set uppercase["i"]=  77
            set uppercase["j"]=  80
            set uppercase["k"]= 183
            set uppercase["l"]= 148
            set uppercase["m"]= 264
            set uppercase["n"]= 200
            set uppercase["o"]= 225
            set uppercase["p"]= 156
            set uppercase["q"]= 237
            set uppercase["r"]= 179
            set uppercase["s"]= 156
            set uppercase["t"]= 151
            set uppercase["u"]= 187
            set uppercase["v"]= 183
            set uppercase["w"]= 282
            set uppercase["x"]= 204
            set uppercase["y"]= 179
            set uppercase["z"]= 179
    
            set lowercase["a"]= 151
            set lowercase["b"]= 159
            set lowercase["c"]= 147
            set lowercase["d"]= 162
            set lowercase["e"]= 159
            set lowercase["f"]=  98
            set lowercase["g"]= 176
            set lowercase["h"]= 159
            set lowercase["i"]=  65
            set lowercase["j"]=  77
            set lowercase["k"]= 147
            set lowercase["l"]=  68
            set lowercase["m"]= 227
            set lowercase["n"]= 156
            set lowercase["o"]= 166
            set lowercase["p"]= 162
            set lowercase["q"]= 162
            set lowercase["r"]=  98
            set lowercase["s"]= 126
            set lowercase["t"]= 100
            set lowercase["u"]= 159
            set lowercase["v"]= 159
            set lowercase["w"]= 229
            set lowercase["x"]= 159
            set lowercase["y"]= 159
            set lowercase["z"]= 147
    
            set lowercase["."]=  51
            set lowercase[","]=  55
            set lowercase[" "]=  80
            set lowercase["-"]= 104
        endfunction
    
        function GetCenteredMessage takes string line returns string
            local string char
            local integer i=0
            local real charwidth
            local real totalwidth=0.0
    
            loop //get the approximate width of the string
                set char = SubString(line, i, i+1)
                exitwhen char == ""
                if StringCase(char, false)==char then
                    set charwidth = lowercase[char]
                else
                    set charwidth = uppercase[char]
                endif
                if charwidth == 0.0 then
                    set charwidth = DEFAULT_CHAR_WIDTH
                endif
                set totalwidth=totalwidth+charwidth
                set i = i + 1
            endloop
    
            set i = R2I((5000.0-totalwidth/2)/lowercase[" "]) //number of spaces needed
            set char = ""
            loop
                exitwhen i<=3 //safety margin, better add one space too few than one space too many
                set char=char+" "
                set i=i-1
            endloop
            return char+line
        endfunction
        
        function DisplayCenteredTextToPlayer takes player toPlayer, real y, string message returns nothing
            call DisplayTextToPlayer(toPlayer, 0.25, y, GetCenteredMessage(message))
        endfunction
        function DisplayTimedCenteredTextToPlayer takes player toPlayer, real y, real duration, string message returns nothing
            call DisplayTimedTextToPlayer(toPlayer, 0.25, y, duration, GetCenteredMessage(message))
        endfunction
    
    endlibrary
    
    @lonewolf020291:

    1,library là thư viện nó là hàm của vjass của Vexorian

    cách sử dụng library ví dụ
    Mã:
    library [B]MyBrary[/B] requires AIDS
    function test takes nothing returns nothing
    call DoNothing(  )
    endfunction
    endlibrary
    
    
    MyBrary là tên của thư viện đặt tên để tránh bị cùng 1 thư viện
    requires AIDS để đặt yêu cầu là trong map phải có 1 thư viện có tên là AIDS

    còn scope thì tớ hok bít cách giải thích :|


    2, tên sẽ được cấp với ngẫu nhiên và nếu trùng tên thì sẽ ra tự đặt thứ tự bằng cách I hay II hoặc III nhưng sẽ không bị trùng tên khi các tên hero đã random ra hết
    3, nếu sử dụng jass thì hãy loại bỏ BJ bằng cách
    Mã:
    function test takes unit u, integer i, player p returns nothing
    local texttag tt = CreateTextTag()
    
            call SetTextTagText(tt, (text), 0.024)
            call SetTextTagPos(tt, GetUnitX(u) - 16.0, GetUnitY(u), 0.0)
            call SetTextTagColor(tt, 0, 200, 80, 255)
            call SetTextTagVelocity(tt, 0.0, 0.04)
            call SetTextTagVisibility(tt, GetLocalPlayer()==p)
            call SetTextTagFadepoint(tt, 1.0)
            call SetTextTagLifespan(tt, 2.0)
            call SetTextTagPermanent(tt, false)
    set text = null
    endfunction
    
     
    Chỉnh sửa cuối: 13/1/12
  11. Dragunity

    Dragunity Youtube Master Race

    Tham gia ngày:
    7/10/11
    Bài viết:
    32
    Mấy anh chỉ dùm em cách làm mấy chiêu tăng range, tăng base damage cho hero nha. Thử nhiều cách rùi mà hok có ra.
     
  12. cauxevd

    cauxevd Mr & Ms Pac-Man

    Tham gia ngày:
    22/1/10
    Bài viết:
    176
    Eh men ! điền ô Animation Names thế nào để skill đc cái ani hiện là " Attack - 2 " ? "attack" bình thường thì dễ nhưng thêm số 2 voa thì ?!?
     
  13. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Những cái Animation mà có - số thì ko bao giờ sài đc, ko bao giờ nó ra chuẩn theo mình mún, nó ra ngẫu nhiên
    Cho hỏi có tool nào giúp khóa map, xong nếu bị depro ra thì toàn bộ item unit buff tạo mới ( Custom ) bị del theo luôn, trở về 1 dạng như map melee bt
    Thấy có vài map TQ khi depro ra nó mất sạch hết :D
     
  14. cauxevd

    cauxevd Mr & Ms Pac-Man

    Tham gia ngày:
    22/1/10
    Bài viết:
    176
    Hình như là có cách xài mà ... lão nào bít ko thế ? hizz
    Thế hỏi cái khác dễ hơn: Trog trigger, Lệnh Action thế nào để remove 1 group tên là [a] khỏi game ?
     
  15. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    cái đó tại SLK đó :| chứ đâu ra cái tool đó :| cái công thức của tớ là xdep lành bó tay thôi. còn về vụ đó thì tớ cũng lành bó tay :|
     
  16. Dorae.Mun

    Dorae.Mun Mr & Ms Pac-Man

    Tham gia ngày:
    9/11/11
    Bài viết:
    243
    Nơi ở:
    Thế kỉ 22
    anh nén bằng cái Widgetizer.exe là đk :D
     
  17. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    cho tớ hỏi :-?
    có cách nào sử dụng trigger Special Effect trong GetLocalPlayer mà không bị desync hok :|
     
    Chỉnh sửa cuối: 13/1/12
  18. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
  19. raivor

    raivor Dragon Quest Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    1,411

    Bật Animation một cách chính xác. :-<
    Còn chỉnh trong object thì không có cách nào cả (hoặc có mà mình không biết).
     
  20. cauxevd

    cauxevd Mr & Ms Pac-Man

    Tham gia ngày:
    22/1/10
    Bài viết:
    176
    Buzz !
    Câu này chưa đc help ! Tưởng ai cũng biết cái này ? :-(||>

    ---------- Post added at 15:43 ---------- Previous post was at 14:55 ----------

    Còn nữa ^^
    Các bác biết skill factory của Tinker trong base map ko ? Nó tung ra cái nhà máy để chế tạo ra clorkwek sau mỗi mấy giây...
    Em thay cái model của cái nhà máy thành 1 cái nhà của 1 trong 4 race chính thì nó ra animation đang xây ... Em phải làm thế nào để ra luôn cái nhà ?
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này