RMVXA: Looking for a script that creates a dirt-like effect when my character is walking

Cap_

Dude
Member
Joined
Apr 1, 2019
Messages
23
Reaction score
1
First Language
English
Primarily Uses
RMVXA
I'm making a sidescroller in VX ACE and I'm looking for a script that creates a little particle of dirt when my character takes a step.

Something sort of like the picture:
 

Attachments

Oddball

Veteran
Veteran
Joined
Sep 4, 2014
Messages
1,923
Reaction score
534
First Language
English
Primarily Uses
N/A
Why not just use a sprite sheet were dirt is kicked up when the charecter walks on certain tiles? It might take some clever eventing, but i think it would be possible without a script
 

Romanticist

Veteran
Veteran
Joined
Oct 8, 2015
Messages
215
Reaction score
83
First Language
English
Primarily Uses
RMMV
.
 
Last edited:

Romanticist

Veteran
Veteran
Joined
Oct 8, 2015
Messages
215
Reaction score
83
First Language
English
Primarily Uses
RMMV
This is the script they're talking about. Credit goes to Galv

#------------------------------------------------------------------------------#
# Galv's Region Effects
#------------------------------------------------------------------------------#
# For: RPGMAKER VX ACE
# Version 1.9
# Credit to Yanfly and Quack for event spawning method
#------------------------------------------------------------------------------#
# 2014-01-07 - Version 1.9 - upgrade to not stop animations playing when a
# region effect is drawn.
# 2013-01-24 - Version 1.8 - minor tweaks
# 2013-01-22 - Version 1.7 - Made effects work during forced move routes
# 2012-11-15 - Version 1.6 - Fixed a major bug caused with last update.
# 2012-11-04 - Version 1.5 - streamline updates and bug fix suggested by Quack
# 2012-10-23 - Version 1.4 - updated alias naming convention for compatability
# 2012-10-09 - Version 1.3 - re-wrote the code to be more efficient when
# - using many different region effects.
# 2012-10-09 - Version 1.2 - code tweak that may reduce lag on low-end pc's
# 2012-09-16 - Version 1.1 - now compatible with Yanfly's spawn events
# 2012-09-15 - Version 1.0 - release
#------------------------------------------------------------------------------#
# Designed to activate effects when regions are stood on.
# An effect can include:
# - Sound Effect
# - An event that appears at the player's location
# - Activating a common event
#
#
# INSTRUCTIONS:
# 1. Copy image from /Graphics/Characters/!Other-specials.png to your project
# 2. Copy the map from this demo into your game.
# - this map has events set up for the pre-made effects
# 3. Check the map ID of the map you copied in your game
# 4. Change the SPAWN_MAP_ID number to this map ID
# 5. Change REGION_EFFECT_SWITCH to a switch you are not using in your game.
# 6. Add some regions to your map to test.
#
#
#
# To disable region effects use
# $game_player.region_effects = false
#
#------------------------------------------------------------------------------#

$imported = {} if $imported.nil?
$imported["Region_Effects"] = true

module Region_Effects
#------------------------------------------------------------------------------#
# SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#

REGION_EFFECT_SWITCH = 1 # Turn this switch ON to disable the effects.

MAX_EFFECTS = 20 # Number of effects that can be on screen
# before being removed. (To prevent lag)

SPAWN_MAP_ID = 2 # Map ID of the map you store event effects in.



#------------------------------------------------------------------------------#
# ENVIRONMENT REGIONS SETUP
#------------------------------------------------------------------------------#
#------------------------------------------------------------------------------#
#
# region => ["sound", vol, pitch, event_id, common_event_id]
#
# region - the region ID the effect will activate on
# sound - the name of the SE file. "" for no sound
# vol - the volume of the SE (0 - 100)
# pitch - the pitch of the SE (50 - 150)
# event_id - event ID called from the spawn map. 0 for none.
# common_event_id - common event ID to call. 0 for no common event.
#
#------------------------------------------------------------------------------#
EFFECT = { # ! don't touch this
#------------------------------------------------------------------------------#

0 => ["", 0, 0, 0, 0], # No Effect (no region)

# Pre-made effects (requires demo events)
1 => ["", 0, 0, 5, 0], # Dirt dust
2 => ["Blow7", 60, 150, 0, 0], # Wood surface noise only
3 => ["Water1", 60, 110, 1, 0], # Shallow Water

18 => ["Earth2", 40, 130, 0, 0], # Hard surface noise only
5 => ["Damage3", 40, 150, 2, 0], # Footprints
6 => ["Ice9", 50, 130, 3, 0], # Walking over thick grass
7 => ["", 0, 0, 0, 1], # Calls common event 1 only
8 => ["Fire3", 80, 120, 4, 2], # Calls fire trap
37 => ["", 80, 120, 6, 0], # Dust cloud

# You can add more as required. eg:
# 42 => ["", 0, 0, 0, 0],
# 18 => ["", 0, 0, 0, 0],
# etc. etc.

# Only one effect per region number will work

#------------------------------------------------------------------------------#
} # ! don't touch this
#------------------------------------------------------------------------------#
# END SCRIPT SETUP
#------------------------------------------------------------------------------#

end # Region_Effects

