MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
Made this script for a request here.


Sharing this here since this seems to have quite the demand.


Introduction:


This script covers the Party Leader/Followers movement/balloon icon/animation that can't be done by eventing.


Can easily set up cut-scene/story telling simply by moving the followers around without having to make events for each of them.


Features:


[01] Instant Gather: Instantly Gather all party members.


[02] Party Jump: All party members jump one by one


[03] Party Move: All party members move together


[04] Party Face: All party members face the same direction


[05] Party Balloon: Pop up balloons for all party members


[06] Party Animation: Play animation for all party members


[07] Member Move: Move a single member in line


[08] Leader only move: Using Member Move will allow Leader only move without followers moving.


[09] Member Face: Change the facing direction of a single member in line


[10] Member Jump: Make a single member in line Jumps


[11] Member Balloon: Pop up a balloon on a single member in line


[12] Member Animation: Play animation on a single member in line


How to Use:


[1] Script is plug & play, copy and paste it below Material and above Main in your script editor


[2] To activate the party functions, simply use the script calls as instructed in the script.


Example Usage:


[IMG]http://s11.postimg.org/v4lhxsj6b/sampleusage.png[/IMG]


p/s: adding ;wait(60) behind a line pauses for 1 second after the action.


To make all followers line up behind the leader: (works for all directions)


[IMG]http://s15.postimg.org/ibdv87z57/partyformation.png[/IMG]


Movement Commands:

Spoiler



 "DOWN" = Move Down
 "LEFT" = Move Left
 "RIGHT" = Move Right
 "UP" = Move Up
 "LOWER_L" = Move diagonally to Lower Left
 "LOWER_R" = Move diagonally to Lower Right
 "UPPER_L" = Move diagonally to Upper Left
 "UPPER_R" = Move diagonally to Upper Right
 "FORWARD" = Move one step Forward
 "BACKWARD" = Move one step Backward
 "TURN_R" = Turn 90 degree Right
 "TURN_L" = Turn 90 degree Left
 "TURN_B" = Turn 180 degree Back



Facing Commands:

Spoiler



 "DOWN" = Face Down
 "LEFT" = Face Left


 "RIGHT" = Face Right
 "UP" = Face Up
 "PLAYER" = Face the same direction as the Party Leader



Compatibility:


This script uses new & alias methods so there shouldn't be any conflict with this script unless, coincidentally, you have another custom script using the new method names as this script does. 


Terms of Use:


Free to use for both commercial and non-commercial games


Script:

Spoiler



Code:
#==============================================================================
# ■ Meow Face Party Controller
#------------------------------------------------------------------------------
# Control Party Leader and Followers
#==============================================================================
# How to Use:
# Plug & Play, Put this script below Material and above Main
# Terms of Use:
# Free for both commercial/non-commercial
#==============================================================================
=begin
==============================================================================
 Use these script calls below in event's script box
==============================================================================
------------------------------------------------------------------------------
 To gather all party members instantly:
------------------------------------------------------------------------------
 instant_gather

------------------------------------------------------------------------------
 To have all party jump together:
------------------------------------------------------------------------------
 party_jump(x, y)
 where x/y is the position to jump
 
 eg. 3 tiles to the left, use:
 party_jump(-3, 0)

------------------------------------------------------------------------------
 To have all party pop up balloon:
------------------------------------------------------------------------------
 party_balloon(id)
 where id is the balloon id

------------------------------------------------------------------------------
 To have all party pop up animation:
------------------------------------------------------------------------------
 party_anim(id)
 where id is the animation id
 
------------------------------------------------------------------------------
 To have the whole party move around:
------------------------------------------------------------------------------
 party_move(command)
  command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "LOWER_L"
 "LOWER_R"
 "UPPER_L"
 "UPPER_R"
 "FORWARD"
 "BACKWARD"
 "TURN_R"
 "TURN_L"
 "TURN_B"
 
------------------------------------------------------------------------------
 To have the whole party face a direction:
------------------------------------------------------------------------------
 party_face(command)
  command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "PLAYER"
 
