# =============================================================================
# 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