++++ Hỏi - Đáp mọi thứ liên quan đến make game(engine, script, event...)++++

Thảo luận trong 'Game Development' bắt đầu bởi ken10, 23/11/06.

  1. Meteor95

    Meteor95 Mario & Luigi

    Tham gia ngày:
    27/4/07
    Bài viết:
    861
    Cái đó lại là 1 lệnh nhỏ trong các lệnh để tạo thành 1 script,các số đó là số x,y ( chiều ngang chiều dọc ) mà nhân vật sẽ move,"WAIT" thì là để nhân vật ở pose "WAIT"
    Còn về demo,có mấy cái animation nè,bạn cứ xem mấy cái script summon sẽ hiểu
    ( phần Summon Odin ấy)http://forum.gamevn.com/showthread.php?t=678314
     
  2. YuGiOh94

    YuGiOh94 Youtube Master Race

    Tham gia ngày:
    21/7/09
    Bài viết:
    34
    Thanks mình đã làm được 1 chút cơ bản...mình hiểu được 1 số cái như START_MAGIC_ANIM: bắt đầu với cái vòng dưới chân...COORD_RESET:là về chỗ cũ...những cái còn lại nhiều và khó hiểu. Bạn có thể chỉ mình những cái còn lại để hỗ trợ cử động chiêu thức được không...
     
  3. YuGiOh94

    YuGiOh94 Youtube Master Race

    Tham gia ngày:
    21/7/09
    Bài viết:
    34
    Mình hỏi 1 chút nữa nếu 1 chiêu mình nhiều hít thì làm thế nào để mỗi hit trong chiêu đều gây dame... mình dùng cái obj_anim rùi nhưng nó lập lại luôn cả chiêu đó với 1 đống hít...loạn cả lên.....
     
  4. Meteor95

    Meteor95 Mario & Luigi

    Tham gia ngày:
    27/4/07
    Bài viết:
    861
    Bạn set animation của Skill đó là None nhá
    Sau đó làm các bước sau,lần trước k chỉ cho bạn kĩ tại lười vào VX quá,sorry bạn nha

    Trong script Summon có dòng này
    "SHIVA_ANIME" => ["m_a", 133, 1, 0, 1000, 0, 0, 0, 2, true,""],
    Trong đó "SHIVA_ANIME" là cái tên mình đặt cho lệnh gọi animation,133 ở đây chính là ID của animation trong phần database

    Vậy bạn hãy tạo 1 lệnh gọi animation của skill nào đó,thậm chí mấy lệnh rồi gọi cũng được,ví dụ "SKILL_ANIME" => ["m_a", 133, 1, 0, 1000, 0, 0, 0, 2, true,""],

    Còn về các lệnh trogn script,thực ra mình cũng chưa biết hết nhưng có 1 số cái có thể chỉ cho bạn
    Afterimage ON:Tạo các cái bóng của mình khi di chuyển,hiệu ứng này rất đẹp
    Vd:[​IMG]
    Bạn có thấy bóng của Chester ( thằng cầm cung) khi xài skill k,hiệu ứng này tương tự thế nhưng phải di chuyền mới có bóng
    WPN_SWING_UNDER:Hiện icon của weapon chỉa xuống dưới gây cảm giác như actor vừa xoay vũ khí của mình xuống dưới vậy
    WPN_RAISED:Hiện icon của vũ khí lên trên
    Số bất kì ( vd 15) :số giây phải chờ để thực hiện tiếp hành động để tránh lỗi vd "START_MAGIC_ANIM","30","OBJ_ANIM" thì 30 giây là thời gian để xem MAGIC_ANIM trước khi Skill gây dam
    OBJ_ANIM_WEIGHT:Gây dam kèm hiệu ứng đẩy lùi
    Can Collapse:Làm cho quái vật có thể die sau khi dính skill và hết máu,nếu k có dòng này ( chưa thử nên chưa biết ) có thể quái có máu là 0 sau khi bị dính 1 skill nhưng sẽ k chết
     
  5. YuGiOh94

    YuGiOh94 Youtube Master Race

    Tham gia ngày:
    21/7/09
    Bài viết:
    34
    Cho mình hỏi cái mình download mấy cái tile về rùi F10 nhập vào rùi mà không biết làm thế nào đưa nó ra map...chỉ có mấy cái tile ABCDE có sẵn thôi...làm thế nào để add thêm vào hả bạn...Có cách nào lấy được các ảnh bình thường bên ngoài vào làm nguyên liệu không bạn...Mình muốn tìm vài cái tile cổ trang trung quốc mà không biết kiếm ở đâu...
     
  6. Meteor95

    Meteor95 Mario & Luigi

    Tham gia ngày:
    27/4/07
    Bài viết:
    861
    Riêng VX thì rất hạn chế về Tileset,1 là bạn thay tile mặc định bằng Tile mới down về = cách đổi tên Tile mới down về thành tên file của Tile mặc định
     
  7. EvilEagles

    EvilEagles Donkey Kong

    Tham gia ngày:
    15/5/06
    Bài viết:
    344
    Nơi ở:
    Hanoi, Vietnam
    Riêng đoạn Tileset cho VX thì nên suy nghĩ và lựa lọc cắt ghép các tài nguyên thật kỹ càng trước khi bắt tay vào làm map :D
     
  8. tomdaica5

    tomdaica5 Donkey Kong

    Tham gia ngày:
    13/5/09
    Bài viết:
    459
    Nơi ở:
    Fantasy world
    Ai giúp tui cái script thay đổi góc nhìn thứ nhất thành góc nhìn thứ 2 đi, trong battle ấy.

    Với thêm là cách làm các animation mà nó full màn hình luôn ai chỉ với
     
  9. voanhhung64

    voanhhung64 Youtube Master Race

    Tham gia ngày:
    6/9/10
    Bài viết:
    6
    Mấy bác cho em hỏi:
    em đang làm game bằng trình vx
    nhưng đang làm thì khi text hoặc xuất xưởng thì nó vẫn ra menu nhưng khi bấm vào new game hay continue thì nó nói "failed to create bitmap" lỗi ở dòng 80 gì đó
    mấy bác có thể chỉ em cách khắc phục ko?
     
  10. burasax

    burasax Youtube Master Race

    Tham gia ngày:
    20/2/09
    Bài viết:
    36
    có bạn nào hướng dẫn mình làm game RPG bằng flash ko ?
     
  11. My Own Way

    My Own Way S.V.E.N Commander

    Tham gia ngày:
    30/7/09
    Bài viết:
    12,221
    Nơi ở:
    Hải Phòng
    Tôi mới vào đây lần thứ nhất nên có gì sai các bác chỉ bảo.. Cho mình hỏi có ai biết nhiều về AMXX Script không ? Cái này là trình để edit lại hiệu ứng,gameplay và nhiều thứ cho game Cs..
     
  12. KaTaKy

    KaTaKy The Warrior of Light

    Tham gia ngày:
    13/7/05
    Bài viết:
    2,121
    Nơi ở:
    Toronto
    Cho mình xin cái script minkoff với , cái SBS gì gì đấy nó dùng sprite nhân vật xấu quá :|
     
  13. BKUS2003

    BKUS2003 C O N T R A

    Tham gia ngày:
    11/6/03
    Bài viết:
    1,625
    Nơi ở:
    ТулГУ, РФ
    Bác nào có cái ebook game maker 6.1 tiếng việt ko? Share cho mình với (MF/MU). Cái thằng ShareFlare khốn nạn bắt mình chờ hơn 2h rồi mà vẫn ko tới lượt down.
     
  14. click_boy

    click_boy Youtube Master Race

    Tham gia ngày:
    21/5/07
    Bài viết:
    78
    Mình mới lấy đc. 1 cái script khá ngon. Large party jì jì đó
    nhưng mà h mới để ý có một lỗi là khi battler bị đánh thì hp vẫn mất nhưng dòng hiển thị hp vẫn giữ nguyên.

    [​IMG]


    Mã:
    # HP/SP/EXP Gauge Script v1.00
    # Distribution original support URL
    # http://members.jcom.home.ne.jp/cogwheel/
    
    #==============================================================================
    # ** Game_Actor
    #------------------------------------------------------------------------------
    #  This class handles the actor. It's used within the Game_Actors class
    #  ($game_actors) and refers to the Game_Party class ($game_party).
    #==============================================================================
    
    class Game_Actor < Game_Battler
      def now_exp
        return @exp - @exp_list[@level]
      end
      def next_exp
        return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
      end
    end
    
    #==============================================================================
    # ** Window_Base
    #------------------------------------------------------------------------------
    #  This class is for all in-game windows.
    #==============================================================================
    
    class Window_Base < Window
      #--------------------------------------------------------------------------
      # * Draw HP Gauge
      #--------------------------------------------------------------------------
      # Modification of the original Draw HP process
      alias :draw_actor_hp_hpsp :draw_actor_hp
      def draw_actor_hp(actor, x, y, width = 144)
        # Determine the rate of fill based on the actor's HP and HP Max
        if actor.maxhp != 0
          rate = actor.hp.to_f / actor.maxhp
        else
          rate = 0
        end
        # plus_x:     revised x-coordinate
        # rate_x:     revised X-coordinate as (%)
        # plus_y:     revised y-coordinate
        # plus_width: revised width
        # rate_width: revised width as (%)
        # height:     Vertical width
        # align1: Type 1 ( 0: left justify  1: center justify 2: right justify )
        # align2: Type 2 ( 0: Upper stuffing 1: Central arranging  2:Lower stuffing )
        # align3: Gauge type 0:Left justify 1: Right justify
        plus_x = 0
        rate_x = 0
        plus_y = 25
        plus_width = 0
        rate_width = 100
        height = 10
        align1 = 1
        align2 = 2
        align3 = 0
        # Gradation settings:  grade1: Empty gauge   grade2:Actual gauge
        # (0:On side gradation   1:Vertically gradation    2: Slantedly gradation)
        grade1 = 1
        grade2 = 0
        # Color setting. color1: Outermost framework, color2: Medium framework
        # color3: Empty framework dark color, color4: Empty framework light/write color
        color1 = Color.new(0, 0, 0, 192)
        color2 = Color.new(255, 255, 192, 192)
        color3 = Color.new(0, 0, 0, 192)
        color4 = Color.new(64, 0, 0, 192)
        # Color setting of gauge
        # Usually color setting of the time    
        color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
        color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
        # Determine the gauge's width & fill based on the actor's HP
        if actor.maxhp != 0
          hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
        else
          hp = 0
        end
        # Drawing of gauge
        gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
                    width, plus_width + width * rate_width / 100,
                    height, hp, align1, align2, align3,
                    color1, color2, color3, color4, color5, color6, grade1, grade2)
        # Call the original Draw HP process
        draw_actor_hp_hpsp(actor, x, y, width)
      end
      #--------------------------------------------------------------------------
      # * Draw SP Gauge
      #--------------------------------------------------------------------------
      # Modification of the original Draw SP process
      alias :draw_actor_sp_hpsp :draw_actor_sp
      def draw_actor_sp(actor, x, y, width = 144)
        # Determine the rate of fill based on the actor's SP and SP Max
        if actor.maxsp != 0
          rate = actor.sp.to_f / actor.maxsp
        else
          rate = 1
        end
        # plus_x:     revised x-coordinate
        # rate_x:     revised X-coordinate as (%)
        # plus_y:     revised y-coordinate
        # plus_width: revised width
        # rate_width: revised width as (%)
        # height:     Vertical width
        # align1: Type 1 ( 0: left justify  1: center justify 2: right justify )
        # align2: Type 2 ( 0: Upper stuffing 1: Central arranging  2:Lower stuffing )
        # align3: Gauge type 0:Left justify 1: Right justify
        plus_x = 0
        rate_x = 0
        plus_y = 25
        plus_width = 0
        rate_width = 100
        height = 10
        align1 = 1
        align2 = 2
        align3 = 0
        # Gradation settings:  grade1: Empty gauge   grade2:Actual gauge
        # (0:On side gradation   1:Vertically gradation    2: Slantedly gradation)
        grade1 = 1
        grade2 = 0
        # Color setting. color1: Outermost framework, color2: Medium framework
        # color3: Empty framework dark color, color4: Empty framework light/write color
        color1 = Color.new(0, 0, 0, 192)
        color2 = Color.new(255, 255, 192, 192)
        color3 = Color.new(0, 0, 0, 192)
        color4 = Color.new(0, 64, 0, 192)
        # Color setting of gauge
        # Usually color setting of the time       
        color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
        color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
        # Determine the gauge's width & fill based on the actor's SP
        if actor.maxsp != 0
          sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
        else
          sp = (width + plus_width) * rate_width / 100
        end
        # Drawing of gauge
        gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
                    width, plus_width + width * rate_width / 100,
                    height, sp, align1, align2, align3,
                    color1, color2, color3, color4, color5, color6, grade1, grade2)
        # Call the original Draw HP process
        draw_actor_sp_hpsp(actor, x, y, width)
      end
      #--------------------------------------------------------------------------
      # * Draw EXP Gauge
      #--------------------------------------------------------------------------
      # Modification of the original Draw HP process
      alias :draw_actor_exp_hpsp :draw_actor_exp
      def draw_actor_exp(actor, x, y, width = 204)
        # Determine the rate of fill based on the actor's EXP and Next EXP
        if actor.next_exp != 0
          rate = actor.now_exp.to_f / actor.next_exp
        else
          rate = 1
        end
        # plus_x:     revised x-coordinate
        # rate_x:     revised X-coordinate as (%)
        # plus_y:     revised y-coordinate
        # plus_width: revised width
        # rate_width: revised width as (%)
        # height:     Vertical width
        # align1: Type 1 ( 0: left justify  1: center justify 2: right justify )
        # align2: Type 2 ( 0: Upper stuffing 1: Central arranging  2:Lower stuffing )
        # align3: Gauge type 0:Left justify 1: Right justify
        plus_x = 0
        rate_x = 0
        plus_y = 25
        plus_width = 0
        rate_width = 100
        height = 10
        align1 = 1
        align2 = 2
        align3 = 0
        # Gradation settings:  grade1: Empty gauge   grade2:Actual gauge
        # (0:On side gradation   1:Vertically gradation    2: Slantedly gradation)
        grade1 = 1
        grade2 = 0
        # Color setting. color1: Outermost framework, color2: Medium framework
        # color3: Empty framework dark color, color4: Empty framework light/write color
        color1 = Color.new(0, 0, 0, 192)
        color2 = Color.new(255, 255, 192, 192)
        color3 = Color.new(0, 0, 0, 192)
        color4 = Color.new(64, 0, 0, 192)
        # Color setting of gauge
        # Usually color setting of the time      
        color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
        color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
        # Determine the gauge's width & fill based on the actor's Next EXP
        if actor.next_exp != 0
          exp = (width + plus_width) * actor.now_exp * rate_width /
                                                              100 / actor.next_exp
        else
          exp = (width + plus_width) * rate_width / 100
        end
        # Drawing of gauge
        gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
                    width, plus_width + width * rate_width / 100,
                    height, exp, align1, align2, align3,
                    color1, color2, color3, color4, color5, color6, grade1, grade2)
        # Call the original Draw EXP process
        draw_actor_exp_hpsp(actor, x, y)
      end
      #--------------------------------------------------------------------------
      # * Drawing of gauge
      #--------------------------------------------------------------------------
      def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
                    color1, color2, color3, color4, color5, color6, grade1, grade2)
        case align1
        when 1
          x += (rect_width - width) / 2
        when 2
          x += rect_width - width
        end
        case align2
        when 1
          y -= height / 2
        when 2
          y -= height
        end
        # Framework Drawing
        self.contents.fill_rect(x, y, width, height, color1)
        self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
        if align3 == 0
          if grade1 == 2
            grade1 = 3
          end
          if grade2 == 2
            grade2 = 3
          end
        end
        if (align3 == 1 and grade1 == 0) or grade1 > 0
          color = color3
          color3 = color4
          color4 = color
        end
        if (align3 == 1 and grade2 == 0) or grade2 > 0
          color = color5
          color5 = color6
          color6 = color
        end
        # Drawing of empty gauge
        self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
                                      color3, color4, grade1)
        if align3 == 1
          x += width - gauge
        end
        #  Drawing of actual gauge
        self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
                                      color5, color6, grade2)
      end
    end
    
    #------------------------------------------------------------------------------
    # New routine added to the Bitmap class. 
    #============================================================================== 
    
    class Bitmap
    #-------------------------------------------------------------------------- 
    # * Rectangle Gradation Indicator
    #   color1: Start color 
    #   color2: Ending color 
    #   align: 0: On side gradation 
    #          1: Vertically gradation 
    #          2: The gradation (intense concerning slantedly heavily note) 
    #-------------------------------------------------------------------------- 
      def gradation_rect(x, y, width, height, color1, color2, align = 0)
        if align == 0
          for i in x...x + width
            red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
            green = color1.green +
                    (color2.green - color1.green) * (i - x) / (width - 1)
            blue  = color1.blue +
                    (color2.blue - color1.blue) * (i - x) / (width - 1)
            alpha = color1.alpha +
                    (color2.alpha - color1.alpha) * (i - x) / (width - 1)
            color = Color.new(red, green, blue, alpha)
            fill_rect(i, y, 1, height, color)
          end
        elsif align == 1
          for i in y...y + height
            red   = color1.red +
                    (color2.red - color1.red) * (i - y) / (height - 1)
            green = color1.green +
                    (color2.green - color1.green) * (i - y) / (height - 1)
            blue  = color1.blue +
                    (color2.blue - color1.blue) * (i - y) / (height - 1)
            alpha = color1.alpha +
                    (color2.alpha - color1.alpha) * (i - y) / (height - 1)
            color = Color.new(red, green, blue, alpha)
            fill_rect(x, i, width, 1, color)
          end
        elsif align == 2
          for i in x...x + width
            for j in y...y + height
              red   = color1.red + (color2.red - color1.red) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              green = color1.green + (color2.green - color1.green) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              blue  = color1.blue + (color2.blue - color1.blue) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              alpha = color1.alpha + (color2.alpha - color1.alpha) *
                      ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              color = Color.new(red, green, blue, alpha)
              set_pixel(i, j, color)
            end
          end
        elsif align == 3
          for i in x...x + width
            for j in y...y + height
              red   = color1.red + (color2.red - color1.red) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              green = color1.green + (color2.green - color1.green) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              blue  = color1.blue + (color2.blue - color1.blue) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              alpha = color1.alpha + (color2.alpha - color1.alpha) *
                    ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
              color = Color.new(red, green, blue, alpha)
              set_pixel(i, j, color)
            end
          end
        end
      end
    end
    Ai khắc phục giùm. Có khả năng là trong script này.
     
  15. Mr.Khoa86

    Mr.Khoa86 Youtube Master Race

    Tham gia ngày:
    26/7/08
    Bài viết:
    51
    Các bạn vui lòng hướng dẫn mình cái góc nhìn 2.5D với, giốn game Nam Quốc Sơn Hà vậy đó! Mình tìm và lục lọi nhiều nơi rồi mà vẫn không thấy! Cảm ơn các bạn nhiều lắm!
     
  16. babysmart

    babysmart Youtube Master Race

    Tham gia ngày:
    23/4/06
    Bài viết:
    1
    Mình cũng đang tìm hiểu về game dev, mình có thắc mắc nho nhỏ mong các bạn giúp đỡ.
    Hiện nay mình muốn tìm hiểu và lập trình game 3d với engine Unreal. Bộ UDK thì mình cũng thử download rồi, thấy nó cung cấp cho mình 1 editor và cho phép viết script cho game và build.Nhưng mình muốn lập trình, viết code chỉ dùng engine Unreal để thể hiện đồ họa, render hình ảnh trong game, còn tất cả những thứ còn lại mình muốn tự mình quản lý, tổ chức dùng Project Visual Studio có được không? (có thể nói nôm na như là dùng Unreal như 1 thư viện trong chương trình)

    MOng các bạn giúp đỡ!
     
  17. goder2910

    goder2910 Donkey Kong

    Tham gia ngày:
    31/3/06
    Bài viết:
    396
    Nơi ở:
    Hồ Chí Minh
    Mình có câu hỏi này rất hot, mong các đại ka giúp đỡ . Khi mình cắt 1 cái animation của 1 cái Custom Spirte, gắn vào tạo animation cho game ok nhưng lại có mấy cái răng cưa của background xung quanh character . Nếu ai biết vấn đề này xin giúp đỡ mình, mình tạo game kiểu dùng animation để tạo hình dáng của Character trong battle.

    [​IMG]

    Hình gốc

    [​IMG]

    Cám ơn các bạn rất nhiều:D
     
    geinus94 thích bài này.
  18. perfectsoul

    perfectsoul Youtube Master Race

    Tham gia ngày:
    19/12/09
    Bài viết:
    24
    Mấy anh có ai rảnh ko? Post giúp em mấy bài hướng dẫn cơ bản của UDK engine được ko? Em có xem mấy trang của nó nhưng tiếng anh nhiều quá em bấn loạn rồi! Mong các anh giúp cho!! Mà theo các anh Source Engine với UDK thì cái nào hơn? Nếu Source tốt hơn thì mấy anh share cho em cái link down được ko? Em xin cảm ơn trước! Đa tạ!! :D
     
  19. goder2910

    goder2910 Donkey Kong

    Tham gia ngày:
    31/3/06
    Bài viết:
    396
    Nơi ở:
    Hồ Chí Minh
    Các đại ka Develop game hiện giờ đã giải nghệ hết rồi, một phần vì các đại ka đó bận nữa,các bạn tốt nhất là tự lên các trang tiếng anh mà tìm tài liệu, chứ post ở đây ko có hiệu quả đâu.
     
  20. zacdve

    zacdve T.E.T.Я.I.S Lão Làng GVN

    Tham gia ngày:
    10/11/08
    Bài viết:
    654
    Cho mình hỏi cách tách sprint nhân vật của mấy game java như thế nào vậy ? Thấy có bác trên làm game POP lấy ra dc thằng hoàng tử
     

Chia sẻ trang này