Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Sob 16 Kwi, 2011 23:25
Jasno, Ciemno
Autor Wiadomość
filipek32 




Preferowany:
RPG Maker VX

Dołączył: 16 Kwi 2011
Posty: 76
Skąd: Z tąd
  Wysłany: Sob 16 Kwi, 2011 19:26
Jasno, Ciemno
Witam, mam znowu maly problem, poniewaz nie jestem profesjonalistą RPG Makera VX, więc jak zrobic żeby bylo troche ciemniej? a nie tak jasno..Np. Robie las i jak do niego wchodze to chce zeby bylo mhmm 3/5% ciemniej.
Prosze o szybką odpowiedz:))
 
 
onimush3 




Preferowany:
RPG Maker VX

Pomógł: 14 razy
Dołączył: 26 Paź 2010
Posty: 164
Wysłany: Sob 16 Kwi, 2011 19:50
polecam użycie ci skryptu o nazwie Noc i dzień. Jest rewelacyjnym rozwiązaniem w takich wypadkach. Prosty w obsłudze i możesz w tedy na każdej mapie sobie ustawić dane światło. a dokładniej porę dnia. Mogę dać skrypt. ale po dalsze instrukcje musisz się kierować do Ayene.
Kod:
#_/  Tytuł w oryginale: Day-to-Night Phases - KGC_DayNight
#_/  Autor: KGC [http://ytomy.sakura.ne.jp/]
#_/  Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
#_/  www.ultimateam.pl
#_/----------------------------------------------------------------------------
#_/  Skrypt dodaje opcję zmiany dnia i nocy. Dodatkowe jego funkcje umożliwiają
#_/  ustawienie konkretnych grup potworów atakujących np. nocą oraz konfigurację
#_/  zdarzeń warunkowanych aktualną porą dnia lub dniem tygodnia.
#_/============================================================================
#_/  Instalacja: Umieść nad Main.
#_/----------------------------------------------------------------------------
#_/  INSTRUKCJA UŻYCIA
#_/ 
#_/  ZATRZYMAJ DZIEŃ I NOC
#_/  Gdy po nazwie mapy w jej własciowościach będzie wpisane [DN_STOP]
#_/  pory dnia nie będą się zmianiać, czas się nie zatrzyma, a gdy aktulanie
#_/  aktywna jest np. noc, ekran nadal będzie ściemniony.
#_/ 
#_/  ZATRZYMAJ DZIEŃ I NOC + ANULUJ PORĘ DNIA
#_/  Gdy po nazwie mapy w jej własciwościach będzie wpisane [DN_VOID]
#_/  pory dnia nie będą się zmianiać, czas się zatrzyma, a gdy aktulanie
#_/  aktywna jest np. noc, ekran powróci to swoich domyślnych ustawień.
#_/ 
#_/  POTWORY ATAKUJĄCE O OKREŚLONEJ PORZE DNIA
#_/  Gdy po nazwie grupy potworów (zakładka Troops) będzie wpisane [DN NR]
#_/  (gdzie NR odpowiada konkrentej porze dnia: 0 = południe, 1 = wieczór,
#_/  2 = noc, 3 = rano), dana grupa będzie atakowała tylko o określonej porze.
#_/ 
#_/  FUNKCJE DO ZDARZEŃ
#_/  Poniższych funkcji można użyć korzystając z polecenia 'Script' w edycji
#_/  zdarzenia.
#_/ 
#_/  * stop_daynight
#_/    Zatrzymanie zmiany pory dnia
#_/ 
#_/  * start_daynight
#_/    Wznowienie zmiany pory dnia
#_/ 
#_/  * get_daynight_week (id_zmiennej)
#_/    Przyporządkowuje dni tygodnia określonej zmiennej
#_/ 
#_/  * change_daynight_phase(pora_dnia, czas_trwania, ilość_dni)
#_/    Zmienia aktualną porę dnia na nową. Przydatne w gospodach.
#_/    Przykład: change_daynight_phase (3, 1, 1)
#_/    Powyższa funckja sprawi, że minie jeden dzień, nastanie poranek,
#_/    a zmiana będzie trwała 1 klatkę animacji (minimalnie musi być 1).
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==========================================================================#
#                        KONFIGURACJA SKRYPTU                              #
#==========================================================================#
module KGC
 module DayNight
   
  # METODA PRZEJŚCIA DNIA W NOC
  # 0. Upływ czasu  1.W zależności od liczby kroków  2.Czas realny
  METHOD = 1

  # ZMIENNA PORY DNIA
  # W tej zmiennej przechowywana jest obecna pora dnia.
  PHASE_VARIABLE = 11
 
  # ZMIENNA DNI TYGODNIA
  # W tej zmiennej przechowywana jest obecny dzień tygodnia.
  PASS_DAYS_VARIABLE = 12

  # ZATRZYMAJ PRZY ZDARZENIACH
  # Czas nie leci, gdy gracz wywołuje zdarzenie.
  STOP_ON_EVENT = false
 
  # ODCIEŃ DZNIA I NOCY PODCZAS WALKI
  # 0: Brak  1: Tylko Tło  2: Tło + Przeciwnicy
  BG_TONE_IN_BATTLE = 0

  # PORY DNIA   
  # Ustawienia upływu czasu
  PHASE = [
  # NAZWA      Odcień                     Upływ czasu
  ["Południe", Tone.new(   0,    0,   0), 300],    # Pora 0
  ["Wieczór",  Tone.new( -32,  -96, -96), 100],    # Pora 1
  ["Noc",      Tone.new(-128, -128, -32), 250],    # Pora 2
  ["Rano",    Tone.new( -48,  -48, -16), 100],     # Pora 3
  ]  # Nie usuwaj tej linijki!

  # Ustawienia czasu realnego
  # ["Południe", Tone.new(  0,   0,   0), 13],  #Pora 0 (godz. 13.00)
  # ["Wieczór",  Tone.new(  0, -96, -96), 19],  #Pora 1 (godz. 19.00)
  # ["Noc",      Tone.new(-96, -96, -64), 1],   #Pora 2 (godz. 1.00)
  # ["Rano",    Tone.new(-48, -48, -16), 7],    #Pora 3 (godz. 7.00)

  # ZMIANA DNIA
  # Dzień tygodnia zmienia się o wraz z nastaniem określonej pory dnia.
  # 0.Południe  1.Wieczór  2.Noc  3.Rano
  PASS_DAY_PHASE = 3   

  # PRZEJŚCIE MIĘDZY PORAMI DNIA
  # Jednostka klatek animacji przy przejściu do kolejnej pory dnia
  PHASE_DURATION = 564

  # NAZWY DNI TYGODNIA
  # Wartiość kolejno: 0, 1, 2, 3, 4, 5, 6
  WEEK_NAME = ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"]
