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

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

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

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

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    4 hay 40 chả liên quan. Ngặt nỗi là tôi làm theo cái tut và nó làm rất tốt (đã test LAN) (Dù cái tut đã 6 năm tuổi =)) ). Thôi thì đây là cái bạn muốn.
    [spoil]
    Mã:
    Init
        Events
            Time - Elapsed game time is 0.00 seconds
        Conditions
        Actions
            Set TempLoc = (Location(0,0))
            Player Group - Pick every player in (All players) and do (Actions)
                Loop - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            ((Picked player) controller) Equal to User
                            ((Picked player) slot status) Equal to Is playing
                        Then - Actions
                            Floating Text - Create floating text that reads <Empty String> at TempLoc with Z offset 12.00, using font size 10.00, color (100.00%, 80.00%, 80.00%), and 0.00% transparency
                            Set Chat_Text[(Player number of (Picked player))] = (Last created floating text)
                            Trigger - Add to Chat <gen> the event (Player - (Picked player) types a chat message containing <Empty String> as A substring)
                            Player Group - Add (Picked player) to Chat_Group
                        Else - Actions
            Customscript: call RemoveLocation( udg_TempLoc)
    Mã:
    Chat
        Events
        Conditions
        Actions
            Set Temp_Int[0] = (Player number of (Triggering player))
            Floating Text - Change text of Chat_Text[Temp_Int[0]] to (Entered chat string) using font size 12.00
    
    Mã:
    Move
        Events
            Time - Every 0.01 seconds of game time
        Conditions
        Actions
            Player Group - Pick every player in Chat_Group and do (Actions)
                Loop - Actions
                    Set Temp_Int[1] = (Player number of (Picked player))
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Chat_Hero[Temp_Int[1]] is alive) Equal to True
                        Then - Actions
                            Floating Text - Change the position of Chat_Text[Temp_Int[1]] to Chat_Hero[Temp_Int[1]] with Z offset 12.00
                        Else - Actions
                            Floating Text - Change text of Chat_Text[Temp_Int[1]] to <Empty String> using font size 12.00
    
    [/spoil]
     

    Các file đính kèm:

    Chỉnh sửa cuối: 26/8/12
  2. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    1. Method: giống như function, tuy nhiên chỉ có thể tạo ra trong struct
    2. Static: Ví dụ cho dễ hiểu nhé!
    Mã:
    struct ViDu
        integer a 
        static integer b
    
        method A takes nothing returns nothing
              //Tiện thể giải thích luôn this là gì:
              //"this" chỉ có thể dùng trong method và method đó [B][U]không được[/U][/B] là static
              set this.a = 100 //từ khóa this ám chỉ chính nó, xem xuống dưới cùng của ví dụ sẽ hiểu rõ hơn
        endmethod
    
        static method B takes nothing returns nothing
              // do something
        endmethod
    endstruct
    
    //từ khóa static thường được sử dụng trong struct, bây h hãy xem những member trong struct nếu có thêm từ khóa static thì sẽ khác ra sao:
    
    function Init takes nothing returns nothing
         ViDu vd = ViDu.create() // khởi tạo 1 biến từ struct vừa định nghĩa, hay còn gọi là 1 phần tử(instance)
         set vd.a = 9 //biến a được khai báo và sử dụng như bình thường
         set vd.b = 7 //xảy ra lỗi, vì được khai báo với từ khóa static nên biến b chỉ có thể được truy cập từ TênStruct.tênbiến, giống như thế này:
         set ViDu.b = 7 //dùng thế này mới đúng
         //Tương tự với 2 method A và B:
    
         call vd.A() //ok, và h thì vd.a sẽ = 100 (xem lại method A)
         call vd.B()  //lại sai
         call ViDu.B() // h thì chuẩn men rồi =))
    
    end function
    
    3. implement: Sẽ giải thích sau khi bạn hiểu được 2 cái trên
    Srr vì cấu cú lủng củng, đang phê =))
     
    Ngoc LeO thích bài này.
  3. _Wild__Wolf_

    _Wild__Wolf_ Youtube Master Race

    Tham gia ngày:
    4/8/11
    Bài viết:
    80
    Làm sao để ko ai có thể điều khiển dc 1 unit. (tức là unit đó vẫn có thể đánh và bị đánh chỉ là không ai điều khiển dc thôi...... )
    2.cho em xin hệ thồng đạn của map battle ship, battle tank.... hay cách tạo ra hệ thống ấy cũng dc.
     
  4. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    - add / remove Locust
    Mã:
    Custom Script: call UnitAddAbility( udg_TempUnit, 'Aloc' )
    Custom Script: call UnitRemoveAbility( udg_TempUnit, 'Aloc' )
    
    - tôi đã từng chơi battle ship và kết luận của tôi là: dùng ability Phoenix Fire (Apxf) với Duration: 0.01

    tốc độ bắn: Cooldown
    damage deal: Initial Damage
     
  5. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Ồ...vậy thì mục đích dùng static để làm gì,sao không dùng function luôn trong struct mà phải dùng tới method ? Như trên ví dụ và cách giải thích của bạn chẳng phải dùng static là làm rắc rối thêm cho việc dùng struct ? :"> ?

    Cám ơn bạn nhiều,bạn có thể giải thích giúp mình những cái còn lại ? :D

    À,tiện cho mình hỏi về constant nữa


    Như này nè:

    Mã:
    Every 1 sc
        Events
            Time - Every 1.00 seconds of game time
        Conditions
        Actions
            Set Group[1] = (Units in (Rect 1))
            Set Group[2] = (Units in (Rect 2))
            Set Group[3] = (Units in (Rect 3))
            Set Group[4] = (Units in (Rect 4))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Number of units in Group[1]) Greater than 0
                    (Number of units in Group[2]) Greater than 0
                    (Number of units in Group[3]) Greater than 0
                    (Number of units in Group[4]) Greater than 0
                Then - Actions
    //Thỏa mãn cả 4 điều kiện trên thì mở
                Else - Actions
    //Không thỏa mãn thì đóng
           call DestroyGroup(udg_Group[1])
           call DestroyGroup(udg_Group[2])
           call DestroyGroup(udg_Group[3])
           call DestroyGroup(udg_Group[4])
    
     
    Chỉnh sửa cuối: 27/8/12
  6. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Vậy thì cứ nhất thiết là phải có 1 unit đứng ở đó rồi khi cả 2 đứng vào mới được ak
    Ý tôi nói là Unit đã vào region 1,2 thì mở cửa
    [Cụ Thể : Hero đi vào 1 cái foot switch thì cái foot switch đó sẽ death và di chuyển hero đã đi vào foot switch 2 rồi mở Gate 0001]
     
  7. conmacabong

    conmacabong Mario & Luigi

    Tham gia ngày:
    30/5/11
    Bài viết:
    833
    Nơi ở:
    Hồ Chí Minh
    Cho em hỏi cái fade filter khi hiện ảnh lên thì nó hiện cho tất cả player luôn à ?:3cool_nosebleed:
    Nếu em muốn làm cho nó chỉ hiện cho 1 player thôi thì có dc ko ?:3cool_nosebleed:
     
  8. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Vẽ 2 cái region,đặt 2 vật dummy lên đó (ở đây là foot switch).

    Mã:
        Events
            Unit - A unit enters Rect 1 <gen>
        Conditions
        Actions
            Unit - Kill (footswitch1)
            Set Boolean = True
            Trigger - Turn off (This trigger)
    
    Mã:
    Melee Initialization
        Events
            Unit - A unit enters Rect 2 <gen>
        Conditions
            Boolean Equal to True
        Actions
            Unit - Kill (footswicht2)
            Destructible - Open Gate
            Trigger - Turn off (This trigger)
    
     
    Chỉnh sửa cuối: 27/8/12
  9. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Nhưng mà nếu unit mà muốn đi region 1 trước xong rồi mới region 2 thì làm thế nào vậy bạn ?
     
  10. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Bạn không thấy cái Boolean sao ? Mặc định khi tạo 1 biến boolean sẽ có giá trị = false

    Khi có Unit vào cái Rect 1 thì sẽ set cái Boolean = true

    Điều kiện khi vào Rect 2 để cửa mở thì Boolean phải = true

    ==> Nếu không vào rect 1 trước để set Boolean = true thì vào rect 2 ko hoạt động (cửa ko mở)

    Hay ý bạn như nào ?
     
    Chỉnh sửa cuối: 27/8/12
  11. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Ý mình là unit muốn vào cái nào trước cũng được VD như unit vào rect 2 rồi vào rect1 vẫn hoạt động (Rect1 - Rect2,Rect2 - Rect1)
    Mình muốn nó vào rect 1 hoặc 2 đều set boolean được
    [==> vào rect 1 để set Boolean = true thì vào rect 2 hoạt động
    Và Ngược Lại
    ==> vào rect 2 để set Boolean = true thì vào rect 1 hoạt động
     
  12. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mình nghĩ bạn diễn tả như thế thì hẳn bạn phải làm được chứ nhỉ. Cái này cũng đơn giản mà :P

    Mã:
    Untitled Trigger 001
        Events
            Unit - A unit enters Rect 1 <gen>
        Conditions
        Actions
            Trigger - Turn off (This trigger)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    Boolean[1] Equal to True
                Then - Actions
                    Unit - Kill (footswitch1)
                    Destructible - Open Gate               
                Else - Actions
                    set Boolean[2] = True
    
    Mã:
    Untitled Trigger 001
        Events
            Unit - A unit enters Rect 2 <gen>
        Conditions
        Actions
            Trigger - Turn off (This trigger)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    Boolean[2] Equal to True
                Then - Actions
                    Unit - Kill (footswitch2)
                    Destructible - Open Gate                
                Else - Actions
                    set Boolean[1] = True
    
     
  13. conmacabong

    conmacabong Mario & Luigi

    Tham gia ngày:
    30/5/11
    Bài viết:
    833
    Nơi ở:
    Hồ Chí Minh
    Cho em hỏi lại vấn đề cực kỳ hóc búa này:2cool_beated:
     
  14. minhtronglam90

    minhtronglam90 Donkey Kong GameOver

    Tham gia ngày:
    5/6/12
    Bài viết:
    422
    các bạn ơi làm sao để khi create dummy dùng trigger bắt dummy di chuyển nếu di chuyển mà có cây cối đứng trước mặt dummy thì kill cây đó thì làm trigger sao vậy mấy bạn
     
  15. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mã:
    Destructible - Pick every destructible within 256.00 of (Target point of ability being cast) and do (Actions)
        Loop - Actions
            Destructible - Kill (Picked destructible)
    
     
  16. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    1 số unit bay khi di chuyển nó ko đứng thẳng mà nghiêng người theo hướng di chuyển. Giờ muốn nó ko nghiêng mà cứ đứng thẳng khi di chuyển thì làm thế nào? (ko liên quan đến vấn đề về model nhé)
     
  17. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    làm gì có vụ này nhỉ?
    chỉ có vụ di chuyển vào chỗ đất nghiêng (dốc chẳng hạn) thì unit sẽ nghiêng theo thôi, cái này thì đặt: Art - Maximum Pitch/Roll Angle của unit thành 0.00 là ok
     
  18. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Vậy thay đổi câu hỏi 1 chút : những unit movement là Foot, khi chuyển thành Fly đồng thời tăng độ cao thì nó bị nghiêng người lúc di chuyển. Lý do gì mà nó bị như vậy?

    Edit : à, hóa ra lý do cũng là cái bên trên ^^!
     
    Chỉnh sửa cuối: 28/8/12
  19. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Cho mình hỏi, mình có 1 model, model ấy có 1 animation, vd là stand 2 chẳng hạn, khi unit play animation ấy (ko phải mình play nhé) thì lúc kết thúc animation nó liền bị "khựng" lại (giống như khi set animation speed = 0.00 ấy). Vậy lý do là vì sao, và cách khắc phục ntn?
     
  20. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Ý bạn là bạn play animation bằng trigger đúng không ? Nếu đúng là thế thì :
    Lý do là nó chỉ thực hiện đúng theo yêu cầu của mình,vì animation chỉ chạy 1 lần thôi xong rồi nó sẽ ngắt lại.Khắc phục thì every time - (Số Time Chạy animation stand 2 đó),Action thì play animation - stand.
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này