module DataManager

#--------------------------------------------------------------------------
# alias method: load_normal_database
#--------------------------------------------------------------------------
class <<self; alias load_normal_database_spawn_alias load_normal_database; end
def self.load_normal_database
load_normal_database_spawn_alias
$data_spawn_map = load_data(sprintf("Data/Map%03d.rvdata2", Region_Effects::SPAWN_MAP_ID))
end
end

class Game_Player < Game_Character
attr_accessor :region_effects

alias galv_region_effects_update_update_nonmoving update_nonmoving
def update_nonmoving(last_moving)
if last_moving
galv_region_check unless $game_switches[Region_Effects::REGION_EFFECT_SWITCH] == true
end
galv_region_effects_update_update_nonmoving(last_moving)
end

def galv_region_check
return if Input.trigger?:)C)
v = rand(10) - rand(10)
p = rand(40) - rand(40)

r_id = $game_map.region_id($game_player.x, $game_player.y)
return if Region_Effects::EFFECT[r_id] == nil

sound = Region_Effects::EFFECT[r_id][0]
vol = Region_Effects::EFFECT[r_id][1]
pit = Region_Effects::EFFECT[r_id][2]
eve = Region_Effects::EFFECT[r_id][3]
com_eve = Region_Effects::EFFECT[r_id][4]

RPG::SE.new(sound, vol + v, pit + p).play
if eve > 0
$game_map.region_event($game_player.x, $game_player.y, eve, Region_Effects::SPAWN_MAP_ID)
end
$game_temp.reserve_common_event(com_eve) unless com_eve == nil
end


end # Game_Player



class Game_Map
attr_accessor :effectlist
attr_accessor :r_events

alias galv_region_effects_setup setup
def setup(map_id)
@effectlist = []
@r_events = {}
galv_region_effects_setup(map_id)

@eid = 0
end

def region_event(dx, dy, event_id, map_id)
map_id = @map_id if map_id == 0
map = $data_spawn_map
event = generated_region_event(map, event_id)

@eid += 1
@effectlist.push(@eid)
@effectlist.shift if @effectlist.count > Region_Effects::MAX_EFFECTS

@r_events[@eid] = Game_Event.new(@map_id, event)
@r_events[@eid].moveto(dx, dy)
SceneManager.scene.spriteset.refresh_region_effects

@eid = 0 if @eid >= Region_Effects::MAX_EFFECTS
end


def generated_region_event(map, event_id)
for key in map.events
event = key[1]
next if event.nil?
return event if event.id == event_id
end
return nil
end

alias galv_region_effects_gm_refresh refresh
def refresh
@r_events.each_value {|event| event.refresh }
galv_region_effects_gm_refresh
end

alias galv_region_effects_gm_update_events update_events
def update_events
@r_events.each_value {|event| event.update }
galv_region_effects_gm_update_events
end

end # Game_Map



class Spriteset_Map
def refresh_region_effects
dispose_region_sprites
create_region_sprites
end

alias galv_region_effect_sm_sb_create_characters create_characters
def create_characters
create_region_sprites
galv_region_effect_sm_sb_create_characters
end

alias galv_region_effect_sm_sb_update_characters update_characters
def update_characters
galv_region_effect_sm_sb_update_characters
@region_sprites.each { |sprite| sprite.update }
end

alias galv_region_effect_sm_sb_dispose_characters dispose_characters
def dispose_characters
dispose_region_sprites
galv_region_effect_sm_sb_dispose_characters
end

def create_region_sprites
@region_sprites = []
$game_map.effectlist.each_with_index { |id,i|
@region_sprites = Sprite_Character.new(@viewport1,$game_map.r_events[id])
}
end

def dispose_region_sprites
@region_sprites.each { |sprite| sprite.dispose }
end
end



class Scene_Map < Scene_Base
attr_accessor :spriteset

alias galv_region_effects_start start
def start
galv_region_effects_start
SceneManager.scene.spriteset.refresh_region_effects
end
end # Scene_Map
[\spoiler]
Thanks, I didn't paste the script here because usually whenever I do a mod tells me I have to link it instead because some script writers don't want their scripts shared on other sites. I just figured the OP could google search it since the link appears at the top of the google search anyway lol
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
@Oddball Please edit your post to remove that script and give a link to Galv's web page instead.
 

Oddball

Veteran
Veteran
Joined
Sep 4, 2014
Messages
1,923
Reaction score
534
First Language
English
Primarily Uses
N/A
Thanks, I didn't paste the script here because usually whenever I do a mod tells me I have to link it instead because some script writers don't want their scripts shared on other sites. I just figured the OP could google search it since the link appears at the top of the google search anyway lol
You mean like this?

@Oddball Please edit your post to remove that script and give a link to Galv's web page instead.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c
So I was playing with filters and this looked interesting...

Versus the normal look...

Kind of gives a very different feel. :LZSexcite:
To whom ever person or persons who re-did the DS/DS+ asset packs for MV (as in, they are all 48x48, and not just x2 the pixel scale) .... THANK-YOU!!!!!!!!! XwwwwX

Forum statistics

Threads
105,849
Messages
1,016,975
Members
137,563
Latest member
cexojow
Top