04-29-2010, 08:44 PM
Replace the FPLE CTB script by this one :
DerVVulfman's solution should work (make sure that you call $mydrive = true/false before the launch of the battle).
Code:
#====================================================================
# FPLE CTB
# Author : MGC
# This compatibility script enables the use of zoom with the Count Turn Battle (CTB)
# To use this add-on, required scripts must be in this order :
# - CTB (Ver 1.13)
# - FPLE scripts (Ver 1.3)
# - Addon FPLE map as battleback
# - This script
# - Main
# While it is below main, it doesn't have any effect.
#====================================================================
#==============================================================================
# ** Spriteset_Battle
#==============================================================================
class Spriteset_Battle
alias make_battleback_fple_ctb_spriteset_battle make_battleback
#--------------------------------------------------------------------------
# * Setting of battle background
#--------------------------------------------------------------------------
def make_battleback
if $game_system.fple
if @battleback_sprite.bitmap != nil
@battleback_sprite.bitmap.dispose
end
@battleback_name = $game_temp.battleback_name
if !@make_battleback_init
# That part of code is dedicated to avoid transition for the map as battleback
@make_battleback_init = true
$game_temp.battleback_name = "fple"
@battleback_sprite.bitmap = Bitmap.new(640, 480)
@original_zoom = 1
slide = false
else
# load the FPLE rendering as battleback_sprite
fple_spriteset = $scene.instance_variable_get(:@spriteset_map)
@battleback_sprite.bitmap = fple_spriteset.fple_render.sprite_screen.bitmap
@original_zoom = fple_spriteset.fple_render.sprite_screen.zoom_x
fple_spriteset.fple_render.sprite_screen.dispose
slide = true
end
@battleback_sprite.src_rect.set(0, 0, 640, 480)
@battleback_sprite.zoom_x = @original_zoom
@battleback_sprite.zoom_y = @battleback_sprite.zoom_x
@base_zoom = @original_zoom * ($scene.drive ? 1.5 : 1)
@battleback_sprite.x = 320
@battleback_sprite.y = ($scene.drive ? 120 : 0)
@battleback_sprite.ox = @battleback_sprite.bitmap.width / 2
@battleback_sprite.oy = ($scene.drive ? @battleback_sprite.bitmap.height / 4 : 0)
if slide
slide_to_zoom
else
@battleback_sprite.zoom_x = @base_zoom
@battleback_sprite.zoom_y = @battleback_sprite.zoom_x
end
else
make_battleback_fple_ctb_spriteset_battle
end
end
#--------------------------------------------------------------------------
# * Slide to the desired zoom and position when entering battle
#--------------------------------------------------------------------------
def slide_to_zoom
slide_speed = 0.10
count = ((@base_zoom - @battleback_sprite.zoom_x) / slide_speed).to_i + 1
offset_y = @battleback_sprite.y.to_f / count
battleback_sprite_y_float = @battleback_sprite.y.to_f
i = 0
while i < count
@battleback_sprite.zoom_x = [(@battleback_sprite.zoom_x + slide_speed), @base_zoom].min
@battleback_sprite.zoom_y = @battleback_sprite.zoom_x
battleback_sprite_y_float = battleback_sprite_y_float - offset_y
@battleback_sprite.y = [battleback_sprite_y_float.to_i, 0].max
Graphics.update
i += 1
end
end
#--------------------------------------------------------------------------
# * Unslide when ending battle
#--------------------------------------------------------------------------
def unslide
slide_speed = 0.10
count = ((@battleback_sprite.zoom_x - @original_zoom) / slide_speed).to_i + 1
offset_y = (120 - @battleback_sprite.y).to_f / count
battleback_sprite_y_float = @battleback_sprite.y.to_f
i = 0
while i < count
@battleback_sprite.zoom_x = [(@battleback_sprite.zoom_x - slide_speed), @original_zoom].max
@battleback_sprite.zoom_y = @battleback_sprite.zoom_x
battleback_sprite_y_float = battleback_sprite_y_float + offset_y
@battleback_sprite.y = [battleback_sprite_y_float.to_i, 120].min
Graphics.update
i += 1
end
end
end
#==============================================================================
# ** Scene_Battle
#==============================================================================
class Scene_Battle
alias battle_end_fple_ctb_scene_battle battle_end
#--------------------------------------------------------------------------
# * Battle Ends
# result : results (0:win 1:lose 2:escape)
#--------------------------------------------------------------------------
def battle_end(result)
if $game_system.fple && @drive
@spriteset.unslide
end
battle_end_fple_ctb_scene_battle(result)
end
end
DerVVulfman's solution should work (make sure that you call $mydrive = true/false before the launch of the battle).
Some scripts :
Working on :