| 
 จับเวลาแบบนับไปข้างหน้า - Muge9thD -  08-14-2012
 
 จับเวลาแบบนับไปข้างหน้า
 
 สคริปต์เขียนโดย : thetitsueng
 ลิงค์ต้นฉบับ : Link
 
 
 รายละเอียด :
 ปกติแล้วคำสั่งนับเวลานั้น มีแค่นับถอยหลังเท่านั้น... หากอยากจะจับเวลาแบบวิ่งแข่งทำสถิติล่ะ สคริปต์นี้ช่วยคุณได้!!!!
 
 สกรีนช๊อต :
 ไม่มีน่อ
 
 วิธีการใช้งาน :
 => วิธีใช้ : เอาไปไว้เหนือ Main และใต้ Scene_Debug
 => วิธีตั้งค่า : ถ้าจะจับแบบปกติ(นับถอยหลัง)ก็ใช้อีเว้นควบคุมเวลา:เริ่ม ใส่ตัวเลขที่มากกว่า 0 ลงไป
 ถ้าจะจับแบบ นับไปหน้าเรือยๆ ก็ ใช้อีเว้น ควบคุมเวลา:เริ่ม แล้วใส่เลข 0 ลงไป
 สามารถหยุดเวลาไว้ได้ชั่วคราว โดยการใช้คำสั่ง ควบคุมเวลา:หยุด
 ถ้าใช้คำสั่ง ควบคุมเวลา:หยุด อีกครั้งระหว่างที่กำลังหยุดเวลาชั่วคราวอยู่ จะเป็นการหยุดเวลาแบบปรกติในโปรแกรม(เวลาหายไปเลย)
 ระหว่างการหยุดเวลาชั่วคราวสามารถ จับเวลาไปหน้าหรือถอยหลังต่อจากเก่าได้โดยใช้คำสั่ง ควบคุมเวลา:เริ่ม
 ถ้าใส่ตัวเลขที่มากกว่า 0 ลงไป จะเป็นการนับถอยหลังโดยเริ่มจากตอนที่หยุดไว้
 ถ้าใส่ตัวเลข 0 ลงไป จะเป็นการนับไปหน้าโดยเริ่มจากตอนที่หยุดไว้
 
 ข้อตกลงการนำไปใช้งาน :
 อย่างน้อยๆก็ใส่ชื่อ thetitsueng ลงในเครดิตด้วยล่ะ
 
 
 
 โค๊ดสคริปต์
 
 Code: #:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:# [XP]จับเวลา
 # By thetitsueng
 # ver 1.03 [23/7/2552]
 #--------------------------
 # ประวัติ
 # ver 1.00 by thetitsueng[4/7/2552]
 # ver 1.01 by thetitsueng[11/7/2552]
 #     -เพิ่มการหยุดเวลาชั่วคราว
 # ver 1.02 by thetitsueng[23/7/2552]
 #     -แก้ไขบัค
 #     -เพิ่มเสี้ยววินาที
 # ver 1.03 by thetitsueng[9/10/2552]
 #     -แก้ไขบัค
 #--------------------------
 # http://necz.net
 # [email protected]
 #=====================================================
 =begin
 ------------------------------------------------------
 => วิธีใช้ : เอาไปไว้เหนือ Main และใต้ Scene_Debug
 => วิธีตั้งค่า : ถ้าจะจับแบบปกติ(นับถอยหลัง)ก็ใช้อีเว้นควบคุมเวลา:เริ่ม ใส่ตัวเลขที่มากกว่า 0 ลงไป
 ถ้าจะจับแบบ นับไปหน้าเรือยๆ ก็ ใช้อีเว้น ควบคุมเวลา:เริ่ม แล้วใส่เลข 0 ลงไป
 สามารถหยุดเวลาไว้ได้ชั่วคราว โดยการใช้คำสั่ง ควบคุมเวลา:หยุด
 ถ้าใช้คำสั่ง ควบคุมเวลา:หยุด อีกครั้งระหว่างที่กำลังหยุดเวลาชั่วคราวอยู่ จะเป็นการหยุดเวลาแบบปรกติในโปรแกรม(เวลาหายไปเลย)
 ระหว่างการหยุดเวลาชั่วคราวสามารถ จับเวลาไปหน้าหรือถอยหลังต่อจากเก่าได้โดยใช้คำสั่ง ควบคุมเวลา:เริ่ม
 ถ้าใส่ตัวเลขที่มากกว่า 0 ลงไป จะเป็นการนับถอยหลังโดยเริ่มจากตอนที่หยุดไว้
 ถ้าใส่ตัวเลข 0 ลงไป จะเป็นการนับไปหน้าโดยเริ่มจากตอนที่หยุดไว้
 ------------------------------------------------------
 =end
 #=====================================================
 # *ส่วนการตั้งค่า
 #=====================================================
 module Thetitsueng
 Timecolor = Color.new(0, 0, 0, 255)       #สีอักษร
 Timefontname = "Arial"                    #ฟ้อนท์ของอักษร
 Timefontsize = 32                         #ขนาด
 Timefonttype = 0                          #รูปแบบตัวอักษร,0คือปรกติ,1 คือตัวหนา,2 คือตัวเอียง ,3 คือตัวหนาเอียง
 Time_x = 620                              #ตำแหน่งX (อิงจากมุมบนขวา)
 Time_y = 10                               #ตำแหน่งY
 Time_sec_q = true                         #เสี้ยววินาที (true = เปิด, false =ปิด)
 end
 #=====================================================
 # *จบส่วนการตั้งค่า
 #:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
 class Game_System
 attr_accessor :addt
 attr_accessor :timerstop
 alias initialize_ori_t initialize
 def initialize
 initialize_ori_t
 @addt        = false
 @timerstop   = false
 end
 def update
 if @timer_working
 if @timerstop == false
 if @addt
 if Thetitsueng::Time_sec_q
 @timer += 100
 else
 @timer += 1
 end
 elsif @timer > 0
 if Thetitsueng::Time_sec_q
 @timer -= 100
 else
 @timer -= 1
 end
 end
 end
 end
 end
 end
 class Interpreter
 def command_124
 if @parameters[0] == 0
 if $game_system.timerstop
 if @parameters[1] == 0
 $game_system.timer_working = true
 $game_system.addt = true
 $game_system.timerstop = false
 else
 $game_system.timer_working = true
 $game_system.addt = false
 $game_system.timerstop = false
 end
 else
 if $game_system.timer == 0
 $game_system.timer = @parameters[1] * Graphics.frame_rate
 $game_system.timer *= 100 if Thetitsueng::Time_sec_q
 end
 if @parameters[1] == 0
 $game_system.addt = true
 $game_system.timer_working = true
 $game_system.timerstop = false
 else
 $game_system.addt = false
 $game_system.timer_working = true
 $game_system.timerstop = false
 end
 end
 elsif @parameters[0] == 1
 if $game_system.timerstop
 $game_system.timerstop = false
 $game_system.timer = 0
 $game_system.timer_working = false
 else
 $game_system.timerstop = true
 end
 end
 return true
 end
 end
 class Sprite_Timer < Sprite
 def initialize
 super
 self.bitmap = Bitmap.new(88, 48)
 self.bitmap.font.name = Thetitsueng::Timefontname
 self.bitmap.font.color = Thetitsueng::Timecolor
 self.bitmap.font.size = Thetitsueng::Timefontsize
 case Thetitsueng::Timefonttype
 when 1
 self.bitmap.font.bold = true
 self.bitmap.font.italic = false
 when 2
 self.bitmap.font.bold = false
 self.bitmap.font.italic = true
 when 3
 self.bitmap.font.bold = true
 self.bitmap.font.italic = true
 else
 self.bitmap.font.bold = false
 self.bitmap.font.italic = false
 end
 self.x = Thetitsueng::Time_x - self.bitmap.width
 self.y = Thetitsueng::Time_y
 self.z = 500
 update
 end
 def update
 super
 self.visible = $game_system.timer_working
 if $game_system.timer / Graphics.frame_rate != @total_sec
 self.bitmap.clear
 @total_sec = $game_system.timer / Graphics.frame_rate
 if Thetitsueng::Time_sec_q
 sec_q = @total_sec % 100
 @A = @total_sec / 100
 min = @A / 60
 sec = @A % 60
 else
 min = @total_sec / 60
 sec = @total_sec % 60
 end
 if Thetitsueng::Time_sec_q
 text = sprintf("%02d:%02d:%02d", min, sec, sec_q)
 else
 text = sprintf("%02d:%02d", min, sec)
 end
 self.bitmap.draw_text(self.bitmap.rect, text, 1)
 end
 end
 end
 #:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
 # [XP]จับเวลา
 # By thetitsueng
 #:=:=:=:=:=:=:=:=:=:=:thetitsueng:=:=:=:=:=:=:=:=:=:=:
 
 RE: จับเวลาแบบนับไปข้างหน้า - Tenes -  08-14-2012
 
 นี่แหละสิ่งที่ขาดหายไปใน Rpgmaker /yeah
 
 
 RE: จับเวลาแบบนับไปข้างหน้า - BriKung -  08-14-2012
 
 ขอบคุณมากครับกำลังหาไปใช้อยู่พอดี
 
 
 
 |