------------------------------------------------------------------------------
 To have one party member face a direction:
------------------------------------------------------------------------------
 member_face(n, command)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
  command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "PLAYER"

------------------------------------------------------------------------------
 To have one party member jump:
------------------------------------------------------------------------------
 member_jump(n, x, y)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 x/y is the position to jump
 
 eg. 3 tiles to the right, use:
 party_jump(3, 0)

------------------------------------------------------------------------------
 To have one party member move around:
------------------------------------------------------------------------------
 member_move(n, command)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "LOWER_L"
 "LOWER_R"
 "UPPER_L"
 "UPPER_R"
 "FORWARD"
 "BACKWARD"
 "TURN_R"
 "TURN_L"
 "TURN_B"

 eg. to have 2nd member in line move lower right
  member_move(1, "LOWER_R")
  
------------------------------------------------------------------------------
 To have a party member pop up balloon:
------------------------------------------------------------------------------
 member_balloon(n, id)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 where id is the balloon id

------------------------------------------------------------------------------
 To have a party member pop up animation:
------------------------------------------------------------------------------
 member_anim(n, id)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 where id is the animation id

=end
#==============================================================================
class Game_Character < Game_CharacterBase
  def face_player
    set_direction($game_player.direction)
  end
end
class Game_Player < Game_Character
  attr_accessor :through
end
class Game_Follower < Game_Character
  alias meow_init initialize
  def initialize(member_index, preceding_character)
    meow_init(member_index, preceding_character)
    $meowchase = false
  end
  alias meow_chase chase_preceding_character
  def chase_preceding_character
    return if $meowchase
    meow_chase
  end
end
class Game_Interpreter
  def meow_party
    @meowparty = [$game_player] + $game_player.followers.visible_folloers
  end
  def instant_gather
    meow_party
    @meowparty.each do |meow|
      meow.moveto($game_player.x, $game_player.y)
    end
  end
  def party_jump(x, y)
    meow_party
    start_x, start_y = $game_player.x, $game_player.y
    @meowparty.each do |meow|
      meow.moveto(start_x, start_y)
      meow.jump(x, y)
      Fiber.yield while meow.jumping?
    end
  end
  def member_jump(n, x, y)
    meow_party
    @meowparty[n].jump(x, y) if @meowparty[n] != nil
  end
  def turn_face
    case @meowturn
    when "DOWN"; @mew.set_direction(2)
    when "LEFT"; @mew.set_direction(4)
    when "RIGHT"; @mew.set_direction(6)
    when "UP"; @mew.set_direction(8)
    when "PLAYER"; @mew.face_player
    end
  end
  def party_face(meowcommand)
    meow_party
    @meowturn = meowcommand
    @meowparty.each do |m|
      @mew = m
      turn_face
    end
  end
  def member_face(n, meowcommand)
    meow_party
    @meowturn = meowcommand
    @mew = @meowparty[n]
    if @mew != nil
      turn_face
    end    
  end
  def run_member_move
    case @meowmove
    when "DOWN"; @mew.move_straight(2)
    when "LEFT"; @mew.move_straight(4)
    when "RIGHT"; @mew.move_straight(6)
    when "UP"; @mew.move_straight(8)
    when "LOWER_L"; @mew.move_diagonal(4, 2)
    when "LOWER_R"; @mew.move_diagonal(6, 2)
    when "UPPER_L"; @mew.move_diagonal(4, 8)
    when "UPPER_R"; @mew.move_diagonal(6, 8)
    when "FORWARD"; @mew.move_forward
    when "BACKWARD"; @mew.move_backward
    when "TURN_R"; @mew.turn_right_90
    when "TURN_L"; @mew.turn_left_90
    when "TURN_B"; @mew.turn_180
    end
  end
  def party_move(meowcommand)
    meow_party
    $game_player.through = true
    $meowchase = true
    @meowmove = meowcommand
    @meowparty.each do |m|
      @mew = m
      run_member_move
    end
    Fiber.yield while @mew.moving?
    $game_player.through = false
    $meowchase = false
  end
  def member_move(n, meowcommand)
    meow_party
    $meowchase = true
    $game_player.through = true
    @meowmove = meowcommand
    @mew = @meowparty[n]
    if @mew != nil
      run_member_move
      Fiber.yield while @mew.moving?
    end
    $meowchase = false
    $game_player.through = false
  end
  def member_balloon(n, m)
    meow_party
    @meowparty[n].balloon_id = m if @meowparty[n] != nil
  end
  def member_anim(n, m)
    meow_party
    @meowparty[n].animation_id = m if @meowparty[n] != nil
  end
  def party_balloon(m)
    meow_party
    @meowparty.each do |meow|
      meow.balloon_id = m
    end
  end
  def party_anim(m)
    meow_party
    @meowparty.each do |meow|
      meow.animation_id = m
    end
  end
