Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Edit this script

MaxXx

Member

Can someone make it so my catepiller script can be turned off when my characters go to my overworld.(chrono trigger game) By calling a script to turn it off would be perfect!

Code:
# Train_Actor 
# 
# fukuyama@alles.or.jp 
# 

# ●透明状態用スイッチ設定 
# true だとスイッチ制御を行う 
# TRAIN_ACTOR_TRANSPARENT_SWITCH = false 
TRAIN_ACTOR_TRANSPARENT_SWITCH = true 

# ●透明状態用スイッチ番号 
# この番号のスイッチがONだと透明になる 
TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX = 20 

# 定数 
#Input::DOWN = 2 
#Input::LEFT = 4 
#Input::RIGHT = 6 
#Input::UP = 8 
DOWN_LEFT = 1 
DOWN_RIGHT = 3 
UP_LEFT = 7 
UP_RIGHT = 9 
JUMP = 5 

class Game_Party_Actor < Game_Character 
def initialize 
super() 
@through = true 
end 
def setup(actor) 
# キャラクターのファイル名と色相を設定 
if actor != nil 
@character_name = actor.character_name 
@character_hue = actor.character_hue 
else 
@character_name = "" 
@character_hue = 0 
end 
# 不透明度と合成方法を初期化 
@opacity = 255 
@blend_type = 0 
end 
def screen_z(height = 0) 
if $game_player.x == @x and $game_player.y == @y 
return $game_player.screen_z(height) - 1 
end 
super(height) 
end 
#-------------------------------------------------------------------------- 
# ● 下に移動 
# turn_enabled : その場での向き変更を許可するフラグ 
#-------------------------------------------------------------------------- 
def move_down(turn_enabled = true) 
# 下を向く 
if turn_enabled 
turn_down 
end 
# 通行可能な場合 
if passable?(@x, @y, Input::DOWN) 
# 下を向く 
turn_down 
# 座標を更新 
@y += 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 左に移動 
# turn_enabled : その場での向き変更を許可するフラグ 
#-------------------------------------------------------------------------- 
def move_left(turn_enabled = true) 
# 左を向く 
if turn_enabled 
turn_left 
end 
# 通行可能な場合 
if passable?(@x, @y, Input::LEFT) 
# 左を向く 
turn_left 
# 座標を更新 
@x -= 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 右に移動 
# turn_enabled : その場での向き変更を許可するフラグ 
#-------------------------------------------------------------------------- 
def move_right(turn_enabled = true) 
# 右を向く 
if turn_enabled 
turn_right 
end 
# 通行可能な場合 
if passable?(@x, @y, Input::RIGHT) 
# 右を向く 
turn_right 
# 座標を更新 
@x += 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 上に移動 
# turn_enabled : その場での向き変更を許可するフラグ 
#-------------------------------------------------------------------------- 
def move_up(turn_enabled = true) 
# 上を向く 
if turn_enabled 
turn_up 
end 
# 通行可能な場合 
if passable?(@x, @y, Input::UP) 
# 上を向く 
turn_up 
# 座標を更新 
@y -= 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 左下に移動 
#-------------------------------------------------------------------------- 
def move_lower_left 
# 向き固定でない場合 
unless @direction_fix 
# 右向きだった場合は左を、上向きだった場合は下を向く 
@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction) 
end 
# 下→左、左→下 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or 
(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) 
# 座標を更新 
@x -= 1 
@y += 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 右下に移動 
#-------------------------------------------------------------------------- 
def move_lower_right 
# 向き固定でない場合 
unless @direction_fix 
# 左向きだった場合は右を、上向きだった場合は下を向く 
@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction) 
end 
# 下→右、右→下 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or 
(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) 
# 座標を更新 
@x += 1 
@y += 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 左上に移動 
#-------------------------------------------------------------------------- 
def move_upper_left 
# 向き固定でない場合 
unless @direction_fix 
# 右向きだった場合は左を、下向きだった場合は上を向く 
@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction) 
end 
# 上→左、左→上 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or 
(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) 
# 座標を更新 
@x -= 1 
@y -= 1 
end 
end 
#-------------------------------------------------------------------------- 
# ● 右上に移動 
#-------------------------------------------------------------------------- 
def move_upper_right 
# 向き固定でない場合 
unless @direction_fix 
# 左向きだった場合は右を、下向きだった場合は上を向く 
@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction) 
end 
# 上→右、右→上 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or 
(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) 
# 座標を更新 
@x += 1 
@y -= 1 
end 
end 

def set_move_speed(move_speed) 
@move_speed = move_speed 
end 
end 

class Spriteset_Map 
def setup_actor_character_sprites? 
return @setup_actor_character_sprites_flag != nil 
end 
def setup_actor_character_sprites(characters) 
if !setup_actor_character_sprites? 
index_game_player = 0 
@character_sprites.each_index do |i| 
if @character_sprites[i].character.instance_of?(Game_Player) 
index_game_player = i 
break 
end 
end 
for character in characters.reverse 
@character_sprites.unshift( 
Sprite_Character.new(@viewport1, character) 
) 
end 
@setup_actor_character_sprites_flag = true 
end 
end 
end 

class Scene_Map 
def setup_actor_character_sprites(characters) 
@spriteset.setup_actor_character_sprites(characters) 
end 
end 

