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

  • Thread starter Thread starter ken10
  • Ngày gửi Ngày gửi
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
 
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...
 
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.....
 
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:
tales-of-phantasia-full-voice-edition-20060912064345928_640w.jpg

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
 
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...
 
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
 
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
 
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
 
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?
 
có bạn nào hướng dẫn mình làm game RPG bằng flash ko ?
 
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..
 
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á :|
 
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.
 
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.

hperror.jpg



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.
 
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!
 
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 đỡ!
 
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.

RangCua.jpg


Hình gốc

Ishida.png


Cám ơn các bạn rất nhiều:D
 
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
 
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.
 
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ử
 
Back
Top