end
 
Last edited by a moderator:
  • Like
Reactions: BCj

Giraffic

caseCantGoogle
Member
Joined
Jan 7, 2015
Messages
13
Reaction score
1
First Language
Anglish
Primarily Uses
This is really awesome! The scenes one could make...  :unsure:

Could this be used to change the way a party moves on map?

For example, instead of moving in a line they would move in a square?
 

MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
This is really awesome! The scenes one could make...  :unsure:

Could this be used to change the way a party moves on map?

For example, instead of moving in a line they would move in a square?
Glad you find this useful. :)

Lining the members up in any formations(square/triangle) using member_move, then use party_move to move the whole formation as one is possible.

But if you mean whether this script can change the normal follow mode into formation mode, the answer is no.

This script is designed for cut-scene uses only. Especially when you have lots of actors in the game and don't want to check who is in the party to animate, this script allows you to animate them(X number in line) without checking who the actor is. And of-course, save you lots of time from making an event of each follower, since this script allows you to move/animate the leader/members right on the spot. ;)
 

Skurge

Archtross Dev
Veteran
Joined
Jul 12, 2015
Messages
1,217
Reaction score
278
First Language
English
Primarily Uses
N/A
Very thoughtful scripts here, say is there a way to make the party members following you allow other events through them?

For example if I have a monster event chasing me, followers block it's path.
 

MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
Very thoughtful scripts here, say is there a way to make the party members following you allow other events through them?

For example if I have a monster event chasing me, followers block it's path.
Followers are by default, set to through. Means they can walk through anything.

But events are by default set to non-passable on followers(To be specific, all objects on the same layer as the event).

Both has nothing to do with this script as this script is based on moving the followers/party leader around, not event.

Edit:

What you want can be done by setting your Monster events to "Below the player" and have it triggered by "Event's Touch"
 
Last edited by a moderator:

Skurge

Archtross Dev
Veteran
Joined
Jul 12, 2015
Messages
1,217
Reaction score
278
First Language
English
Primarily Uses
N/A
But does that not mean that the events themselves have to be underneath you to trigger?
 

MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
But does that not mean that the events themselves have to be underneath you to trigger?
Yes, both under/above will work.

If you need it otherwise, you will require a script to do that. But like i said before, this script isn't what you are looking for, this script is for cut-scene's move route/balloon/animation use. And it only works for party leader and followers, not event.
 

Skurge

Archtross Dev
Veteran
Joined
Jul 12, 2015
Messages
1,217
Reaction score
278
First Language
English
Primarily Uses
N/A
I still want to use it regardless :p

First thing that comes to mind using this would be when the player teleports to a location, the party members are bunched into one tile- this would be extremely handy for them to appear behind you or scattered around etc when arriving at a location.
 

MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
I still want to use it regardless :p

First thing that comes to mind using this would be when the player teleports to a location, the party members are bunched into one tile- this would be extremely handy for them to appear behind you or scattered around etc when arriving at a location.
Thanks :)

Also useful to "line up" all members for some important npc talk. :p
 

Kimtaewoh

Villager
Member
Joined
Sep 24, 2015
Messages
12
Reaction score
0
First Language
English
Primarily Uses
Great script! I've run into a small problem. I've been able to use the script commands to use the script, but for some reason, any new script commands I put in do not work anymore.
 

MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
Great script! I've run into a small problem. I've been able to use the script commands to use the script, but for some reason, any new script commands I put in do not work anymore.
You mean you can use the script before but can not use it now?

Then you probably have a custom script that overwrites a method this script needs.

Try move this script below all other custom scripts you have.
 

MeowFace

Meow
Veteran
Joined
Feb 22, 2015
Messages
1,034
Reaction score
186
First Language
Meowish
Primarily Uses
The script in the top post is being messed up due to the recent V3 to V4 forum migration.


Please use this alternative version until the web staff is able to find a way to fix the top post.

Code:
#==============================================================================
# ■ Meow Face Party Controller
#------------------------------------------------------------------------------
# Control Party Leader and Followers
#==============================================================================
# How to Use:
# Plug & Play, Put this script below Material and above Main
# Terms of Use:
# Free for both commercial/non-commercial
#==============================================================================
=begin
==============================================================================
 Use these script calls below in event's script box
==============================================================================
------------------------------------------------------------------------------
 To gather all party members instantly:
------------------------------------------------------------------------------
 instant_gather

------------------------------------------------------------------------------
 To have all party jump together:
------------------------------------------------------------------------------
 party_jump(x, y)
 where x/y is the position to jump
 
 eg. 3 tiles to the left, use:
 party_jump(-3, 0)

------------------------------------------------------------------------------
 To have all party pop up balloon:
------------------------------------------------------------------------------
 party_balloon(id)
 where id is the balloon id

------------------------------------------------------------------------------
 To have all party pop up animation:
------------------------------------------------------------------------------
 party_anim(id)
 where id is the animation id
 
------------------------------------------------------------------------------
 To have the whole party move around:
------------------------------------------------------------------------------
 party_move(command)
  command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "LOWER_L"
 "LOWER_R"
 "UPPER_L"
 "UPPER_R"
 "FORWARD"
 "BACKWARD"
 "TURN_R"
 "TURN_L"
 "TURN_B"
 
------------------------------------------------------------------------------
 To have the whole party face a direction:
------------------------------------------------------------------------------
 party_face(command)
  command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "PLAYER"
 
------------------------------------------------------------------------------
 To have one party member face a direction:
------------------------------------------------------------------------------
 member_face(n, command)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
  command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "PLAYER"

------------------------------------------------------------------------------
 To have one party member jump:
------------------------------------------------------------------------------
 member_jump(n, x, y)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 x/y is the position to jump
 
 eg. 3 tiles to the right, use:
 party_jump(3, 0)

------------------------------------------------------------------------------
 To have one party member move around:
------------------------------------------------------------------------------
 member_move(n, command)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 command =
 "DOWN"
 "LEFT"
 "RIGHT"
 "UP"
 "LOWER_L"
 "LOWER_R"
 "UPPER_L"
 "UPPER_R"
 "FORWARD"
 "BACKWARD"
 "TURN_R"
 "TURN_L"
 "TURN_B"

 eg. to have 2nd member in line move lower right
  member_move(1, "LOWER_R")
  
------------------------------------------------------------------------------
 To have a party member pop up balloon:
------------------------------------------------------------------------------
 member_balloon(n, id)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 where id is the balloon id

------------------------------------------------------------------------------
 To have a party member pop up animation:
------------------------------------------------------------------------------
 member_anim(n, id)
 n = party member in line (0 = leader, 1 = 2nd in line etc)
 where id is the animation id

=end
#==============================================================================
class Game_Character < Game_CharacterBase
  def face_player
    set_direction($game_player.direction)
  end
end
class Game_Player < Game_Character
  attr_accessor :through
end
class Game_Follower < Game_Character
  alias meow_init initialize
  def initialize(member_index, preceding_character)
    meow_init(member_index, preceding_character)
    $meowchase = false
  end
  alias meow_chase chase_preceding_character
  def chase_preceding_character
    return if $meowchase
    meow_chase
  end
