Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # ALUMNEA MAGIC ACADEMY - DAY NITE SYSTEM ~
- # REQUIRE : N/A
- # AUTHOR : TheoAllen
- # =============================================================================
- $imported = {} if $imported.nil?
- $imported[:AMA_DNS] = true
- # =============================================================================
- =begin
- Seperti namanya. Script ini ngebikin sistem siang malem. Cuman dalam interior
- ntar otomatis jadi terang.
- Note :
- - Segala hal soal kompatibilitas, error, kerusakan edit, keterbatasan
- configurasi, dan semacamnya, ditanggung oleh pengguna script.
- - Kamu boleh menredistribusi dengan versi editanmu sendiri. Cuman jangan lupa
- untuk tetep credit gw. "TheoAllen"
- =end
- # =============================================================================
- # ♫ Module AMA ~ ♫
- # =============================================================================
- module AMA
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # Non-scripter Configuration
- # Konfigurasi buat non-skripter
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- module DNS
- # ====== Starting Hour =====
- HOUR_START = 7
- # ====== Interval =======
- # angka-angka disini representasi dari detik / jam
- # semisal u tulis 3, berarti tiap 3 detik = 1 jam dalam game
- # tulis 0 buat disable ~
- WORLDMAP = 2
- FIELD = 60
- INTERIOR = 60
- ELSE = 60
- # ====== Tint Screen =====
- # Sama kek tint screennya RPG Maker
- # Formatnya (red,green,blue,gray)
- DAWN = Tone.new(30,0,-34,0)
- NOON = Tone.new(0,0,0,0)
- DUSK = Tone.new(68,-34,-34,0)
- NITE = Tone.new(-68,-68,0,68)
- # ====== Wait Window =====
- WAIT_TEXT = "Wait :" # Kata2 pada wait window
- WAIT_TRIGGER = :CTRL # Button buat panggil wait scene
- WAIT_CONFIRM = :ALT # Button buat confirm wait
- WAIT_X = 0 # Letak x wait window
- WAIT_Y = 0 # Letak y wait window
- WAIT_WIDTH = Graphics.width # Lebar window
- # ====== Debug Purposes =====
- DISABLE = true # Buat ngedisable dns
- DNS_WINDOW = true # Nampilin dns debug window
- # ====== End =========
- end
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # End of Configuration
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- =begin
- Panggil :
- AMA.dns_stop >> untuk menghentikan perhitungan DNS
- AMA.dns_play >> untuk menjalankan perhitungan DNS
- AMA.dns_stopped? >> untuk ngecek lagi distop ato kaga
- Bagian sini g perlu diedit :v
- =end
- # ---------------------------------------------------------
- def self.dns_stop
- $game_system.dns_stop
- end
- def self.dns_play
- $game_system.dns_play
- end
- def self.dns_stopped?
- $game_system.dns_stopped?
- end
- # ---------------------------------------------------------
- =begin
- Untuk ngecek kondisi siang sore ato malem. Panggil :
- AMA.dns_dawn? >> Pagi / subuh
- AMA.dns_noon? >> Siang
- AMA.dns_dusk? >> Sore
- AMA.dns_nite? >> Malem
- return type : boolean (true/false)
- Paduan edit :
- - hour >= 5 && hour <= 7 >> Artinya, itu antara jam 5 - 7
- =end
- # ---------------------------------------------------------
- def self.dns_dawn?
- hour = $game_system.hours
- return hour >= 5 && hour <= 7
- end
- def self.dns_noon?
- hour = $game_system.hours
- return hour > 7 && hour < 15
- end
- def self.dns_dusk?
- hour = $game_system.hours
- return hour > 16 && hour <= 19
- end
- def self.dns_nite?
- hour = $game_system.hours
- return hour > 19 || hour < 5
- end
- # ---------------------------------------------------------
- end
- # ==========================================
- # Ini window cuman buat test doank (Bisa diilangin)
- # ==========================================
- class Window_DNS < Window_Base
- def initialize(x,y,width,height)
- super(x,y,width,height)
- refresh
- end
- def update
- super
- refresh
- end
- def refresh
- text1 = $game_system.hours
- text2 = $game_system.playtime
- contents.clear
- draw_text(0,0,contents.width,line_height,text1)
- draw_text(0,0,contents.width,line_height,text2,2)
- end
- end
- # =============================================================================
- # ♫ Game System. Segala hal soal DNS ada disini
- # =============================================================================
- class Game_System
- #--------------------------------------------------------------------------
- # ♫ Inisialisasi
- #--------------------------------------------------------------------------
- alias dns_init initialize
- def initialize
- dns_init
- @stop = false
- @count = 0.0
- @start_hour = AMA::DNS::HOUR_START
- @hours = 0
- end
- #--------------------------------------------------------------------------
- # ♫ Update peritungan DNS
- # interval = cepat lambatnya
- # interval = 0 >> disable ~
- #--------------------------------------------------------------------------
- def update_dns(interval)
- return if @stop || interval == 0
- @count += 1 * (1.0/interval)
- if @count >= Graphics.frame_rate
- update_hour
- end
- end
- #--------------------------------------------------------------------------
- # ♫ Penambahan variable jam
- #--------------------------------------------------------------------------
- def update_hour
- @hours += 1
- @count = 0.0
- end
- #--------------------------------------------------------------------------
- # ♫ Bagian sini untuk ngambil itungan normal
- # - Jam ga mungkin lebih dari 24
- # - Hari ga lebih dari 31
- #--------------------------------------------------------------------------
- def hours
- (@start_hour + dns_hours) % 24
- end
- def days
- dns_days % 31
- end
- #--------------------------------------------------------------------------
- # ♫ DNS TIME COUNT ~
- # Bagian sini buat nyatet perhitungan overall time
- #--------------------------------------------------------------------------
- def dns_hours
- @hours
- end
- def hours=(hours)
- @hours = hours
- end
- def dns_days
- dns_hours / 24
- end
- #--------------------------------------------------------------------------
- # ♫ Play and Stop DNS
- #--------------------------------------------------------------------------
- def dns_stopped?
- @stop
- end
- def dns_play
- @stop = false
- end
- def dns_stop
- @stop = true
- end
- #--------------------------------------------------------------------------
- # ♫ End ~
- #--------------------------------------------------------------------------
- end
- # =============================================================================
- # ♫ Game System. Segala hal soal DNS ada disini
- # =============================================================================
- class Scene_Map < Scene_Base
- #--------------------------------------------------------------------------
- # ♫ Starting the event
- #--------------------------------------------------------------------------
- alias dns start
- def start
- dns
- create_dns_window if AMA::DNS::DNS_WINDOW
- end
- #--------------------------------------------------------------------------
- # ♫ Screen ~
- #--------------------------------------------------------------------------
- def screen
- $game_map.screen
- end
- #--------------------------------------------------------------------------
- # ♫ Tileset ~
- #--------------------------------------------------------------------------
- def tileset
- $game_map.tileset
- end
- #--------------------------------------------------------------------------
- # Ini windows cuman buat test doank
- #--------------------------------------------------------------------------
- def create_dns_window
- @dns_window = Window_DNS.new(0,0,Graphics.width,48)
- @dns_window.viewport = @viewport
- end
- #--------------------------------------------------------------------------
- # ♫ hash yg isinya keadaan-keadaan
- #--------------------------------------------------------------------------
- def dns_hash
- hash = {
- :DAWN => AMA.dns_dawn?,
- :NOON => AMA.dns_noon?,
- :DUSK => AMA.dns_dusk?,
- :NITE => AMA.dns_nite?,
- }
- return hash
- end
- #--------------------------------------------------------------------------
- # ♫ Nyisipin DNS ke update per frame ~
- #--------------------------------------------------------------------------
- alias dns_update update
- def update
- dns_update
- return if AMA::DNS::DISABLE
- update_dns_count(determine_interval_count)
- update_time_tone if tone_changeable?
- end
- #--------------------------------------------------------------------------
- # ♫ perhitungan DNS
- #--------------------------------------------------------------------------
- def update_dns_count(interval)
- return if scene_changing?
- $game_system.update_dns(interval)
- end
- #--------------------------------------------------------------------------
- # ♫ Penentuan interval berdasar tileset
- # (Tambahin ndiri kalo perlu)
- #--------------------------------------------------------------------------
- def determine_interval_count
- case tileset.id
- when 1
- return AMA::DNS::WORLDMAP
- when 2
- return AMA::DNS::FIELD
- when 3
- return AMA::DNS::INTERIOR
- else
- return AMA::DNS::ELSE
- end
- end
- #--------------------------------------------------------------------------
- # ♫ Ngeganti tint screen
- #--------------------------------------------------------------------------
- def update_time_tone
- screen.start_tone_change(get_time_tone, 60)
- end
- #--------------------------------------------------------------------------
- # ♫ Ngambil / nentuin tint screen
- #--------------------------------------------------------------------------
- def get_time_tone
- case dns_hash.index(true)
- when :DAWN
- return AMA::DNS::DAWN
- when :NOON
- return AMA::DNS::NOON
- when :DUSK
- return AMA::DNS::DUSK
- when :NITE
- return AMA::DNS::NITE
- else
- return Tone.new
- end
- end
- #--------------------------------------------------------------------------
- # ♫ Nentuin kalo bisa diganti apa kaga
- #--------------------------------------------------------------------------
- def tone_changeable?
- return false if AMA.dns_stopped? || interior?
- return screen.tone != get_time_tone
- end
- #--------------------------------------------------------------------------
- # ♫ Lagi di interior ga?
- #--------------------------------------------------------------------------
- def interior?
- tileset.id == 3
- end
- #--------------------------------------------------------------------------
- # ♫ Ngeganti tint screen kalo masuk rumah
- #--------------------------------------------------------------------------
- alias dns_post_transfer post_transfer
- def post_transfer
- if interior?
- screen.start_tone_change(Tone.new,1)
- else
- screen.start_tone_change(get_time_tone, 1) unless AMA.dns_stopped?
- end
- dns_post_transfer
- end
- #--------------------------------------------------------------------------
- # ♫ Nambahin pergantian scene
- #--------------------------------------------------------------------------
- alias dns_update_scene update_scene
- def update_scene
- dns_update_scene
- update_wait_scene unless scene_changing?
- end
- #--------------------------------------------------------------------------
- # ♫ Manggil Scene_Wait
- #--------------------------------------------------------------------------
- def update_wait_scene
- if Input.trigger?(AMA::DNS::WAIT_TRIGGER)
- SceneManager.call(Scene_Wait)
- end
- end
- #--------------------------------------------------------------------------
- # ♫ End ~
- #--------------------------------------------------------------------------
- end
- # =============================================================================
- # ♫ Window_Wait >> Nampilin perhitungan wait
- # =============================================================================
- class Window_Wait < Window_Base
- attr_accessor :nominal
- #--------------------------------------------------------------------------
- # Inisialisasi ~
- #--------------------------------------------------------------------------
- def initialize(x,y,width)
- super(x,y,width,line_height*2)
- @nominal = 0
- refresh
- end
- #--------------------------------------------------------------------------
- # ♫ Refresh perhitungan
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- text = sprintf("x 0%d",nominal)
- text2 = AMA::DNS::WAIT_TEXT
- draw_text(0,0,contents.width,line_height,text,2)
- draw_text(0,0,contents.width,line_height,text2)
- end
- #--------------------------------------------------------------------------
- # ♫ End ~
- #--------------------------------------------------------------------------
- end
- # =============================================================================
- # ♫ Scene_Wait >> Scene kontroler buat fitur wait
- # =============================================================================
- class Scene_Wait < Scene_MenuBase
- #--------------------------------------------------------------------------
- # ♫ Pemulaian scene
- #--------------------------------------------------------------------------
- def start
- super
- create_wait_window
- end
- #--------------------------------------------------------------------------
- # ♫ Bikin object window_wait
- #--------------------------------------------------------------------------
- def create_wait_window
- wx = AMA::DNS::WAIT_X
- wy = AMA::DNS::WAIT_Y
- ww = AMA::DNS::WAIT_WIDTH
- @window_wait = Window_Wait.new(wx,wy,ww)
- @window_wait.viewport = @viewport
- end
- #--------------------------------------------------------------------------
- # ♫ Ngambil object game system
- #--------------------------------------------------------------------------
- def system
- $game_system
- end
- #--------------------------------------------------------------------------
- # ♫ Update per frame ~
- #--------------------------------------------------------------------------
- def update
- super
- if Input.repeat?(:RIGHT)
- @window_wait.nominal += 1
- @window_wait.refresh
- elsif Input.repeat?(:LEFT)
- @window_wait.nominal -= 1
- @window_wait.refresh
- elsif Input.trigger?(:ALT)
- system.hours += @window_wait.nominal
- SceneManager.return
- elsif Input.trigger?(:B)
- SceneManager.return
- end
- end
- #--------------------------------------------------------------------------
- # ♫ End ~
- #--------------------------------------------------------------------------
- end
- # =============================================================================
- #
- # ♫ End of Script ♫
- #
- # =============================================================================
Advertisement
Add Comment
Please, Sign In to add comment