Help - Search - Members - Calendar
Full Version: Very Simple Question
RPG RPG Revolution Forums > Scripting > Script Development and Support
superafroboy
Hey guys, I have next to no knowledge of scripting, and just wanted to make a quick little script that displays the current date after my hero rests / checks the calendar.

I have everything set up, but I don't know how to display the window only for a few seconds, and then remove it.

Currently it just displays for a short time and then is removed on its own (I assume after something is refreshed or whatever?)

Here is my pathetic little script, I assume there is something I could just throw in at the end to dispose the window after x frames or something?

CODE
class Calendar < Window_Base
  def initialize
    super(0, 0, 200, 120)
    self.contents = Bitmap.new(width - 32, height - 32)

    date = $game_variables[4]
    year = $game_variables[9]
    
    if $game_variables[18] == 1
      weekday = "Monday"
    elsif $game_variables[18] == 2
      weekday = "Tuesday"
    elsif $game_variables[18] == 3
      weekday = "Wednesday"
    elsif $game_variables[18] == 4
      weekday = "Thursday"
    elsif $game_variables[18] == 5
      weekday = "Friday"
    elsif $game_variables[18] == 6
      weekday = "Holiday"
    else
      weekday = "Nil"
    end    


   self.contents.font.size = 20
   self.contents.draw_text(0, 0, 200, 32, "Today's Date is:")
   self.contents.draw_text(0, 20, 200, 32, weekday)
   self.contents.draw_text(0, 40, 30, 32, "Day")
   self.contents.draw_text(35, 40, 25, 32, date.to_s)
   self.contents.draw_text(0, 60, 40, 32, "Year")
   self.contents.draw_text(45, 60, 25, 32, year.to_s)
  
  end

end



Any help would be much appreciated.
maximusmaxy
QUOTE (superafroboy @ Oct 16 2011, 02:12 AM) *
Hey guys, I have next to no knowledge of scripting, and just wanted to make a quick little script that displays the current date after my hero rests / checks the calendar.

I have everything set up, but I don't know how to display the window only for a few seconds, and then remove it.

Currently it just displays for a short time and then is removed on its own (I assume after something is refreshed or whatever?)

Here is my pathetic little script, I assume there is something I could just throw in at the end to dispose the window after x frames or something?

CODE
class Calendar < Window_Base
  def initialize
    super(0, 0, 200, 120)
    self.contents = Bitmap.new(width - 32, height - 32)

    date = $game_variables[4]
    year = $game_variables[9]
    
    if $game_variables[18] == 1
      weekday = "Monday"
    elsif $game_variables[18] == 2
      weekday = "Tuesday"
    elsif $game_variables[18] == 3
      weekday = "Wednesday"
    elsif $game_variables[18] == 4
      weekday = "Thursday"
    elsif $game_variables[18] == 5
      weekday = "Friday"
    elsif $game_variables[18] == 6
      weekday = "Holiday"
    else
      weekday = "Nil"
    end    


   self.contents.font.size = 20
   self.contents.draw_text(0, 0, 200, 32, "Today's Date is:")
   self.contents.draw_text(0, 20, 200, 32, weekday)
   self.contents.draw_text(0, 40, 30, 32, "Day")
   self.contents.draw_text(35, 40, 25, 32, date.to_s)
   self.contents.draw_text(0, 60, 40, 32, "Year")
   self.contents.draw_text(45, 60, 25, 32, year.to_s)
  
  end

end



Any help would be much appreciated.


Try this out.
CODE
#Set the amount of frames the calendar is shown here
CALENDAR_COUNT = 80

#===============================================================================
# Calendar
#===============================================================================

class Calendar < Window_Base
  def initialize
    super(0, 0, 200, 120)
    self.contents = Bitmap.new(width - 32, height - 32)

    date = $game_variables[4]
    year = $game_variables[9]
    
    if $game_variables[18] == 1
      weekday = "Monday"
    elsif $game_variables[18] == 2
      weekday = "Tuesday"
    elsif $game_variables[18] == 3
      weekday = "Wednesday"
    elsif $game_variables[18] == 4
      weekday = "Thursday"
    elsif $game_variables[18] == 5
      weekday = "Friday"
    elsif $game_variables[18] == 6
      weekday = "Holiday"
    else
      weekday = "Nil"
    end    

    self.contents.font.size = 20
    self.contents.draw_text(0, 0, 200, 32, "Today's Date is:")
    self.contents.draw_text(0, 20, 200, 32, weekday)
    self.contents.draw_text(0, 40, 30, 32, "Day")
    self.contents.draw_text(35, 40, 25, 32, date.to_s)
    self.contents.draw_text(0, 60, 40, 32, "Year")
    self.contents.draw_text(45, 60, 25, 32, year.to_s)
    #variable to keep track of how long the window has been displayed
    @count = 0
  end
  
  def update
    #increment the count
    @count += 1
    #stop showing window when count reaches maximum
    $game_temp.show_calendar = false if @count == CALENDAR_COUNT
  end
end

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

class Game_Temp
  attr_accessor :show_calendar
  alias max_calendar_initialize_later initialize
  def initialize
    #run the old initialize method
    max_calendar_initialize_later
    #temp variable to flag the calendar to be shown
    @show_calendar = false
  end
end

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

class Scene_Map
  alias max_calendar_update_later update
  alias max_calendar_main_later main
  def main
    #run the old main method
    max_calendar_main_later
    #dispose calendar if it exists
    @calendar.dispose unless @calendar.nil?
  end
  
  def update
    #run the old update method
    max_calendar_update_later
    #if the calendar is flagged to be shown
    if $game_temp.show_calendar
      #create the calendar if it hasn't been created
      @calendar = Calendar.new if @calendar.nil?
      #update the calendar
      @calendar.update
    #if the calendar exists and calendar isn't flagged to be shown
    elsif !@calendar.nil?
      #dispose the calendar
      @calendar.dispose
      @calendar = nil
    end
  end
end

Choose how many frames you want it to be displayed by setting the CALENDAR_COUNT variable at the top. To display the calendar just use this call script:
CODE
$game_temp.show_calendar = true
superafroboy
Works perfectly, thank you very much!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.