Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # TheoAllen - AfterImage
- # Version : 1.0
- # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
- # (This script documentation is written in informal indonesian language)
- # -----------------------------------------------------------------------------
- # Requires :
- # >> Theo - Clone Image (Basic Modules)
- # =============================================================================
- ($imported ||= {})[:Theo_AfterImage] = true
- # =============================================================================
- # Change Logs:
- # -----------------------------------------------------------------------------
- # 2013.10.22 - Finished script
- # =============================================================================
- =begin
- -----------------------------------------------------------------------------
- Perkenalan :
- Script ini nambahin effect "after image". Apa itu after image? Semacem efek
- ninggalin bekas gambar kalo bergerak.
- -----------------------------------------------------------------------------
- Cara penggunaan :
- Pasang script ini dibawah material namu diatas main
- Gunakan comment pada event untuk menentukan event tersebut ada afterimagenya
- atawa kaga seperti ini
- <afterimage>
- <aft opact: n>
- <aft rate: n>
- Keterangan :
- <afterimage>
- Tag ini menandakan bahwa event (dengan page saat) itu menggunakan afterimage
- <aft opact: n>
- Pergantian opacity tiap frame. Ganti n dengan angka. Semakin tinggi nilainya,
- semakin cepat pula efek afterimage ilang
- <aft rate: n>
- Jarak antara after image satu dengan yang lain. Semakin gede, semakin jauh
- pula jaraknya
- -----------------------------------------------------------------------------
- Script call :
- Kamu juga bisa aktivasi afterimage melalui script call dari set move route.
- Caranya gini. Buka event > Set Move Route > Script :
- self.afterimage = true / false
- self.afterimage_opac = angka
- self.afterimage_rate = angka
- ^
- Script call ini kegunaannya sama kek diatas
- -----------------------------------------------------------------------------
- Terms of use :
- Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
- keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
- dipake buat komersil, jangan lupa, gw dibagi gratisannya.
- =end
- # =============================================================================
- # Sedikit Konfig
- # =============================================================================
- module Theo
- module AfterIMG
- Default_Opacity = 10 # Nilai default untuk pergantian opacity
- Default_Rate = 5 # Nilai default untuk jarak antar gambar
- Dash_AfterImage = true # Jika true, maka saat kamu dashing akan keluar
- # effect afterimage
- end
- end
- # =============================================================================
- # Akhir dari konfig
- # =============================================================================
- class Game_CharacterBase
- attr_accessor :afterimage
- attr_accessor :afterimage_opac
- attr_accessor :afterimage_rate
- alias theo_afterimg_public_members init_public_members
- def init_public_members
- theo_afterimg_public_members
- init_afterimage
- end
- def init_afterimage
- @afterimage = false
- @afterimage_opac = Theo::AfterIMG::Default_Opacity
- @afterimage_rate = Theo::AfterIMG::Default_Rate
- end
- end
- class Game_Player < Game_Character
- def afterimage
- super || (moving? && (Theo::AfterIMG::Dash_AfterImage ? dash? : false))
- end
- end
- class Game_Event
- def afterimage
- super && near_the_screen?
- end
- alias theo_afterimage_setup_page setup_page
- def setup_page(new_page)
- theo_afterimage_setup_page(new_page)
- init_afterimage
- setup_afterimage if @page
- end
- def setup_afterimage
- @list.each do |list|
- code = list.code
- next if code != 108 && code != 408
- case list.parameters[0]
- when /<afterimage>/i
- @afterimage = true
- when /<(?:aft opact|AFT_OPACT):\s*(\d+)\s*>/
- @afterimage_opac = $1.to_i
- when /<(?:aft rate|AFT_rate):\s*(\d+)\s*>/
- @afterimage_rate = $1.to_i
- end
- end
- end
- end
- class Sprite_Character < Sprite_Base
- def afterimage
- return @character.afterimage
- end
- def on_after_cloning(cloned)
- cloned.char = character
- end
- def clone_class
- Sprite_AfterImage
- end
- def updating_afterimages?
- return true
- end
- alias theo_afterimage_char_update update
- def update
- theo_afterimage_char_update
- update_afterimage_info
- end
- def update_afterimage_info
- @afterimage_opac = @character.afterimage_opac
- @afterimage_rate = @character.afterimage_rate
- end
- end
- class Sprite_AfterImage < Sprite
- def char=(char)
- @char = char
- @rx = char.real_x
- @ry = char.real_y
- @shift_y = char.shift_y
- @jump_height = char.jump_height
- set_map_display_value
- end
- def set_map_display_value
- @display_x = $game_map.display_x
- @display_y = $game_map.display_y
- end
- def screen_x
- $game_map.adjust_x(@rx) * 32 + 16
- end
- def screen_y
- $game_map.adjust_y(@ry) * 32 + 32 - @shift_y - @jump_height
- end
- def diff_display_x
- @display_x - $game_map.display_x
- end
- def diff_display_y
- @display_y - $game_map.display_y
- end
- def x_case
- screen_x + diff_display_x
- end
- def y_case
- screen_y + diff_display_y
- end
- def update
- super
- self.x = x_case
- self.y = y_case
- end
- end
Add Comment
Please, Sign In to add comment