end
end

#===========================================================================#
# KONIEC KONFIGURACJI                                                       #
#===========================================================================#

$imported = {} if $imported == nil
$imported["DayNight"] = true

#---------------------------------------------------------------------------#

if $data_mapinfos == nil
  $data_mapinfos = load_data("Data/MapInfos.rvdata")
end

#---------------------------------------------------------------------------#

module KGC::DayNight
  BATTLE_TONE_NONE = 0 
  BATTLE_TONE_BG   = 1 
  BATTLE_TONE_FULL = 2 

  METHOD_TIME  = 0
  METHOD_STEP  = 1 
  METHOD_RTIME = 2 
 
  module Regexp   
    module MapInfo     
      DAYNIGHT_STOP = /\[DN_STOP\]/i   
      DAYNIGHT_VOID = /\[DN_VOID\]/i
    end
   
    module Event     
      LUMINOUS = /\[(?:LUMINOUS|light)\]/i
    end
   
    module Troop     
      APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i
    end
  end

  def self.troop_appear?(troop, phase = $game_system.daynight_phase)   
    unless troop.appear_daynight_phase.empty?
      return false unless troop.appear_daynight_phase.include?(phase)
    end   
    unless troop.nonappear_daynight_phase.empty?
      return false if troop.nonappear_daynight_phase.include?(phase)
    end

    return true
  end
end

#==============================================================================
# KGC::Commands
#==============================================================================
module KGC
module Commands
  module_function
 
  def stop_daynight
    $game_system.daynight_change_enabled = false
  end
 
  def start_daynight
    $game_system.daynight_change_enabled = true
  end

  def get_daynight_week(variable_id = 0)
    if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
      week = Time.now.wday
    else
      days = $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE]
      week = (days % KGC::DayNight::WEEK_NAME.size)
    end

    if variable_id > 0
      $game_variables[variable_id] = week
      $game_map.need_refresh = true
    end
    return week
  end

  def change_daynight_phase(phase,
      duration = KGC::DayNight::PHASE_DURATION,
      pass_days = 0)
    $game_temp.manual_daynight_duration = duration
    $game_system.daynight_counter = 0
    $game_system.daynight_phase = phase
    $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += pass_days
    $game_map.need_refresh = true
  end
