Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. # =============================================================================
  2. # TheoAllen - AfterImage
  3. # Version : 1.0
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # -----------------------------------------------------------------------------
  7. # Requires :
  8. # >> Theo - Clone Image (Basic Modules)
  9. # =============================================================================
  10. ($imported ||= {})[:Theo_AfterImage] = true
  11. # =============================================================================
  12. # Change Logs:
  13. # -----------------------------------------------------------------------------
  14. # 2013.10.22 - Finished script
  15. # =============================================================================
  16. =begin
  17.  
  18.   -----------------------------------------------------------------------------
  19.   Perkenalan :
  20.   Script ini nambahin effect "after image". Apa itu after image? Semacem efek
  21.   ninggalin bekas gambar kalo bergerak.
  22.  
  23.   -----------------------------------------------------------------------------
  24.   Cara penggunaan :
  25.   Pasang script ini dibawah material namu diatas main
  26.   Gunakan comment pada event untuk menentukan event tersebut ada afterimagenya
  27.   atawa kaga seperti ini
  28.  
  29.   <afterimage>
  30.   <aft opact: n>
  31.   <aft rate: n>
  32.  
  33.   Keterangan :
  34.   <afterimage>
  35.   Tag ini menandakan bahwa event (dengan page saat) itu menggunakan afterimage
  36.  
  37.   <aft opact: n>
  38.   Pergantian opacity tiap frame. Ganti n dengan angka. Semakin tinggi nilainya,
  39.   semakin cepat pula efek afterimage ilang
  40.  
  41.   <aft rate: n>
  42.   Jarak antara after image satu dengan yang lain. Semakin gede, semakin jauh
  43.   pula jaraknya
  44.  
  45.   -----------------------------------------------------------------------------
  46.   Script call :
  47.   Kamu juga bisa aktivasi afterimage melalui script call dari set move route.
  48.   Caranya gini. Buka event > Set Move Route > Script :
  49.  
  50.   self.afterimage       = true / false
  51.   self.afterimage_opac  = angka
  52.   self.afterimage_rate  = angka
  53.  
  54.   ^
  55.   Script call ini kegunaannya sama kek diatas
  56.  
  57.   -----------------------------------------------------------------------------
  58.   Terms of use :
  59.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  60.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  61.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.    
  62.  
  63. =end
  64. # =============================================================================
  65. # Sedikit Konfig
  66. # =============================================================================
  67. module Theo
  68.   module AfterIMG
  69.    
  70.     Default_Opacity = 10  # Nilai default untuk pergantian opacity
  71.     Default_Rate    = 5   # Nilai default untuk jarak antar gambar
  72.    
  73.     Dash_AfterImage = true # Jika true, maka saat kamu dashing akan keluar
  74.                            # effect afterimage
  75.    
  76.   end
  77. end
  78. # =============================================================================
  79. # Akhir dari konfig
  80. # =============================================================================
  81. class Game_CharacterBase
  82.   attr_accessor :afterimage
  83.   attr_accessor :afterimage_opac
  84.   attr_accessor :afterimage_rate
  85.  
  86.   alias theo_afterimg_public_members init_public_members
  87.   def init_public_members
  88.     theo_afterimg_public_members
  89.     init_afterimage
  90.   end
  91.  
  92.   def init_afterimage
  93.     @afterimage = false
  94.     @afterimage_opac = Theo::AfterIMG::Default_Opacity
  95.     @afterimage_rate = Theo::AfterIMG::Default_Rate
  96.   end
  97.  
  98. end
  99.  
  100. class Game_Player < Game_Character
  101.  
  102.   def afterimage
  103.     super || (moving? && (Theo::AfterIMG::Dash_AfterImage ? dash? : false))
  104.   end
  105.  
  106. end
  107.  
  108. class Game_Event
  109.  
  110.   def afterimage
  111.     super && near_the_screen?
  112.   end
  113.  
  114.   alias theo_afterimage_setup_page setup_page
  115.   def setup_page(new_page)
  116.     theo_afterimage_setup_page(new_page)
  117.     init_afterimage
  118.     setup_afterimage if @page
  119.   end
  120.  
  121.   def setup_afterimage
  122.     @list.each do |list|      
  123.       code = list.code
  124.       next if code != 108 && code != 408
  125.       case list.parameters[0]
  126.       when /<afterimage>/i
  127.         @afterimage = true
  128.       when /<(?:aft opact|AFT_OPACT):\s*(\d+)\s*>/
  129.         @afterimage_opac = $1.to_i
  130.       when /<(?:aft rate|AFT_rate):\s*(\d+)\s*>/
  131.         @afterimage_rate = $1.to_i
  132.       end
  133.     end
  134.   end
  135.  
  136. end
  137.  
  138. class Sprite_Character < Sprite_Base
  139.  
  140.   def afterimage
  141.     return @character.afterimage
  142.   end
  143.  
  144.   def on_after_cloning(cloned)
  145.     cloned.char = character
  146.   end
  147.  
  148.   def clone_class
  149.     Sprite_AfterImage
  150.   end
  151.  
  152.   def updating_afterimages?
  153.     return true
  154.   end
  155.  
  156.   alias theo_afterimage_char_update update
  157.   def update
  158.     theo_afterimage_char_update
  159.     update_afterimage_info
  160.   end
  161.  
  162.   def update_afterimage_info
  163.     @afterimage_opac = @character.afterimage_opac
  164.     @afterimage_rate = @character.afterimage_rate
  165.   end
  166.  
  167. end
  168.  
  169. class Sprite_AfterImage < Sprite
  170.   def char=(char)
  171.     @char = char
  172.     @rx = char.real_x
  173.     @ry = char.real_y
  174.     @shift_y = char.shift_y
  175.     @jump_height = char.jump_height
  176.     set_map_display_value
  177.   end
  178.  
  179.   def set_map_display_value
  180.     @display_x = $game_map.display_x
  181.     @display_y = $game_map.display_y
  182.   end
  183.  
  184.   def screen_x
  185.     $game_map.adjust_x(@rx) * 32 + 16
  186.   end
  187.  
  188.   def screen_y
  189.     $game_map.adjust_y(@ry) * 32 + 32 - @shift_y - @jump_height
  190.   end
  191.  
  192.   def diff_display_x
  193.     @display_x - $game_map.display_x
  194.   end
  195.  
  196.   def diff_display_y
  197.     @display_y - $game_map.display_y
  198.   end
  199.  
  200.   def x_case
  201.     screen_x + diff_display_x
  202.   end
  203.  
  204.   def y_case
  205.     screen_y + diff_display_y
  206.   end
  207.  
  208.   def update
  209.     super
  210.     self.x = x_case
  211.     self.y = y_case
  212.   end
  213.  
  214. end