RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
[REQUEST VX] Actor / Event Step-In-Place

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 84
<Jesus Saves>
Ohai. :U

I need a script that will make actors step in place, regardless of what their speed is set to on the map. This is what I mean:



Notice the speed setting. At this setting, their step-in-place animation is fairly smooth. However, if you increase this setting, their step-in-place animation goes faster.



I tried to use the above method to change the actor's step-in-place animation speed to match the animation speed of the events, but that caused the actor to move very slowly.

I'd also like it if it could be scripted in so that events would do the same if there was a note on them, sort of like how BulletXT's torch script works.
*EDIT*: I totally forgot about the stepping animation checkbox in the events. So, basically if it's checked, the script will have the game keep an event at a steady stepping animation speed, regardless of what the speed setting is on.


It needs to be compatible with Woratana's caterpillar script. My idea for this script is that it will help users create RPG projects that better resemble the Dragon Quest games from the olden NES / SNES days.

Sorry if I sound weird--it's 4 AM here and I'm quite out of it. xD Thanks to anyone who can complete this request!

It is now 8 30 AM, and I need to get ready for Church. Later dudes and thanks. n.n

Woratana's Caterpillar Script:

Code: [Select]
#===============================================================
# ? [VX] ? Plug 'n Play Caterpillar System ? ?
# * Create party members follow the player on map *
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 29/02/2009
# ? Version: 2.0
#--------------------------------------------------------------
# ? Update:
#--------------------------------------------------------------
# ? Version 2.0 (29/02/2009)
# - Fix direction bug
# - Fix vehicle bug
# - Add max following members
# ? Version 1.5 (17/02/2009)
# - Fix dash bug
# - More compatible with script that edit Spriteset_Map.create_characters
#--------------------------------------------------------------
# ? Compatibility:
#--------------------------------------------------------------
# ? This script will rewrite 0 method(s):
#
#
# ? This script will alias 14 method(s):
#     Spriteset_Map.create_characters
#     Spriteset_Map.update_characters
#     Game_Player.move_down
#     Game_Player.move_left
#     Game_Player.move_right
#     Game_Player.move_up
#     Game_Player.move_lower_left
#     Game_Player.move_lower_right
#     Game_Player.move_upper_left
#     Game_Player.move_upper_right
#     Game_Player.jump
#     Game_Player.get_off_vehicle
#     Game_Player.moveto
#     Game_Map.setup
#
# ? This script should work with most scripts
#
#--------------------------------------------------------------
# ? Installation:
#--------------------------------------------------------------
# 1) This script should be placed JUST BEFORE ? Main Process.
#
# ? Like this:
# ? Materials
# ...
# ...
# * Caterpillar System
# ? Main Process
# Main
#
# 2) Setup this script in Setup Part below.
#
#--------------------------------------------------------------
# ? How to use:
#--------------------------------------------------------------
# ? Place this script and setup in the setup part.
#
#=================================================================

module Wora

  #=================================================================
  # ++ Setup Part
  #-----------------------------------------------------------------

  CATERPILLAR_HIDE_SWITCH = 1
  # Turn ON this switch to HIDE caterpillar actors
  # Turn OFF this switch to SHOW caterpillar actors

  CATERPILLAR_MAX_ACTORS = 5
  # Maximum number of the following actors

  #-----------------------------------------------------------------

  def self.add_upd_cater(code = nil)
    # Add new move action to caterpillar
    $game_cateracter.each_index do |i|
      act = $game_cateracter[i]
      eval($cater_movelist[$cater_movelist.size - 1 - i])
    end
    $cater_movelist.shift
    $cater_movelist.push(code) unless code.nil?
  end

  def self.reset_cater_pos
    # Reset caterpillar position
    $game_cateracter.each_index {|i| $game_cateracter[i].refresh }
    $cater_movelist = Array.new(Wora::CATERPILLAR_MAX_ACTORS - 1) {''}
  end
end

