Make HM : Change your life [fan game]

Status
Không mở trả lời sau này.
cái thằng người vẫn đi qua được cái ngăn trong chuồng bò đó bồ ...
Mà có Scrip câu cá rồi mà sao chưa thấy bồ làm
Còn vấn đề event liên quan đến thời gian ...thật nhức đầu
 
Pokemaniac Fraya nói:
Mới chụp trong HM : FOMT, ngó coi được ko vậy:
tusachkm1.png
tivicopyyr0.png

cayeo1.png

Theo tui RPG Maker XP ưu việt hơn RPG 2003 ở chỗ nó có đến 3 Layer nên tính năng tùy biến trên map cao hơn. Nếu ko dùng đến Battle System thì làm game HM nên chọn cái XP là hay nhất.
Này, mấy cái này để nền màu trắng được không, chứ làm nó trong suốt thì còn có 256 màu thôi, không đẹp.
Ps: conan, cái cậu đưa là RTP chứ đâu phải bản hoàn chỉnh RPG XP. Kiếm dùm tớ lại đi
Hình như là bạn phóng to lên phải ko, ko cần đâu, kích thứơt nhân hai của giả lập GBA là đủ gồi ko cần to vậy đâu
@every one: cảm ơn, cảm ơn tất cả, mong các bạn giúp đỡ, chỉ cần 1/2 sức cũng được (là cảm ơn lắm gồi ^_^)
 
Nickky thu gọn lại cái chữ kí dùm sis nhé, bự quá cỡ rùi. Các ý tưởng lễ hội sis đưa link ở trang 1 có khả quan hông, có gì cứ PM cho sis, sis sẽ giúp về ý tưởng lễ hội nhé. Sis hông bít Photoshop nên hông giúp dc nhìu rùi T.T
 
