¡Bienvenido a PlanetaRPG! br>
Ha iniciado sesión como invitado, si no dispone de una cuenta puede obtenerla fácilmente haciendo click aquí. br>
Si ya tiene una cuenta puede identificarse mediante este enlace.
Si ves algún post con links rotos o que debería ser borrado, utiliza el botón , cual aparece justo debajo de cada mensaje, para que algún moderador se encargue, ¡gracias! :D
Gracias: 0
2 veces se le dio las gracias en 1 temas
[SCRIPT][RMXP] Seguimiento de Party
SCRIPT DE SEGUIMIENTO DE PARTY | RPG MAKER XP
INTRODUCCIÓN
El Script hace que aparezcan, detrás del primer héroe del grupo, el/los otro(s) héroe(s) en fila.
CARACTERÍSTICAS
Al Caminar, los héroes siempre tienden a mirar al protagonista
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.
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
INSTRUCCIONES
Simplemente pegar en un nuevo Script sobre Main y listo.
Gracias: 0
0 veces se le dio las gracias en 0 temas
RE: [RMXP] Script de Seguimiento de Party
Holas a todos. Quiero saber si existe alguna forma de desactivar el sprite. Si alguien sabe, me lo dice...
Desde ya muchas gracias, y XD para todos, XD.
Gracias: 0
0 veces se le dio las gracias en 0 temas
RE: [RMXP] Script de Seguimiento de Party
Hola! Muy bueno el script! ahora, tengo un pequeño problemilla... verás, a veces en el proyecto que estoy haciendo hay algunos mapas que los hago especialmente para cutscenes, y al hacerlas con puros eventos, pongo previamente que el protagonista aparezca en una punta con opacidad 0 para dar lugar a la cutscene... el problema es que la opacidad de los otros miembros de la party sigue en 255... no desaparecen, y se ven perfectamente en la punta... soy bastante rookie con esto de los scripts... tendrías alguna idea para solucionar esto? :|
Nos dice que el interruptor que aplica este script está activo, y que ese interruptor es el 20. Aquí tenemos 2 opciones:
1.Llamar script poniendo:
Código:
TRAIN_ACTOR_TRANSPARENT_SWITCH = false
2. Poner manualmente el interruptor 20 en OFF, así se desactiva.
En cualquier caso, procurad no usar el interruptor 20 para nada o puede fastidiar el script, en ese caso, podeis cambiar la linia:
Código:
TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX = 20
podeis cambiar el 20 por el que querais, aconsejablemente un numero alto, para evitar esos problemas.
Espero que no me haya equivocado, porque todo lo que dije lo hice deduciendo lo que decian las linias esas de este script, en caso de que me equivoque, que alguien me corrija, que no sé casi nada de RGSS
Aun así, podeis probarlo ^^
Ahora, quiero que alguien que sepa un poco más que yo de RGSS, me diga si mi siguiente deducción es cierta:
Mirando las linias:
:duda:Mirando estas linias, me da la sensación que al pulsar 1, el personaje se mueve abajo a la izquierda, pulsando 3, abajo a la derecha, con 7 a la izquierda, con nueve a la derecha y con 5, los personajes saltan.
Es eso?
Es que me da esa impresion al ver dichas linias
si es eso, me parece un script muy sencillo de 8 direcciones O.o
Bueno, salu2
Reglas de los temas y mensajes
Se amable y agradecido, estamos para ayudarnos mutuamente y divertirnos juntos.
El equipo de PlanetaRPG borrará los mensajes e, incluso, sancionará a los usuarios que no cumplan la regla anterior.
El idioma oficial de PlanetaRPG es el Español, escribe correctamente.
No colocar enlaces a paginas comerciales, descargas piratas o con contenido inapropiado.
PlanetaRPG se reserva el derecho de mover/modificar/borrar los temas y los mensajes.
Si ves algún post con links rotos o que no cumple las reglas, utiliza el botón , este botón aparece justo debajo de cada mensaje y sirve para enviar un mensaje a los moderadores para que revisen el mensaje.