end
end

class Game_Interpreter
  include KGC::Commands
end

#==============================================================================
# RPG::MapInfo
#==============================================================================

class RPG::MapInfo

  def name
    return @name.gsub(/\[.*\]/) { "" }
  end

  def original_name
    return @name
  end

  def daynight_stop
    return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP
  end

  def daynight_void
    return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID
  end
end

#==============================================================================
# RPG::Area
#==============================================================================

unless $@
class RPG::Area

  alias encounter_list_KGC_DayNight encounter_list
  def encounter_list
    list = encounter_list_KGC_DayNight.clone

    list.each_index { |i|
      list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
    }
    return list.compact
  end
end
end

#==============================================================================
# RPG::Troop
#==============================================================================

class RPG::Troop

  def create_daynight_cache
    @__appear_daynight_phase = []
    @__nonappear_daynight_phase = []

    if @name =~ KGC::DayNight::Regexp::Troop::APPEAR_PHASE
      $1.scan(/[\-]?\d+/).each { |num|
        phase = num.to_i
        if phase < 0
          @__nonappear_daynight_phase << phase.abs
        else         
          @__appear_daynight_phase << phase
        end
      }
    end
  end

  def appear_daynight_phase
    create_daynight_cache if @__appear_daynight_phase == nil
    return @__appear_daynight_phase
  end

  def nonappear_daynight_phase
    create_daynight_cache if @__nonappear_daynight_phase == nil
    return @__nonappear_daynight_phase
  end
end

#==============================================================================
# Game_Temp
#==============================================================================

class Game_Temp

  attr_accessor :manual_daynight_duration # &#25163;&#21205;&#12501;&#12455;&#12540;&#12474;&#22793;&#26356;&#12501;&#12521;&#12464;

  alias initialize_KGC_DayNight initialize
  def initialize
    initialize_KGC_DayNight

    @manual_daynight_duration = nil
  end
end

#==============================================================================
# Game_System
#==============================================================================

class Game_System
 
  attr_writer   :daynight_counter         
  attr_writer   :daynight_change_enabled 

  alias initialize_KGC_DayNight initialize
  def initialize
    initialize_KGC_DayNight

    @daynight_counter = 0
    @daynight_change_enabled = true
  end

  def daynight_counter
    @daynight_counter = 0 if @daynight_counter == nil
    return @daynight_counter
  end

  def daynight_phase
    return $game_variables[KGC::DayNight::PHASE_VARIABLE]
  end

  def daynight_phase=(value)
    $game_variables[KGC::DayNight::PHASE_VARIABLE] = value
    $game_map.need_refresh = true
  end

  def daynight_change_enabled
    @daynight_change_enabled = 0 if @daynight_change_enabled == nil
    return @daynight_change_enabled
  end

  def progress_daynight_phase
    self.daynight_phase += 1
    if self.daynight_phase >= KGC::DayNight::PHASE.size
      self.daynight_phase = 0
    end
    $game_map.need_refresh = true
  end

  def daynight_phase_object
    return KGC::DayNight::PHASE[daynight_phase]
  end

  def previous_daynight_phase_object
    return KGC::DayNight::PHASE[daynight_phase - 1]
  end
end

#==============================================================================
# Game_Screen
#==============================================================================