end
class Game_Interpreter
  def meow_party
    @meowparty = [$game_player] + $game_player.followers.visible_folloers
  end
  def instant_gather
    meow_party
    @meowparty.each do |meow|
      meow.moveto($game_player.x, $game_player.y)
    end
  end
  def party_jump(x, y)
    meow_party
    start_x, start_y = $game_player.x, $game_player.y
    @meowparty.each do |meow|
      meow.moveto(start_x, start_y)
      meow.jump(x, y)
      Fiber.yield while meow.jumping?
    end
  end
  def member_jump(n, x, y)
    meow_party
    @meowparty[n].jump(x, y) if @meowparty[n] != nil
  end
  def turn_face
    case @meowturn
    when "DOWN"; @mew.set_direction(2)
    when "LEFT"; @mew.set_direction(4)
    when "RIGHT"; @mew.set_direction(6)
    when "UP"; @mew.set_direction(8)
    when "PLAYER"; @mew.face_player
    end
  end
  def party_face(meowcommand)
    meow_party
    @meowturn = meowcommand
    @meowparty.each do |m|
      @mew = m
      turn_face
    end
  end
  def member_face(n, meowcommand)
    meow_party
    @meowturn = meowcommand
    @mew = @meowparty[n]
    if @mew != nil
      turn_face
    end    
  end
  def run_member_move
    case @meowmove
    when "DOWN"; @mew.move_straight(2)
    when "LEFT"; @mew.move_straight(4)
    when "RIGHT"; @mew.move_straight(6)
    when "UP"; @mew.move_straight(8)
    when "LOWER_L"; @mew.move_diagonal(4, 2)
    when "LOWER_R"; @mew.move_diagonal(6, 2)
    when "UPPER_L"; @mew.move_diagonal(4, 8)
    when "UPPER_R"; @mew.move_diagonal(6, 8)
    when "FORWARD"; @mew.move_forward
    when "BACKWARD"; @mew.move_backward
    when "TURN_R"; @mew.turn_right_90
    when "TURN_L"; @mew.turn_left_90
    when "TURN_B"; @mew.turn_180
    end
  end
  def party_move(meowcommand)
    meow_party
    $game_player.through = true
    $meowchase = true
    @meowmove = meowcommand
    @meowparty.each do |m|
      @mew = m
      run_member_move
    end
    Fiber.yield while @mew.moving?
    $game_player.through = false
    $meowchase = false
  end
  def member_move(n, meowcommand)
    meow_party
    $meowchase = true
    $game_player.through = true
    @meowmove = meowcommand
    @mew = @meowparty[n]
    if @mew != nil
      run_member_move
      Fiber.yield while @mew.moving?
    end
    $meowchase = false
    $game_player.through = false
  end
  def member_balloon(n, m)
    meow_party
    @meowparty[n].balloon_id = m if @meowparty[n] != nil
  end
  def member_anim(n, m)
    meow_party
    @meowparty[n].animation_id = m if @meowparty[n] != nil
  end
  def party_balloon(m)
    meow_party
    @meowparty.each do |meow|
      meow.balloon_id = m
    end
  end
  def party_anim(m)
    meow_party
    @meowparty.each do |meow|
      meow.animation_id = m
    end
  end
end
 

Latest Threads

Latest Posts

Latest Profile Posts

I hate doing voice over videos but people said they like hearing about the details.
Modern Town Overworld, World of Solaria Dungeon, 80's Retro-Futuristic Font | RPG Maker News #73

I been slowing down and not focusing on project currently.
I had this idea for VTubers vs MOTHER and its a bunch of Vtubers finding eight melodies to fight a psychic alien and a fat kid. IDK, kinda find it hard to use RPG Maker for more than 15 minutes
Working on some wizard/magic bases:
TestChara-10-hover.gif

I mean, technically it's a flying base but I haven't made any wings yet, so magic hovering is it for now.

Forum statistics

Threads
112,297
Messages
1,067,171
Members
145,927
Latest member
crowdcontrolwarehouse12
Top