¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Invocar Estilo Final Fantasy
por akito_squall Hoy a las 16:20

» El poder oculto (Demo)
por alex1633 Ayer a las 20:56

» Tutorial Interactivo [Uso de interruptores]
por Ledai Ayer a las 16:58

» Necesito Script
por Elian84 Ayer a las 04:44

» Holaaa a tod@s!!!
por chronoMxx Ayer a las 03:41

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Ayer a las 01:06

» El poder oculto (Segunda entrega)
por alex1633 2016-12-03, 23:18

» Hola mucho gusto
por Hk Diamond 2016-12-03, 13:49

» SoraDeathss se presenta!
por chronoMxx 2016-12-03, 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx 2016-12-03, 06:45

Afiliados
Estadísticas
Tenemos 3383 miembros registrados.
El último usuario registrado es LordBaium.

Nuestros miembros han publicado un total de 79770 mensajes en 11248 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMXP]Miembros siguen al héroe principal

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP]Miembros siguen al héroe principal

Mensaje por Blake el 2009-05-11, 01:47

Bueno, este es un script que me baje junto a otros en un kit, pero por ahora pongo este.
El Script hace que aparezcan, detrás del primer héroe del grupo, el/los otro(s) héroe(s) en fila, siempre mirando al héroe propiamente dicho.
Un defecto sería que cuando teletransportamos al héroe, todos los demás aparecen en el mismo cuadrado, haciendo que queden uno encima del otro. De todos modos, esto no interfiere en el movimiento, solo es estéticamente desagradable si se usa un evento en INICIO AUTOMÁTICO apenas aparecemos en un mapa.
El Script es anónimo.
Script:
Código:
##--------------------------------------------
# Train_Actor
# TRAIN_ACTOR_TRANSPARENT_SWITCH = false

TRAIN_ACTOR_TRANSPARENT_SWITCH = true
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
#--------------------------------------------------------------------------

def move_down(turn_enabled = true)
if turn_enabled
  turn_down
end

if passable?(@x, @y, Input::DOWN)
  turn_down
  @y += 1
end
end
#--------------------------------------------------------------------------
def move_left(turn_enabled = true)
if turn_enabled
  turn_left
end
if passable?(@x, @y, Input::LEFT)
  turn_left
  @x -= 1
end
end
#--------------------------------------------------------------------------
def move_right(turn_enabled = true)
if turn_enabled
  turn_right
end
if passable?(@x, @y, Input::RIGHT)
  turn_right
  @x += 1
end
end
#--------------------------------------------------------------------------
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
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

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

def get_move_speed
return @move_speed
end
end

class Game_Player
include Game_Player_Module
end

Blake
Soñador
Soñador

0/3

Créditos 147

Gracias : 9

Volver arriba Ir abajo

Re: [RMXP]Miembros siguen al héroe principal

Mensaje por takr105 el 2011-04-22, 11:58

muy bueno el script, con tu permiso lo usare en mi juego.

ha ,por cierto, por el pequeño inconveniente de la teletransportacion, no te preocupes no que muy mal.

PD: perdon por el necroposting, solo queria darle las gracias al autor.

takr105
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP]Miembros siguen al héroe principal

Mensaje por PROmaster el 2011-04-25, 02:45

Muy bueno, lo estoy utilizando actualmente en mi juego y queda de fábula.

PROmaster
Principiante
Principiante

0/3

Créditos 324

Gracias : 0

Volver arriba Ir abajo

Re: [RMXP]Miembros siguen al héroe principal

Mensaje por Contenido patrocinado Hoy a las 16:36


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

Permisos de este foro:
No puedes responder a temas en este foro.