class Game_Screen
  DEFAULT_TONE = Tone.new(0, 0, 0)

  attr_reader   :daynight_tone            # &#26172;&#22812;&#12398;&#33394;&#35519;

  alias clear_KGC_DayNight clear
  def clear
    clear_KGC_DayNight

    clear_daynight
  end

  def clear_daynight
    @daynight_tone = DEFAULT_TONE.clone
    @daynight_x = 0
    @daynight_y = 0

    @frame_count = Graphics.frame_count
    @daynight_tone_duration = 0

    apply_daynight
  end

  def apply_daynight
    return if $game_map == nil
    if $game_temp.in_battle
      if KGC::DayNight::BG_TONE_IN_BATTLE == KGC::DayNight::BATTLE_TONE_NONE
        return
      end
    end

    if $game_map.daynight_void?
      if @daynight_tone_changed       
        @tone = DEFAULT_TONE.clone
        @daynight_tone_changed = false
      end
      @daynight_tone = @tone.clone
      return
    end

    if $game_system.daynight_phase_object == nil
      $game_system.daynight_phase = 0
    end

    @tone = $game_system.daynight_phase_object[1].clone
    @daynight_tone = @tone.clone

    if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
      time = Time.now
      KGC::DayNight::PHASE.each_with_index { |phase, i|
        if phase[2] <= time.hour
          start_tone_change(phase[1], 1)
          $game_system.daynight_phase = i
          break
        end
      }
    end

    @daynight_tone_changed = true
  end

  def tone
    if $game_temp.in_battle
      if KGC::DayNight::BG_TONE_IN_BATTLE <= KGC::DayNight::BATTLE_TONE_BG
        return DEFAULT_TONE
      end
    end
    return @tone
  end

  alias start_tone_change_KGC_DayNight start_tone_change
  def start_tone_change(tone, duration)
    duration = [duration, 1].max
    start_tone_change_KGC_DayNight(tone, duration)

    @daynight_tone_target   = tone.clone
    @daynight_tone_duration = duration
  end

  alias update_KGC_DayNight update
  def update
    update_KGC_DayNight

    update_daynight_transit
  end

  alias update_tone_KGC_DayNight update_tone
  def update_tone
    update_tone_KGC_DayNight

    if @daynight_tone_duration >= 1
      d = @daynight_tone_duration
      target = @daynight_tone_target
      @daynight_tone.red   = (@daynight_tone.red   * (d - 1) + target.red)   / d
      @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d
      @daynight_tone.blue  = (@daynight_tone.blue  * (d - 1) + target.blue)  / d
      @daynight_tone.gray  = (@daynight_tone.gray  * (d - 1) + target.gray)  / d
      @daynight_tone_duration -= 1
    end
  end

  def update_daynight_transit
    if $game_temp.manual_daynight_duration
      start_tone_change($game_system.daynight_phase_object[1],
        $game_temp.manual_daynight_duration)
      $game_temp.manual_daynight_duration = nil
      @daynight_tone_changed = true
    end

    return unless $game_system.daynight_change_enabled 
    return if $game_map.daynight_stop?                 

    if KGC::DayNight::STOP_ON_EVENT
      interpreter = ($game_temp.in_battle ? $game_troop.interpreter :
        $game_map.interpreter)
      return if interpreter.running?                   
    end

    case KGC::DayNight::METHOD
    when KGC::DayNight::METHOD_TIME   
      update_daynight_pass_time
    when KGC::DayNight::METHOD_STEP   
      update_daynight_step
    when KGC::DayNight::METHOD_RTIME 
      update_daynight_real_time
    end
  end

  def update_daynight_pass_time
    inc_count = Graphics.frame_count - @frame_count
    if inc_count >= 100
      @frame_count = Graphics.frame_count
      return
    end
    $game_system.daynight_counter += inc_count
    @frame_count = Graphics.frame_count

    count = $game_system.daynight_counter / Graphics.frame_rate
    if count >= $game_system.daynight_phase_object[2]
      transit_daynight_next
    end
  end

  def update_daynight_step
    return if @daynight_x == $game_player.x && @daynight_y == $game_player.y

    @daynight_x = $game_player.x
    @daynight_y = $game_player.y
    $game_system.daynight_counter += 1
    count = $game_system.daynight_counter
    if count >= $game_system.daynight_phase_object[2]
      transit_daynight_next
    end
  end

  def update_daynight_real_time
    time = Time.now
    time1 = $game_system.daynight_phase_object[2]
    transit = (time1 <= time.hour)
    if $game_system.previous_daynight_phase_object != nil
      time2 = $game_system.previous_daynight_phase_object[2]
      if time1 < time2
        transit &= (time.hour < time2)
      end
    end

    if transit
      transit_daynight_next
    end
  end

  def transit_daynight_next(duration = KGC::DayNight::PHASE_DURATION)
    $game_system.daynight_counter = 0
    $game_system.progress_daynight_phase
    if $game_system.daynight_phase == KGC::DayNight::PASS_DAY_PHASE
      $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += 1
    end
    start_tone_change($game_system.daynight_phase_object[1], duration)
    @daynight_tone_changed = true
  end

  def set_daynight_default(duration)
    start_tone_change(DEFAULT_TONE, duration)
  end

  def restore_daynight_phase(duration)
    start_tone_change($game_system.daynight_phase_object[1], duration)
    @daynight_tone_changed = true
  end
end

#==============================================================================
# Game_Map
#==============================================================================

class Game_Map

  alias setup_KGC_DayNight setup
  def setup(map_id)
    setup_KGC_DayNight(map_id)

    @screen.apply_daynight
  end

  def daynight_stop?
    info = $data_mapinfos[map_id]
    return false if info == nil
    return (info.daynight_stop || info.daynight_void)
  end

  def daynight_void?
    info = $data_mapinfos[map_id]
    return false if info == nil
    return info.daynight_void
  end
 
  alias encounter_list_KGC_DayNight encounter_list
  def encounter_list
    list = encounter_list_KGC_DayNight.clone

    list.each_index { |i|
      list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
    }
    return list.compact
  end
end

#==============================================================================
# Game_Character
#==============================================================================

class Game_Character
  def luminous?
    return false
  end
end

#==============================================================================
# Game_Event
#==============================================================================

class Game_Event < Game_Character
  def luminous?
    return (@event.name =~ KGC::DayNight::Regexp::Event::LUMINOUS)
  end
end

#==============================================================================
# Spriteset_Map
#==============================================================================

class Spriteset_Map
 
  alias create_viewports_KGC_DayNight create_viewports
  def create_viewports
    create_viewports_KGC_DayNight

    @viewport1_2 = Viewport.new(0, 0,
      @viewport1.rect.width, @viewport1.rect.height)
  end

  alias create_characters_KGC_DayNight create_characters
  def create_characters
    create_characters_KGC_DayNight

    @character_sprites.each { |sprite|
      sprite.viewport = @viewport1_2 if sprite.character.luminous?
    }
  end

  alias dispose_viewports_KGC_DayNight dispose_viewports
  def dispose_viewports
    dispose_viewports_KGC_DayNight

    @viewport1_2.dispose
  end

  alias update_viewports_KGC_DayNight update_viewports
  def update_viewports
    update_viewports_KGC_DayNight

    @viewport1_2.ox = $game_map.screen.shake
    @viewport1_2.update
  end
end

#==============================================================================
# Spriteset_Battle
#==============================================================================

if KGC::DayNight::BG_TONE_IN_BATTLE == KGC::DayNight::BATTLE_TONE_BG

class Spriteset_Battle
 
  alias create_battleback_KGC_DayNight create_battleback
  def create_battleback
    create_battleback_KGC_DayNight

    if @battleback_sprite.wave_amp == 0
      @battleback_sprite.tone = $game_troop.screen.daynight_tone
    end
  end

  alias create_battlefloor_KGC_DayNight create_battlefloor
  def create_battlefloor
    create_battlefloor_KGC_DayNight

    @battlefloor_sprite.tone = $game_troop.screen.daynight_tone
  end
end

end

#==============================================================================
# Scene_Map
#==============================================================================

class Scene_Map < Scene_Base

  alias start_KGC_DayNight start
  def start
    $game_map.screen.clear_daynight

    start_KGC_DayNight
  end
end


I tak jak mówię jeżeli czegoś nie będziesz rozumiał to pisz do Ayene, ja w tym skrypcie nie jestem ekspertem, umiem jedynie zrobić tak aby po przejściu np: z lasu do jaskini było ciemno itp. ale z tego co czytałem możliwości jest więcej.
________________________
Pracuję nad 2 częścią gry Ostatnia Powieść

Fabuła : Niezła ( jeżeli lubicie Assassin's Creed )
Skrypty: Sporo przyznam się.
Walki: Dużo i to trudnych!
Misje: Wiele głównych i pobocznych
Muzyka: Ciekawa, wpadająca w ucho
Graficzki: Kilka własnych i kilka pożyczonych
Wzorowanie się: Assassin's Creed, Final Fantasy
 
 
Prometherion 




Preferowany:
RPG Maker XP

Pomógł: 3 razy
Dołączył: 21 Gru 2010
Posty: 30
Wysłany: Sob 16 Kwi, 2011 19:59
A nie możesz po prostu ściemnić ekranu w evencie? Wg mnie jest to najprostszy sposób, a nie bawienie się w skrypty. Oczywiście ten sposób będzie najprostszy w przypadku gdy nie zamierzasz robić cyklu Dzień/Noc.
 
 
Dżoj 



Pomógł: 10 razy
Dołączył: 03 Mar 2011
Posty: 53
Wysłany: Sob 16 Kwi, 2011 20:06
Wchodzisz w nowe zdarzenie i szukasz zmień odcień ekranu tam se ustawiasz i to wszystko
________________________

 
 
filipek32 




Preferowany:
RPG Maker VX

Dołączył: 16 Kwi 2011
Posty: 76
Skąd: Z tąd
Wysłany: Sob 16 Kwi, 2011 20:07
Dobra dzieki:p Do zamknięcia!
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene