The problem is that the windows aren't being refreshed. The information is changing, the system variable gets it, the scene gets it, even the windows get it, but the windows aren't being told to redraw their information. Basically all you need to do is put a 'refresh' method in to each of your windows. Here's my example for your Window_Biography_Name:
def refresh()
contents.clear
draw_name
end
The last step is to run these methods when the scene scrolls left or right:
def scroll_right
scroll_se = "Decision3"
RPG::SE::new(scroll_se, 70, 100).play
$game_system.char_index_array += 1
@window_biography_name.refresh
@window_biography_image.refresh
@window_biography_bios.refresh
@window_biography_cgs.refresh
end
Quick tip while we're at it, it's general convention to protect arguments when aliasing a method to increase compatibility with other custom scripts.
class SomeThing
def actual_method(bibbidy, bobbidy, boo)
do_some_things(bibbidy, bobbidy, boo)
end
alias new_actual_method actual_method
def actual_method(*args)
new_actual_method(*args)
do_more_things
end
end
What (*args) does is preserves all arguments given to a method and then recalls them. This means if another scripter added arguments to a method, you can alias it without fear of losing their changes as well.
Hope I helped!