class Game_WCateracter < Game_Character
  attr_accessor :actor

  def initialize(member_id)
    super()
    @wmember_id = member_id
    refresh
  end

  def update(*args)
    super(*args)
    actor = $game_party.members[@wmember_id]
    unless actor.nil?
      @character_name = actor.character_name
      @character_index = actor.character_index
      @transparent = ($game_switches[Wora::CATERPILLAR_HIDE_SWITCH] or
    $game_player.in_vehicle? or $game_player.transparent)
      @opacity = $game_player.opacity
      @move_speed = $game_player.move_speed + ($game_player.dash? ? 1 : 0)
    else
      @character_name = ''
      @character_index = 0
    end
  end

  def screen_z
    return $game_player.screen_z
  end

  def check_event_trigger_touch(x, y)
    return false
  end

  def passable?(x, y)
    return true
  end

  def refresh
    @direction = $game_player.direction
    moveto($game_player.x, $game_player.y)
  end
end

class Spriteset_Map
  alias wora_cater_sprmap_crechara create_characters
  alias wora_cater_sprmap_updchara update_characters
  #--------------------------------------------------------------------------
  # * Create Character Sprite
  #--------------------------------------------------------------------------
  def create_characters(*args)
    wora_cater_sprmap_crechara(*args)
    # Remove Game_Player sprite, this will be add later
    ((@character_sprites.size-1)..0).each do |i|
      next if @character_sprites[i].nil?
      if @character_sprites[i].character.is_a?(Game_Player)
        @character_sprites[i].dispose
        @character_sprites.delete_at(i)
        break
      end
    end
    # Create party members sprite
    (1..(Wora::CATERPILLAR_MAX_ACTORS-1)).each do |n|
      @character_sprites.push(Sprite_Character.new(@viewport1, $game_cateracter[n-1]))
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  end
  #--------------------------------------------------------------------------
  # * Update Character Sprite
  #--------------------------------------------------------------------------
  def update_characters(*args)
    $game_cateracter.each {|cater| cater.update }
    wora_cater_sprmap_updchara(*args)
  end
end

class Game_Player < Game_Character
  attr_reader :move_speed
  unless method_defined?('wora_cater_gampla_movdown')
    alias wora_cater_gampla_movdown move_down
    alias wora_cater_gampla_movleft move_left
    alias wora_cater_gampla_movright move_right
    alias wora_cater_gampla_movup move_up
    alias wora_cater_gampla_movll move_lower_left
    alias wora_cater_gampla_movlr move_lower_right
    alias wora_cater_gampla_movul move_upper_left
    alias wora_cater_gampla_movur move_upper_right
    alias wora_cater_gampla_jump jump
    alias wora_cater_gampla_getoffveh get_off_vehicle
    alias wora_cater_gampla_moveto moveto

    #--------------------------------------------------------------------------
    # * Move Down
    #--------------------------------------------------------------------------
    def move_down(turn_ok = true)
      wora_cater_gampla_movdown(turn_ok)
      Wora.add_upd_cater("act.move_down(#{turn_ok})") unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move Left
    #--------------------------------------------------------------------------
    def move_left(turn_ok = true)
      wora_cater_gampla_movleft(turn_ok)
      Wora.add_upd_cater("act.move_left(#{turn_ok})") unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move Right
    #--------------------------------------------------------------------------
    def move_right(turn_ok = true)
      wora_cater_gampla_movright(turn_ok)
      Wora.add_upd_cater("act.move_right(#{turn_ok})") unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move up
    #--------------------------------------------------------------------------
    def move_up(turn_ok = true)
      wora_cater_gampla_movup(turn_ok)
      Wora.add_upd_cater("act.move_up(#{turn_ok})") unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move Lower Left
    #--------------------------------------------------------------------------
    def move_lower_left
      wora_cater_gampla_movll
      Wora.add_upd_cater('act.move_lower_left') unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move Lower Right
    #--------------------------------------------------------------------------
    def move_lower_right
      wora_cater_gampla_movlr
      Wora.add_upd_cater('act.move_lower_right') unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move Upper Left
    #--------------------------------------------------------------------------
    def move_upper_left
      wora_cater_gampla_movul
      Wora.add_upd_cater('act.move_upper_left') unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Move Upper Right
    #--------------------------------------------------------------------------
    def move_upper_right
      wora_cater_gampla_movur
      Wora.add_upd_cater('act.move_upper_right') unless @move_failed
    end
    #--------------------------------------------------------------------------
    # * Jump
    #--------------------------------------------------------------------------
    def jump(x, y)
      wora_cater_gampla_jump(x, y)
      Wora.add_upd_cater("act.jump(#{x},#{y})")
    end
    #--------------------------------------------------------------------------
    # * Get Off Vehicle
    #--------------------------------------------------------------------------
    def get_off_vehicle(*args)
      wora_cater_gampla_getoffveh(*args)
      Wora.reset_cater_pos
    end
    #--------------------------------------------------------------------------
    # * Move to Designated Position
    #--------------------------------------------------------------------------
    def moveto(*args)
      wora_cater_gampla_moveto(*args)
      Wora.reset_cater_pos
    end
  end
