tengo el pokemon essentials v13 y tengo el super following character, tengo el script de following character pero no se como ponerloy si alguien sabe como ponerlo puede decirme como ponerlo el script es:
#==============================================================================
# Pokemon Following Character es original de Help-14.
# Versión "super" por Rafael-animal.
# LOS CRÉDITOS HACIA LOS DOS SON NECESARIOS.
#==============================================================================
Default_Following_Pokemon_Number = 0 # Pokémon que te siguen
Common_Event = 3 # Evento común del Pokémon
Current_Following_Variable = 28 # Variable del Pokémon(no modificar si no sabes que es)
Walking_Time_Variable = 29 # Variable de Tiempo(no modificar si no sabes que es)
Happier_After = 60 # Feliz después de "tales" pasos.
Animation_Come_Out = 22 # Animación al salir de la Ball
Animation_Come_In = 23 # Animación al entrar en la Ball
Emo_Happy = 24 # Animación "feliz"
Emo_Normal = 25 # Animación "normal"
Emo_Hate = 26 # Animación "enfadado"
#==============================================================================
# Funciones útiles por Rafael-animal
#==============================================================================
def MoveFollowingPokemon(commands,waitComplete=false)
$PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
end
def pbRemoveFollowingPokemon
$PokemonTemp.dependentEvents.remove_sprite(true)
end
def pbVisibleFollowingPokemon
$PokemonTemp.dependentEvents.change_following_pokemon
end
def pbDarPrimerPokemon(pokemon,level=nil,idevento=4,idcomun=4)
return if !pokemon || !$Trainer
if pbBoxesFull?
Kernel.pbMessage(_INTL("There's no more room for Pokémon!\1"))
Kernel.pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
return false
end
if pokemon.is_a?(Integer) && level.is_a?(Integer)
pokemon=PokeBattle_Pokemon.new(pokemon,level,$Trainer)
end
speciesname=PBSpecies.getName(pokemon.species)
Kernel.pbMessage(_INTL("{1} obtained {2}!\\se[itemlevel]\1",$Trainer.name,speciesname))
pbNicknameAndStore(pokemon)
Kernel.pbAddDependency2(idevento, "Following", idcomun)
$PokemonTemp.dependentEvents.refresh_sprite
return true
end
#==============================================================================
# Script modificado.
# Original por Help-14.
# Mejorado por Rafael-animal.
#==============================================================================
class DependentEvents
def change_following_pokemon
$game_variables[33]=0
if $game_variables[Current_Following_Variable]+1==$Trainer.party.length+1
$game_variables[Current_Following_Variable]=0
else
$game_variables[Current_Following_Variable]+=1
end
if $game_variables[Current_Following_Variable]==$Trainer.party.length
remove_sprite(true)
else
if $Trainer.party[$game_variables[Current_Following_Variable]].isShiny?
shiny=true
else
shiny=false
end
change_sprite($Trainer.party[$game_variables[Current_Following_Variable]].species, shiny, true)
end
end
def refresh_sprite(menu=nil)
if $Trainer.party.length!=$game_variables[Current_Following_Variable]
if $Trainer.party.length-1<$game_variables[Current_Following_Variable]
$game_variables[Current_Following_Variable]=0
end
if $Trainer.party[$game_variables[Current_Following_Variable]].isShiny?
shiny=true
else
shiny=false
end
change_sprite($Trainer.party[$game_variables[Current_Following_Variable]].species, shiny, false)
end
end
def change_sprite(id, shiny=nil, animation=nil)
events=$PokemonGlobal.dependentEvents
MoveFollowingPokemon([PBMoveRoute::StepAnimeOn])
for i in 0...events.length
if events && events[8]=="Following"
if shiny==true
events[6]=sprintf("%03ds",id)
@realEvents.character_name=sprintf("%03ds",id)
else
events[6]=sprintf("%03d",id)
@realEvents.character_name=sprintf("%03d",id)
end
if animation==true
$scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents.x,@realEvents.y)
end
$game_variables[Walking_Time_Variable]=0
end
end
end
def remove_sprite(animation=nil)
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Following"
events[6]=sprintf("nil")
@realEvents.character_name=sprintf("nil")
if animation==true
$scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents.x,@realEvents.y)
end
$game_variables[Current_Following_Variable]=$Trainer.party.length
$game_variables[Walking_Time_Variable]=0
$game_variables[33]=1
end
end
end
def check_surf(animation=nil)
remove_sprite(true)
end
def check_faint
if $Trainer.party[$game_variables[Current_Following_Variable]].hp<=0
for i in 0..$Trainer.party.length-1
if $Trainer.party.hp>0
found=true
$game_variables[Current_Following_Variable]=i
refresh_sprite(true)
break
end
end
if !found
remove_sprite
end
end
end
def talk_pokemon
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Following"
pos_x=@realEvents.x
pos_y=@realEvents.y
end
end
pbPlayCry($Trainer.party[$game_variables[Current_Following_Variable]].species)
if $game_variables[Current_Following_Variable]!=6
if $Trainer.party[$game_variables[Current_Following_Variable]].happiness>0 &&
$Trainer.party[$game_variables[Current_Following_Variable]].happiness<=50
$scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y)
Kernel.pbMessage(_INTL("{1} odia estar con {2}",$Trainer.party[$game_variables[Current_Following_Variable]].name,$Trainer.name))
elsif $Trainer.party[$game_variables[Current_Following_Variable]].happiness>50 &&
$Trainer.party[$game_variables[Current_Following_Variable]].happiness<=150
$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y)
Kernel.pbMessage(_INTL("{1} no está feliz de estar junto a {2}",$Trainer.party[$game_variables[Current_Following_Variable]].name,$Trainer.name))
else
$scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y)
Kernel.pbMessage(_INTL("{1} está feliz de estar junto a {2}",$Trainer.party[$game_variables[Current_Following_Variable]].name,$Trainer.name))
end
end
end
def SetMoveRoute(commands,waitComplete=false)
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Following"
pbMoveRoute(@realEvents,commands,waitComplete)
end
end
end
end
#===============================================================================
# Termina el script de Pokémon Following
# A partir de aquí hace que se modifiquen otros scripts
# para añadir compatibilidad.
#===============================================================================
def add_following_time
if $game_variables[2]==true
$game_variables[Walking_Time_Variable]+=1 if $game_variables[Walking_Time_Variable]!=$Trainer.party.length
if $game_variables[Walking_Time_Variable]==Happier_After*Graphics.frame_rate
$Trainer.party[$game_variables[Current_Following_Variable]].happiness+=1
$game_variables[Walking_Time_Variable]=0
end
end
end
end
#----------------------------------------------------------------------------
# Cambia el sprite cuando el Pokémon se queda sin PS.
#----------------------------------------------------------------------------
def pbEndBattle(result)
@abortable=false
pbShowWindow(BLANK)
# Fade out all sprites
$game_system.bgm_fade(1.0)
pbFadeOutAndHide [MENTION=24071]Sprite[/MENTION]s)
[MENTION=24071]Sprite[/MENTION]skin.dispose
pbDisposeSprites
#Pokemon Following Character
$PokemonTemp.dependentEvents.check_faint
end
#----------------------------------------------------------------------------
# Cambia el sprite cuando cambias la posición del equipo.
#----------------------------------------------------------------------------
class PokemonScreen
def pbPokemonScreen
@scene.pbStartScene(@party,_INTL(""),false,nil)
loop do
@scene.pbSetHelpText(_INTL(""))
pkmnid=@scene.pbChoosePokemon
if pkmnid<0
break
end
pkmn=@party[pkmnid]
commands=[]
cmdSummary=-1
cmdSwitch=-1
cmdItem=-1
cmdDebug=-1
cmdMail=-1
# Build the commands
commands[cmdSummary=commands.length]=_INTL("SUMMARY")
if $DEBUG
# Commands for debug mode only
commands[cmdDebug=commands.length]=_INTL("DEBUG")
end
cmdMoves=[-1,-1,-1,-1]
for i in 0...pkmn.moves.length
move=pkmn.moves
# Check for hidden moves and add any that were found
if !pkmn.egg? && (move.id==PBMoves::FLY||
move.id==PBMoves::CUT||
move.id==PBMoves::SURF||
move.id==PBMoves::STRENGTH||
move.id==PBMoves::FLASH||
move.id==PBMoves::ROCKSMASH||
move.id==PBMoves::WATERFALL||
move.id==PBMoves::TELEPORT||
move.id==PBMoves::HEADBUTT||
move.id==PBMoves::DIVE||
move.id==PBMoves::DIG||
move.id==PBMoves::MILKDRINK||
move.id==PBMoves::SOFTBOILED||
move.id==PBMoves::SWEETSCENT||
HiddenMoveHandlers.hasHandler(move.id)
)
commands[cmdMoves=commands.length]=PBMoves.getName(move.id)
end
end
commands[cmdSwitch=commands.length]=_INTL("SWITCH") if @party.length>1
if !pkmn.egg?
if pkmn.mail
commands[cmdMail=commands.length]=_INTL("MAIL")
else
commands[cmdItem=commands.length]=_INTL("ITEM")
end
end
commands[commands.length]=_INTL("CANCEL")
command=@scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),commands)
havecommand=false
for i in 0...4
if cmdMoves>=0 && command==cmdMoves
havecommand=true
if pkmn.moves.id==PBMoves::SOFTBOILED||
pkmn.moves.id==PBMoves::MILKDRINK
if pkmn.hp<=pkmn.totalhp/5
pbDisplay(_INTL("Not enough HP..."))
break
end
@scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
oldpkmnid=pkmnid
loop do
@scene.pbPreSelect(oldpkmnid)
pkmnid=@scene.pbChoosePokemon(true)
break if pkmnid<0
newpkmn=@party[pkmnid]
if newpkmn.egg? || newpkmn.hp==0 || newpkmn.hp==newpkmn.totalhp || pkmnid==oldpkmnid
pbDisplay(_INTL("This item can't be used on that Pokémon."))
else
pkmn.hp-=pkmn.totalhp/5
hpgain=pbItemRestoreHP(newpkmn,pkmn.totalhp/5)
@scene.pbDisplay(_INTL("{1}'s HP was restored by {2} points.",newpkmn.name,hpgain))
pbRefresh
end
end
break
elsif Kernel.pbCanUseHiddenMove?(pkmn,pkmn.moves.id)
@scene.pbEndScene
if pkmn.moves.id==PBMoves::FLY
scene=PokemonRegionMapScene.new
screen=PokemonRegionMap.new(scene)
ret=screen.pbStartFlyScreen
if ret
return [pkmn,pkmn.moves.id,ret]
end
@scene.pbStartScene(@party,_INTL(""))
break
end
return [pkmn,pkmn.moves.id,nil]
else
break
end
end
end
next if havecommand
if cmdSummary>=0 && command==cmdSummary
@scene.pbSummary(pkmnid)
elsif cmdSwitch>=0 && command==cmdSwitch
@scene.pbSetHelpText(_INTL("Move to where?"))
oldpkmnid=pkmnid
pkmnid=@scene.pbChoosePokemon(true)
if pkmnid>=0 && pkmnid!=oldpkmnid
pbSwitch(oldpkmnid,pkmnid)
end
#Pokemon Following Character
$PokemonTemp.dependentEvents.refresh_sprite(true)
elsif cmdDebug>=0 && command==cmdDebug
command=@scene.pbShowCommands(_INTL("Do what with {1}?",pkmn.name),[
_INTL("SHOW VALUES"),
_INTL("CHEAT CODES"),
_INTL("SET LEVEL"),
_INTL("SET SPECIES"),
_INTL("SET NATURE"),
_INTL("SET GENDER"),
_INTL("DUPLICATE"),
_INTL("DELETE"),
_INTL("TEACH MOVE"),
_INTL("CANCEL")
])
case command
when 0
pbDisplay(_INTL("Individual Values (Sp.Def last):\r\n{1}, {2}, {3}, {4}, {5}, {6}",pkmn.iv[0],pkmn.iv[1],pkmn.iv[2],pkmn.iv[3],pkmn.iv[4],pkmn.iv[5]))
pbDisplay(_INTL("Effort Values (Sp.Def last):\r\n{1}, {2}, {3}, {4}, {5}, {6}",pkmn.ev[0],pkmn.ev[1],pkmn.ev[2],pkmn.ev[3],pkmn.ev[4],pkmn.ev[5]))
persid=sprintf("0x%08X",pkmn.personalID)
pbDisplay(_INTL("Personal ID: {1}\r\nHappiness: {2}",persid,pkmn.happiness))
when 1 # Cheat Codes
pkmn.genCodes("codes.txt")
pbDisplay(_INTL("Codes for this Pokémon were saved in codes.txt."))
when 2 # Set Level
level=Kernel.pbMessageChooseNumberEx(
_INTL("Set the Pokémon's level."),pkmn.level,1,PBExperience::MAXLEVEL,pkmn.level)
if level!=pkmn.level
pkmn.level=level
pkmn.calcStats
pbDisplay(_INTL("{1}'s level was set to {2}.",pkmn.name,pkmn.level))
pbRefreshSingle(pkmnid)
end
when 3 # Change Species
species=pbChooseSpecies(pkmn.species)
if species!=0
oldspeciesname=PBSpecies.getName(pkmn.species)
pkmn.species=species
pkmn.calcStats
oldname=pkmn.name
pkmn.name=PBSpecies.getName(pkmn.species) if pkmn.name==oldspeciesname
pbDisplay(_INTL("{1}'s species was changed to {2}.",oldname,PBSpecies.getName(pkmn.species)))
pbRefreshSingle(pkmnid)
end
when 4 # Set Nature
commands=[]
25.times do |i|
commands.push(PBNatures.getName(i))
end
command=@scene.pbShowCommands(_INTL("Choose a nature."),commands)
if command>=0
oldgender=pkmn.gender
2000.times do
pkmn.personalID&=0xFFFF0000
pkmn.personalID|=rand(65536)
pkmn.personalID-=pkmn.personalID%25
pkmn.personalID+=command
break if pkmn.gender==oldgender
end
pkmn.calcStats
if pkmn.nature!=command
pbDisplay(_INTL("The Pokémon's nature couldn't be changed."))
else
pbDisplay(_INTL("The Pokémon's nature was changed."))
pbRefreshSingle(pkmnid)
end
end
when 5 # Set Gender
if pkmn.gender==2
pbDisplay(_INTL("This Pokémon's gender can't be set."))
elsif pkmn.gender==0
if pbConfirm(_INTL("Make this Pokémon female?"))
oldnature=pkmn.nature
2000.times do
pkmn.setGender(true)
break if pkmn.nature==oldnature
end
if pkmn.gender==0
pbDisplay(_INTL("The Pokémon's gender couldn't be changed."))
else
pbDisplay(_INTL("The Pokémon's gender was changed."))
pbRefreshSingle(pkmnid)
end
end
elsif pkmn.gender==1
if pbConfirm(_INTL("Make this Pokémon male?"))
oldnature=pkmn.nature
2000.times do
pkmn.setGender(false)
break if pkmn.nature==oldnature
end
if pkmn.gender==1
pbDisplay(_INTL("The Pokémon's gender couldn't be changed."))
else
pbDisplay(_INTL("The Pokémon's gender was changed."))
pbRefreshSingle(pkmnid)
end
end
end
when 6 # Duplicate
clonedpkmn=pkmn.clone
clonedpkmn.iv=pkmn.iv.clone
clonedpkmn.ev=pkmn.ev.clone
pbStorePokemon(clonedpkmn)
@scene.pbHardRefresh
when 7 # Delete
if pbConfirm(_INTL("Are you sure you want to delete this Pokémon?"))
@party[pkmnid]=nil
@party.compact!
pbDisplay(_INTL("The Pokémon was deleted."))
@scene.pbHardRefresh
end
when 8
move=pbChooseMoveList
if move!=0
pbLearnMove(pkmn,move)
pbRefreshSingle(pkmnid)
end
end
elsif cmdMail>=0 && command==cmdMail
command=@scene.pbShowCommands(_INTL("Do what with the mail?"),[_INTL("READ"),_INTL("TAKE"),_INTL("CANCEL")])
case command
when 0 # Read
pbFadeOutIn(99999){
pbDisplayMail(pkmn.mail,pkmn)
}
when 1 # Take
pbTakeMail(pkmn)
pbRefreshSingle(pkmnid)
end
elsif cmdItem>=0 && command==cmdItem
command=@scene.pbShowCommands(_INTL("Do what with an item?"),[_INTL("GIVE"),_INTL("TAKE"),_INTL("CANCEL")])
case command
when 0 # Give
item=@scene.pbChooseItem($PokemonBag)
if item>0
pbGiveMail(item,pkmn)
pbRefreshSingle(pkmnid)
end
when 1 # Take
pbTakeMail(pkmn)
pbRefreshSingle(pkmnid)
end
end
end
@scene.pbEndScene
return nil
end
end
#----------------------------------------------------------------------------
# Cambia el sprite cuando usas el PC.
#----------------------------------------------------------------------------
def pbPokeCenterPC
Kernel.pbMessage(_INTL("\\se[computeropen]{1} booted up the PC.",$Trainer.name))
loop do
commands=PokemonPCList.getCommandList()
command=Kernel.pbMessage(_INTL("Which PC should be accessed?"),
commands,commands.length)
if !PokemonPCList.callCommand(command)
break
end
end
pbSEPlay("computerclose")
$PokemonTemp.dependentEvents.refresh_sprite(true)
end
#----------------------------------------------------------------------------
# Cambia el sprite cuando evoluciona el Pokémon.
#----------------------------------------------------------------------------
class PokemonEvolutionScene
def pbEvolution(cancancel=true)
metaplayer1=SpriteMetafilePlayer.new(@metafile1 [MENTION=24071]Sprite[/MENTION]s["rsprite1"])
metaplayer2=SpriteMetafilePlayer.new(@metafile2 [MENTION=24071]Sprite[/MENTION]s["rsprite2"])
metaplayer1.play
metaplayer2.play
$game_system.bgm_stop
sefile=sprintf("Audio/SE/%03dCry.wav" [MENTION=12671]pokemon[/MENTION].species)
Audio.se_play(sefile)
Kernel.pbDisplayMessage(_INTL("What?\r\n{1} is evolving!" [MENTION=12671]pokemon[/MENTION].name))
Audio.se_play(pbGetDecisionSE)
oldstate=pbSaveSpriteState [MENTION=24071]Sprite[/MENTION]s["rsprite1"])
oldstate2=pbSaveSpriteState [MENTION=24071]Sprite[/MENTION]s["rsprite2"])
$game_system.bgm_play("evolv.mid")
canceled=false
begin
metaplayer1.update
metaplayer2.update
Graphics.update
Input.update
if Input.trigger?(Input::B) && cancancel
canceled=true
pbRestoreSpriteState [MENTION=24071]Sprite[/MENTION]s["rsprite1"],oldstate)
pbRestoreSpriteState [MENTION=24071]Sprite[/MENTION]s["rsprite2"],oldstate2)
Graphics.update
break
end
end while metaplayer1.playing? && metaplayer2.playing?
if canceled
$game_system.bgm_stop
Audio.se_play(pbGetDecisionSE)
Kernel.pbDisplayMessageFancy(_INTL("Huh?\r\n{1} stopped evolving!" [MENTION=12671]pokemon[/MENTION].name))
else
sefile=sprintf("Audio/SE/%03dCry.wav",@newspecies)
playtime=[0,getPlayTime(sefile)].max
frames=(playtime*Graphics.frame_rate).ceil
$game_system.bgm_stop
Audio.se_play(sefile)
frames.times do
Graphics.update
end
$game_system.me_play("004-Victory04")
newspeciesname=PBSpecies.getName(@newspecies)
oldspeciesname=PBSpecies.getName [MENTION=12671]pokemon[/MENTION].species)
Kernel.pbDisplayMessage(_INTL("Congratulations! Your {1} evolved into {2}!" [MENTION=12671]pokemon[/MENTION].name,newspeciesname))
[MENTION=24071]Sprite[/MENTION]s["msgwindow"].text=""
removeItem=false
createSpecies=pbCheckEvolutionEx [MENTION=12671]pokemon[/MENTION]){|pokemon,evonib,level,poke|
if evonib==14 # Shedinja
next poke
elsif evonib==6 || evonib==18 || evonib==19 # Evolves if traded with item/holding item
if poke==@newspecies
removeItem=true # Item is now consumed
end
next -1
else
next -1
end
}
[MENTION=12671]pokemon[/MENTION].item=0 if removeItem
[MENTION=12671]pokemon[/MENTION].species=@newspecies
$Trainer.seen[@newspecies]=true
$Trainer.owned[@newspecies]=true
[MENTION=12671]pokemon[/MENTION].name=newspeciesname if [MENTION=12671]pokemon[/MENTION].name==oldspeciesname
[MENTION=12671]pokemon[/MENTION].calcStats
# Check moves for new species
atkdata=pbRgssOpen("Data/attacksRS.dat","rb")
offset=atkdata.getOffset [MENTION=12671]pokemon[/MENTION].species-1)
length=atkdata.getLength [MENTION=12671]pokemon[/MENTION].species-1)>>1
atkdata.pos=offset
for k in 0..length-1
level=atkdata.fgetw
move=atkdata.fgetw
if level= [MENTION=12671]pokemon[/MENTION].level
# Learned a new move
pbLearnMove [MENTION=12671]pokemon[/MENTION],move,true)
end
end
if createSpecies>0 && $Trainer.party.length<6
newpokemon [MENTION=12671]pokemon[/MENTION].clone
newpokemon.iv [MENTION=12671]pokemon[/MENTION].iv.clone
newpokemon.ev [MENTION=12671]pokemon[/MENTION].ev.clone
newpokemon.species=createSpecies
newpokemon.name=PBSpecies.getName(createSpecies)
newpokemon.calcStats
$Trainer.party.push(newpokemon)
$Trainer.seen[createSpecies]=true
$Trainer.owned[createSpecies]=true
end
atkdata.close
#Pokemon Following Character
$PokemonTemp.dependentEvents.refresh_sprite(true)
end
end
end
#----------------------------------------------------------------------------
# Chequea si vas a surfear y guarda el Pokémon en la Ball.
#----------------------------------------------------------------------------
def Kernel.pbSurf
if $DEBUG || $Trainer.badges
movefinder=Kernel.pbCheckMove(PBMoves::SURF)
if $DEBUG || movefinder
if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue... Would you like to surf?"))
speciesname=!movefinder ? PBSpecies.getName(0) : movefinder.name
Kernel.pbMessage(_INTL("{1} used Surf!",speciesname))
pbHiddenMoveAnimation(movefinder)
surfbgm=pbGetMetadata(0,MetadataSurfBGM)
#Pokemon Following Character
$PokemonTemp.dependentEvents.check_surf
if surfbgm
pbCueBGM(surfbgm,0.5)
end
Kernel.pbCancelVehicles
$PokemonGlobal.surfing=true
$PokemonEncounters.clearStepCount
Kernel.pbJumpToward
Kernel.pbUpdateVehicle
$game_player.check_event_trigger_here([1,2])
return true
end
end
end
return false
end
#----------------------------------------------------------------------------
# Vuelve a mostrar el sprite al dejar de surfear.
#----------------------------------------------------------------------------
def pbEndSurf(xOffset,yOffset)
return false if !$PokemonGlobal.surfing
x=$game_player.x
y=$game_player.y
currentTag=$game_map.terrain_tag(x,y)
facingTag=Kernel.pbFacingTerrainTag
if pbIsWaterTag?(currentTag)&&!pbIsWaterTag?(facingTag)
if Kernel.pbJumpToward
Kernel.pbCancelVehicles
$game_map.autoplayAsCue
increase_steps
result=$game_player.check_event_trigger_here([1,2])
Kernel.pbOnStepTaken(result)
#Pokemon Following Character
$PokemonTemp.dependentEvents.refresh_sprite
end
return true
end
return false
end
#----------------------------------------------------------------------------
# Fixea la MO de Golpe Roca.
#----------------------------------------------------------------------------
def Kernel.pbCanUseHiddenMove?(pkmn,move)
case move
when PBMoves::FLY
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
#if $game_player.pbHasDependentEvents?
# Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
# return false
#end
if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::CUT
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="Tree"
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::HEADBUTT
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="HeadbuttTree"
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::SURF
terrain=Kernel.pbFacingTerrainTag
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
if $PokemonGlobal.surfing
Kernel.pbMessage(_INTL("You're already surfing."))
return false
end
#if $game_player.pbHasDependentEvents?
# Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
# return false
#end
terrain=Kernel.pbFacingTerrainTag
if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
Kernel.pbMessage(_INTL("Let's enjoy cycling!"))
return false
end
if !pbIsWaterTag?(terrain)
Kernel.pbMessage(_INTL("No surfing here!"))
return false
end
return true
when PBMoves::STRENGTH
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="Boulder"
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::ROCKSMASH
terrain=Kernel.pbFacingTerrainTag
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="Rock"
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::FLASH
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
if $PokemonGlobal.flashUsed
Kernel.pbMessage(_INTL("This is in use already."))
return false
end
return true
when PBMoves::WATERFALL
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
terrain=Kernel.pbFacingTerrainTag
if terrain!=PBTerrain::Waterfall
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::DIVE
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Sorry, a new Badge is required."))
return false
end
if $PokemonGlobal.diving
return true
end
if $game_player.terrain_tag!=PBTerrain::DeepWater
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
when PBMoves::TELEPORT
if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
#if $game_player.pbHasDependentEvents?
# Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
# return false
#end
healing=$PokemonGlobal.healingSpot
if !healing
healing=pbGetMetadata(0,MetadataHome) # Home
end
if healing
mapname=pbGetMapNameFromId(healing[0])
if Kernel.pbConfirmMessage(_INTL("Want to return to the healing spot used last in {1}?",mapname))
return true
end
return false
else
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
when PBMoves::DIG
escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
if !escape
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
if $game_player.pbHasDependentEvents?
Kernel.pbMessage(_INTL("You can't use that if you have someone with you."))
return false
end
mapname=pbGetMapNameFromId(escape[0])
if Kernel.pbConfirmMessage(_INTL("Want to escape from here and return to {1}?",mapname))
return true
end
return false
when PBMoves::SWEETSCENT
return true
else
return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
end
return false
end
class Scene_Map
alias rafaupdatefollow updateMaps
def updateMaps
rafaupdatefollow
if $Trainer
$PokemonTemp.dependentEvents.refresh_sprite if $Trainer.party.length>0
end
end
end
def pbBikeCheck
if $PokemonGlobal.surfing || pbGetTerrainTag()==PBTerrain::TallGrass
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
if $game_player.pbHasDependentEvents?
pbRemoveFollowingPokemon
return true
end
if $PokemonGlobal.bicycle
if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
Kernel.pbMessage(_INTL("You can't dismount your Bike here."))
return false
end
return true
else
val=pbGetMetadata($game_map.map_id,MetadataBicycle)
val=pbGetMetadata($game_map.map_id,MetadataOutdoor) if val==nil
if !val
Kernel.pbMessage(_INTL("Can't use that here."))
return false
end
return true
end
end
def Kernel.pbDismountBike
return if !$PokemonGlobal.bicycle
$PokemonGlobal.bicycle=false
Kernel.pbUpdateVehicle
$game_map.autoplayAsCue
$PokemonTemp.dependentEvents.change_following_pokemon
$PokemonTemp.dependentEvents.refresh_sprite
end
No uses ese, te dará muchos errores si es que consigues hacerlo funcionar.
Usa el siguiente:
# Código Original por Help-14
#Rediseñado por Eduardobra
Default_Following_Pokemon_Number = 0
Common_Event = 3
Current_Following_Variable = 26
Walking_Time_Variable = 27
Happier_After = 60
Animation_Come_Out = 45
Animation_Come_In = 46
Emo_Happy = 47
Emo_Normal = 48
Emo_Hate = 49
Water_Pokemon_Can_Surf = true
def FollowingMoveRoute(commands,waitComplete=false)
$PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete)
end
class DependentEvents
def change_following_pokemon
if $game_variables[Current_Following_Variable]+1==$Trainer.party.length+1
$game_variables[Current_Following_Variable]=0
else
$game_variables[Current_Following_Variable]+=1
end
if $game_variables[Current_Following_Variable]==$Trainer.party.length
remove_sprite(true)
else
if $Trainer.party[$game_variables[Current_Following_Variable]].isShiny?
shiny=true
else
shiny=false
end
change_sprite($Trainer.party[$game_variables[Current_Following_Variable]].species, shiny, true)
end
end
def refresh_sprite(menu=nil)
if $Trainer.party.length!=$game_variables[Current_Following_Variable]
if $Trainer.party.length-1<$game_variables[Current_Following_Variable]
$game_variables[Current_Following_Variable]=0
end
if $Trainer.party[$game_variables[Current_Following_Variable]].isShiny?
shiny=true
else
shiny=false
end
change_sprite($Trainer.party[$game_variables[Current_Following_Variable]].species, shiny, false)
end
end
def change_sprite(id, shiny=nil, animation=nil)
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Dependent"
if shiny==true
events[6]=sprintf("%03ds",id)
@realEvents.character_name=sprintf("%03ds",id)
else
events[6]=sprintf("%03d",id)
@realEvents.character_name=sprintf("%03d",id)
end
if animation==true
$scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents.x,@realEvents.y)
end
$game_variables[Walking_Time_Variable]=0
end
end
end
def remove_sprite(animation=nil)
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Dependent"
events[6]=sprintf("nil")
@realEvents.character_name=sprintf("nil")
if animation==true
$scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents.x,@realEvents.y)
end
$game_variables[Current_Following_Variable]=$Trainer.party.length
$game_variables[Walking_Time_Variable]=0
end
end
end
def check_surf(animation=nil)
if Water_Pokemon_Can_Surf == true and $game_variables[Current_Following_Variable]!=$Trainer.party.length
if $Trainer.party[$game_variables[Current_Following_Variable]].type1!="WATER" or
$Trainer.party[$game_variables[Current_Following_Variable]].type2!="WATER"
remove_sprite(false)
end
else
remove_sprite(false)
end
end
def check_faint
if $Trainer.party[$game_variables[Current_Following_Variable]].hp<=0
for i in 0..$Trainer.party.length-1
if $Trainer.party.hp>0
found=true
$game_variables[Current_Following_Variable]=i
refresh_sprite(true)
break
end
end
if !found
remove_sprite
end
end
end
def talk_pokemon
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Dependent"
pos_x=@realEvents.x
pos_y=@realEvents.y
end
end
pbPlayCry($Trainer.party[$game_variables[Current_Following_Variable]].species)
if $game_variables[Current_Following_Variable]!=6
if $Trainer.party[$game_variables[Current_Following_Variable]].happiness>0 &&
$Trainer.party[$game_variables[Current_Following_Variable]].happiness<=50
$scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y)
Kernel.pbMessage(_INTL("{1} odia estar con {2}.",$Trainer.party[$game_variables[Current_Following_Variable]].name,$Trainer.name))
elsif $Trainer.party[$game_variables[Current_Following_Variable]].happiness>50 &&
$Trainer.party[$game_variables[Current_Following_Variable]].happiness<=150
$scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y)
Kernel.pbMessage(_INTL("{1} no está feliz de estar junto a {2}.",$Trainer.party[$game_variables[Current_Following_Variable]].name,$Trainer.name))
else
$scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y)
Kernel.pbMessage(_INTL("{1} está feliz de estar junto a {2}.",$Trainer.party[$game_variables[Current_Following_Variable]].name,$Trainer.name))
end
end
end
def SetMoveRoute(commands,waitComplete=false)
events=$PokemonGlobal.dependentEvents
for i in 0...events.length
if events && events[8]=="Dependent"
pbMoveRoute(@realEvents,commands,waitComplete)
end
end
end
def add_following_time
if $game_variables[2]==true
$game_variables[Walking_Time_Variable]+=1 if $game_variables[Walking_Time_Variable]!=$Trainer.party.length
if $game_variables[Walking_Time_Variable]==Happier_After*Graphics.frame_rate
$Trainer.party[$game_variables[Current_Following_Variable]].happiness+=1
$game_variables[Walking_Time_Variable]=0
end
end
end
end
def pbEndBattle(result)
@abortable=false
pbShowWindow(BLANK)
$game_system.bgm_fade(1.0)
pbFadeOutAndHide [MENTION=24071]Sprite[/MENTION]s)
[MENTION=24071]Sprite[/MENTION]skin.dispose
pbDisposeSprites
$PokemonTemp.dependentEvents.check_faint
end
def Kernel.pbSurf
if $DEBUG || $Trainer.badges
movefinder=Kernel.pbCheckMove(PBMoves::SURF)
if $DEBUG || movefinder
if Kernel.pbConfirmMessage(_INTL("El agua luce muy bien... ¿Quieres usar surf?"))
speciesname=!movefinder ? PBSpecies.getName(0) : movefinder.name
Kernel.pbMessage(_INTL("{1} utilizó Surf!",speciesname))
pbHiddenMoveAnimation(movefinder)
surfbgm=pbGetMetadata(0,MetadataSurfBGM)
$PokemonTemp.dependentEvents.check_surf
if surfbgm
pbCueBGM(surfbgm,0.5)
end
Kernel.pbCancelVehicles
$PokemonGlobal.surfing=true
$PokemonEncounters.clearStepCount
Kernel.pbJumpToward
Kernel.pbUpdateVehicle
$game_player.check_event_trigger_here([1,2])
return true
end
end
end
return false
end
def pbEndSurf(xOffset,yOffset)
return false if !$PokemonGlobal.surfing
x=$game_player.x
y=$game_player.y
currentTag=$game_map.terrain_tag(x,y)
facingTag=Kernel.pbFacingTerrainTag
if pbIsWaterTag?(currentTag)&&!pbIsWaterTag?(facingTag)
if Kernel.pbJumpToward
Kernel.pbCancelVehicles
$game_map.autoplayAsCue
increase_steps
result=$game_player.check_event_trigger_here([1,2])
Kernel.pbOnStepTaken(result)
$PokemonTemp.dependentEvents.refresh_sprite
end
return true
end
return false
end
def Kernel.pbCanUseHiddenMove?(pkmn,move)
case move
when PBMoves::FLY
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
Kernel.pbMessage(_INTL("Aqui no funciona."))
return false
end
return true
when PBMoves::CUT
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="Tree"
Kernel.pbMessage(_INTL("No puedes utilizarlo aqui."))
return false
end
return true
when PBMoves::HEADBUTT
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="HeadbuttTree"
Kernel.pbMessage(_INTL("Aqui no puede usarse."))
return false
end
return true
when PBMoves::SURF
terrain=Kernel.pbFacingTerrainTag
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
if $PokemonGlobal.surfing
Kernel.pbMessage(_INTL("Ya estás surfeando."))
return false
end
terrain=Kernel.pbFacingTerrainTag
if pbGetMetadata($game_map.map_id,MetadataBicycleAlways)
Kernel.pbMessage(_INTL("Disfruta el paseo!"))
return false
end
if !pbIsWaterTag?(terrain)
Kernel.pbMessage(_INTL("Aqui no puedes surfear!"))
return false
end
return true
when PBMoves::STRENGTH
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="Boulder"
Kernel.pbMessage(_INTL("No puede usarse aqui."))
return false
end
return true
when PBMoves::ROCKSMASH
terrain=Kernel.pbFacingTerrainTag
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
facingEvent=$game_player.pbFacingEvent
if !facingEvent || facingEvent.name!="Rock"
Kernel.pbMessage(_INTL("No puede usarse aqui."))
return false
end
return true
when PBMoves::FLASH
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
if !pbGetMetadata($game_map.map_id,MetadataDarkMap)
Kernel.pbMessage(_INTL("Aqui no funciona."))
return false
end
if $PokemonGlobal.flashUsed
Kernel.pbMessage(_INTL("Ya está en uso."))
return false
end
return true
when PBMoves::WATERFALL
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
terrain=Kernel.pbFacingTerrainTag
if terrain!=PBTerrain::Waterfall
Kernel.pbMessage(_INTL("No puedes usarlo aqui."))
return false
end
return true
when PBMoves::DIVE
if !$DEBUG && !$Trainer.badges
Kernel.pbMessage(_INTL("Necesitas otra medalla."))
return false
end
if $PokemonGlobal.diving
return true
end
if $game_player.terrain_tag!=PBTerrain::DeepWater
Kernel.pbMessage(_INTL("No puedes usarlo aqui."))
return false
end
if !pbGetMetadata($game_map.map_id,MetadataDiveMap)
Kernel.pbMessage(_INTL("No puedes usarlo aqui."))
return false
end
return true
when PBMoves::TELEPORT
if !pbGetMetadata($game_map.map_id,MetadataOutdoor)
Kernel.pbMessage(_INTL("No puedes usarlo aqui."))
return false
end
healing=$PokemonGlobal.healingSpot
if !healing
healing=pbGetMetadata(0,MetadataHome)
end
if healing
mapname=pbGetMapNameFromId(healing[0])
if Kernel.pbConfirmMessage(_INTL("¿Quieres volver al ultimo punto de restauración {1}?",mapname))
return true
end
return false
else
Kernel.pbMessage(_INTL("No puedes usarlo aqui."))
return false
end
when PBMoves::DIG
escape=pbGetMetadata($game_map.map_id,MetadataEscapePoint)
if !escape
Kernel.pbMessage(_INTL("No puedes usarlo aqui."))
return false
end
if $game_player.pbHasDependentEvents?
Kernel.pbMessage(_INTL("No puedes usarlo cuando alguien te acompaña."))
return false
end
mapname=pbGetMapNameFromId(escape[0])
if Kernel.pbConfirmMessage(_INTL("¿Quieres escapar y volver a {1}?",mapname))
return true
end
return false
when PBMoves::SWEETSCENT
return true
else
return HiddenMoveHandlers.triggerCanUseMove(move,pkmn)
end
return false
end
Agrega el siguiente en la linea 3123 del script de almacenamiento pokémon:
$PokemonTemp.dependentEvents.refresh_sprite(true)
También agregalo en la linea 1986 dentro del script del Equipo Pokémon
Agrega esto en un evento de proceso paralelo en cada 1/4 de mapa.
$PokemonTemp.dependentEvents.refresh_sprite
Para agregar a tu pokémon, usa el siguiente código: