ลองดูนะครับ ก็อปสคริปข้างล่างไว้เหนือ 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] ด้วยครับ