สอนใส่สคริปหน่อยครับ - Printable Version +- irpg Community (https://irpg.in.th) +-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html) +--- Forum: RPG Maker Engine School (https://irpg.in.th/forum-7.html) +--- Thread: สอนใส่สคริปหน่อยครับ (/thread-711.html) |
สอนใส่สคริปหน่อยครับ - rxzeroyelko - 10-29-2012 เป็นสคริป ระบบเวลาในเกมส์ ดังนี้ #Basic Game Time + Night/Day #----------# #Features: Provides a series of functions to set and recall current game time # as well customizable tints based on current game time to give the # appearance of night and day. # #Usage: Script calls: # GameTime::minute? - returns the current minute # GameTime::hour? - returns the current hour # GameTime:et(time) - sets the game time to time, in frames (max:1440) # GameTime::change(time) - increments the game time! (can be negative) # GameTime::pause_time(set) - stops time for events and stuff, true or false # GameTime::pause_tint(set) - time runs, but tints do not update # GameTime::clock(set) - sets whether clock is visible or not # #Customization: Set below, in comments. # #Examples: GameTime:et(360) # #----------# #-- Script by: V.M of D.T #--- Free to use in any project with credit given #---Game Clock---# #USE_CLOCK to true to display game time clock #CLOCK_POSITION for position of clock # 1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright #CLOCK_TOGGLE is any input button available, see the INPUT help file for options #------# USE_CLOCK = true CLOCK_POSITION = 4 CLOCK_TOGGLE = :SHIFT module GameTime #---Game Time Details---# #Number of frames in a game minute, 60 frames = 1 second TIME_COUNT = 60 #Sets whether to tint screen based on game time USE_TINT = true #True to pause time while not in map or while during a message PAUSE_IN_COMBAT = false PAUSE_NOT_IN_MAP = true PAUSE_IN_MESSAGE = true #Sets time frames of tints by minute count, one day is 1440 minutes # 0 = 12am, 360 = 6am, 720 = 12pm, 1080 = 6pm etc... PRESUNRISE_TIME = 240 SUNRISE_TIME = 360 NOONSTART_TIME = 660 NOONEND_TIME = 900 PRESUNSET_TIME = 1080 SUNSET_TIME = 1260 MIDNIGHT_TIME = 60 #Must be greater than 0 #Sets custome tints PRESUNRISE_TONE = Tone.new(-75,-75,0,50) SUNRISE_TONE = Tone.new(0,0,0,0) NOONSTART_TONE = Tone.new(45,45,0,-25) NOONEND_TONE = Tone.new(0,0,0,0) PRESUNSET_TONE = Tone.new(-50,-50,0,25) SUNSET_TONE = Tone.new(-75,-100,0,75) MIDNIGHT_TONE = Tone.new(-125,-125,0,125) #Include the ids of any maps not to be tinted based on time # Usually reserved for indoor maps NOTINTMAPS = [2] #---END---# def self.init $game_time = 0 $game_time_pause_time = false $game_time_pause_tint = false end def self.update if $game_time_pause_time then return else end case SceneManager:cene_is?(Scene_Map) when true if $game_message.visible == true && PAUSE_IN_MESSAGE then else $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end when false if !PAUSE_NOT_IN_MAP and !SceneManager:cene_is?(Scene_Battle) $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end if SceneManager:cene_is?(Scene_Battle) && PAUSE_IN_COMBAT != true $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end end if $game_time == 1440 then $game_time = 0 end GameTime::tint if $game_time_pause_tint != true end def self.hour? return $game_time / 60 end def self.minute? return $game_time % 60 end def self.time? meri = "AM" hour = GameTime::hour? minute = GameTime::minute? if hour > 11 then meri = "PM" end if hour == 0 then hour = 12; meri = "AM" end if hour > 12 then hour -= 12 end if hour < 10 then hour = " " + hour.to_s else hour.to_s end if minute < 10 then minute = "0" + minute.to_s else minute.to_s end return hour.to_s + ":" + minute.to_s + " " + meri end def self.set(number) $game_time = number if number < 1440 GameTime::tint(0) end def self.change(number) $game_time += number $game_time -= 1440 if $game_time > 1440 $game_time += 1440 if $game_time < 0 GameTime::tint(0) end def self.tint(tint = 60) if USE_TINT != true then return end for i in NOTINTMAPS if $game_map.map_id == i $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0) return end end if SceneManager:cene_is?(Scene_Map) then else return end case $game_time when PRESUNRISE_TIME .. SUNRISE_TIME $game_map.screen.start_tone_change(PRESUNRISE_TONE, tint) when SUNRISE_TIME .. NOONSTART_TIME $game_map.screen.start_tone_change(SUNRISE_TONE, tint) when NOONSTART_TIME .. NOONEND_TIME $game_map.screen.start_tone_change(NOONSTART_TONE, tint) when NOONEND_TIME .. PRESUNSET_TIME $game_map.screen.start_tone_change(NOONEND_TONE, tint) when PRESUNSET_TIME .. SUNSET_TIME $game_map.screen.start_tone_change(PRESUNSET_TONE, tint) when SUNSET_TIME .. 1440 $game_map.screen.start_tone_change(SUNSET_TONE, tint) when 0 .. MIDNIGHT_TIME $game_map.screen.start_tone_change(SUNSET_TONE, tint) when MIDNIGHT_TIME .. PRESUNRISE_TIME $game_map.screen.start_tone_change(MIDNIGHT_TONE, tint) end end def self.pause_time(set) $game_time_pause_time = set end def self.pause_tint(set) $game_time_pause_tint = set end def self.clock(set) SceneManager.scene.clock_visible?(set) end class Window_Clock < Window_Base def initialize case CLOCK_POSITION when 1 super(0,0,115,56) when 2 super(429,0,115,56) when 3 super(0,360,115,56) when 4 super(429,360,115,56) end self.visible = $game_time_clock_visibility unless $game_time_clock_visibility.nil? end def update self.contents.clear self.contents.draw_text(0,0,100,24,GameTime::time?) $game_time_clock_visibility = self.visible end end end module DataManager class << self alias gametime_msc make_save_contents alias gametime_esc extract_save_contents end def self.make_save_contents contents = gametime_msc contents[:gametime] = $game_time contents end def self.extract_save_contents(contents) gametime_esc(contents) $game_time = contents[:gametime] end end class Scene_Map < Scene_Base alias gametime_post_transfer post_transfer alias gametime_create_all_windows create_all_windows alias gametime_update_map update def post_transfer GameTime::tint(0) gametime_post_transfer end def create_all_windows gametime_create_all_windows @gametimeclock = GameTime::Window_Clock.new if USE_CLOCK end def update gametime_update_map @gametimeclock.update if @gametimeclock.nil? == false if Input.trigger?(CLOCK_TOGGLE) and @gametimeclock.nil? == false @gametimeclock.visible ? @gametimeclock.visible = false : @gametimeclock.visible = true end end def clock_visible?(set) @gametimeclock.visible = set end end class Scene_Base alias gametime_update update def update gametime_update GameTime::update end end GameTime::init ขอบคุณครับ[/quote] RE: สอนใส่สคริปหน่อยครับ - Nivas - 10-29-2012 ใส่ที่ว่านี่คือ ใส่ลงไปในเกมสินะครับ เคยลองแตะโปรแกรมไหมครับเนี่ย ปกติมันต้องศึกษาโปรแกรมก่อนว่าทำอะไรได้ไม่ใช่เรอะ รู้สึกอันนี้จะเบสิคๆไม่ใช่เหรอ ถ้าผมเข้าใจถูกน่ะนะ ถ้าแบบนั้นผมขอไม่ตอบแล้วกัน อย่าหาว่าใจร้าย แต่ผมอยากให้ลอง ศึกษาพื้นฐานของโปรแกรมสักนิดน่ะ ว่ามันทำอะไรยังไง ลองกดๆดูโปรแกรมมันไม่น่าเจ๊งหรอกมั้งฮะ = = RE: สอนใส่สคริปหน่อยครับ - Nazuth - 10-29-2012 อย่างที่นิวาสว่าแหละสิ่งสำคัญที่สุดของการทำเกมคือพึ่งตัวเองให้มากที่สุดเมื่อมีอะไรที่ไม่ไหวจริงๆถึงจะมาขอความช่วยเหลือกรณีนี้ขอแนะนำให้ไปศึกษาพื้นฐานการใชโปรแกรมจากE-bookอันนี้ก่อนถึงจะเป็นของxpแต่พื้นฐานก็เหมือนกัน http://community.thaiware.com/index.php/topic/357283-e-book-rpg-maker-xp-bible/ RE: สอนใส่สคริปหน่อยครับ - Shinryu - 10-30-2012 แตะๆไม่เจ๊ง แต่เผลอไปลบสคริปในโซนสคริปนี่มีเจ๊ง 55+ วิธีใส่กดที่ จัดการสคริปต์(F11) ที่เมนูด้านบน เปลื่อนแทปทางซ้ายไปล่างสุด ให้คลิกขวาที่ส่วนว่างๆ(เหนือสคริป main) แล้วเลือก แทรก(Insert) เพื่อสร้างหน้าใหม่ เอาสคริปที่หามาได้ใส่ลงไป แล้วลองทดสอบรันดู RE: สอนใส่สคริปหน่อยครับ - gol-a-khung - 10-30-2012 นานๆ จะแวะเข้ามาดู อันตัวผมเองไม่ได้ใช้โปรแกรมนี้ครับ แต่เข้ามาดูสคิป จะบอกว่าสคิปนี้ยาวได้ใจจริงๆ แต่ก็ได้ความรู้ในการเขียนไปอีกแบบ การเซทค่าเวลากำหนดกลางวันกลางคืนและการตรวจเช็คค่า ผมมันสาวก GM รูปแบบการเขียนคลาย ภาษา C เลยไม่ค่อยเข้าใจรูปแบบการเขียนสคิปแบบนี้ แต่ก็เอาใจช่วยนะครับ ผมก็มือใหม่เช่นกัน RE: สอนใส่สคริปหน่อยครับ - rxzeroyelko - 10-30-2012 เอิ่ม ลองใส่แล้วล่ะ มัน เอ๋อเหรอ น่ะ ไม่เป็นไร ถ้าใจร้าย ก็ช่างมันแระกัน จนปัญญาแล้ว T^T เราขอแค่วิธีใส่เอง แต่ถ้าเทศกลับมา เราก็ไม่ขอให้ใครช่วยล่ะ บาย (10-29-2012, 08:58 PM)natsukikung Wrote: อย่างที่นิวาสว่าแหละสิ่งสำคัญที่สุดของการทำเกมคือพึ่งตัวเองให้มากที่สุดเมื่อมีอะไรที่ไม่ไหวจริงๆถึงจะมาขอความช่วยเหลือกรณีนี้ขอแนะนำให้ไปศึกษาพื้นฐานการใชโปรแกรมจากE-bookอันนี้ก่อนถึงจะเป็นของxpแต่พื้นฐานก็เหมือนกัน ลิงก์นี้ part 2 ใช้ไม่ได้ RE: สอนใส่สคริปหน่อยครับ - Shinryu - 10-30-2012 ตอบไปตั้งแต่เรปที่4 หรือถ้าไม่มีรุปจะทำไม่ได้ละเนี่ย RE: สอนใส่สคริปหน่อยครับ - rxzeroyelko - 11-01-2012 แต๊งกิ้วสำหรับเม้นบนเน่อ T^T อ่อ รู้แระ ทำไมถึงใช้ไม่ได้ เราใส่ผิดที่นี่เอง(เมาเนื้อ) T^T |