- Joined
- Jul 8, 2016
- Messages
- 10
- Reaction score
- 17
- First Language
- English
- Primarily Uses
I recently found Pk8's move during messages script, which is amazing because it allows the player to move during messages, while also activating events with the action button, which other scripts are unable to do.
There is a problem, however. There are still times on a map when I want to autorun an event or PREVENT the player from moving (a cutscene within a map for example). With this script, however, player movement is ENABLED no matter what when messages are running, even during auto run. Yanfly has a disable player from moving switch, but it isn't compatible with this script.
Forgive my lack of knowledge with coding, but I feel there is probably a simple way to add a line or two to this script to assign a switch to it in order to activate it or de-activate it. This way, you could turn it off right before a cutscene and prevent player movement.
ANY help at all would be greatly appreciated!
Below is the script:
----------------------------------------------------
There is a problem, however. There are still times on a map when I want to autorun an event or PREVENT the player from moving (a cutscene within a map for example). With this script, however, player movement is ENABLED no matter what when messages are running, even during auto run. Yanfly has a disable player from moving switch, but it isn't compatible with this script.
Forgive my lack of knowledge with coding, but I feel there is probably a simple way to add a line or two to this script to assign a switch to it in order to activate it or de-activate it. This way, you could turn it off right before a cutscene and prevent player movement.
ANY help at all would be greatly appreciated!
Below is the script:
----------------------------------------------------
Code:
=begin
Move During Messages v1.1S
by PK8
Created: 5/22/2012
Modified: 5/25/2012
Coverted for VXAce by Roninator2 on 19 Jan 2019
------------------------------------------------------------------------------
¦ Author's Notes
This script was originally made as an event system around the
18th of October, 2005, purely out of accident. I was attempting to make a
very quick Pacman-esque demo (I forgot why), and came across player
characters moving around via move route while a message window was visible
during a test play completely by accident.
A few modifications to the event system and 7 years later, that system is
now a script.
------------------------------------------------------------------------------
¦ Introduction
Move During Messages allows players to... well, move during messages.
------------------------------------------------------------------------------
¦ Features
o Players can move during messages.
o Creators can set which maps enables/disables it.
o Creators can set how far the player can move while a message is being
displayed.
o Set multiple maps at once using ranges. (New to v1.1S)
------------------------------------------------------------------------------
¦ Changelog
o v1E (10/18/2005): Event System initially released.
o v2E (11/14/2008): v2 released.
o v1S (05/22/2012): It's now a script.
o v1.1S (05/25/2012): Now users can set ranges, streamlining the process
of setting which maps (dis)allows moving during
messages.
------------------------------------------------------------------------------
¦ Methods Aliased
Game_Player.update
=end
#==============================================================================
# ** Configuration
#==============================================================================
module PK8
class Dialogue_Move
#--------------------------------------------------------------------------
# * General Settings
#--------------------------------------------------------------------------
Switch = true # If TRUE, script is on. If FALSE, script is off.
#--------------------------------------------------------------------------
# * Map Settings
# Integers, ranges, and nil values are allowed to be used in the array.
#--------------------------------------------------------------------------
Map_IDs = [1,2,3]
Map_IDs_Flag = false # If TRUE, occurs in all maps but those specified.
# If FALSE, occurs in specified maps.
#--------------------------------------------------------------------------
# * Radius Settings
#--------------------------------------------------------------------------
Radius_Flag = true # If TRUE, players get a limit on how far they can move
# while messages are visible. If FALSE, doesn't apply.
Radius_X = 3 # Set how far players can move horizontally. (In tiles)
Radius_Y = 3 # Set how far players can move vertically. (In tiles)
#--------------------------------------------------------------------------
# * Do Not Modify
#--------------------------------------------------------------------------
if Map_IDs.include?(nil)
load_data("Data/Mapinfos.rxdata").keys.each { |item| Map_IDs.push(item) }
Map_IDs.delete(nil)
end
Map_IDs.each { |item|
if item.is_a?(Range)
for i in item; Map_IDs.push(i); end
Map_IDs.delete(item)
elsif item.is_a?(Array)
item.each { | i |
if i.is_a?(Integer); Map_IDs.push[i]
elsif i.is_a?(Range); for i2 in i; Map_IDs.push[i2]; end
end
}
Map_IDs.delete(item)
end
}
Map_IDs.compact
end
end
#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
# This class handles the player. Its functions include event starting
# determinants and map scrolling. Refer to "$game_player" for the one
# instance of this class.
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias_method(:pk8_dialoguemove_update, :update)
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
pk8_dialoguemove_update
if PK8::Dialogue_Move::Switch == true
if ((PK8::Dialogue_Move::Map_IDs.include?($game_map.map_id) and
PK8::Dialogue_Move::Map_IDs_Flag == false) or
(!PK8::Dialogue_Move::Map_IDs.include?($game_map.map_id) and
PK8::Dialogue_Move::Map_IDs_Flag == true))
@mdm_position = [@x, @y] if @mdm_position == nil
if $game_message.busy? and !moving?
case Input.dir4
when 2
if PK8::Dialogue_Move::Radius_Flag == true
move_straight(2) if @y < @mdm_position[1] + PK8::Dialogue_Move::Radius_Y
else
move_straight(2)
end
when 4
if PK8::Dialogue_Move::Radius_Flag == true
move_straight(4) if @x > @mdm_position[0] - PK8::Dialogue_Move::Radius_X
else
move_straight(4)
end
when 6
if PK8::Dialogue_Move::Radius_Flag == true
move_straight(6) if @x < @mdm_position[0] + PK8::Dialogue_Move::Radius_X
else
move_straight(6)
end
when 8
if PK8::Dialogue_Move::Radius_Flag == true
move_straight(8) if @y > @mdm_position[1] - PK8::Dialogue_Move::Radius_Y
else
move_straight(8)
end
end
elsif !$game_message.busy?
@mdm_position = nil if @mdm_position != nil
end
end
end
end
end
Last edited:

