renekokkie > personally I've never heard of a free high quality 3D script for RMXP. If ever such a script exists, it is probably private. Perhaps some talented scripters could make a script like this, but you should be ready to offer a financial compensation.
finalholylight > I thought this feature was useless...
Paste this under the H-Mode7 scripts :
Code:
#============================================================================
# ** Game_System
#============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Aliased methods (F12 compatibility)
#--------------------------------------------------------------------------
unless @already_aliased_hm7_pivot
alias reset_hm7_game_system hm7_reset
@already_aliased_hm7_pivot = true
end
#--------------------------------------------------------------------------
# * Attributes
#--------------------------------------------------------------------------
attr_accessor :hm7_center_y
#--------------------------------------------------------------------------
# * Reset zoom and pivot
#--------------------------------------------------------------------------
def hm7_reset
reset_hm7_game_system
if defined? Game_Player::CENTER != nil
self.hm7_center_y = Game_Player::CENTER
else
self.hm7_center_y = 240 - 16 << 2
end
end
end
#============================================================================
# ** HM7::Tilemap
#============================================================================
module HM7
class Tilemap
#--------------------------------------------------------------------------
# * Increase/Decrease the pivot value
#--------------------------------------------------------------------------
def increase_pivot(value)
res = [[$game_temp.pivot + value, 472].min, 32].max
$game_map.display_y -= ((res - $game_temp.pivot) << 2)
$game_system.hm7_center_y += ((res - $game_temp.pivot) << 2)
$game_temp.pivot = res
$game_temp.pivot_map = $game_temp.pivot / @coeff_resolution
@offset_y_res = ($game_temp.pivot - $game_temp.pivot_map).to_i >> 1
refresh_alpha
end
#--------------------------------------------------------------------------
# * Set the pivot value
#--------------------------------------------------------------------------
def set_pivot(value)
res = [[value, 472].min, 32].max
$game_map.display_y -= ((res - $game_temp.pivot) << 2)
$game_system.hm7_center_y += ((res - $game_temp.pivot) << 2)
$game_temp.pivot = res
$game_temp.pivot_map = $game_temp.pivot / @coeff_resolution
@offset_y_res = ($game_temp.pivot - $game_temp.pivot_map).to_i >> 1
refresh_alpha
end
#--------------------------------------------------------------------------
# * Slide from the current pivot value into the target value
#--------------------------------------------------------------------------
def to_pivot(value, speed)
value = [[value, 480].min, 32].max
while value > $game_temp.pivot
increase_pivot([speed, value - $game_temp.pivot].min)
spriteset.update
Graphics.update
end
while value < $game_temp.pivot
increase_pivot(-([speed, $game_temp.pivot - value].min))
spriteset.update
Graphics.update
end
end
end
end
#============================================================================
# ** Spriteset_Map
#============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Increase/Decrease the pivot value
#--------------------------------------------------------------------------
def hm7_increase_pivot(value)
@tilemap.set_pivot(value)
end
#--------------------------------------------------------------------------
# * Set the pivot value
#--------------------------------------------------------------------------
def hm7_set_pivot(value)
@tilemap.set_pivot(value)
end
#--------------------------------------------------------------------------
# * Slide from the current pivot value into the target value
#--------------------------------------------------------------------------
def hm7_to_pivot(value, speed)
@tilemap.to_pivot(value, speed)
end
end
#============================================================================
# ** Scene_Map
#============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# * Increase/Decrease the pivot value
#--------------------------------------------------------------------------
def hm7_increase_pivot(value)
@spriteset.hm7_increase_pivot(value)
end
#--------------------------------------------------------------------------
# * Set the pivot value
#--------------------------------------------------------------------------
def hm7_set_pivot(value)
@spriteset.hm7_set_pivot(value)
end
#--------------------------------------------------------------------------
# * Slide from the current pivot value into the target value
#--------------------------------------------------------------------------
def hm7_to_pivot(value, speed)
@spriteset.hm7_to_pivot(value, speed)
end
end
#============================================================================
# ** Game_Player
#============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# * Always center around the hero in mode 7
#--------------------------------------------------------------------------
def center(x, y)
unless $game_system.hm7
center_hm7_game_player(x, y)
return
end
$game_map.display_x = (x << 7) - CENTER_X
$game_map.display_y = (y << 7) - $game_system.hm7_center_y
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
unless $game_system.hm7
update_hm7_game_player
return
end
native_center_y = Game_Player.const_get(:CENTER_Y)
Game_Player.const_set(:CENTER_Y, $game_system.hm7_center_y)
update_hm7_game_player
Game_Player.const_set(:CENTER_Y, native_center_y)
end
end
And use in an event one of those commands (like in the the NeoM7 script) :
$scene.hm7_set_pivot(new value)
$scene.hm7_to_pivot(new value, speed)
$scene.hm7_increase_pivot(value)