class Game_Party 
def set_transparent_actors(transparent) 
@transparent = transparent 
end 
def setup_actor_character_sprites 
if @characters == nil 
@characters = [] 
for i in 1 .. 4 
@characters.push(Game_Party_Actor.new) 
end 
end 
if @actors_chach == nil 
@actors_chach = [] 
end 
if @actors_chach != @actors 
@actors_chach = @actors.clone 
for i in 1 .. 4 
@characters[i - 1].setup(actors[i]) 
end 
end 
if $scene.instance_of?(Scene_Map) 
$scene.setup_actor_character_sprites(@characters) 
end 
end 
def update_party_actors 
setup_actor_character_sprites 
transparent = $game_player.transparent 
if transparent == false 
if TRAIN_ACTOR_TRANSPARENT_SWITCH 
transparent = $game_switches[TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX] 
else 
transparent = $game_player.transparent 
end 
end 
for character in @characters 
character.transparent = transparent 
character.set_move_speed($game_player.get_move_speed) 
character.update 
end 
end 
def moveto_party_actors( x, y ) 
setup_actor_character_sprites 
for character in @characters 
character.moveto( x, y ) 
end 
if @move_list == nil 
@move_list = [] 
end 
for i in 0 .. 10 
@move_list[i] = nil 
end 
end 
def move_party_actors 
if @move_list == nil 
@move_list = [] 
for i in 0 .. 10 
@move_list[i] = nil 
end 
end 
@move_list.each_index do |i| 
if @characters[i] != nil 
case @move_list[i].type 
when Input::DOWN 
@characters[i].move_down(@move_list[i].args[0]) 
when Input::LEFT 
@characters[i].move_left(@move_list[i].args[0]) 
when Input::RIGHT 
@characters[i].move_right(@move_list[i].args[0]) 
when Input::UP 
@characters[i].move_up(@move_list[i].args[0]) 
when DOWN_LEFT 
@characters[i].move_lower_left 
when DOWN_RIGHT 
@characters[i].move_lower_right 
when UP_LEFT 
@characters[i].move_upper_left 
when UP_RIGHT 
@characters[i].move_upper_right 
when JUMP 
@characters[i].jump(@move_list[i].args[0],@move_list[i].args[1]) 
end 
end 
end 
end 
class Move_List_Element 
def initialize(type,args) 
@type = type 
@args = args 
end 
def type() return @type end 
def args() return @args end 
end 
def add_move_list(type,*args) 
@move_list.unshift(Move_List_Element.new(type,args)).pop 
end 
def move_down_party_actors(turn_enabled = true) 
move_party_actors 
add_move_list(Input::DOWN,turn_enabled) 
end 
def move_left_party_actors(turn_enabled = true) 
move_party_actors 
add_move_list(Input::LEFT,turn_enabled) 
end 
def move_right_party_actors(turn_enabled = true) 
move_party_actors 
add_move_list(Input::RIGHT,turn_enabled) 
end 
def move_up_party_actors(turn_enabled = true) 
move_party_actors 
add_move_list(Input::UP,turn_enabled) 
end 
def move_lower_left_party_actors 
move_party_actors 
add_move_list(DOWN_LEFT) 
end 
def move_lower_right_party_actors 
move_party_actors 
add_move_list(DOWN_RIGHT) 
end 
def move_upper_left_party_actors 
move_party_actors 
add_move_list(UP_LEFT) 
end 
def move_upper_right_party_actors 
move_party_actors 
add_move_list(UP_RIGHT) 
end 
def jump_party_actors(x_plus, y_plus) 
move_party_actors 
add_move_list(JUMP,x_plus, y_plus) 
end 
end 

module Game_Player_Module 
def update 
$game_party.update_party_actors 
super 
end 
def moveto( x, y ) 
super 
$game_party.moveto_party_actors( x, y ) 
end 
def move_down(turn_enabled = true) 
if passable?(@x, @y, Input::DOWN) 
$game_party.move_down_party_actors(turn_enabled) 
end 
super(turn_enabled) 
end 
def move_left(turn_enabled = true) 
if passable?(@x, @y, Input::LEFT) 
$game_party.move_left_party_actors(turn_enabled) 
end 
super(turn_enabled) 
end 
def move_right(turn_enabled = true) 
if passable?(@x, @y, Input::RIGHT) 
$game_party.move_right_party_actors(turn_enabled) 
end 
super(turn_enabled) 
end 
def move_up(turn_enabled = true) 
if passable?(@x, @y, Input::UP) 
$game_party.move_up_party_actors(turn_enabled) 
end 
super(turn_enabled) 
end 
def move_lower_left 
# 下→左、左→下 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or 
(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) 
$game_party.move_lower_left_party_actors 
end 
super 
end 
def move_lower_right 
# 下→右、右→下 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or 
(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) 
$game_party.move_lower_right_party_actors 
end 
super 
end 
def move_upper_left 
# 上→左、左→上 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or 
(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) 
$game_party.move_upper_left_party_actors 
end 
super 
end 
def move_upper_right 
# 上→右、右→上 のどちらかのコースが通行可能な場合 
if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or 
(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) 
$game_party.move_upper_right_party_actors 
end 
super 
end 
def jump(x_plus, y_plus) 
# 新しい座標を計算 
new_x = @x + x_plus 
new_y = @y + y_plus 
# 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合 
if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0) 
$game_party.jump_party_actors(x_plus, y_plus) 
end 
super(x_plus, y_plus) 
end 

# ----------------------------------------------- 
# move_speed を外から見れるように 
# ----------------------------------------------- 
def get_move_speed 
return @move_speed 
end 
end 

class Game_Player 
include Game_Player_Module 
end
 
You can turn it off with switch number 20. If you want to change the switch to another one, just change the 20 in
Code:
TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX = 20
to another number.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top