ลองดูนะครับ ก็อปสคริปข้างล่างไว้เหนือ main ครับ
Code:
class BulletWindow
  def self.show
    text1 = "Bullet : " + $game_party.item_number(33).to_s
    width = 640
    height = 64
    x = 0
    y = 0
    
    @windowp = Window_Base.new(x, y, width, height)
    @windowp.contents = Bitmap.new(width - 32, height - 32)
    @windowp.contents.draw_text(x, y, width - 32, height - 32, text1)
    
    end
  
  def self.update
    @windowp = @windowp.dispose
    text1 = "Bullet : " + $game_party.item_number(33).to_s
    width = 640
    height = 64
    x = 0
    y = 0
    
    @windowp = Window_Base.new(x, y, width, height)
    @windowp.contents = Bitmap.new(width - 32, height - 32)
    @windowp.contents.draw_text(x, y, width - 32, height - 32, text1)
    end
  #-----------------------------------------------------------------------------
  # * Dispose the window
  #-----------------------------------------------------------------------------
  def self.dispose_window
    if @windowp != nil && !@windowp.disposed?
      @windowp = @windowp.dispose
    end
  end
end
วิธีตั้งค่าครับ แก้ในสคริป
ตรง $game_party.item_number(33).to_s  แก้เลข 33 ให้เป็น id ของกระสุนในฐานข้อมูลนะครับ
width คือความกว้างวินโดวส์
height คือความสูงวินโดวส์
x คือตำแหน่งวินโดวส์แนวนอน ยิ่งมากยิ่งไปขวา
y คือตำแหน่งวินโดวส์แนวตั้ง ยิ่งมาก ยิ่งลงล่าง
ถ้าอยากให้วินโดวส์เล็กแค่ไหน หรืออยู่ตำแหน่งไหน ก็ลองจัดดูนะครับ ตำแหน่งใน screen shot น่าจะประมาณ x=64 y=64 รึเปล่า
วิธีใช้สคริปคับ
เริ่มเกมมา ให้เรียก BulletWindow.show ครั้งเดียวคับ
เวลาเพิ่มหรือลดไอเทมกระสุนทุกครั้ง ให้เรียก BulletWindow.update ครับ
(เช่นเวลาได้ไอเทมจากหีบ หรือเรายิงปืนออกไป)
ผมลืมบอกไป ถ้ามีปืนหลายชนิด ต้องใช้ตัวแปรสำหรับเก็บจำนวนกระสุนปืน... สมมติว่าผมใช้ตัวแปรที่ 19 สำหรับเก็บจำนวนกระสุนปืนก็แล้วกันนะ ทุกครั้งที่เพิ่ม/ลดไอเทมกระสุน ให้ใช้คำสั่งเปลี่ยนค่าตัวแปร 19 ให้เท่ากับจำนวนกระสุนปืน ณ ปัจจุบันด้วย
ทีนี้ เวลายิงปืนหรือได้รับกระสุนปืนเพิ่ม ให้เช็คด้วยว่าตอนนี้ตัวละครกำลัง equip ปืนอะไรอยู่ ให้ใช้คำสั่งเงื่อนไขเช็คเพื่อลดตัวแปรให้ถูกต้องด้วย
ผมเขียน pseudo-code ให้ดูนะ (ตอนนี้ไม่มี RM)
เวลายิงปืนหรือได้รับกระสุนเพิ่มนะคับ
Code:
if ปืนสั้น
    เพิ่มหรือลดกระสุนปืนสั้น
    เปลี่ยนตัวแปร[19] ให้มีค่าเท่ากับจำนวนกระสุนปืนสั้น
    BulletWindow.update
else if ลูกซอง
    เพิ่มหรือลดกระสุนปืนสั้น
    เปลี่ยนตัวแปร[19] ให้มีค่าเท่ากับจำนวนกระสุนปืนลูกซอง
    BulletWindow.update
else if ไรเฟิล
    เพิ่มหรือลดกระสุนปืนสั้น
    เปลี่ยนตัวแปร[19] ให้มีค่าเท่ากับจำนวนกระสุนปืนไรเฟิล
    BulletWindow.update
end
ในสคริป แก้ $game_party.item_number(33).to_s เป็น $game_variables[19] ด้วยครับ