end

class Game_Map
  attr_accessor :events

  alias wora_cater_gammap_setup setup
  def setup(*args)
    wora_cater_gammap_setup(*args)
    # Create caterpillar actors
    $game_cateracter = []
    (1..(Wora::CATERPILLAR_MAX_ACTORS-1)).each do |n|
      $game_cateracter.push(Game_WCateracter.new(n))
    end
    $cater_movelist = Array.new(Wora::CATERPILLAR_MAX_ACTORS - 1) {''}
  end
end 
« Last Edit: July 24, 2011, 12:32:54 PM by Kail200X »


ハープダープ

pokeball TDSOffline
***
Rep:
Level 84
-T D S-
Silver - GIAW 11 (Hard)Silver - Game In A Week VII
I'm pretty sure you could set the stepping in place for events by checking the "Stepping Anim." box on the event options in the lower left part of the Edit event window.

As for the player, you could do it from an event also. Just go to "Set move route" in the event commands and selected "Stepping Animation ON" on the third column to the right.

As for the caterpillar script, put up a link for it and I'll edit it so the characters following you step in place.

**
Rep:
Level 84
<Jesus Saves>
Not sure I was elaborate enough. Hold on, I'll edit the first post.


ハープダープ

**
Rep:
Level 84
<Jesus Saves>


ハープダープ

*
Rep:
Level 82
GIAW 14: 1st Place (Easy Mode)2013 Project of the Year2013 Best RPG Maker User (Programming)2013 Most Promising ProjectParticipant - GIAW 11Bronze - GIAW 10
This code should be placed somewhere after Woratana's caterpillar script.

Code: [Select]
#===============================================================================
# -» Game_Character
# -----------------------------------------------------------------------------
# Summary of Changes:
#    Aliased Method(s) - update_animation
#===============================================================================
class Game_Character
 
  attr_accessor :step_anime
 
  #--------------------------------------------------------------------------
  # * Update Animation Count                                        [ Alias ]
  #--------------------------------------------------------------------------
  alias ex_runslow_gc_update_animation update_animation
  def update_animation(*args)
    move_speed_clone = @move_speed
    @move_speed      = 3
    ex_runslow_gc_update_animation(*args)
    @move_speed      = move_speed_clone
  end
 
end # Game_Character


#===============================================================================
# -» Game_WCateracter
# -----------------------------------------------------------------------------
# Summary of Changes:
#    Aliased Method(s) - update
#===============================================================================
class Game_WCateracter < Game_Character
 
  #--------------------------------------------------------------------------
  # * Update                                                        [ Alias ]
  #--------------------------------------------------------------------------
  alias ex_runslow_gw_update update
  def update(*args)

    ex_runslow_gw_update(*args)

    actor = $game_party.members[@wmember_id]
    unless actor.nil?
      @step_anime = $game_player.step_anime
    end
  end
 
end # Game_WCateracter

UPDATED 05-29-14


IS YOUR PROJECT OPTIMIZED?
UPDATED 07/04/15 - v2.5

RPG MAKER TOOLBOX
UPDATED 07/04/15 - v1.5

**
Rep:
Level 84
<Jesus Saves>
This works great! I haven't tried it with Wora's script yet, but if that doesn't work, I'll let you know. I'll be sure to credit you, and I'm sure many other DragonQuest fans will be pleased to see this script. n.n


ハープダープ