BLACK LIGHT-FW nói:
Híc ....mình nghĩ bạn có thể lấy ý kiến từ topic ý tưởng về lễ hội đã lập trước đây đấy.và mình cũng xin ý kiến rằng nên có hai giới tính của nhân vật được chọn .số item trong game cũng nên nhiều một tý ....một số đồ hiếm và nhiều loài động vật hơn nữa....
Ok cái này mình đã tính trứơc gồi cái mà mình test thử bên RPG 2K3 có 2 nhân vật và 2 cốt truyện nhưng mới chuyển qua XP nên chưa làm gì hí::(

Vấn đề thời gian và thời tiết bây giờ đã tạm ổn (đừng lo lắng), bây giờ cần event, map, item, tool, trồng cây khá ổn nhưng cần charset hình cây trồng.
 
send cho tớ cái Project Niccky đang làm đi, tớ góp ý cho. À mà có cần titleset HM : FOMT ko, tớ convert rồi hay chỉ cần các giai đoạn phát triển của cây trồng thôi. ?
 
Pokemaniac Fraya nói:
send cho tớ cái Project Niccky đang làm đi, tớ góp ý cho. À mà có cần titleset HM : FOMT ko, tớ convert rồi hay chỉ cần các giai đoạn phát triển của cây trồng thôi. ?
Giai đoạn phát triển cây trồng thì Poke Biết làm thì làm nhé còn cái kia thì mình đã làm chuồng bò rồi bạn chỉ cần lấy cái đó vẽ thêm cái new map nữa thôi
 
Chuồn bò của conanak có vấn đề, Hero đi vô gần cái cạnh thì chui tuốt vô đó luôn, map thì cần theo phong cách harvest moon, đừng wá sa vào mấy games Final Fantasy. Cần tất tần tật, cây trồng lẫn chip cho map.

@venus: bạn ko có usb sao, tiếc thật!

@Poke: cái đó trên 2k3, bi giờ tui bỏ gồi
Còn kích thước farm hình như là 66x44
 
Nickky9x nói:
Khiếp mạng lag wá, làm pót 2 bài liên tục cùng 1 nội dung
@Poke: cái đó trên 2k3, bi giờ tui bỏ gồi
Còn kích thước farm hình như là 66x44
2k3 thì cũng cần mấy chi tiết rất cần thiết để Ak lọc ra rồi cho vào cái Xp luôn hen (Tài chưa HEHE )
Còn Photoshop thì sao bây giờ hen
 
Má ơi, hình cứ như Gbc color áh, có ai có chip ko??????????
 
em có biết photoshop
moi choi havest moon dc 2 tuan
thix wa trời
em có thể giúp ko????
 
Má ơi, hình cứ như Gbc color áh, có ai có chip ko??????????
Ẹc %ec Thế Thì Làm Sao games chứ
Dùng Trình gì Ra google mà kiếm ví dụ đánh câu chip ...(tên chương trình) Harverst moon
 
ChoasPlamas nói:
Ẹc %ec Thế Thì Làm Sao games chứ
Dùng Trình gì Ra google mà kiếm ví dụ đánh câu chip ...(tên chương trình) Harverst moon
Tui đi bố, làm như dễ kiếm lém hả? Ngon thì đi mà kiếm đi (gớm, www.google.com kiếm ra gồi thì cần gì topic nì)
Àh mà này mai là thứ tư đó ChoasPlasma, nhớ đi học và...#>:) :devil:
@Conanak: Để có gì mai sent cho cái project của tui, cả XP và 2K3, trong đó bản đồ farm thì ổn rùi, có cả time và weather nữa đó, bi giờ thì cần chip và... ^_^
@voighe: cảm ơn, để mai post lên thử 1 cái tileset và bạn cứ theo mẫu đó mà làm

conanak99 nói:
Bây giờ sent luôn hả Nic Ak đang bị nghẽn mạng nên không lên được. Đến tối mới vào được nên post lên luôn đi nhé
Ko được, đang ở ngoài NET nên sent ko được, hồi nãy đi vôi wá nên wên chép vô USB::(
Có gì PM wa [email protected] nha!
 
Xin lỗi Nikky và Conanak, từ nay tớ bận việc cả bên HM Event và HM Shop nên khó có thể giúp các cậu thường xuyên được. Khi nào sắp xếp thời gian được tớ sẽ tham gia sau. Xin lỗi, xin lỗi....Tiếc thật..
 
Nicky Post lên nhé đang chờ đây
Vào đây đi nicky
Mượn của KEN í mà
 

Attachments

@Conanak: Đây nàh, cái Harvest Moon (project) là 2K3 đó; cái Harvest Moon bao gồm các chip, charset, music của 2K3 (chép vô thư mục rpg maker 2003 của bạn mí mở được Harvest Moon (project), 2 cái file music là nhạc nền cho tile và farm đó ,còn cái 2k3 1.10 cũng phải update theo hướng dẫn, còn Harvest Moon-Change your life là của XP (chưa hoàn chỉnh, nhưng có cái time và wheather, chi tiết ở đây:
MasterWind nói:
Thật tình mà nói cái RTAB nó giống như chiếm vị trí độc tôn trong phần Battle .Có nghĩa là nội bất xuất ngoại bất nhập .Chính vì thế nó mới oánh nhau với các Script Hack Battle .Chờ mình Up cái Times System cho Nick đây

Advanced Time System
Thật ra cái này của rất nhiều đậi gia khác đã làm mình chỉ đi chỉnh sửa lại 1 tí thôi .
Tr­ước hết vẫn là Script - Tiên Script hậu Demo mà :D
Mà này nếu muốn cái Map nào bị ảnh hưởng tác dụng của hiệu ứng ngày và đêm thì cho sau cái Map đó 1 dấu * .Vd:Map001 thì thêm vào Map001* ...Tác dụng dành thường dành cho các Map ngoài trời ,còn trong nhà thì không nên ..)

Cái này là phần chính của Script :
1/Advanced Time System
2/Advanced Weather System

Đầu tiên là Advanced Time System
Mã:
#===================================================
# ■ ATS - Advanced Time System
#===================================================
# Rewiten by Near Fantastica
# Date: 23.07.05
# Version: 1
#
# Written by Dubealex
# Date: 26.11.04
#
# Thanks to Satana_81 for the test tilesets
#===================================================

#===================================================
# ▼ CLASS Advanced_Time Begins
#===================================================
class Advanced_Time
  
    attr_reader :define_start_sec
    attr_reader :weather_type
    attr_reader :weather_strength

   def initialize
     @weather_pattern = []
     @cycle_period=[]
     @tint_period=[]
     @cycle_season=[]
     @name_period=[]
     @name_season=[]
     @name_month=[]
     @name_day=[]
     @start_clock=[]
     @start_date=[]

=begin -----------------------------------------------------------------------------------------------------
      ■ Advanced Time System Settings:
      ---------------------------------------------------------------------------------------------------------
      ▼ Day Night System Transitioning :
      
      The DNS is built in to the time system and therefore any map you want to have the DNS
      active on place a "*" in the name of the map.
      ---------------------------------------------------------------------------------------------------------
      ▼ Method of Season Transitioning :
       
      ●  Titleset Transitioning = The tileset its replaced
          When Titleset Transitioning is set the script will pull the tileset and autotiles used 
          set to the season ID. For exmaple "Plains 1" for tileset or "Water 1" for autotiles. 
          The script will then automaticly change the 1 to the season ID which will load the 
          new tileset. Maps that the developer wishes to have the tileset changing place 
          a "~" in the name. 
          
      ●  Map Transitioning = The Map is replaced
          When Map Transitioning is set the script changes the whole map. It will transport the
          player to the same x,y on a map with the same name and the matching season ID.
          For example "Town [1]". The script will then automaticaly change the 1 to the 
          season ID which will load the new map. Maps that the developer wishes to have 
          the map changing place "[Season ID]"  in the map name where Season ID is the ID 
          of the season of that map.
=end #----------------------------------------------------------------------------------------------------

=begin -----------------------------------------------------------------------------------------------------
      ■ Advanced Weather System Settings:
      ---------------------------------------------------------------------------------------------------------
      ▼ Weather Patterns :
      
      With the Advanced Weather System by Ccoa the Advanced Time System and keep track
      and change weather depending on season. The flag $aws must be set true if the weather
      script is to be used.
      
      1 - rain                    5 - rain with thunder and lightning
      2 - storm                 6 - falling leaves (autumn)
      3 - snow                  7 - blowing leaves (autumn)
      4 - hail                    8 - swirling leaves (autumn)
      
      The script randomly picks bettween having weather and no weather.
      Then the script randomly picks the weather if there is going to be weather.
      If the same weather is added more then once it will add to % chnage that weather 
      will be picked. If the same weather is picked again its power is inceased. The
      range of power is 10 - 40. @weather_cycle is the % of weather for the game.
      0 = very little and 10 = a lot of weather. @weather_period is the amount 
      of time in mintues till the next weather cycle range  = 1-59. @bgs_control is 
      a flag that tells the script to inculde BGS with Dynamic Weather 
=end #----------------------------------------------------------------------------------------------------

      @aws = true
      @bgs_control = true
      @active_weather = false
      @weather_type = 0
      @weather_strength = 0
      @weather_cycle = 5
      @weather_period = 30
      @weather_pattern[1] = [3]
      @weather_pattern[2] = [1,1,2,3]
      @weather_pattern[3] = [1,1,2,5]
      @weather_pattern[4] = [1,2,4,5]
      @weather_pattern[5] = [1,1,2,6]
      @weather_pattern[5] = [1,1,3,7,8]

=begin -----------------------------------------------------------------------------------------------------
      ■ ATS Settings Configuration:
      ---------------------------------------------------------------------------------------------------------
      ▼ LENGTH AND SPEED OF TIME:
       
      Those variables defines the speed and length of every aspect of the ATS.
      @time_speed define how fast a seconds last. Setting it to 0 makes a real time system.
      Below 0 is a slower time than normal, and higher than 0 will accelerate the time.
      The length value are used to customize the length of every component of the ATS.
      Remember that since it is the SPEED setting that defines how fast the time goes,
      you don't have to say that a minute last 30 sec to make it faster. You can leave it
      as real-time, and just accelerate the length of a second with @time_speed !
=end #----------------------------------------------------------------------------------------------------
      
      @ats_time_speed = 30             # 0 is a Real Time System
      @minutes_length = 60             # Seconds
      @hour_length = 60                # Minutes
      @day_length = 24                 # Hours
      @week_length = 7                 # Days
      @month_length = 30               # Days
      @year_length = 12                # Months
      @decade_length = 10              # Years
      @century_length = 100            # Years
      @millenium_length = 1000         # Years
      
=begin ----------------------------------------------------------------------------------------------------
       ▼ GAME DEFAULT START-UP VALUES:
      
       Here you can define the default start-up values for each components. The data
       you enter here will be taken into consideration at each new game started. So if you want
       your game to begin at 2:12 pm, you can adjust all that in here. You can also set some
       basic default options you have, like trigger the AM/PM time format ON/OFF.
       You don't have to set the start-up season and period, since it will be set automatically
       with the date and the clock.
=end #-----------------------------------------------------------------------------------------------------
      
    @clock_mode = 1               # 1= 24 hours format / 2= AM/PM flag format
     @start_clock   = [21,50,10]     # [hour, min, sec] -> Write in 24 hours format.
     @start_date    = [3,29,2004] # [month, day, year]  
      
      
=begin -----------------------------------------------------------------------------------------------------
       ▼ ATS PERIODS CYCLE SETTINGS:
      
      An ATS Period works just as my old NDS Period.
      Periods defines a 24 hours loop - Example: Morning>Day>Evening>Night
      Here you can defines what is the cycle (in hours) for each periods.
      You can have as much period as you desire, I created the 4 main one, as shown
      in the example above. To add period, simply copy a line and replace the ID of the
      period by the next in line. DO NOT skip numbers.
      Syntax: @cycle_period[ID] --> Don't use ID0. (You can name them later).
      Example: @cycle_period[1] = (5..11) Will make the period ID#1  begins at 5am
      and ends at 11am. Use the 24 hours clock format to defines the period length.
=end #-----------------------------------------------------------------------------------------------------
      
      @cycle_period[1] = (5..11)  #Defined as (start_hour..end_hour)
      @cycle_period[2] = (12..18)
      @cycle_period[3] = (19..22)
      @cycle_period[4] = (23..24)
      @cycle_period[5] = (0..4)

=begin ----------------------------------------------------------------------------------------------------
      ▼ ATS PERIODS COLOR TONE (TINT) SETTINGS:
      
      Here you can define what will be the color tone used for each periods.
      Use the same period ID defined above. Example: @tint_period[1] is the tint used
      with the @cycle_period[1] settings.
      Syntax: @tint_period[1] = [red, green, blue, gray, transition_time]  
      To know the number you want for your tint, simply opens a RPG Maker Project, and
      create an event, choose "Tint Screen" and test the values you want, then enter them
      in here.
=end #-----------------------------------------------------------------------------------------------------
      
      @tint_period[1] = [0, -40, -60, 50, 600]
      @tint_period[2] = [0, 0, 0, 0, 600]
      @tint_period[3] = [-68, -85, -34, 120, 600]
      @tint_period[4] = [-150, -100, -50, 180, 600]  
      @tint_period[5] = [-95, -78, -44, 180, 600]
      
=begin -----------------------------------------------------------------------------------------------------
      ▼ SEASONS CYCLE SETTINGS:
      
      Here you can define how much time last every season. This is an "optional" feature.
      You can just leave it alone if you aren't using it. This work as the periods, but seasons
      are defined using months instead of hours. To know how it works, read the periods comments.
      Example: @cycle_season[1] = (6..8) Will make the season ID#1  begins on the
      6th month of the year, and end on the last day of the 8th month of the year.
=end #-----------------------------------------------------------------------------------------------------
       
      @cycle_season[1] = (1..2) #Defined as (start_month..end_month)
      @cycle_season[2] = (3..4)
      @cycle_season[3] = (5..6)
      @cycle_season[4] = (7..8)
      @cycle_season[5] = (9..10)
      @cycle_season[6] = (11..12)
      
      
=begin ----------------------------------------------------------------------------------------------------
      ▼ ATS COMPONENT'S NAMES SETTINGS:
      
      Here you can choose the name tagged to every relevant component of the ATS.
      The words you defined here will be used in window and menus in your game.
      It make it easy to configure and customize that way. You can also refer to those variables
      names if you need to access any component's names. That way, if you make a mistake or 
      want to change something in the middle of your development, you can easily do it.
      If you added/deleted periods/seasons, just adjust this section too. So if you created a season
      ID#6, you can copy a line from here and add the 6 where it belongs. (Between [ ])
      This is also were you define all your Months and Days name. It work the same way.
      @name_month[1] will refer to the first month of your year. By default, it's January.
=end #----------------------------------------------------------------------------------------------------
      
      @name_period[1] = "Morning"
      @name_period[2] = "Day"
      @name_period[3] = "Evening"
      @name_period[4] = "Night"
      @name_period[5] = "Night"
      
      @name_season[1] = "Winter"
      @name_season[2] = "Spring"
      @name_season[3] = "Summer"
      @name_season[4] = "Summer"
      @name_season[5] = "Autumn"
      @name_season[6] = "Autumn"
      
      @name_month[1]  = "January"
      @name_month[2]  = "February"
      @name_month[3]  = "March"
      @name_month[4]  = "April"
      @name_month[5]  = "May"
      @name_month[6]  = "June"
      @name_month[7]  = "July"
      @name_month[8]  = "August"
      @name_month[9]  = "September"
      @name_month[10]= "October"
      @name_month[11]= "November"
      @name_month[12]= "December"
      
      @name_day[1] = "Monday"
      @name_day[2] = "Tuesday"
      @name_day[3] = "Wednesday"
      @name_day[4] = "Thursday"
      @name_day[5] = "Friday"
      @name_day[6] = "Saturday"
      @name_day[7] = "Sunday"      
      
#--- ■ END OF SETTINGS (No Need To Edit Further)-------------------------------------------
           
      @speed_restore = 0
      if @ats_time_speed >= Graphics.frame_rate
         @ats_time_speed=Graphics.frame_rate-1
       end
      @year_length+=1 
      @month_length+=1
      if @start_clock[0] >= 12 : @am=false else @am=true end
      define_start_sec_in_hours= @start_clock[0] * @minutes_length * @hour_length
      define_start_sec_in_min= @start_clock[1] * @minutes_length
      @define_start_sec= define_start_sec_in_hours+define_start_sec_in_min+@start_clock[2] 
   end

# ■ WRITE ATTRIBUTE (Modify ATS Data) (No Need To Edit)----------------------------------  
  def sec(sec=0)
    @define_start_sec+=sec
  end

#--------------------------------------------------------------------------------------------------------
  def min(min=0)
    @define_start_sec+=min*@minutes_length
  end

#--------------------------------------------------------------------------------------------------------
  def hours(hours=0)
    @define_start_sec+=hours*@minutes_length*@hour_length
  end  
  
#--------------------------------------------------------------------------------------------------------  
  def days(days=0)
    if days<0 : @rewind=true end
    @define_start_sec+=days*@minutes_length*@hour_length*@day_length
  end  
  
#--------------------------------------------------------------------------------------------------------  
  def months(months=0)
     if months<0 : @rewind=true end
    @define_start_sec+=months*@minutes_length*@hour_length*@day_length*@month_length
  end 
  
#--------------------------------------------------------------------------------------------------------     
  def speed(speed=0)
    @speed_restore = @ats_time_speed
    @ats_time_speed = speed
  end

#--------------------------------------------------------------------------------------------------------     
  def speed_restore
    @ats_time_speed = @speed_restore
  end 
    
# ■ READ ATTRIBUTE (Fetch ATS Data) (No Need To Edit)-------------------------------------  
  def full_date
    day_name=@name_day[week_day_is]
    month_name=@name_month[months_is] 
    month_day=month_day_is
    year= total_years_is
    full_date= day_name + ", " + month_name + " " + month_day.to_s  #+ " " +  year.to_s
    return full_date
  end

#--------------------------------------------------------------------------------------------------------     
  def speed_is
    return @ats_time_speed
  end 
  
#--------------------------------------------------------------------------------------------------------     
   def total_sec_is
     ats_total_sec = (Graphics.frame_count / (Graphics.frame_rate-@ats_time_speed))+@define_start_sec
     return ats_total_sec
   end 

#--------------------------------------------------------------------------------------------------------     
   def total_years_is
      total_years=(total_months_is / @year_length) + @start_date[2] 
     return total_years
   end 
 
#--------------------------------------------------------------------------------------------------------     
   def total_months_is
     total_months=(total_days_is / @month_length) + @start_date[0] 
     return total_months
   end 

#--------------------------------------------------------------------------------------------------------       
   def total_decades_is
     total_decades=total_years_is / @decade_length
     return total_decades
   end 

#--------------------------------------------------------------------------------------------------------       
   def total_centuries_is
     total_centuries=total_years_is / @century_length
     return total_centuries
   end 

#--------------------------------------------------------------------------------------------------------       
   def total_millenium_is
      total_millenium=total_years_is/@millenium_length
     return total_millenium
   end 
      
#--------------------------------------------------------------------------------------------------------       
   def total_weeks_is
     total_weeks= total_days_is / @week_length
     return total_weeks
   end 
        
#--------------------------------------------------------------------------------------------------------        
   def total_hours_is
     total_hours= total_sec_is / @minutes_length / @hour_length
     return total_hours
   end 
   
#--------------------------------------------------------------------------------------------------------        
   def total_min_is
     total_min = total_sec_is / @minutes_length
     return total_min
   end   
   
#--------------------------------------------------------------------------------------------------------     
   def date
     month=months_is
     month_day=month_day_is
     year=total_years_is
     date=sprintf("%02d/%02d/%04d", month, month_day, year)
     return date
   end 

#--------------------------------------------------------------------------------------------------------     
   def clock
     
     hour=hours_is
     min=min_is
     sec=secs_is
     
     if @clock_mode == 1
        clock=sprintf("%02d:%02d:%02d", hour, min, sec)
        return clock
      else
        if @am==true : am_pm="AM" else am_pm="PM" end
        clock=sprintf("%02d:%02d:%02d %s", hour, min, sec, am_pm)
        return clock
    end
   end
    
#--------------------------------------------------------------------------------------------------------      
   def hours_is
     hour=real_hour=real_hours
      if @clock_mode == 2
        if @am==false and real_hour !=12 : hour-=(@day_length/2) end
        hour %= (@day_length/2)+1
        if real_hour < (@day_length/2) : @am=true else @am=false end
         if hour==0 : hour=1 end
         if real_hour==0 : hour=12 end
         end   
     return hour
   end
   
#--------------------------------------------------------------------------------------------------------      
   def real_hours
     real_hour = total_sec_is / @minutes_length / @hour_length % @day_length
     return real_hour
   end 
   
#--------------------------------------------------------------------------------------------------------     
   def secs_is
     sec = total_sec_is % @minutes_length
     return sec
   end 

#--------------------------------------------------------------------------------------------------------     
   def min_is
     mins = total_sec_is / @minutes_length % @hour_length
     return mins
   end 

#--------------------------------------------------------------------------------------------------------     
   def total_days_is
     total_days = (total_sec_is / @minutes_length / @hour_length / @day_length) + @start_date[1] 
     return total_days
   end 
    
#--------------------------------------------------------------------------------------------------------     
   def week_day_is
     week_day= total_days_is % @week_length 
     if week_day==0 : week_day=@week_length end
     return week_day
   end 

#--------------------------------------------------------------------------------------------------------     
   def week_name
     return @name_day[week_day_is]
   end 
    
#--------------------------------------------------------------------------------------------------------     
   def month_name
     return @name_month[months_is] 
   end 

#--------------------------------------------------------------------------------------------------------     
    def months_is
       month=total_months_is % @year_length
       if @rewind==true
        if month==0 : months(-1) end
          @rewind=false  
      else
        if month==0 : months(1) end
      end    
      return month
    end 

#--------------------------------------------------------------------------------------------------------     
   def month_day_is
     month_day=total_days_is % @month_length
     if @rewind==true
       if month_day==0 : days(-1) end
         @rewind=false  
     else
       if month_day==0 : days(1) end
     end    
     return month_day
   end 
       
#--------------------------------------------------------------------------------------------------------     
   def period_id
     for i in 1...@cycle_period.size
       if @cycle_period[i] === $ats.real_hours
        return i
        break
       end  
     end  
   end 
   
#--------------------------------------------------------------------------------------------------------     
   def period
     for i in 1...@cycle_period.size
       if @cycle_period[i] === real_hours
        if i==0 : i=1 end
        return @name_period[i]
        break
       end  
     end  
   end 

#--------------------------------------------------------------------------------------------------------   
def period_tint
     for i in 1...@cycle_period.size
       if @cycle_period[i] === real_hours
        return [-50, -50, -50, 50, 100] if i == 2 and $game_screen.weather_type != 0
        return @tint_period[i]
        break
       end  
     end  
   end 
 
#--------------------------------------------------------------------------------------------------------     
   def season
     for i in 1...@cycle_season.size
       if @cycle_season[i] === months_is
        return @name_season[i]
        break
       end  
     end  
   end 
 
#--------------------------------------------------------------------------------------------------------     
   def season_id
     for i in 1...@cycle_season.size
       if @cycle_season[i] === months_is
        if i==0 : i=1 end
        return i
        break
       end  
     end  
   end 

#--------------------------------------------------------------------------------------------------------     
   def start_seconds
     return @define_start_sec
   end
   
#--------------------------------------------------------------------------------------------------------     
  def weather_active(flag)
    @aws = flag
  end
  
#--------------------------------------------------------------------------------------------------------     
  def weather_bgs(flag)
    @bgs_control = flag
  end

#--------------------------------------------------------------------------------------------------------     
  def stop_weather
    $game_screen.weather(0, 0, 0)
    set_weather_bgs(0)
  end
  
#--------------------------------------------------------------------------------------------------------     
  def weather_is
    case $game_screen.weather_type
    when 0
      return "Clear"
    when 1
      return "Rain"
    when 2
      return "Storm"
    when 3
      return "Snow"
    when 4..5
      return "Gale"
    when 6..8
      return "Windy"
    end
  end
  
#--------------------------------------------------------------------------------------------------------     
  def set_weather_bgs(type)
    return if @bgs_control == false
    bgs = BGS.new
    bgs.volume = 80
    bgs.pitch = 100
    case type
    when 0
      $game_system.bgs_fade(10)
    when 1
      bgs.name = "005-Rain01"
      $game_system.bgs_play(bgs)
    when 2
      bgs.name = "006-Rain02"
      $game_system.bgs_play(bgs)
    when 3
      $game_system.bgs_fade(10)
    when 4..5
      bgs.name = "007-Rain03"
      $game_system.bgs_play(bgs)
    when 6
      bgs.name = "001-Wind01"
      $game_system.bgs_play(bgs)
    when 7
      bgs.name = "002-Wind02"
      $game_system.bgs_play(bgs)
    when 8
      bgs.name = "003-Wind03"
      $game_system.bgs_play(bgs)
    end
  end
  
#--------------------------------------------------------------------------------------------------------     
  def weather
    return if @aws == false
    return if $game_map.weather_active == false
    if min_is % @weather_period == 0 and @active_weather == false
      @active_weather = true
      if rand(10).between?(0, @weather_cycle)
        pattern = @weather_pattern[season_id]
        size = pattern.size - 1
        type = pattern[rand(size).to_i]
        if @weather_type == type
          if @weather_strength.between?(0, 40)
            @weather_strength += 10 
            else
            @weather_strength = 40
          end
        else
          @weather_strength = 10
        end
        @weather_type = type
        $game_screen.weather(@weather_type, @weather_strength, 0)
        set_weather_bgs(@weather_type)
      else
        @active_weather = true
        @weather_strength = 0
        $game_screen.weather(0, 0, 0)
        set_weather_bgs(0)
      end
    else
      @active_weather = false if min_is % @weather_period != 0
    end
  end
   
end
#===================================================
# ▲ CLASS Advanced_Time Ends
#===================================================


#===================================================
# ▼ CLASS Scene_Map Additional Code Begins
#===================================================
class Scene_Map

alias ats_scene_map_main main
alias ats_scene_map_update update
   
   def main
     if $game_map.dns_active
       tone = $ats.period_tint
       $game_screen.start_tone_change(Tone.new(tone[0],tone[1],tone[2],tone[3]),0)
     end
     #@alex_ats_window = ATS_TimeTest_Window.new
     ats_scene_map_main
     #@alex_ats_window.dispose
   end
   
   def update
     ats_scene_map_update
     #@alex_ats_window.update
     $ats.weather
     if $game_map.dns_active
       tone = $ats.period_tint
       $game_screen.start_tone_change(Tone.new(tone[0],tone[1],tone[2],tone[3]),tone[4])
     end
   end  
   
end
#===================================================
# ▲ CLASS Scene_Map Additional Code Ends
#===================================================


#===================================================
# ▼ CLASS ATS_TimeTest_Window Begins
#===================================================
class ATS_TimeTest_Window < Window_Base
  
  def initialize
    super(0,0,250,400)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = "Tahoma"
    self.contents.font.size =16
    self.opacity = 100
    update   
  end  
  
  def refresh
  #def update #testing and debugging window
    return if Graphics.frame_count % 10 != 0
    self.contents.clear
    self.contents.font.color = text_color(0) 
    self.contents.draw_text(0, 0, 400, 32, "Current Full Clock: " +$ats.clock)
    self.contents.draw_text(0, 16, 400, 32, "Small Date: " +$ats.date)
    self.contents.draw_text(0, 32, 400, 32, "Full Date: " +$ats.full_date)
    self.contents.draw_text(0, 60, 400, 32, "Week ID#: " + $ats.week_day_is.to_s)

    self.contents.draw_text(0, 80, 400, 32, "Period: " + $ats.period)
    self.contents.draw_text(0, 100, 400, 32, "Season: " + $ats.season)
    self.contents.draw_text(0, 120, 400, 32, "Month ID#: " + $ats.months_is.to_s)
    self.contents.draw_text(0, 140, 400, 32, "Map Name#: " + $game_map.map_name)
    self.contents.draw_text(0, 160, 400, 32, "Weather: " + $ats.weather_is)
  end
end 
#===================================================
# ▲ CLASS ATS_TimeTest_Window Ends
#===================================================

#===================================================
# ▼ CLASS Scene_Title Additional Code Begins
#===================================================
class Scene_Title
  $ats=Advanced_Time.new
end  
#===================================================
# ▲ CLASS Scene_Title Additional Code Ends
#===================================================


#===================================================
# ▼ CLASS Game_Map Additional Code Begins
#===================================================
class Game_Map

  attr_accessor :tileset_refresh
  attr_accessor :tileset_transition
  attr_accessor :map_transition
  attr_accessor :dns_active
  attr_accessor :weather_active
  attr_accessor :lights_refresh
  attr_accessor :shadows_refresh
  attr_accessor :shadows_redraw

  alias ats_game_map_update update
  alias ats_game_map_setup setup
  alias ats_game_map_initialize initialize

  def initialize
    ats_game_map_initialize
    @tileset_refresh = false
    @season = $ats.season_id
    @tileset_transition = false
    @map_transition = false
    @dns_active = false
    @weather_active = false
    @lights_refresh = false
    @shadows_refresh = false
    @shadows_redraw = false
    @map_transition_id = 0
  end

  def setup(map_id)
    ats_game_map_setup(map_id)
    # Setup
    @dns_active = false
    @weather_active = false
    @tileset_transition = false
    @map_transition = false
    
    map_infos = load_data("Data/MapInfos.rxdata")
    # DNS
    if map_infos[map_id].name.include?("*")
      map_infos[map_id].name.delete!("*")
      @dns_active = true
      tone = $ats.period_tint
      $game_screen.start_tone_change(Tone.new(tone[0],tone[1],tone[2],tone[3]),0)
    else
      $game_screen.start_tone_change(Tone.new(0,0,0,0),0)
    end
    # Dynamic Weather
    if map_infos[map_id].name.include?("^")
      map_infos[map_id].name.delete!("^")
      @weather_active = true
      $game_screen.weather($ats.weather_type, $ats.weather_strength, 0)
      $ats.set_weather_bgs($ats.weather_type)
    else
      $game_screen.weather(0, 0, 0)
      $ats.set_weather_bgs(0)
    end
    # Tileset Transition
    if map_infos[map_id].name.include?("&")
      map_infos[map_id].name.delete!("&")
      @tileset_transition = true
    end
    # Map Transition
    if map_infos[map_id].name.include?("[") and map_infos[map_id].name.include?("]")
      index = map_infos[map_id].name.index("[")
      temp = map_infos[map_id].name[index+1].chr
      map_infos[map_id].name.delete!(temp)
      map_infos[map_id].name.delete!("[")
      map_infos[map_id].name.delete!("]")
      @map_transition = true
    end
    @map_name = map_infos[map_id].name
    # Tileset Transition
    if @tileset_transition
      name = $game_map.tileset_name.split
      @tileset_name = name[0] + " " + $ats.season_id.to_s
      for i in 0..6
        autotile_name = @autotile_names[i].split
        next if autotile_name[0] == nil
        if autotile_name[1] == nil
          @autotile_names[i] = autotile_name[0]
        else
          @autotile_names[i] = autotile_name[0] + " " + $ats.season_id.to_s
        end
      end
    end
  end

  def map_name
    return @map_name
  end

  def update
    # Map Transition
    if @map_transition
      transition_id = "["+$ats.season_id.to_s+"]"
      map_infos = load_data("Data/MapInfos.rxdata")
      for key in map_infos.keys
        if map_infos[key].name.include?(@map_name) and map_infos[key].name.include?(transition_id)
          next if key == @map_id
          setup(key)
          @tileset_refresh = true
          return
        end
      end
    end
    # Tileset Transition
    if @tileset_transition
      if @season != $ats.season_id
        @tileset_refresh = true
        @season = $ats.season_id
        tileset_name = $game_map.tileset_name.split
        @tileset_name = tileset_name[0] + " " + $ats.season_id.to_s
        for i in 0..6
          autotile_name = $game_map.autotile_names[i].split
          next if autotile_name[0] == nil
          if autotile_name[1] == nil
            @autotile_names[i] = autotile_name[0]
          else
            @autotile_names[i] = autotile_name[0] + " " + $ats.season_id.to_s
          end
        end
      end
    end
    $game_map.need_refresh = true
    ats_game_map_update
  end
  
end
#===================================================
# ▲ CLASS Game_Map Additional Code Ends
#===================================================


#===================================================
# ▼ CLASS Spriteset_Map Additional Code Begins
#===================================================
class Spriteset_Map

  alias ats_spriteset_map_update update

  def update
    if $game_map.tileset_refresh
      $game_map.tileset_refresh = false
      Graphics.freeze
      dispose
      initialize
      Graphics.transition(20)
    end
    ats_spriteset_map_update
  end
  
end
#===================================================
# ▲ CLASS Spriteset_Map Additional Code Ends
#===================================================


#===================================================
# ▼ CLASS BGS Additional Code Begins
#===================================================

class BGS
  #--------------------------------------------------------------------------
  attr_accessor :name
  attr_accessor :volume
  attr_accessor :pitch
  #--------------------------------------------------------------------------
  def initialize
    @name = ""
    @volume = 80
    @pitch = 100
  end
end
#===================================================
# ▲ CLASS BGS Additional Code Ends
#===================================================

Thứ 2 là Advanced Weather System
Mã:
#===================================================
# ■ AWS- Advanced Weather System
#===================================================
#  By Ccoa
#  with ideas by ScriptKitty and Dr DJ
#
#  Weather Types:
#    1 - rain
#    2 - storm
#    3 - snow
#    4 - hail
#    5 - rain with thunder and lightning
#    6 - falling leaves (autumn)
#    7 - blowing leaves (autumn)
#    8 - swirling leaves (autumn)
#    9 - falling leaves (green)
#   10 - cherry blossom (sakura) petals
#   11 - rose petals
#   12 - feathers
#   13 - blood rain
#   14 - sparkles
#   15 - user defined
#
#  Weather Power:
#    An integer from 0-40.  0 = no weather, 40 = 400 sprites
#
#  Usage:
#    Create a call script with the following:
#       $game_screen.weather(type, power, hue)
# 
#  Usage of user-defined weather:
#    Look at the following globals:

$WEATHER_UPDATE = false   # the $WEATHER_IMAGES array has changed, please update
$WEATHER_IMAGES = []      # the array of picture names to use
$WEATHER_X = 0            # the number of pixels the image should move horizontally (positive = right, negative = left)
$WEATHER_Y = 0            # the number of pizels the image should move vertically (positive = down, negative = up)
$WEATHER_FADE = 0         # how much the image should fade each update (0 = no fade, 255 = fade instantly)
$WEATHER_ANIMATED = false # whether or not the image should cycle through all the images

module RPG
class Weather
  def initialize(viewport = nil)
    @type = 0
    @max = 0
    @ox = 0
    @oy = 0
    @count = 0
    @current_pose = []
    @info = []
    @countarray = []

    make_bitmaps

    # **** ccoa ****
    for i in 1..500
      sprite = Sprite.new(viewport)
      sprite.z = 1000
      sprite.visible = false
      sprite.opacity = 0
      @sprites.push(sprite)
      @current_pose.push(0)
      @info.push(rand(50))
      @countarray.push(rand(15))
    end
  end
  
  def dispose
    for sprite in @sprites
      sprite.dispose
    end
    @rain_bitmap.dispose
    @storm_bitmap.dispose
    @snow_bitmap.dispose
    @hail_bitmap.dispose
    @petal_bitmap.dispose
    @blood_rain_bitmap.dispose
    for image in @autumn_leaf_bitmaps
      image.dispose
    end
    for image in @green_leaf_bitmaps
      image.dispose
    end
    for image in @rose_bitmaps
      image.dispose
    end
    for image in @feather_bitmaps
      image.dispose
    end
    for image in @sparkle_bitmaps
      image.dispose
    end
    for image in @user_bitmaps
      image.dispose
    end
    $WEATHER_UPDATE = true
  end
  
  def type=(type)
    return if @type == type
    @type = type
    case @type
    when 1 # rain
      bitmap = @rain_bitmap
    when 2 # storm
      bitmap = @storm_bitmap
    when 3 # snow
      bitmap = @snow_bitmap
    when 4 # hail
      bitmap = @hail_bitmap
    when 5 # rain w/ thunder and lightning
      bitmap = @rain_bitmap
      @thunder = true
    when 6 # falling autumn leaves
      bitmap = @autumn_leaf_bitmaps[0]
    when 7 # blowing autumn leaves
      bitmap = @autumn_leaf_bitmaps[0]
    when 8 # swirling autumn leaves
      bitmap = @autumn_leaf_bitmaps[0]
    when 9 # falling green leaves
      bitmap = @green_leaf_bitmaps[0]
    when 10 # sakura petals
      bitmap = @petal_bitmap
    when 11 # rose petals
      bitmap = @rose_bitmaps[0]
    when 12 # feathers
      bitmap = @feather_bitmaps[0]
    when 13 # blood rain 
      bitmap = @blood_rain_bitmap
    when 14 # sparkles
      bitmap = @sparkle_bitmaps[0]
    when 15 # user-defined
        bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
    else
      bitmap = nil
    end
    if @type != 5
      @thunder = false
    end
    # **** ccoa ****
    for i in 1..500
      sprite = @sprites[i]
      if sprite != nil
        sprite.visible = (i <= @max)
        sprite.bitmap = bitmap
      end
    end
  end
  
  def ox=(ox)
    return if @ox == ox;
    @ox = ox
    for sprite in @sprites
      sprite.ox = @ox
    end
  end
  
  def oy=(oy)
    return if @oy == oy;
    @oy = oy
    for sprite in @sprites
      sprite.oy = @oy
    end
  end
  
  def max=(max)
    return if @max == max;
    # **** ccoa ****
    @max = [[max, 0].max, 500].min
    for i in 1..500
      sprite = @sprites[i]
      if sprite != nil
        sprite.visible = (i <= @max)
      end
    end
  end
  
  def update
    return if @type == 0
    for i in 1..@max
      sprite = @sprites[i]
      if sprite == nil
        break
      end
      if @type == 1 or @type == 5 or @type == 13 # rain
        sprite.x -= 2
        sprite.y += 16
        sprite.opacity -= 8
        if @thunder and (rand(8000 - @max) == 0)
          $game_screen.start_flash(Color.new(255, 255, 255, 255), 5)
          Audio.se_play("Audio/SE/061-Thunderclap01")
        end
      end
      if @type == 2 # storm
        sprite.x -= 8
        sprite.y += 16
        sprite.opacity -= 12
      end
      if @type == 3 # snow
        sprite.x -= 2
        sprite.y += 8
        sprite.opacity -= 8
      end
      if @type == 4 # hail
        sprite.x -= 1
        sprite.y += 18
        sprite.opacity -= 15
      end
      if @type == 6 # falling autumn leaves
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
        end
        sprite.x -= 1
        sprite.y += 1
      end
      if @type == 7 # blowing autumn leaves
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
        end
        sprite.x -= 10
        sprite.y += (rand(4) - 2)
      end
      if @type == 8 # swirling autumn leaves
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
        end
        if @info[i] != 0
          if @info[i] >= 1 and @info[i] <= 10
            sprite.x -= 3
            sprite.y -= 1
          elsif @info[i] >= 11 and @info[i] <= 16
            sprite.x -= 1
            sprite.y -= 2
          elsif @info[i] >= 17 and @info[i] <= 20
            sprite.y -= 3
          elsif @info[i] >= 21 and @info[i] <= 30
            sprite.y -= 2
            sprite.x += 1
          elsif @info[i] >= 31 and @info[i] <= 36
            sprite.y -= 1
            sprite.x += 3
          elsif @info[i] >= 37 and @info[i] <= 40
            sprite.x += 5
          elsif @info[i] >= 41 and @info[i] <= 46
            sprite.y += 1
            sprite.x += 3
          elsif @info[i] >= 47 and @info[i] <= 58
            sprite.y += 2
            sprite.x += 1
          elsif @info[i] >= 59 and @info[i] <= 64
            sprite.y += 3
          elsif @info[i] >= 65 and @info[i] <= 70
            sprite.x -= 1
            sprite.y += 2
          elsif @info[i] >= 71 and @info[i] <= 81
            sprite.x -= 3
            sprite.y += 1
          elsif @info[i] >= 82 and @info[i] <= 87
            sprite.x -= 5
          end
          @info[i] = (@info[i] + 1) % 88
        else
          if rand(200) == 0
            @info[i] = 1
          end
          sprite.x -= 5
          sprite.y += 1
        end
      end
      if @type == 9 # falling green leaves
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @green_leaf_bitmaps.size
          sprite.bitmap = @green_leaf_bitmaps[@current_pose[i]]
          @countarray[i] = rand(15)
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        sprite.y += 1
      end
      if @type == 10 # sakura petals
        if @info[i] < 25
          sprite.x -= 1
        else
          sprite.x += 1
        end
        @info[i] = (@info[i] + 1) % 50
        sprite.y += 1
      end
      if @type == 11 # rose petals
        @count = rand(20)
        if @count == 0
          sprite.bitmap = @rose_bitmaps[@current_pose[i]]
          @current_pose[i] = (@current_pose[i] + 1) % @rose_bitmaps.size
        end
        if @info[i] % 2 == 0
          if @info[i] < 10
            sprite.x -= 1
          elsif 
            sprite.x += 1
          end
        end
        sprite.y += 1
      end
      if @type == 12 # feathers
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @feather_bitmaps.size
          sprite.bitmap = @feather_bitmaps[@current_pose[i]]
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        if rand(100) == 0
          sprite.x -= 1
        end
        if rand(100) == 0
          sprite.y -= 1
        end
        if @info[i] < 50
          if rand(2) == 0
            sprite.x -= 1
          else
            sprite.y -= 1
          end
        else
          if rand(2) == 0
            sprite.x += 1
          else
            sprite.y += 1
          end
        end
        @info[i] = (@info[i] + 1) % 100
      end
      if @type == 14 # sparkles
        if @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @sparkle_bitmaps.size
          sprite.bitmap = @sparkle_bitmaps[@current_pose[i]]
        end
        @countarray[i] = (@countarray[i] + 1) % 15
        sprite.y += 1
        sprite.opacity -= 1
      end
      if @type == 15 # user-defined
        if $WEATHER_UPDATE
          update_user_defined
          $WEATHER_UPDATE = false
        end
        if $WEATHER_ANIMATED and @countarray[i] == 0
          @current_pose[i] = (@current_pose[i] + 1) % @user_bitmaps.size
          sprite.bitmap = @user_bitmaps[@current_pose[i]]
        end
        sprite.x += $WEATHER_X
        sprite.y += $WEATHER_Y
        sprite.opacity -= $WEATHER_FADE
      end

      x = sprite.x - @ox
      y = sprite.y - @oy
      if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
        sprite.x = rand(800) - 50 + @ox
        sprite.y = rand(800) - 200 + @oy
        sprite.opacity = 255
      end
    end
  end
  
  def make_bitmaps
    color1 = Color.new(255, 255, 255, 255)
    color2 = Color.new(255, 255, 255, 128)
    @rain_bitmap = Bitmap.new(7, 56)
    for i in 0..6
      @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
    end
    @storm_bitmap = Bitmap.new(34, 64)
    for i in 0..31
      @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
      @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
      @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
    end
    @snow_bitmap = Bitmap.new(6, 6)
    @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
    @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
    @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
    @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
    @sprites = []
    
    blueGrey  = Color.new(215, 227, 227, 150)
    grey      = Color.new(214, 217, 217, 150)
    lightGrey = Color.new(233, 233, 233, 250)
    lightBlue = Color.new(222, 239, 243, 250)
    @hail_bitmap = Bitmap.new(4, 4)
    @hail_bitmap.fill_rect(1, 0, 2, 1, blueGrey)
    @hail_bitmap.fill_rect(0, 1, 1, 2, blueGrey)
    @hail_bitmap.fill_rect(3, 1, 1, 2, grey)
    @hail_bitmap.fill_rect(1, 3, 2, 1, grey)
    @hail_bitmap.fill_rect(1, 1, 2, 2, lightGrey)
    @hail_bitmap.set_pixel(1, 1, lightBlue)
    
    
    color3 = Color.new(255, 167, 192, 255) # light pink
    color4 = Color.new(213, 106, 136, 255) # dark pink
    @petal_bitmap = Bitmap.new(4, 4) #This creates a new bitmap that is 4 x 4 pixels
    @petal_bitmap.fill_rect(0, 3, 1, 1, color3) # this makes a 1x1 pixel "rectangle" at the 0, 3 pixel of the image (upper left corner is 0, 0)
    @petal_bitmap.fill_rect(1, 2, 1, 1, color3)
    @petal_bitmap.fill_rect(2, 1, 1, 1, color3)
    @petal_bitmap.fill_rect(3, 0, 1, 1, color3)
    @petal_bitmap.fill_rect(1, 3, 1, 1, color4)
    @petal_bitmap.fill_rect(2, 2, 1, 1, color4)
    @petal_bitmap.fill_rect(3, 1, 1, 1, color4)
    
    
    brightOrange = Color.new(248, 88, 0, 255)   
    orangeBrown  = Color.new(144, 80, 56, 255) 
    burntRed     = Color.new(152, 0, 0, 255) 
    paleOrange   = Color.new(232, 160, 128, 255) 
    darkBrown    = Color.new(72, 40, 0, 255)
    @autumn_leaf_bitmaps = []
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    # draw the first of the leaf1 bitmaps
    @autumn_leaf_bitmaps[0].set_pixel(5, 1, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(6, 1, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(7, 1, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(3, 2, orangeBrown)
    @autumn_leaf_bitmaps[0].fill_rect(4, 2, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(6, 2, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(2, 3, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(3, 3, brightOrange)
    @autumn_leaf_bitmaps[0].fill_rect(4, 3, 2, 1, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(1, 4, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(2, 4, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(3, 4, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(1, 5, brightOrange)
    @autumn_leaf_bitmaps[0].set_pixel(2, 5, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(0, 6, orangeBrown)
    @autumn_leaf_bitmaps[0].set_pixel(1, 6, paleOrange)
    @autumn_leaf_bitmaps[0].set_pixel(0, 7, paleOrange)
    
    # draw the 2nd of the leaf1 bitmaps
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    @autumn_leaf_bitmaps[1].set_pixel(3, 0, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(7, 0, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(3, 1, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(4, 1, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(6, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(0, 2, paleOrange)
    @autumn_leaf_bitmaps[1].set_pixel(1, 2, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(2, 2, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(3, 2, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(4, 2, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(5, 2, brightOrange)
    @autumn_leaf_bitmaps[1].fill_rect(1, 3, 3, 1, orangeBrown)
    @autumn_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(6, 3, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(2, 4, burntRed)
    @autumn_leaf_bitmaps[1].fill_rect(3, 4, 3, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(6, 4, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(7, 4, darkBrown)
    @autumn_leaf_bitmaps[1].set_pixel(1, 5, orangeBrown)
    @autumn_leaf_bitmaps[1].fill_rect(2, 5, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(4, 5, orangeBrown)
    @autumn_leaf_bitmaps[1].set_pixel(5, 5, burntRed)
    @autumn_leaf_bitmaps[1].fill_rect(1, 6, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[1].fill_rect(4, 6, 2, 1, burntRed)
    @autumn_leaf_bitmaps[1].set_pixel(0, 7, brightOrange)
    @autumn_leaf_bitmaps[1].set_pixel(5, 7, darkBrown)
    
    # draw the 3rd of the leaf1 bitmaps
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    @autumn_leaf_bitmaps[2].set_pixel(7, 1, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(6, 2, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(7, 2, orangeBrown)
    @autumn_leaf_bitmaps[2].set_pixel(5, 3, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(6, 3, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(4, 4, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(5, 4, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(6, 4, orangeBrown)
    @autumn_leaf_bitmaps[2].fill_rect(2, 5, 2, 1, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(4, 5, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(5, 5, orangeBrown)
    @autumn_leaf_bitmaps[2].set_pixel(1, 6, paleOrange)
    @autumn_leaf_bitmaps[2].fill_rect(2, 6, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(4, 6, orangeBrown)
    @autumn_leaf_bitmaps[2].set_pixel(0, 7, paleOrange)
    @autumn_leaf_bitmaps[2].set_pixel(1, 7, brightOrange)
    @autumn_leaf_bitmaps[2].set_pixel(2, 7, orangeBrown)
    
    # draw the 4th of the leaf1 bitmaps
    @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
    @autumn_leaf_bitmaps[3].set_pixel(3, 0, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(7, 0, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(3, 1, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(4, 1, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(6, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(0, 2, paleOrange)
    @autumn_leaf_bitmaps[3].set_pixel(1, 2, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(2, 2, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(3, 2, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(4, 2, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(5, 2, brightOrange)
    @autumn_leaf_bitmaps[3].fill_rect(1, 3, 3, 1, orangeBrown)
    @autumn_leaf_bitmaps[3].fill_rect(4, 3, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(6, 3, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(2, 4, burntRed)
    @autumn_leaf_bitmaps[3].fill_rect(3, 4, 3, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(6, 4, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(7, 4, darkBrown)
    @autumn_leaf_bitmaps[3].set_pixel(1, 5, orangeBrown)
    @autumn_leaf_bitmaps[3].fill_rect(2, 5, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(4, 5, orangeBrown)
    @autumn_leaf_bitmaps[3].set_pixel(5, 5, burntRed)
    @autumn_leaf_bitmaps[3].fill_rect(1, 6, 2, 1, brightOrange)
    @autumn_leaf_bitmaps[3].fill_rect(4, 6, 2, 1, burntRed)
    @autumn_leaf_bitmaps[3].set_pixel(0, 7, brightOrange)
    @autumn_leaf_bitmaps[3].set_pixel(5, 7, darkBrown)
    
    @green_leaf_bitmaps = []
    darkGreen  = Color.new(62, 76, 31, 255)
    midGreen   = Color.new(76, 91, 43, 255)
    khaki      = Color.new(105, 114, 66, 255)
    lightGreen = Color.new(128, 136, 88, 255)
    mint       = Color.new(146, 154, 106, 255)
    
    # 1st leaf bitmap
    @green_leaf_bitmaps[0] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[0].set_pixel(1, 0, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(1, 1, midGreen)
    @green_leaf_bitmaps[0].set_pixel(2, 1, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(2, 2, khaki)
    @green_leaf_bitmaps[0].set_pixel(3, 2, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 2, khaki)
    @green_leaf_bitmaps[0].fill_rect(2, 3, 3, 1, midGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 3, khaki)
    @green_leaf_bitmaps[0].fill_rect(2, 4, 2, 1, midGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[0].set_pixel(6, 4, khaki)
    @green_leaf_bitmaps[0].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 5, khaki)
    @green_leaf_bitmaps[0].set_pixel(6, 5, lightGreen)
    @green_leaf_bitmaps[0].set_pixel(4, 6, midGreen)
    @green_leaf_bitmaps[0].set_pixel(5, 6, darkGreen)
    @green_leaf_bitmaps[0].set_pixel(6, 6, lightGreen)
    @green_leaf_bitmaps[0].set_pixel(6, 7, khaki)
    
    # 2nd leaf bitmap
    @green_leaf_bitmaps[1] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[1].fill_rect(1, 1, 1, 2, midGreen)
    @green_leaf_bitmaps[1].fill_rect(2, 2, 2, 1, khaki)
    @green_leaf_bitmaps[1].set_pixel(4, 2, lightGreen)
    @green_leaf_bitmaps[1].fill_rect(2, 3, 2, 1, darkGreen)
    @green_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, lightGreen)
    @green_leaf_bitmaps[1].set_pixel(2, 4, midGreen)
    @green_leaf_bitmaps[1].set_pixel(3, 4, darkGreen)
    @green_leaf_bitmaps[1].set_pixel(4, 4, khaki)
    @green_leaf_bitmaps[1].fill_rect(5, 4, 2, 1, lightGreen)
    @green_leaf_bitmaps[1].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[1].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[1].set_pixel(5, 5, khaki)
    @green_leaf_bitmaps[1].set_pixel(6, 5, lightGreen)
    @green_leaf_bitmaps[1].set_pixel(5, 6, darkGreen)
    @green_leaf_bitmaps[1].fill_rect(6, 6, 2, 1, khaki)
    
    # 3rd leaf bitmap
    @green_leaf_bitmaps[2] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[2].set_pixel(1, 1, darkGreen)
    @green_leaf_bitmaps[2].fill_rect(1, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[2].set_pixel(2, 3, midGreen)
    @green_leaf_bitmaps[2].set_pixel(3, 3, darkGreen)
    @green_leaf_bitmaps[2].set_pixel(4, 3, midGreen)
    @green_leaf_bitmaps[2].fill_rect(2, 4, 2, 1, midGreen)
    @green_leaf_bitmaps[2].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[2].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[2].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[2].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[2].fill_rect(5, 5, 2, 1, khaki)
    @green_leaf_bitmaps[2].fill_rect(4, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[2].set_pixel(6, 6, lightGreen)
    @green_leaf_bitmaps[2].set_pixel(6, 7, khaki)
    
    # 4th leaf bitmap
    @green_leaf_bitmaps[3] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[3].fill_rect(0, 3, 1, 2, darkGreen)
    @green_leaf_bitmaps[3].set_pixel(1, 4, midGreen)
    @green_leaf_bitmaps[3].set_pixel(2, 4, khaki)
    @green_leaf_bitmaps[3].set_pixel(3, 4, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[3].set_pixel(7, 4, midGreen)
    @green_leaf_bitmaps[3].set_pixel(1, 5, darkGreen)
    @green_leaf_bitmaps[3].set_pixel(2, 5, midGreen)
    @green_leaf_bitmaps[3].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[3].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(6, 5, khaki)
    @green_leaf_bitmaps[3].set_pixel(7, 5, midGreen)
    @green_leaf_bitmaps[3].fill_rect(2, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[3].set_pixel(4, 6, lightGreen)
    @green_leaf_bitmaps[3].set_pixel(5, 6, khaki)
    @green_leaf_bitmaps[3].set_pixel(6, 6, midGreen)
    
    # 5th leaf bitmap
    @green_leaf_bitmaps[4] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[4].set_pixel(6, 2, midGreen)
    @green_leaf_bitmaps[4].set_pixel(7, 2, darkGreen)
    @green_leaf_bitmaps[4].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[4].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[4].set_pixel(2, 4, darkGreen)
    @green_leaf_bitmaps[4].fill_rect(3, 4, 2, 1, khaki)
    @green_leaf_bitmaps[4].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[4].set_pixel(6, 4, khaki)
    @green_leaf_bitmaps[4].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[4].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[4].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[4].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[4].set_pixel(5, 5, midGreen)
    @green_leaf_bitmaps[4].set_pixel(2, 6, darkGreen)
    @green_leaf_bitmaps[4].fill_rect(3, 6, 2, 1, midGreen)
    
    # 6th leaf bitmap
    @green_leaf_bitmaps[5] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[5].fill_rect(6, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[5].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[5].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[5].set_pixel(3, 4, midGreen)
    @green_leaf_bitmaps[5].set_pixel(4, 4, khaki)
    @green_leaf_bitmaps[5].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[5].set_pixel(6, 4, mint)
    @green_leaf_bitmaps[5].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[5].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[5].fill_rect(3, 5, 2, 1, mint)
    @green_leaf_bitmaps[5].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[5].set_pixel(2, 6, midGreen)
    @green_leaf_bitmaps[5].set_pixel(3, 6, khaki)
    @green_leaf_bitmaps[5].set_pixel(4, 6, lightGreen)
    
    # 7th leaf bitmap
    @green_leaf_bitmaps[6] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[6].fill_rect(6, 1, 1, 2, midGreen)
    @green_leaf_bitmaps[6].fill_rect(4, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[6].fill_rect(6, 2, 1, 2, darkGreen)
    @green_leaf_bitmaps[6].fill_rect(3, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[6].set_pixel(5, 3, khaki)
    @green_leaf_bitmaps[6].set_pixel(2, 4, midGreen)
    @green_leaf_bitmaps[6].set_pixel(3, 4, khaki)
    @green_leaf_bitmaps[6].set_pixel(4, 4, lightGreen)
    @green_leaf_bitmaps[6].set_pixel(5, 4, midGreen)
    @green_leaf_bitmaps[6].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[6].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[6].fill_rect(3, 5, 2, 1, midGreen)
    @green_leaf_bitmaps[6].set_pixel(1, 6, darkGreen)
    @green_leaf_bitmaps[6].set_pixel(2, 6, midGreen)
    
    # 8th leaf bitmap
    @green_leaf_bitmaps[7] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[7].set_pixel(6, 1, midGreen)
    @green_leaf_bitmaps[7].fill_rect(4, 2, 3, 2, midGreen)
    @green_leaf_bitmaps[7].set_pixel(3, 3, darkGreen)
    @green_leaf_bitmaps[7].set_pixel(2, 4, darkGreen)
    @green_leaf_bitmaps[7].set_pixel(3, 4, midGreen)
    @green_leaf_bitmaps[7].fill_rect(4, 4, 2, 1, khaki)
    @green_leaf_bitmaps[7].set_pixel(1, 5, darkGreen)
    @green_leaf_bitmaps[7].set_pixel(2, 5, midGreen)
    @green_leaf_bitmaps[7].fill_rect(3, 5, 2, 1, lightGreen)
    @green_leaf_bitmaps[7].set_pixel(2, 6, midGreen)
    @green_leaf_bitmaps[7].set_pixel(3, 6, lightGreen)
    
    # 9th leaf bitmap
    @green_leaf_bitmaps[8] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[8].fill_rect(6, 1, 1, 2, midGreen)
    @green_leaf_bitmaps[8].fill_rect(4, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[8].fill_rect(6, 2, 1, 2, darkGreen)
    @green_leaf_bitmaps[8].fill_rect(3, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[8].set_pixel(5, 3, khaki)
    @green_leaf_bitmaps[8].set_pixel(2, 4, midGreen)
    @green_leaf_bitmaps[8].set_pixel(3, 4, khaki)
    @green_leaf_bitmaps[8].set_pixel(4, 4, lightGreen)
    @green_leaf_bitmaps[8].set_pixel(5, 4, midGreen)
    @green_leaf_bitmaps[8].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[8].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[8].fill_rect(3, 5, 2, 1, midGreen)
    @green_leaf_bitmaps[8].set_pixel(1, 6, darkGreen)
    @green_leaf_bitmaps[8].set_pixel(2, 6, midGreen)
    
    # 10th leaf bitmap
    @green_leaf_bitmaps[9] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[9].fill_rect(6, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[9].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[9].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[9].set_pixel(3, 4, midGreen)
    @green_leaf_bitmaps[9].set_pixel(4, 4, khaki)
    @green_leaf_bitmaps[9].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[9].set_pixel(6, 4, mint)
    @green_leaf_bitmaps[9].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[9].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[9].fill_rect(3, 5, 2, 1, mint)
    @green_leaf_bitmaps[9].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[9].set_pixel(2, 6, midGreen)
    @green_leaf_bitmaps[9].set_pixel(3, 6, khaki)
    @green_leaf_bitmaps[9].set_pixel(4, 6, lightGreen)
    
    # 11th leaf bitmap
    @green_leaf_bitmaps[10] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[10].set_pixel(6, 2, midGreen)
    @green_leaf_bitmaps[10].set_pixel(7, 2, darkGreen)
    @green_leaf_bitmaps[10].fill_rect(4, 3, 2, 1, midGreen)
    @green_leaf_bitmaps[10].set_pixel(6, 3, khaki)
    @green_leaf_bitmaps[10].set_pixel(2, 4, darkGreen)
    @green_leaf_bitmaps[10].fill_rect(3, 4, 2, 1, khaki)
    @green_leaf_bitmaps[10].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[10].set_pixel(6, 4, khaki)
    @green_leaf_bitmaps[10].set_pixel(1, 5, midGreen)
    @green_leaf_bitmaps[10].set_pixel(2, 5, khaki)
    @green_leaf_bitmaps[10].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[10].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[10].set_pixel(5, 5, midGreen)
    @green_leaf_bitmaps[10].set_pixel(2, 6, darkGreen)
    @green_leaf_bitmaps[10].fill_rect(3, 6, 2, 1, midGreen)
    
    # 12th leaf bitmap
    @green_leaf_bitmaps[11] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[11].fill_rect(0, 3, 1, 2, darkGreen)
    @green_leaf_bitmaps[11].set_pixel(1, 4, midGreen)
    @green_leaf_bitmaps[11].set_pixel(2, 4, khaki)
    @green_leaf_bitmaps[11].set_pixel(3, 4, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[11].set_pixel(7, 4, midGreen)
    @green_leaf_bitmaps[11].set_pixel(1, 5, darkGreen)
    @green_leaf_bitmaps[11].set_pixel(2, 5, midGreen)
    @green_leaf_bitmaps[11].set_pixel(3, 5, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(4, 5, mint)
    @green_leaf_bitmaps[11].set_pixel(5, 5, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(6, 5, khaki)
    @green_leaf_bitmaps[11].set_pixel(7, 5, midGreen)
    @green_leaf_bitmaps[11].fill_rect(2, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[11].set_pixel(4, 6, lightGreen)
    @green_leaf_bitmaps[11].set_pixel(5, 6, khaki)
    @green_leaf_bitmaps[11].set_pixel(6, 6, midGreen)
    
    # 13th leaf bitmap
    @green_leaf_bitmaps[12] = Bitmap.new(8, 8)
    @green_leaf_bitmaps[12].set_pixel(1, 1, darkGreen)
    @green_leaf_bitmaps[12].fill_rect(1, 2, 2, 1, midGreen)
    @green_leaf_bitmaps[12].set_pixel(2, 3, midGreen)
    @green_leaf_bitmaps[12].set_pixel(3, 3, darkGreen)
    @green_leaf_bitmaps[12].set_pixel(4, 3, midGreen)
    @green_leaf_bitmaps[12].fill_rect(2, 4, 2, 1, midGreen)
    @green_leaf_bitmaps[12].set_pixel(4, 4, darkGreen)
    @green_leaf_bitmaps[12].set_pixel(5, 4, lightGreen)
    @green_leaf_bitmaps[12].set_pixel(3, 5, midGreen)
    @green_leaf_bitmaps[12].set_pixel(4, 5, darkGreen)
    @green_leaf_bitmaps[12].fill_rect(5, 5, 2, 1, khaki)
    @green_leaf_bitmaps[12].fill_rect(4, 6, 2, 1, midGreen)
    @green_leaf_bitmaps[12].set_pixel(6, 6, lightGreen)
    @green_leaf_bitmaps[12].set_pixel(6, 7, khaki)
    
    @rose_bitmaps = []
    brightRed = Color.new(255, 0, 0, 255)
    midRed    = Color.new(179, 17, 17, 255)
    darkRed   = Color.new(141, 9, 9, 255)
    
    # 1st rose petal bitmap
    @rose_bitmaps[0] = Bitmap.new(3, 3)
    @rose_bitmaps[0].fill_rect(1, 0, 2, 1, brightRed)
    @rose_bitmaps[0].fill_rect(0, 1, 1, 2, brightRed)
    @rose_bitmaps[0].fill_rect(1, 1, 2, 2, midRed)
    @rose_bitmaps[0].set_pixel(2, 2, darkRed)
    
    # 2nd rose petal bitmap
    @rose_bitmaps[1] = Bitmap.new(3, 3)
    @rose_bitmaps[1].set_pixel(0, 1, midRed)
    @rose_bitmaps[1].set_pixel(1, 1, brightRed)
    @rose_bitmaps[1].fill_rect(1, 2, 1, 2, midRed)
    
    @feather_bitmaps = []
    white = Color.new(255, 255, 255, 255)
    
    # 1st feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(0, 2, white)
    @feather_bitmaps[0].set_pixel(1, 2, grey)
    @feather_bitmaps[0].set_pixel(2, 1, grey)
    
    # 2nd feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(0, 0, white)
    @feather_bitmaps[0].set_pixel(0, 1, grey)
    @feather_bitmaps[0].set_pixel(1, 2, grey)
    
    # 3rd feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(2, 0, white)
    @feather_bitmaps[0].set_pixel(1, 0, grey)
    @feather_bitmaps[0].set_pixel(0, 1, grey)
    
    # 4th feather bitmap
    @feather_bitmaps[0] = Bitmap.new(3, 3)
    @feather_bitmaps[0].set_pixel(2, 2, white)
    @feather_bitmaps[0].set_pixel(2, 1, grey)
    @feather_bitmaps[0].set_pixel(1, 0, grey)
    
    @blood_rain_bitmap = Bitmap.new(7, 56)
    for i in 0..6
      @blood_rain_bitmap.fill_rect(6-i, i*8, 1, 8, darkRed)
    end
    
    @sparkle_bitmaps = []
    
    lightBlue = Color.new(181, 244, 255, 255)
    midBlue   = Color.new(126, 197, 235, 255)
    darkBlue  = Color.new(77, 136, 225, 255)
    
    # 1st sparkle bitmap
    @sparkle_bitmaps[0] = Bitmap.new(7, 7)
    @sparkle_bitmaps[0].set_pixel(3, 3, darkBlue)
    
    # 2nd sparkle bitmap
    @sparkle_bitmaps[1] = Bitmap.new(7, 7)
    @sparkle_bitmaps[1].fill_rect(3, 2, 1, 3, darkBlue)
    @sparkle_bitmaps[1].fill_rect(2, 3, 3, 1, darkBlue)
    @sparkle_bitmaps[1].set_pixel(3, 3, midBlue)
    
    # 3rd sparkle bitmap
    @sparkle_bitmaps[2] = Bitmap.new(7, 7)
    @sparkle_bitmaps[2].set_pixel(1, 1, darkBlue)
    @sparkle_bitmaps[2].set_pixel(5, 1, darkBlue)
    @sparkle_bitmaps[2].set_pixel(2, 2, midBlue)
    @sparkle_bitmaps[2].set_pixel(4, 2, midBlue)
    @sparkle_bitmaps[2].set_pixel(3, 3, lightBlue)
    @sparkle_bitmaps[2].set_pixel(2, 4, midBlue)
    @sparkle_bitmaps[2].set_pixel(4, 4, midBlue)
    @sparkle_bitmaps[2].set_pixel(1, 5, darkBlue)
    @sparkle_bitmaps[2].set_pixel(5, 5, darkBlue)
    
    # 4th sparkle bitmap
    @sparkle_bitmaps[3] = Bitmap.new(7, 7)
    @sparkle_bitmaps[3].fill_rect(3, 1, 1, 5, darkBlue)
    @sparkle_bitmaps[3].fill_rect(1, 3, 5, 1, darkBlue)
    @sparkle_bitmaps[3].fill_rect(3, 2, 1, 3, midBlue)
    @sparkle_bitmaps[3].fill_rect(2, 3, 3, 1, midBlue)
    @sparkle_bitmaps[3].set_pixel(3, 3, lightBlue)
    
    # 5th sparkle bitmap
    @sparkle_bitmaps[4] = Bitmap.new(7, 7)
    @sparkle_bitmaps[4].fill_rect(2, 2, 3, 3, midBlue)
    @sparkle_bitmaps[4].fill_rect(3, 2, 1, 3, darkBlue)
    @sparkle_bitmaps[4].fill_rect(2, 3, 3, 1, darkBlue)
    @sparkle_bitmaps[4].set_pixel(3, 3, lightBlue)
    @sparkle_bitmaps[4].set_pixel(1, 1, darkBlue)
    @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
    @sparkle_bitmaps[4].set_pixel(1, 5, darkBlue)
    @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
    
    # 6th sparkle bitmap
    @sparkle_bitmaps[5] = Bitmap.new(7, 7)
    @sparkle_bitmaps[5].fill_rect(2, 1, 3, 5, darkBlue)
    @sparkle_bitmaps[5].fill_rect(1, 2, 5, 3, darkBlue)
    @sparkle_bitmaps[5].fill_rect(2, 2, 3, 3, midBlue)
    @sparkle_bitmaps[5].fill_rect(3, 1, 1, 5, midBlue)
    @sparkle_bitmaps[5].fill_rect(1, 3, 5, 1, midBlue)
    @sparkle_bitmaps[5].fill_rect(3, 2, 1, 3, lightBlue)
    @sparkle_bitmaps[5].fill_rect(2, 3, 3, 1, lightBlue)
    @sparkle_bitmaps[5].set_pixel(3, 3, white)
    
    # 7th sparkle bitmap
    @sparkle_bitmaps[6] = Bitmap.new(7, 7)
    @sparkle_bitmaps[6].fill_rect(2, 1, 3, 5, midBlue)
    @sparkle_bitmaps[6].fill_rect(1, 2, 5, 3, midBlue)
    @sparkle_bitmaps[6].fill_rect(3, 0, 1, 7, darkBlue)
    @sparkle_bitmaps[6].fill_rect(0, 3, 7, 1, darkBlue)
    @sparkle_bitmaps[6].fill_rect(2, 2, 3, 3, lightBlue)
    @sparkle_bitmaps[6].fill_rect(3, 2, 1, 3, midBlue)
    @sparkle_bitmaps[6].fill_rect(2, 3, 3, 1, midBlue)
    @sparkle_bitmaps[6].set_pixel(3, 3, white)
    
    @user_bitmaps = []
    update_user_defined
  end
  
  def update_user_defined
    for image in @user_bitmaps
      image.dispose
    end
    
    #user-defined bitmaps
    for name in $WEATHER_IMAGES
      @user_bitmaps.push(RPG::Cache.picture(name))
    end
    for sprite in @sprites
      sprite.bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
    end
  end
  
  attr_reader :type
  attr_reader :max
  attr_reader :ox
  attr_reader :oy
end
end
Và cái này là để cho hiển thị các Size
Chép chồng cái này lên Window_PlayTime
Mã:
#==============================================================================
# ** Window_PlayTime
#------------------------------------------------------------------------------
#  This window displays play time on the menu screen.
#==============================================================================

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 110)
    self.contents = Bitmap.new(width - 32, height - 32)
    #self.contents.font.name = $fontface  # "Play Time" window font
    self.contents.font.size = 18
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    return if Graphics.frame_count % 10 != 0
    self.contents.clear
    self.contents.font.color = system_color #Chỉnh màu
    self.contents.draw_text(4, 0, 120, 32, $ats.clock + " " + $ats.period) #Hiện giờ và buổi
    #self.contents.draw_text(4, 16, 120, 32, "" +$ats.date) #Hiện ngày tháng năm
    self.contents.draw_text(4, 16, 120, 32, "" +$ats.full_date + " " + $ats.season) #Hiện thứ ,ngày ,tháng và mùa
    #self.contents.draw_text(4, 16, 120, 32, "" + $ats.week_day_is.to_s) #Hiện ngày trong tuần
    #self.contents.draw_text(4, 0, 120, 32, $ats.period) #Hiện buổi
    #self.contents.draw_text(32, 16, 120, 32, "" + $ats.season) #hiện mùa
    #self.contents.draw_text(4, 16, 120, 32, "" + $ats.months_is.to_s)#Hiện tháng
    self.contents.draw_text(4, 32, 120, 32, "Location: " + $game_map.map_name) #Hiện vị trí
    self.contents.draw_text(4, 48, 120, 32, "Weather: " + $ats.weather_is) #Hiện thời tiết
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
Tiếp theo là Window_Steps (cái này thay đổi tí Size để phù hợp)
Mã:
#==============================================================================
# ** Window_Steps
#------------------------------------------------------------------------------
#  This window displays step count on the menu screen.
#==============================================================================

class Window_Steps < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 82)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Step Count")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, $game_party.steps.to_s, 2)
  end
end
Và tiếp là chếp chồng lên Scene_Menu (Lưu ý bên dưới nhớ đọc kĩ)
Mã:
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make command window
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Save"
    s6 = "End Game"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @command_window.disable_item(4)
    end
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 224
    # Make steps window
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 334
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # Make status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 5  # end game
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end
Lưu ý :Nếu ai đã có 1 cái Scene_Menu khác .Có nghĩa là của riêng mình thì hãy thay tọa độ y của Window_Steps thêm 14 đơn vị .Vd :Mặc định là 320 ta sẽ thay là 334 để nó phù hợp với Size bên trên .
ScreenShot
ATS.png
@voighe: đây là cái tileset mẫu và 1 cái charset mẫu, bạn có thể theo đó mà
cắt hình từ Harvest Moon: Friends of Mineral town rùi làm 1 tileset, nên làm theo số bước chân của nhân vật trong Harvest Moon: Friends of Mineral town, cụ thể là :cứ 1 bước chân là 32 đơn vị độ dai (Quái, quên tên đơn vị gồi, nhưng ko phải inch hay cm đâu), còn charset thì bạn cắt hình nhân vật, cây trồng items trong Harvest Moon: Friends of Mineral town rồi ghép theo tỉ lệ: nv thì là 32x64 và cứ theo mẫu mà làm (lưu ý là phải chia đều khoảng cách của các hình nhân vật, còn cây trồng thì thì theo 4 giai đoạn mà làm như trong hình mẫu (lưu ý như trên kia), có điều nó khác hình mẫu là phải chia đều khoảng cách và mỗi dòng phải có từng giai đoạn VD:

Cây mới mọc Cây mới mọc Cây mới mọc Cây mới mọc Cây mới mọc
Cây có lá Cây có lá Cây có lá Cây có lá
Cây có hoa Cây có hoa Cây có hoa Cây có hoa
Cây ra quả Cây ra quả Cây ra quả Cây ra quả
Tất cả các hình cùng 1 hàng phải giống nhau, tỉ lệ 32x32
@poke: tiếc thật!:-s
 

Attachments

Tốt nhưng cái thứ 2 down về làm gì vậy
 
Còn đây là mí cái file còn lại (vì cho pót tối đa 5 file)
@voighe cái mẫu cây trồng nó là cái hình 36 trong folder charet ở trong file Harvest Moon.rar
Music file: http://www.sendspace.com/file/3oy15f

conanak99 nói:
2k3 thì cũng cần mấy chi tiết rất cần thiết để Ak lọc ra rồi cho vào cái Xp luôn hen (Tài chưa HEHE )
Còn Photoshop thì sao bây giờ hen
Cái thứ 2 dùng để đáp ứng cái nì nè
 
conanak99 nói:
Niccky có sự thay đổi lớn rồi đây
Down cái này về
1/HM Change your life
OK, thank for you help!:hug: :hug:

Àh mà làm ơn post lên giùm em mấy cái event của HM đi, bao gồm các event cua gái nữa
Nghĩ ra tên của nhóm làm game gồi: WONDER TEAM, ai giỏi đồ họa thì làm 1 cái logo cho nhóm đi!
 
Status
Không mở trả lời sau này.
Back
Top