Registrarse

[Script] Script para PSP

Para los amantes de PSP y el sistema de perseguimiento pokemon a qui esta una joya:
Creais un nuevo script y lo pegais todo.


#pour que le pokemon suis le dresseur vous devez mattre un character dans le
# dossier characters et nomer le fichier comme ceci "pkm 001.png" le 001 est
# l'id du pokemon quand vous faite ajouter/retirer un heros avec rpg maker xp
# la le pokemon sera remplacer par un dresseur qui vous acconpagnera.
# une fois que vous avez ajouter ou retirer votre dresseur vous pouvez retourner
# sur psp_mod.


#==============================================================================
# ¦ Follower Pokémon
# 26/01/10 - V1 - By Glock#
#-----------------------------------------------------------------------------
# Rend le premier pokémon de l'équipe visible sur la map.
#-----------------------------------------------------------------------------


#-----------------------------------------------------------------------------
# ? Choix de la variable de transparence.
#-----------------------------------------------------------------------------


TRAIN_ACTOR_TRANSPARENT_SWITCH = true


TRAIN_PKM_TRANSPARENT_SWITCHES_INDEX = 20


#-----------------------------------------------------------------------------
# ? Classe du Character
#-----------------------------------------------------------------------------
class Follower_Pkm < Game_Character
include POKEMON_S

def initialize
super()
@through = true
#@step_anime = true
end

def setup_pkm(pkm)
if not $game_party.actors[1] != nil
if pkm != nil
ida = sprintf("%03d", pkm)
string = "#{ida}.png"
@character_name = string
@character_hue = 0
else
@character_name = ""
@character_hue = 0
end
end
@opacity = 255
@blend_type = 0
end
def setup_actor(actor)
if $game_party.actors[1] != nil
if actor != nil
@character_name = actor.character_name
@character_hue = 0
else
@character_name = ""
@character_hue = 0
end
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 set_move_speed(move_speed)
@move_speed = move_speed
end
end


class Scene_Map
def setup_character_sprites(character)
@spriteset.setup_follower_pkm_sprite(character)
end
end


#-----------------------------------------------------------------------------
# ? Impression dans Spriteset_Map
#-----------------------------------------------------------------------------
class Spriteset_Map

def setup_follower_pkm_sprite?
return @setup_follower_pkm_sprite_flag != nil
end

def setup_follower_pkm_sprite(character)
if !setup_follower_pkm_sprite?
index_game_player = 0
@character_sprites.each_index do |i|
if @character_sprites.character.instance_of?(Game_Player)
index_game_player = i
break
end
end
@character_sprites.push(Sprite_Character.new(@viewport1, character))
end
@setup_follower_pkm_sprite_flag = false
end
end


#-----------------------------------------------------------------------------
# ? Génération de du character selon les pokémons de l'équipe
#-----------------------------------------------------------------------------
class Game_Party
include POKEMON_S

def set_transparent_actors(transparent)
@transparent = transparent
end

def setup_follower_pkm_sprite
if @follower_pkm == nil
@follower_pkm = Follower_Pkm.new
end

if @actors_chach == nil
@actors_chach = []
end
if @actors_chach != @actors_pkm
@actors_chach = @actors.clone
if $game_party.actors[1] != nil
@follower_pkm.setup_actor($game_party.actors[1])
else
$pokemon_party = POKEMON_S::pokemon_Party.new if $pokemon_party == nil
@follower_pkm.setup_pkm($pokemon_party.actors[0].id)
end
end

if $scene.instance_of?(Scene_Map)
$scene.setup_character_sprites(@follower_pkm)
end
if $scene.instance_of?(Spriteset_Map)
$scene.setup_follower_pkm_sprite(@follower_pkm)
end
end
def update_party_actors
setup_follower_pkm_sprite
transparent = $game_player.transparent
if transparent == false
if TRAIN_ACTOR_TRANSPARENT_SWITCH
transparent = $game_switches[TRAIN_PKM_TRANSPARENT_SWITCHES_INDEX]
else
transparent = $game_player.transparent
end
end
@follower_pkm.transparent = transparent
@follower_pkm.set_move_speed($game_player.get_move_speed)
@follower_pkm.update
end

def moveto_party_actors( x, y )
setup_follower_pkm_sprite
@follower_pkm.moveto( x, y )
if @move_list == nil
@move_list = []
end
for i in 0 .. 10
@move_list = nil
end
end

def move_party_actors
if @move_list == nil
@move_list = []
for i in 0 .. 10
@move_list = nil
end
end
if @follower_pkm != nil
i = 0
case @move_list.type
when Input:: DOWN
@follower_pkm.move_down(@move_list.args[0])
when Input::LEFT
@follower_pkm.move_left(@move_list.args[0])
when Input::RIGHT
@follower_pkm.move_right(@move_list.args[0])
when Input::UP
@follower_pkm.move_up(@move_list.args[0])
end
end
end


#-----------------------------------------------------------------------------
# ? Gestion des déplacements
#-----------------------------------------------------------------------------
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
#-----------------------------------------------------------------------------
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

Dar créditos a mi amigo Glock
Salu2
 
Genial,gracias por aportar el script,pero lo primero... para que engine es? PSP V.0.07?O PSP DS o essentials?Esque como no se para cual es,y lo de perseguimiento pokemon es que te sige el pokemon no?
 
Ok,gracias por la aclaracion,me vendra de perlas,me gustaria ponerlo,muy buen aporte :D

Vamos a ver que tal me va poniendo el script,que bien que exista un script de este tipo para PSP DS :blush: asi se parecera aun mas a los ultimos juegos pokemon,grax ^^


Saludos :awesome:
 
Mmm luce bien le echare un ojo =D
Pero te falta poner a quien hay que darle creditos :mad:
Si no me equivoco es a Glock, pero me quise asegurar, ademas deberias ponerlo en el post principal y algunas imagenes xD

En fin, luce bastante bien =D

Sldos, buen aporte.
 
Arriba