mcgluszak

light circle_old

Sep 22nd, 2011
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 11.62 KB | None | 0 0
  1. #begin
  2. #==============================================================================
  3. #==============================================================================
  4. #==============================================================================
  5. #Light Circle Script v1.11 updated(23-05-2011)
  6. #==============================================================================
  7. #==============================================================================
  8. #==============================================================================
  9. class Scene_Save < Scene_File
  10.      
  11.   alias alias_write_save_data write_save_data
  12.      
  13.   def write_save_data(file)
  14.     alias_write_save_data(file)
  15.     Marshal.dump($sensitivity,file)
  16.     Marshal.dump($sensitivity_2,file)
  17.     Marshal.dump($light_switch,file)
  18.     Marshal.dump($flick,file)
  19.   end
  20. end
  21. #==============================================================================
  22. class Scene_Load < Scene_File
  23.   alias t_read_save_data read_save_data
  24.   def read_save_data(file)
  25.     t_read_save_data(file)
  26.     $sensitivity = Marshal.load(file)
  27.     $sensitivity_2 = Marshal.load(file)
  28.     $light_switch = Marshal.load(file)
  29.     $flick = Marshal.load(file)
  30.   end
  31. end
  32. #==============================================================================
  33. class Game_Player< Game_Character
  34.   def change_sensitivity(value,type)
  35.     case type
  36.     when "sensitivity"
  37.       $sensitivity=value
  38.     when "sensitivity_2"
  39.       $sensitivity_2[0]=value
  40.     end
  41.   end
  42. end
  43. #==============================================================================
  44. class Scene_Map
  45.   def spriteset
  46.     return @spriteset
  47.   end
  48. end
  49. #==============================================================================
  50. #==============================================================================
  51. #==============================================================================
  52. class Scene_Title
  53.  
  54.   alias alias_main main
  55. #--------------------------------------------------------------------------
  56. # * change initial sensitivity here
  57. #--------------------------------------------------------------------------  
  58.   def main
  59.     $light_switch=1
  60.     $sensitivity_2=[]
  61.     $sensitivity_2[0]=90
  62.     $flick=0
  63.     alias_main
  64.   end
  65. #--------------------------------------------------------------------------
  66. # * change initial sensitivity here
  67. #--------------------------------------------------------------------------  
  68. end
  69. #==============================================================================
  70. #==============================================================================
  71. #==============================================================================
  72. # ** Spriteset_Map
  73. #------------------------------------------------------------------------------
  74. #   This class brings together map screen sprites, tilemaps, etc.
  75. #   It's used within the Scene_Map class.
  76. #==============================================================================
  77. #==============================================================================
  78. #==============================================================================
  79. class Spriteset_Map
  80.   attr_accessor :tone
  81.   attr_accessor :light_limit
  82.   attr_accessor :x_limit
  83.   attr_accessor :y_limit
  84.    
  85.   alias alias_update update
  86.   alias alias_initialize initialize
  87.   alias alias_dispose dispose
  88. #--------------------------------------------------------------------------
  89. # * Object Initialization
  90. #--------------------------------------------------------------------------
  91.   def initialize
  92. #--------------------------------------------------------------------------
  93. # * change initial setting
  94. #--------------------------------------------------------------------------      
  95.     @tone=30#30
  96.     @light_limit=15#15
  97.     @x_limit=6
  98.     @y_limit=5
  99. #--------------------------------------------------------------------------
  100. # * change initial setting
  101. #--------------------------------------------------------------------------
  102.     @opacity=[]
  103.     @random=[]
  104.     @r_value=[]
  105.     @x_x=[]
  106.     @y_y=[]
  107.     @xx=[]
  108.     @yy=[]
  109.     @event_rx=[]
  110.     @event_ry=[]
  111.     @event_coor_x=[]
  112.     @event_coor_y=[]
  113.     @sensitivity=[]
  114.     @viewport=[]
  115.     @viewport[0]=[]
  116.     @viewport[1]=[]
  117.     @viewport[2]=[]
  118.     @viewport[3]=[]
  119.     @viewport[4]=[]
  120.     @d=6
  121.     @frame=3
  122.     @event_frame_x_highlimit=[]
  123.     @event_frame_y_highlimit=[]
  124.     @event_frame_x_lowlimit=[]
  125.     @event_frame_y_lowlimit=[]
  126.     get_event_data
  127. #------------------------------------
  128.     for @y in 0..15
  129.       @opacity[@y]=[]
  130.       @viewport[0][@y]=[]
  131.       @viewport[1][@y]=[]
  132.       @viewport[2][@y]=[]
  133.       @viewport[3][@y]=[]
  134.       @viewport[4][@y]=[]
  135.       for @x in 0..20
  136.         @viewport[0][@y][@x] = Viewport.new(@x*32-16, @y*32-16, 32, 32)
  137.         @viewport[0][@y][@x].tone = Tone.new(-255, -255, -255, 0)
  138.         @viewport[0][@y][@x].z = 199
  139.         @viewport[1][@y][@x]= Viewport.new(@x*32-16+@d, @y*32-16+@d, 32, 32)
  140.         @viewport[1][@y][@x].tone = Tone.new(-255, -255, -255, 0)
  141.         @viewport[1][@y][@x].z = 199
  142. =begin
  143.         @viewport[2][@y][@x] = Viewport.new(@x*32-16+@d*2, @y*32-16+@d*2, 32, 32)
  144.         @viewport[2][@y][@x].tone = Tone.new(-255, -255, -255, 0)
  145.         @viewport[2][@y][@x].z = 199
  146.         @viewport[3][@y][@x]= Viewport.new(@x*32-16-@d, @y*32-16-@d, 32, 32)
  147.         @viewport[3][@y][@x].tone = Tone.new(-255, -255, -255, 0)
  148.         @viewport[3][@y][@x].z = 199
  149.         @viewport[4][@y][@x]= Viewport.new(@x*32-16-@d*2, @y*32-16-@d*2, 32, 32)
  150.         @viewport[4][@y][@x].tone = Tone.new(-255, -255, -255, 0)
  151.         @viewport[4][@y][@x].z = 199
  152. =end
  153.         @opacity[@y][@x]=-@tone
  154.       end
  155.     end
  156.     alias_initialize
  157.  
  158.   end
  159. #--------------------------------------------------------------------------
  160. # * Object Initialization
  161. #--------------------------------------------------------------------------  
  162. #--------------------------------------------------------------------------
  163. # * Dispose
  164. #--------------------------------------------------------------------------
  165.   def dispose
  166.     alias_dispose
  167.     for @y in 0..15
  168.       for @x in 0..20
  169.         for i in 0..1#4
  170.           @viewport[i][@y][@x].dispose
  171.         end
  172.       end
  173.     end
  174.  
  175.   end
  176. #--------------------------------------------------------------------------
  177. # * Dispose
  178. #--------------------------------------------------------------------------
  179.   def update
  180.     if Graphics.frame_rate<36
  181.       @frame=2#4
  182.     else
  183.       @frame=1#3
  184.     end
  185.     @ccc=0 if @ccc==nil
  186.     @ccc2=0 if @ccc2==nil
  187.     if @ccc2 % @frame==0
  188.       if @ccc==0  
  189.         if $light_switch==1
  190.           @random[0]=rand($flick+1)
  191.           #------------------
  192.           get_event_data
  193.           #-------------------  
  194.           i=1
  195.           loop do
  196.             @r_value[i]=0 if @r_value[i]==nil
  197.             @random[i]=rand(@r_value[i]+1)
  198.             break if i==@light_limit || @r_value[i]==nil
  199.             i+=1
  200.           end
  201.           @player_rx=($game_player.real_x-$game_map.display_x)/4
  202.           @player_ry=($game_player.real_y-$game_map.display_y)/4
  203.           @player_coor_x= (@player_rx+16)/32
  204.           @player_coor_y= (@player_ry+16)/32
  205.           @sensitivity[0]=$sensitivity_2[0]+@random[0]
  206.           i=1
  207.           loop do
  208.             break if @xx[i]==nil
  209.             @event_rx[i]=(@xx[i]-$game_map.display_x/4)
  210.             @event_ry[i]=(@yy[i]-$game_map.display_y/4)
  211.             @event_coor_x[i]=(@event_rx[i]+16)/32
  212.             @event_coor_y[i]=(@event_ry[i]+16)/32
  213.             @sensitivity[i]=$sensitivity_2[i]+@random[i]
  214.             @sensitivity[i]=100 if @sensitivity[i]>100
  215.             i+=1
  216.           end
  217.           @event_seq=1
  218.           for @y in 0..15
  219.             for @x in 0..20
  220.               @opacity[@y][@x] =@sensitivity[0]/((@x-@player_coor_x)**2+(@y-@player_coor_y)**2+5)
  221.             end
  222.           end
  223.           loop do
  224.             break if @xx[@event_seq]==nil  
  225.                 if (@player_coor_x-@event_coor_x[@event_seq]).abs<@x_limit && (@player_coor_y-@event_coor_y[@event_seq]).abs<@y_limit
  226.                 @area_limit=(@sensitivity[@event_seq]/12).to_i
  227.                 @event_frame_x_highlimit[@event_seq]=@event_coor_x[@event_seq]+@area_limit
  228.                 @event_frame_x_lowlimit[@event_seq]=@event_coor_x[@event_seq]-@area_limit
  229.                 @event_frame_y_highlimit[@event_seq]=@event_coor_y[@event_seq]+@area_limit
  230.                 @event_frame_y_lowlimit[@event_seq]=@event_coor_y[@event_seq]-@area_limit
  231.                 @event_frame_x_highlimit[@event_seq] =20 if @event_frame_x_highlimit[@event_seq]>20
  232.                 @event_frame_x_lowlimit[@event_seq] =0 if @event_frame_x_lowlimit[@event_seq]<0
  233.                 @event_frame_y_highlimit[@event_seq] =15 if @event_frame_y_highlimit[@event_seq]>15
  234.                 @event_frame_y_lowlimit[@event_seq] =0 if @event_frame_y_lowlimit[@event_seq]<0
  235.                 for @y in @event_frame_y_lowlimit[@event_seq]..@event_frame_y_highlimit[@event_seq]
  236.                   for @x in @event_frame_x_lowlimit[@event_seq]..@event_frame_x_highlimit[@event_seq]
  237.                     @opacity[@y][@x] +=@sensitivity[@event_seq]/((@x-@event_coor_x[@event_seq])**2+(@y-@event_coor_y[@event_seq])**2+5)
  238.                   end
  239.                 end
  240.               end
  241.             @event_seq+=1
  242.           end
  243.           for @y in 0..15
  244.             for @x in 0..20
  245.               a=@opacity[@y][@x]
  246.               a-=@tone
  247.               a=0 if a>0
  248.               a=-@tone if a<-@tone
  249.               @viewport[0][@y][@x].tone=Tone.new(a, a, a)
  250.             end
  251.           end
  252.           @on=nil if @on != nil
  253.         else      
  254.           if @on==nil
  255.             for @y in 0..15
  256.               for @x in 0..20
  257.                 a=Tone.new(0,0,0, 0)
  258.                 for i in 0..1#4
  259.                   @viewport[i][@y][@x].tone =a
  260.                 end
  261.               end
  262.             end
  263.           @on=true
  264.           end
  265.           #-------------------        
  266.         end
  267.       else
  268.         for @y in 0..15
  269.           @x=0
  270.           loop do
  271.             @viewport[@ccc][@y][@x].tone=@viewport[0][@y][@x].tone
  272.             break if @x==20
  273.             @x+=1
  274.           end
  275.         end
  276.       end
  277.       @ccc+=1
  278.       @ccc=0 if @ccc==1#5
  279.     end
  280.     @ccc2+=1
  281.     @ccc2=0 if @ccc2==@frame
  282.     alias_update
  283.     end
  284.   end
  285. #--------------------------------------------------------------------------
  286. # * Event Data Setup(get information from events)
  287. #--------------------------------------------------------------------------
  288.   def get_event_data
  289.     for event in $game_map.events.values
  290.       if event.list && event.list[0].code == 108
  291.         i=1
  292.         loop do
  293.           if event.list[0].parameters.to_s == i.to_s
  294.             @xx[i]=event.x*32
  295.             @yy[i]=event.y*32
  296.             $sensitivity_2[i]=event.list[1].parameters.to_s .to_i
  297.             @r_value[i]=event.list[2].parameters.to_s .to_i
  298.           end
  299.           break if i== @light_limit
  300.           i+=1
  301.         end
  302.          
  303.       end
  304.     end
  305.   end
  306. #--------------------------------------------------------------------------
  307. # * Event Data Setup(get information from events)
  308. #--------------------------------------------------------------------------
  309. #--------------------------------------------------------------------------
  310. # * Frame Update (perform algorithms that calculate opacity of each coordinations)
  311. #--------------------------------------------------------------------------
  312.  
  313. #==============================================================================
  314. #==============================================================================
  315. #==============================================================================
  316. #end
Advertisement
Add Comment
Please, Sign In to add comment