จับเวลาแบบนับไปข้างหน้า - 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
 
 
ขอบคุณมากครับกำลังหาไปใช้อยู่พอดี
 
 
 
 |