Go Back   The PokéCommunity Forums > Create & Discover > Game Development > Pokémon Essentials
Reload this Page Follow Script addition

Notices
For all updates, view the main page.

Pokémon Essentials All questions and discussion about Pokémon Essentials, the Pokémon game kit for RPG Maker XP, go in here. Also contains links to the latest downloads and the Essentials Wiki.



Reply
 
Thread Tools
  #51    
Old July 19th, 2012 (4:39 AM).
Rayd12smitty's Avatar
Rayd12smitty Rayd12smitty is offline
Shadow Maker
 
Join Date: Dec 2011
Gender: Male
Posts: 647

Quote originally posted by zingzags:
Nice for making this, but one thing. "X" is defined as the event which is going to follow the player, not for the number of pokemon you have.

Yea haha. I figured that out the hard way. I kept wondering why the pc in the test map kept turning into Pikachu... Haha. Do you know how to make more than one pokemon follow you? All I've managed to do is get multiples of my first pokemon

__________________
Reply With Quote

Relevant Advertising!

  #52    
Old July 19th, 2012 (5:40 AM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Quote originally posted by Rayd12smitty:
Yea haha. I figured that out the hard way. I kept wondering why the pc in the test map kept turning into Pikachu... Haha. Do you know how to make more than one pokemon follow you? All I've managed to do is get multiples of my first pokemon

It causes lag. So only on is able to follow. I figured out how to get B/W pokemon to follow as well. I need to complete the sprites in the game.

Reply With Quote
  #53    
Old July 19th, 2012 (7:11 AM).
zingzags's Avatar
zingzags zingzags is offline
PokemonGDX creator
 
Join Date: Jan 2009
Location: Boston
Age: 22
Nature: Adamant
Posts: 561

The script does not support alternate forms, I have to work on that when I have free time, also can u link Help -14's original to this one.

__________________
Check out the Pokemon Game Engine I am working on:
https://github.com/sjosegarcia/Pokemon
Reply With Quote
  #54    
Old July 19th, 2012 (8:40 AM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Quote originally posted by zingzags:
The script does not support alternate forms, I have to work on that when I have free time, also can u link Help -14's original to this one.

It's been noted that it does not. Venom12 is working on his Essentials DS to figure out how to make that happen. Here is the origonal thread for the follow script. http://www.pokecommunity.com/showthread.php?t=202478

Reply With Quote
  #55    
Old July 19th, 2012 (9:31 AM).
Rayd12smitty's Avatar
Rayd12smitty Rayd12smitty is offline
Shadow Maker
 
Join Date: Dec 2011
Gender: Male
Posts: 647

alright thanks. I thought i saw somewhere that you could. I tried just having multiple dependent events, and calling the script for each one of them, but that just made me walk around with three of my first pokemon. It isn't important though, I was just wondering. Thanks

__________________
Reply With Quote
  #56    
Old July 21st, 2012 (11:02 AM).
Nerameshu's Avatar
Nerameshu Nerameshu is offline
Regional Explorer
 
Join Date: Feb 2012
Age: 25
Gender: Male
Posts: 32

Hey guys, I'm just posting this hear because the error popped up after downloading and trying to playtest my game using the file presented here. I got this:

Spoiler:
---------------------------
Pokemon Essentials
---------------------------
Exception: RuntimeError

Message: Undefined species constant name: [MRMIME]

Name must consist only of letters, numbers, and

underscores and can't begin with a number.

Make sure the name is defined in

PBS/pokemon.txt.

File PBS/tm.txt, line 9

CLEFAIRY,CLEFABLE,NINETALES,PSYDUCK,GOLDUCK,ABRA,KADABRA,ALAKAZAM,SLOWPOKE,SLOWBRO,DROWZEE,HYPNO,EXEGGUTOR,STARMIE,MRMIME,JYNX,PORYGON,MEWTWO,MEW,CLEFFA,TOGEPI,TOGETIC,NATU,XATU,ESPEON,SLOWKING,GIRAFA...

Compiler:930:in `pbGetConst'

Compiler:949:in `parseSpecies'

Compiler:1556:in `pbCompileMachines'

Compiler:1553:in `each'

Compiler:1553:in `pbCompileMachines'

Compiler:1538:in `each_line'

Compiler:1538:in `pbCompileMachines'

Compiler:4053:in `pbCompileAllData'

Compiler:4174

What do I need to do? I'm not entirely sure I'm looking in the right spots.

__________________


Just got those eggs. Thought it'd be neat to play along. Help me see what they are.

Also, game in development. I'll give you a demo when I announce it... Some time when I'm close to done.
Reply With Quote
  #57    
Old July 21st, 2012 (2:49 PM).
Rayd12smitty's Avatar
Rayd12smitty Rayd12smitty is offline
Shadow Maker
 
Join Date: Dec 2011
Gender: Male
Posts: 647

This has nothing to do with the script. I think you have a problem with the Pokemon.txt. This doesn't belong here

__________________
Reply With Quote
  #58    
Old July 21st, 2012 (2:59 PM).
Nerameshu's Avatar
Nerameshu Nerameshu is offline
Regional Explorer
 
Join Date: Feb 2012
Age: 25
Gender: Male
Posts: 32

I only posted it because this error appeared after I tried playtesting using the kit with the script. If there's an error in the Pokemon.txt of the kit, it needs to be addressed.

__________________


Just got those eggs. Thought it'd be neat to play along. Help me see what they are.

Also, game in development. I'll give you a demo when I announce it... Some time when I'm close to done.
Reply With Quote
  #59    
Old July 21st, 2012 (3:58 PM).
Maruno's Avatar
Maruno Maruno is offline
Lead Dev of Pokémon Essentials
 
Join Date: Jan 2008
Location: England
Posts: 5,129

Quote originally posted by Nerameshu:
I only posted it because this error appeared after I tried playtesting using the kit with the script. If there's an error in the Pokemon.txt of the kit, it needs to be addressed.
Your error is that you're using a way-old version of pokemon.txt, in which the internal name of Mr. Mime is given as MR_MIME rather than MRMIME. Use a newer version of pokemon.txt, or remove the underscore.

__________________
Reply With Quote
  #60    
Old July 21st, 2012 (7:29 PM). Edited July 22nd, 2012 by shadowriver.
shadowriver shadowriver is offline
 
Join Date: Sep 2007
Gender:
Posts: 49

that was the version of the pokemon.txt that came with p-signs ultimate b/w kit, cause what happened is I had 2 versions the newer pokemon.txt had 0 for all the base exp and wasn’t generating xp so i swapped it for the older version but forgot to replace all the others .txt as well what i did was edit the name in the tm.txt and shadowmove.txt to mr_mime but i guess marunos way was easier lol.

#EDIT i have fixed the error and reuploaded
any other errors or non pokemon follow script related questions can be directed to my pm if it helps.

__________________
V8 Essentials with Ultimate BW Pack and pokemon follow ready to go.
(I had nothing to do with its creation just put it together for genarl use) http://www.mediafire.com/?rtrco39udskdb81
Credits go to
p-Sign
Clowcardruler
Maruno
Venom12
FL .
Help-14
zingzag
rick1234
Reply With Quote
  #61    
Old July 27th, 2012 (2:16 PM).
korjamer's Avatar
korjamer korjamer is offline
Pixel Artist
 
Join Date: Apr 2011
Gender: Male
Nature: Relaxed
Posts: 19

Every once in a while I get this error after talking to the following Pokemon.
It's doesn't happen enough to make the script unplayable but it sure is annoying.
Any ideas on how to fix it?

By the way, bravo for getting this awesome script to work this is pretty much the only error I found. I even Fixed the sprite not updating after the first pokemon in your party evolved. But that was an easy fix.

---------------------------
Pokemon Essentials
---------------------------
Exception: NoMethodError

Message: undefined method `unlock' for nil:NilClass

Interpreter:512:in `command_end'

Interpreter:295:in `execute_command'

Interpreter:193:in `update'

Interpreter:106:in `loop'

Interpreter:198:in `update'

Scene_Map:103:in `update'

Scene_Map:101:in `loop'

Scene_Map:114:in `update'

Scene_Map:68:in `main'

Scene_Map:65:in `loop'

Reply With Quote
  #62    
Old July 27th, 2012 (7:21 PM).
shadowriver shadowriver is offline
 
Join Date: Sep 2007
Gender:
Posts: 49

Quote originally posted by korjamer:
Every once in a while I get this error after talking to the following Pokemon.
It's doesn't happen enough to make the script unplayable but it sure is annoying. :(
Any ideas on how to fix it?

By the way, bravo for getting this awesome script to work this is pretty much the only error I found. I even Fixed the sprite not updating after the first pokemon in your party evolved. But that was an easy fix.

---------------------------
Pokemon Essentials
---------------------------
Exception: NoMethodError

Message: undefined method `unlock' for nil:NilClass

Interpreter:512:in `command_end'

Interpreter:295:in `execute_command'

Interpreter:193:in `update'

Interpreter:106:in `loop'

Interpreter:198:in `update'

Scene_Map:103:in `update'

Scene_Map:101:in `loop'

Scene_Map:114:in `update'

Scene_Map:68:in `main'

Scene_Map:65:in `loop'

in Interperter line 512:

Code:
$game_map.events[@event_id].unlock

change to

Code:
#$game_map.events[@event_id].unlock

in witch script and line do you update to fix the evolution thing,

__________________
V8 Essentials with Ultimate BW Pack and pokemon follow ready to go.
(I had nothing to do with its creation just put it together for genarl use) http://www.mediafire.com/?rtrco39udskdb81
Credits go to
p-Sign
Clowcardruler
Maruno
Venom12
FL .
Help-14
zingzag
rick1234
Reply With Quote
  #63    
Old July 27th, 2012 (11:02 PM). Edited July 27th, 2012 by korjamer.
korjamer's Avatar
korjamer korjamer is offline
Pixel Artist
 
Join Date: Apr 2011
Gender: Male
Nature: Relaxed
Posts: 19

To update the sprite after an evolution,

In PokemonEvolution

Change this:
def pbEndScreen
Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
pbFadeOutAndHide(@sprites)
pbDisposeSpriteHash(@sprites)
@viewport.dispose
end

To this:
def pbEndScreen
Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
pbFadeOutAndHide(@sprites)
pbDisposeSpriteHash(@sprites)
@viewport.dispose
$PokemonTemp.dependentEvents.refresh_sprite
end

See? Told ya it was easy. :3
I'm not sure if this is the best way to do this, but it does the job.

Yay! I'm pretty sure the previous error I posted about is completely fixed now! Thank you! :D

Reply With Quote
  #64    
Old July 30th, 2012 (9:55 AM).
zingzags's Avatar
zingzags zingzags is offline
PokemonGDX creator
 
Join Date: Jan 2009
Location: Boston
Age: 22
Nature: Adamant
Posts: 561

Quote originally posted by korjamer:
To update the sprite after an evolution,

In PokemonEvolution

Change this:
def pbEndScreen
Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
pbFadeOutAndHide(@sprites)
pbDisposeSpriteHash(@sprites)
@viewport.dispose
end

To this:
def pbEndScreen
Kernel.pbDisposeMessageWindow(@sprites["msgwindow"])
pbFadeOutAndHide(@sprites)
pbDisposeSpriteHash(@sprites)
@viewport.dispose
$PokemonTemp.dependentEvents.refresh_sprite
end

See? Told ya it was easy. :3
I'm not sure if this is the best way to do this, but it does the job.

Yay! I'm pretty sure the previous error I posted about is completely fixed now! Thank you! :D

It is the way to do it, I forgot to list it in the guide lol.

__________________
Check out the Pokemon Game Engine I am working on:
https://github.com/sjosegarcia/Pokemon
Reply With Quote
  #65    
Old July 30th, 2012 (12:33 PM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Quote originally posted by zingzags:
It is the way to do it, I forgot to list it in the guide lol.

Well then. Lol :D Hey I still can't get B/W pokemon to follow maybe it's just to many for the script/RMXP maker to hold. I finished the sprites and what not but they don't show.

Reply With Quote
  #66    
Old July 30th, 2012 (8:36 PM).
shadowriver shadowriver is offline
 
Join Date: Sep 2007
Gender:
Posts: 49

Quote originally posted by Rick1234:
Well then. Lol :D Hey I still can't get B/W pokemon to follow maybe it's just to many for the script/RMXP maker to hold. I finished the sprites and what not but they don't show.

They all work for me including the shiny ones, how have you got them named in your graphics folder.if its 495 and 495s it should work.
also are you adding the b/w first or changing to them in the debug menu
if your going to them in the debug menu you need to refrsh the dependint event for them to show.

sorry if you already know this just trying to figger it out myself.

__________________
V8 Essentials with Ultimate BW Pack and pokemon follow ready to go.
(I had nothing to do with its creation just put it together for genarl use) http://www.mediafire.com/?rtrco39udskdb81
Credits go to
p-Sign
Clowcardruler
Maruno
Venom12
FL .
Help-14
zingzag
rick1234
Reply With Quote
  #67    
Old July 31st, 2012 (9:08 AM).
Rayd12smitty's Avatar
Rayd12smitty Rayd12smitty is offline
Shadow Maker
 
Join Date: Dec 2011
Gender: Male
Posts: 647

They all work for me as well. I don't know whats going on with yours

__________________
Reply With Quote
  #68    
Old July 31st, 2012 (12:41 PM). Edited July 31st, 2012 by zingzags.
zingzags's Avatar
zingzags zingzags is offline
PokemonGDX creator
 
Join Date: Jan 2009
Location: Boston
Age: 22
Nature: Adamant
Posts: 561

Well I got some free time on my hands I am going to see if I can get alternate forms to work.
@Rick, its because you are naming them wrong, which is the same thing that happened last time.
EDIT: seems like my trail mode has expired, and I do not really feel like spending money to buy the program, I guess I cant work on it for now.

EDIT AGAIN: NVM found the old 1.02a version of RPG MAKER XP, and just used a keygen.

Well I made alternate forms, but for now you cannot make a shiny alternate, just regular at the moment, I know how to fix it, but I will repost the fix later.
But for those who cannot wait here you go.

Code:
 def refresh_sprite
    if $Trainer.party.length!=$game_variables[Current_Following_Variable]
      if $Trainer.party[0].isShiny?
        shiny=true
      else
        shiny=false
      end
      if $Trainer.party[0].form>0
         altform=true
      else
         altform=false
      end
      if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
      change_sprite($Trainer.party[0].species, shiny, altform, false)
    elsif $Trainer.party[0].hp<=0
      remove_sprite
      end
     end
    end

#---------------------------------------------------------------------------- # - change_sprite(id, shiny, animation) # - Example, to change sprite to shiny lugia with animation: # change_sprite(249, true, true) # - If just change sprite: # change_sprite(249) #---------------------------------------------------------------------------- def change_sprite(id, shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" if shiny==true events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end if altform==true events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end if animation==true $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end $game_variables[Walking_Time_Variable]=0 end end

Here is the actual 100% fix

Code:
#==============================================================================
# ¡Ü Credits to Help - 14 for both the scripts and Sprites
# ¡Ü Edited by Zingzags
# -Fixed bugs
# -Clean ups
# -Fixed Surf Bug (After Surf is done)
# -Fixed def talk_to_pokemon while in surf
# -Fixed Surf Check
# -Fixed Type Check
# -Added Door Support
# -Fixed Hp Bug
# -Added Pokemon Center Support
# -Animation problems
# -Fixed Walk_time_variable problem
# -Added random item loot
# -Added egg check
# -Added Multiple Forms fix
#==============================================================================
# Zingzags comments
#==============================================================================
# Special thanks to Maruno, and Venom - 13, as they helped me a bit!
#
#==============================================================================

#============================================================================== # ¡Ü Control the following Pokemon #==============================================================================

def FollowingMoveRoute(commands,waitComplete=false) $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete) end

#============================================================================== # ¡Ü Pokemon Following Character v3 By Help-14 #==============================================================================

class DependentEvents #============================================================================== # Raises The Current Pokemon's Happiness levels +1 per each time the # Walk_time_Variable reachs 5000 then resets to 0 # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item #============================================================================== def add_following_time if $game_switches[2]==true && $Trainer.party.length>=1 $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length if $game_variables[Walking_Time_Variable]==5000 $Trainer.party[0].happiness+=1 $game_variables[Walking_Time_Variable]=0 if $game_variables[ItemWalk]==5 else $game_variables[ItemWalk]+=1 end end end end #---------------------------------------------------------------------------- # - refresh_sprite # - Change sprite without animation #----------------------------------------------------------------------------

def refresh_sprite if $Trainer.party.length!=$game_variables[Current_Following_Variable] if $Trainer.party[0].isShiny? shiny=true else shiny=false end if $Trainer.party[0].form>0 altform=true else altform=false end if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? change_sprite($Trainer.party[0].species, shiny, altform, false) elsif $Trainer.party[0].hp<=0 remove_sprite end end end

#---------------------------------------------------------------------------- # - change_sprite(id, shiny, animation) # - Example, to change sprite to shiny lugia with animation: # change_sprite(249, true, true) # - If just change sprite: # change_sprite(249) #---------------------------------------------------------------------------- def change_sprite(id, shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" if shiny==true && altform==false events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==false events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==true events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end end if animation==true $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end $game_variables[Walking_Time_Variable]=0 end end

#---------------------------------------------------------------------------- # - remove_sprite(animation) # - Example, to remove sprite with animation: # remove_sprite(true) # - If just remove sprite: # remove_sprite #----------------------------------------------------------------------------

def remove_sprite(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") if animation==true $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y) pbWait(10) end $game_variables[Current_Following_Variable]=$Trainer.party[0] $game_variables[Walking_Time_Variable]=0 end end end

#---------------------------------------------------------------------------- # - check_surf(animation) # - If current Pokemon is a water Pokemon, it is still following. # - If current Pokemon is not a water Pokemon, remove sprite. # - Require Water_Pokemon_Can_Surf = true to enable #---------------------------------------------------------------------------- def check_surf(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") else if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? if $Trainer.party[0].hasType?(:WATER) remove_sprite else remove_sprite pbWait(20) end elsif $Trainer.party[0].hp<=0 end end end end

#---------------------------------------------------------------------------- # - talk_to_pokemon # - It will run when you talk to Pokemon following #----------------------------------------------------------------------------

def talk_to_pokemon e=$Trainer.party[0] events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" [email protected][i].x [email protected][i].y end end if e==0 else if e.hp>0 && !$Trainer.party[0].egg? if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else if e!=6 pbPlayCry(e.species) random1=rand(5) if $game_variables[ItemWalk]==5 items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP, :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE, :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL, :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE, :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN, :BLKAPRICORN,:WHTAPRICORN ] random2=0 loop do random2=rand(items.length) break if hasConst?(PBItems,items[random2]) end

Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name)) Kernel.pbPokemonFound(getConst(PBItems,items[random2])) $game_variables[ItemWalk]=0 end

if random1==0 $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2) pbWait(50) Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) elsif e.happiness>0 && e.happiness<=50 $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2) pbWAit(70) Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name)) elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg? $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2) pbWait(120) Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name)) elsif e.happiness>50 && e.happiness<=100 $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2) pbWait(100) Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name)) elsif e.happiness>100 && e.happiness<150 $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2) Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name)) elsif e.happiness>=150 $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2) pbWait(70) Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name)) end

else

end end end end end

def Come_back(shiny=nil, animation=nil) events=$PokemonGlobal.dependentEvents if $game_variables[Current_Following_Variable]==$Trainer.party.length $game_variables[Current_Following_Variable] else $game_variables[Current_Following_Variable] end if $game_variables[Current_Following_Variable]==$Trainer.party.length remove_sprite(false) for i in 0...events.length $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end else if $Trainer.party[0].isShiny? shiny=true else shiny=false end change_sprite($Trainer.party[0].species, shiny, false) end for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg? $game_variables[Current_Following_Variable]=i refresh_sprite break end end for i in 0...events.length for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp<=0 id = $Trainer.party[i].species else id = $Trainer.party[i].species end end if events[i] && events[i][8]=="Dependent" if shiny==true events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end if animation==true else end end end end

#---------------------------------------------------------------------------- # - check_faint # - If current Pokemon is fainted, change other Pokemon. #----------------------------------------------------------------------------

def check_faint if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else

if $Trainer.party[0].hp<=0 $game_variables[Current_Following_Variable]=0 remove_sprite elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?

end end end

def SetMoveRoute(commands,waitComplete=false) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" pbMoveRoute(@realEvents[i],commands,waitComplete) end end end end

#---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf #----------------------------------------------------------------------------

def Kernel.pbSurf # if $game_player.pbHasDependentEvents? # return false # end if $DEBUG || (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF]) movefinder=Kernel.pbCheckMove(:SURF) if $DEBUG || movefinder if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue... Would you like to surf?")) speciesname=!movefinder ? $Trainer.name : movefinder.name Kernel.pbMessage(_INTL("{1} used Surf!",speciesname)) pbHiddenMoveAnimation(movefinder) # $PokemonTemp.dependentEvents.check_surf surfbgm=pbGetMetadata(0,MetadataSurfBGM) $PokemonTemp.dependentEvents.check_surf if surfbgm pbCueBGM(surfbgm,0.5) end pbStartSurfing() return true end end end return false end

#---------------------------------------------------------------------------- # - Auto add Script to pbEndSurf, It'll show sprite after surf #----------------------------------------------------------------------------

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 pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag) if Kernel.pbJumpToward Kernel.pbCancelVehicles $game_map.autoplayAsCue $game_player.increase_steps result=$game_player.check_event_trigger_here([1,2]) Kernel.pbOnStepTaken(result) $PokemonTemp.dependentEvents.Come_back(true) end return true end return false end #---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug #---------------------------------------------------------------------------- def Kernel.pbCanUseHiddenMove?(pkmn,move) case move when PBMoves::FLY if !$DEBUG && !$Trainer.badges[BADGEFORFLY] 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[BADGEFORCUT] 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[BADGEFORCUT] 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[BADGEFORSTRENGTH] 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[BADGEFORROCKSMASH] 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[BADGEFORFLASH] 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[BADGEFORWATERFALL] 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[BADGEFORDIVE] 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

def pbPokemonFollow(x) Kernel.pbAddDependency2(x, "Dependent", CommonEvent) $PokemonTemp.dependentEvents.refresh_sprite end

__________________
Check out the Pokemon Game Engine I am working on:
https://github.com/sjosegarcia/Pokemon
Reply With Quote
  #69    
Old July 31st, 2012 (5:19 PM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Quote originally posted by zingzags:
Well I got some free time on my hands I am going to see if I can get alternate forms to work.
@Rick, its because you are naming them wrong, which is the same thing that happened last time.
EDIT: seems like my trail mode has expired, and I do not really feel like spending money to buy the program, I guess I cant work on it for now.

EDIT AGAIN: NVM found the old 1.02a version of RPG MAKER XP, and just used a keygen.

Well I made alternate forms, but for now you cannot make a shiny alternate, just regular at the moment, I know how to fix it, but I will repost the fix later.
But for those who cannot wait here you go.

Code:
 def refresh_sprite
    if $Trainer.party.length!=$game_variables[Current_Following_Variable]
      if $Trainer.party[0].isShiny?
        shiny=true
      else
        shiny=false
      end
      if $Trainer.party[0].form>0
         altform=true
      else
         altform=false
      end
      if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?
      change_sprite($Trainer.party[0].species, shiny, altform, false)
    elsif $Trainer.party[0].hp<=0
      remove_sprite
      end
     end
    end

#---------------------------------------------------------------------------- # - change_sprite(id, shiny, animation) # - Example, to change sprite to shiny lugia with animation: # change_sprite(249, true, true) # - If just change sprite: # change_sprite(249) #---------------------------------------------------------------------------- def change_sprite(id, shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" if shiny==true events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end if altform==true events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end if animation==true $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end $game_variables[Walking_Time_Variable]=0 end end

Here is the actual 100% fix

Code:
#==============================================================================
# ¡Ü Credits to Help - 14 for both the scripts and Sprites
# ¡Ü Edited by Zingzags
# -Fixed bugs
# -Clean ups
# -Fixed Surf Bug (After Surf is done)
# -Fixed def talk_to_pokemon while in surf
# -Fixed Surf Check
# -Fixed Type Check
# -Added Door Support
# -Fixed Hp Bug
# -Added Pokemon Center Support
# -Animation problems
# -Fixed Walk_time_variable problem
# -Added random item loot
# -Added egg check
# -Added Multiple Forms fix
#==============================================================================
# Zingzags comments
#==============================================================================
# Special thanks to Maruno, and Venom - 13, as they helped me a bit!
#
#==============================================================================

#============================================================================== # ¡Ü Control the following Pokemon #==============================================================================

def FollowingMoveRoute(commands,waitComplete=false) $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete) end

#============================================================================== # ¡Ü Pokemon Following Character v3 By Help-14 #==============================================================================

class DependentEvents #============================================================================== # Raises The Current Pokemon's Happiness levels +1 per each time the # Walk_time_Variable reachs 5000 then resets to 0 # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item #============================================================================== def add_following_time if $game_switches[2]==true && $Trainer.party.length>=1 $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length if $game_variables[Walking_Time_Variable]==5000 $Trainer.party[0].happiness+=1 $game_variables[Walking_Time_Variable]=0 if $game_variables[ItemWalk]==5 else $game_variables[ItemWalk]+=1 end end end end #---------------------------------------------------------------------------- # - refresh_sprite # - Change sprite without animation #----------------------------------------------------------------------------

def refresh_sprite if $Trainer.party.length!=$game_variables[Current_Following_Variable] if $Trainer.party[0].isShiny? shiny=true else shiny=false end if $Trainer.party[0].form>0 altform=true else altform=false end if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? change_sprite($Trainer.party[0].species, shiny, altform, false) elsif $Trainer.party[0].hp<=0 remove_sprite end end end

#---------------------------------------------------------------------------- # - change_sprite(id, shiny, animation) # - Example, to change sprite to shiny lugia with animation: # change_sprite(249, true, true) # - If just change sprite: # change_sprite(249) #---------------------------------------------------------------------------- def change_sprite(id, shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" if shiny==true && altform==false events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==false events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==true events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end end if animation==true $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end $game_variables[Walking_Time_Variable]=0 end end

#---------------------------------------------------------------------------- # - remove_sprite(animation) # - Example, to remove sprite with animation: # remove_sprite(true) # - If just remove sprite: # remove_sprite #----------------------------------------------------------------------------

def remove_sprite(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") if animation==true $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y) pbWait(10) end $game_variables[Current_Following_Variable]=$Trainer.party[0] $game_variables[Walking_Time_Variable]=0 end end end

#---------------------------------------------------------------------------- # - check_surf(animation) # - If current Pokemon is a water Pokemon, it is still following. # - If current Pokemon is not a water Pokemon, remove sprite. # - Require Water_Pokemon_Can_Surf = true to enable #---------------------------------------------------------------------------- def check_surf(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") else if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? if $Trainer.party[0].hasType?(:WATER) remove_sprite else remove_sprite pbWait(20) end elsif $Trainer.party[0].hp<=0 end end end end

#---------------------------------------------------------------------------- # - talk_to_pokemon # - It will run when you talk to Pokemon following #----------------------------------------------------------------------------

def talk_to_pokemon e=$Trainer.party[0] events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" [email protected][i].x [email protected][i].y end end if e==0 else if e.hp>0 && !$Trainer.party[0].egg? if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else if e!=6 pbPlayCry(e.species) random1=rand(5) if $game_variables[ItemWalk]==5 items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP, :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE, :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL, :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE, :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN, :BLKAPRICORN,:WHTAPRICORN ] random2=0 loop do random2=rand(items.length) break if hasConst?(PBItems,items[random2]) end

Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name)) Kernel.pbPokemonFound(getConst(PBItems,items[random2])) $game_variables[ItemWalk]=0 end

if random1==0 $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2) pbWait(50) Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) elsif e.happiness>0 && e.happiness<=50 $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2) pbWAit(70) Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name)) elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg? $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2) pbWait(120) Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name)) elsif e.happiness>50 && e.happiness<=100 $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2) pbWait(100) Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name)) elsif e.happiness>100 && e.happiness<150 $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2) Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name)) elsif e.happiness>=150 $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2) pbWait(70) Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name)) end

else

end end end end end

def Come_back(shiny=nil, animation=nil) events=$PokemonGlobal.dependentEvents if $game_variables[Current_Following_Variable]==$Trainer.party.length $game_variables[Current_Following_Variable] else $game_variables[Current_Following_Variable] end if $game_variables[Current_Following_Variable]==$Trainer.party.length remove_sprite(false) for i in 0...events.length $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end else if $Trainer.party[0].isShiny? shiny=true else shiny=false end change_sprite($Trainer.party[0].species, shiny, false) end for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg? $game_variables[Current_Following_Variable]=i refresh_sprite break end end for i in 0...events.length for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp<=0 id = $Trainer.party[i].species else id = $Trainer.party[i].species end end if events[i] && events[i][8]=="Dependent" if shiny==true events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end if animation==true else end end end end

#---------------------------------------------------------------------------- # - check_faint # - If current Pokemon is fainted, change other Pokemon. #----------------------------------------------------------------------------

def check_faint if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else

if $Trainer.party[0].hp<=0 $game_variables[Current_Following_Variable]=0 remove_sprite elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?

end end end

def SetMoveRoute(commands,waitComplete=false) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" pbMoveRoute(@realEvents[i],commands,waitComplete) end end end end

#---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf #----------------------------------------------------------------------------

def Kernel.pbSurf # if $game_player.pbHasDependentEvents? # return false # end if $DEBUG || (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF]) movefinder=Kernel.pbCheckMove(:SURF) if $DEBUG || movefinder if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue... Would you like to surf?")) speciesname=!movefinder ? $Trainer.name : movefinder.name Kernel.pbMessage(_INTL("{1} used Surf!",speciesname)) pbHiddenMoveAnimation(movefinder) # $PokemonTemp.dependentEvents.check_surf surfbgm=pbGetMetadata(0,MetadataSurfBGM) $PokemonTemp.dependentEvents.check_surf if surfbgm pbCueBGM(surfbgm,0.5) end pbStartSurfing() return true end end end return false end

#---------------------------------------------------------------------------- # - Auto add Script to pbEndSurf, It'll show sprite after surf #----------------------------------------------------------------------------

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 pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag) if Kernel.pbJumpToward Kernel.pbCancelVehicles $game_map.autoplayAsCue $game_player.increase_steps result=$game_player.check_event_trigger_here([1,2]) Kernel.pbOnStepTaken(result) $PokemonTemp.dependentEvents.Come_back(true) end return true end return false end #---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug #---------------------------------------------------------------------------- def Kernel.pbCanUseHiddenMove?(pkmn,move) case move when PBMoves::FLY if !$DEBUG && !$Trainer.badges[BADGEFORFLY] 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[BADGEFORCUT] 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[BADGEFORCUT] 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[BADGEFORSTRENGTH] 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[BADGEFORROCKSMASH] 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[BADGEFORFLASH] 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[BADGEFORWATERFALL] 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[BADGEFORDIVE] 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

def pbPokemonFollow(x) Kernel.pbAddDependency2(x, "Dependent", CommonEvent) $PokemonTemp.dependentEvents.refresh_sprite end

They are not named wrong now. I named them like the number of the pokemon and it's shiny form. Such as 493 and 493s those should be named correctly. That or it's the file I am using o3o

Reply With Quote
  #70    
Old July 31st, 2012 (5:29 PM). Edited July 31st, 2012 by zingzags.
zingzags's Avatar
zingzags zingzags is offline
PokemonGDX creator
 
Join Date: Jan 2009
Location: Boston
Age: 22
Nature: Adamant
Posts: 561

Quote originally posted by Rick1234:
They are not named wrong now. I named them like the number of the pokemon and it's shiny form. Such as 493 and 493s those should be named correctly. That or it's the file I am using o3o

Then I hope this explanation helps.

You see this here:

Code:
events[i][6]=sprintf("%03d",id)
%03d is what I define 3 digit numbers, so numbers that are under 3 digits like
25 (Pikachu) would be, 025 which is how the images are named in battlers. But I remember when you sent me your project I had to change the script to make it easier for both me and you, so we wouldn't have to rename 400+ pokemon.

What I did to your script was I made it to %03d_0 because your pokemon overworlds in your folder were 001_0, 002_0... 493_0. the _0 in the script I edited for you was what made the pokemon overworlds show.

So what you are going to have to do for each release that comes out, you are going to have to go into the script and change each

%03d, %03ds, %03d_%d, %03ds_%d
to
%03d_0, %03ds_0, %03d_%d, %03ds_%d

EDIT: I forgot to edit one thing

Code:
#==============================================================================
# ¡Ü Credits to Help - 14 for both the scripts and Sprites
# ¡Ü Edited by Zingzags
# -Fixed bugs
# -Clean ups
# -Fixed Surf Bug (After Surf is done)
# -Fixed def talk_to_pokemon while in surf
# -Fixed Surf Check
# -Fixed Type Check
# -Added Door Support
# -Fixed Hp Bug
# -Added Pokemon Center Support
# -Animation problems
# -Fixed Walk_time_variable problem
# -Added random item loot
# -Added egg check
# -Added Multiple Forms fix
#==============================================================================
# Zingzags comments
#==============================================================================
# Special thanks to Maruno, and Venom - 13, as they helped me a bit!
#
#==============================================================================

#============================================================================== # ¡Ü Control the following Pokemon #==============================================================================

def FollowingMoveRoute(commands,waitComplete=false) $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete) end

#============================================================================== # ¡Ü Pokemon Following Character v3 By Help-14 #==============================================================================

class DependentEvents #============================================================================== # Raises The Current Pokemon's Happiness levels +1 per each time the # Walk_time_Variable reachs 5000 then resets to 0 # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item #============================================================================== def add_following_time if $game_switches[2]==true && $Trainer.party.length>=1 $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length if $game_variables[Walking_Time_Variable]==5000 $Trainer.party[0].happiness+=1 $game_variables[Walking_Time_Variable]=0 if $game_variables[ItemWalk]==5 else $game_variables[ItemWalk]+=1 end end end end #---------------------------------------------------------------------------- # - refresh_sprite # - Change sprite without animation #----------------------------------------------------------------------------

def refresh_sprite if $Trainer.party.length!=$game_variables[Current_Following_Variable] if $Trainer.party[0].isShiny? shiny=true else shiny=false end if $Trainer.party[0].form>0 altform=true else altform=false end if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? change_sprite($Trainer.party[0].species, shiny, altform, false) elsif $Trainer.party[0].hp<=0 remove_sprite end end end

#---------------------------------------------------------------------------- # - change_sprite(id, shiny, animation) # - Example, to change sprite to shiny lugia with animation: # change_sprite(249, true, true) # - If just change sprite: # change_sprite(249) #---------------------------------------------------------------------------- def change_sprite(id, shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" if shiny==true && altform==false events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==false events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==true events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end end if animation==true $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end $game_variables[Walking_Time_Variable]=0 end end

#---------------------------------------------------------------------------- # - remove_sprite(animation) # - Example, to remove sprite with animation: # remove_sprite(true) # - If just remove sprite: # remove_sprite #----------------------------------------------------------------------------

def remove_sprite(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") if animation==true $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y) pbWait(10) end $game_variables[Current_Following_Variable]=$Trainer.party[0] $game_variables[Walking_Time_Variable]=0 end end end

#---------------------------------------------------------------------------- # - check_surf(animation) # - If current Pokemon is a water Pokemon, it is still following. # - If current Pokemon is not a water Pokemon, remove sprite. # - Require Water_Pokemon_Can_Surf = true to enable #---------------------------------------------------------------------------- def check_surf(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") else if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? if $Trainer.party[0].hasType?(:WATER) remove_sprite else remove_sprite pbWait(20) end elsif $Trainer.party[0].hp<=0 end end end end

#---------------------------------------------------------------------------- # - talk_to_pokemon # - It will run when you talk to Pokemon following #----------------------------------------------------------------------------

def talk_to_pokemon e=$Trainer.party[0] events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" [email protected][i].x [email protected][i].y end end if e==0 else if e.hp>0 && !$Trainer.party[0].egg? if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else if e!=6 pbPlayCry(e.species) random1=rand(5) if $game_variables[ItemWalk]==5 items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP, :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE, :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL, :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE, :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN, :BLKAPRICORN,:WHTAPRICORN ] random2=0 loop do random2=rand(items.length) break if hasConst?(PBItems,items[random2]) end

Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name)) Kernel.pbPokemonFound(getConst(PBItems,items[random2])) $game_variables[ItemWalk]=0 end

if random1==0 $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2) pbWait(50) Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) elsif e.happiness>0 && e.happiness<=50 $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2) pbWAit(70) Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name)) elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg? $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2) pbWait(120) Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name)) elsif e.happiness>50 && e.happiness<=100 $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2) pbWait(100) Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name)) elsif e.happiness>100 && e.happiness<150 $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2) Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name)) elsif e.happiness>=150 $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2) pbWait(70) Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name)) end

else

end end end end end

def Come_back(shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents if $game_variables[Current_Following_Variable]==$Trainer.party.length $game_variables[Current_Following_Variable] else $game_variables[Current_Following_Variable] end if $game_variables[Current_Following_Variable]==$Trainer.party.length remove_sprite(false) for i in 0...events.length $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end else if $Trainer.party[0].isShiny? shiny=true else shiny=false end if $Trainer.party[0].form>0 altform=true else altform=false end change_sprite($Trainer.party[0].species, shiny, altform, false) end for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg? $game_variables[Current_Following_Variable]=i refresh_sprite break end end for i in 0...events.length for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp<=0 id = $Trainer.party[i].species else id = $Trainer.party[i].species end end

if events[i] && events[i][8]=="Dependent" if shiny==true && altform==false events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==false events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==true events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end

if animation==true else end end end end

#---------------------------------------------------------------------------- # - check_faint # - If current Pokemon is fainted, change other Pokemon. #----------------------------------------------------------------------------

def check_faint if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else

if $Trainer.party[0].hp<=0 $game_variables[Current_Following_Variable]=0 remove_sprite elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?

end end end

def SetMoveRoute(commands,waitComplete=false) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" pbMoveRoute(@realEvents[i],commands,waitComplete) end end end end

#---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf #----------------------------------------------------------------------------

def Kernel.pbSurf # if $game_player.pbHasDependentEvents? # return false # end if $DEBUG || (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF]) movefinder=Kernel.pbCheckMove(:SURF) if $DEBUG || movefinder if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue... Would you like to surf?")) speciesname=!movefinder ? $Trainer.name : movefinder.name Kernel.pbMessage(_INTL("{1} used Surf!",speciesname)) pbHiddenMoveAnimation(movefinder) # $PokemonTemp.dependentEvents.check_surf surfbgm=pbGetMetadata(0,MetadataSurfBGM) $PokemonTemp.dependentEvents.check_surf if surfbgm pbCueBGM(surfbgm,0.5) end pbStartSurfing() return true end end end return false end

#---------------------------------------------------------------------------- # - Auto add Script to pbEndSurf, It'll show sprite after surf #----------------------------------------------------------------------------

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 pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag) if Kernel.pbJumpToward Kernel.pbCancelVehicles $game_map.autoplayAsCue $game_player.increase_steps result=$game_player.check_event_trigger_here([1,2]) Kernel.pbOnStepTaken(result) $PokemonTemp.dependentEvents.Come_back(true) end return true end return false end #---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug #---------------------------------------------------------------------------- def Kernel.pbCanUseHiddenMove?(pkmn,move) case move when PBMoves::FLY if !$DEBUG && !$Trainer.badges[BADGEFORFLY] 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[BADGEFORCUT] 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[BADGEFORCUT] 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[BADGEFORSTRENGTH] 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[BADGEFORROCKSMASH] 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[BADGEFORFLASH] 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[BADGEFORWATERFALL] 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[BADGEFORDIVE] 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

def pbPokemonFollow(x) Kernel.pbAddDependency2(x, "Dependent", CommonEvent) $PokemonTemp.dependentEvents.refresh_sprite end

__________________
Check out the Pokemon Game Engine I am working on:
https://github.com/sjosegarcia/Pokemon
Reply With Quote
  #71    
Old July 31st, 2012 (5:43 PM).
Rayd12smitty's Avatar
Rayd12smitty Rayd12smitty is offline
Shadow Maker
 
Join Date: Dec 2011
Gender: Male
Posts: 647

very nice update. I missed the alternate forms thing. I don't know whats up with Rick's because i have them numbered 495, 495s, 496, 496s... etc and it works fine.

__________________
Reply With Quote
  #72    
Old July 31st, 2012 (5:54 PM). Edited August 1st, 2012 by ~Angel~.
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Quote originally posted by Rayd12smitty:
very nice update. I missed the alternate forms thing. I don't know whats up with Rick's because i have them numbered 495, 495s, 496, 496s... etc and it works fine.

I changed it to the same script everyone else is using o3o and still nothing works. I will have to look back. It may have gotten changed when I moved my scripts.
Wait. Just remembered. I am using Venom12's scripts o3o it has the same thing just in a new folder. Yet I can't figure it out >_< I put everything where it is men't to be. And nothing.

Quote originally posted by zingzags:
Then I hope this explanation helps.

You see this here:

Code:
events[i][6]=sprintf("%03d",id)
%03d is what I define 3 digit numbers, so numbers that are under 3 digits like
25 (Pikachu) would be, 025 which is how the images are named in battlers. But I remember when you sent me your project I had to change the script to make it easier for both me and you, so we wouldn't have to rename 400+ pokemon.

What I did to your script was I made it to %03d_0 because your pokemon overworlds in your folder were 001_0, 002_0... 493_0. the _0 in the script I edited for you was what made the pokemon overworlds show.

So what you are going to have to do for each release that comes out, you are going to have to go into the script and change each

%03d, %03ds, %03d_%d, %03ds_%d
to
%03d_0, %03ds_0, %03d_%d, %03ds_%d

EDIT: I forgot to edit one thing

Code:
#==============================================================================
# ¡Ü Credits to Help - 14 for both the scripts and Sprites
# ¡Ü Edited by Zingzags
# -Fixed bugs
# -Clean ups
# -Fixed Surf Bug (After Surf is done)
# -Fixed def talk_to_pokemon while in surf
# -Fixed Surf Check
# -Fixed Type Check
# -Added Door Support
# -Fixed Hp Bug
# -Added Pokemon Center Support
# -Animation problems
# -Fixed Walk_time_variable problem
# -Added random item loot
# -Added egg check
# -Added Multiple Forms fix
#==============================================================================
# Zingzags comments
#==============================================================================
# Special thanks to Maruno, and Venom - 13, as they helped me a bit!
#
#==============================================================================

#============================================================================== # ¡Ü Control the following Pokemon #==============================================================================

def FollowingMoveRoute(commands,waitComplete=false) $PokemonTemp.dependentEvents.SetMoveRoute(commands,waitComplete) end

#============================================================================== # ¡Ü Pokemon Following Character v3 By Help-14 #==============================================================================

class DependentEvents #============================================================================== # Raises The Current Pokemon's Happiness levels +1 per each time the # Walk_time_Variable reachs 5000 then resets to 0 # ItemWalk, is when the variable reaches a certain amount, that you are able to talk to your pokemon to recieve an item #============================================================================== def add_following_time if $game_switches[2]==true && $Trainer.party.length>=1 $game_variables[Walking_Time_Variable]+=1 if $game_variables[Current_Following_Variable]!=$Trainer.party.length if $game_variables[Walking_Time_Variable]==5000 $Trainer.party[0].happiness+=1 $game_variables[Walking_Time_Variable]=0 if $game_variables[ItemWalk]==5 else $game_variables[ItemWalk]+=1 end end end end #---------------------------------------------------------------------------- # - refresh_sprite # - Change sprite without animation #----------------------------------------------------------------------------

def refresh_sprite if $Trainer.party.length!=$game_variables[Current_Following_Variable] if $Trainer.party[0].isShiny? shiny=true else shiny=false end if $Trainer.party[0].form>0 altform=true else altform=false end if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? change_sprite($Trainer.party[0].species, shiny, altform, false) elsif $Trainer.party[0].hp<=0 remove_sprite end end end

#---------------------------------------------------------------------------- # - change_sprite(id, shiny, animation) # - Example, to change sprite to shiny lugia with animation: # change_sprite(249, true, true) # - If just change sprite: # change_sprite(249) #---------------------------------------------------------------------------- def change_sprite(id, shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" if shiny==true && altform==false events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==false events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==true events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end end if animation==true $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end $game_variables[Walking_Time_Variable]=0 end end

#---------------------------------------------------------------------------- # - remove_sprite(animation) # - Example, to remove sprite with animation: # remove_sprite(true) # - If just remove sprite: # remove_sprite #----------------------------------------------------------------------------

def remove_sprite(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") if animation==true $scene.spriteset.addUserAnimation(Animation_Come_In,@realEvents[i].x,@realEvents[i].y) pbWait(10) end $game_variables[Current_Following_Variable]=$Trainer.party[0] $game_variables[Walking_Time_Variable]=0 end end end

#---------------------------------------------------------------------------- # - check_surf(animation) # - If current Pokemon is a water Pokemon, it is still following. # - If current Pokemon is not a water Pokemon, remove sprite. # - Require Water_Pokemon_Can_Surf = true to enable #---------------------------------------------------------------------------- def check_surf(animation=nil) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" events[i][6]=sprintf("nil") @realEvents[i].character_name=sprintf("nil") else if $Trainer.party[0].hp>0 && !$Trainer.party[0].egg? if $Trainer.party[0].hasType?(:WATER) remove_sprite else remove_sprite pbWait(20) end elsif $Trainer.party[0].hp<=0 end end end end

#---------------------------------------------------------------------------- # - talk_to_pokemon # - It will run when you talk to Pokemon following #----------------------------------------------------------------------------

def talk_to_pokemon e=$Trainer.party[0] events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" [email protected][i].x [email protected][i].y end end if e==0 else if e.hp>0 && !$Trainer.party[0].egg? if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else if e!=6 pbPlayCry(e.species) random1=rand(5) if $game_variables[ItemWalk]==5 items=[:POTION,:SUPERPOTION,:FULLRESTORE,:REVIVE,:PPUP, :PPMAX,:RARECANDY,:REPEL,:MAXREPEL,:ESCAPEROPE, :HONEY,:TINYMUSHROOM,:PEARL,:NUGGET,:GREATBALL, :ULTRABALL,:THUNDERSTONE,:MOONSTONE,:SUNSTONE,:DUSKSTONE, :REDAPRICORN,:BLUAPRICORN,:YLWAPRICORN,:GRNAPRICORN,:PNKAPRICORN, :BLKAPRICORN,:WHTAPRICORN ] random2=0 loop do random2=rand(items.length) break if hasConst?(PBItems,items[random2]) end

Kernel.pbMessage(_INTL("{1} seems to be holding something, it looks like {1} wants to give it to me.",e.name)) Kernel.pbPokemonFound(getConst(PBItems,items[random2])) $game_variables[ItemWalk]=0 end

if random1==0 $scene.spriteset.addUserAnimation(Emo_sing, pos_x, pos_y-2) pbWait(50) Kernel.pbMessage(_INTL("{1} loves this tune so much that {1} is singing it.",e.name)) elsif e.happiness>0 && e.happiness<=50 $scene.spriteset.addUserAnimation(Emo_Hate, pos_x, pos_y-2) pbWAit(70) Kernel.pbMessage(_INTL("{1} hate to travel with {2}.",e.name,$Trainer.name)) elsif e.status==PBStatuses::POISON && e.hp>0 && !e.egg? $scene.spriteset.addUserAnimation(Emo_Poison, pos_x, pos_y-2) pbWait(120) Kernel.pbMessage(_INTL("{1} is badly poisoned, {1} needs help quick.",e.name)) elsif e.happiness>50 && e.happiness<=100 $scene.spriteset.addUserAnimation(Emo_Normal, pos_x, pos_y-2) pbWait(100) Kernel.pbMessage(_INTL("{1} is still undecided for whether traveling with {2} is a good thing or not.",e.name,$Trainer.name)) elsif e.happiness>100 && e.happiness<150 $scene.spriteset.addUserAnimation(Emo_Happy, pos_x, pos_y-2) Kernel.pbMessage(_INTL("{1} is happy traveling with {2}.",e.name,$Trainer.name)) elsif e.happiness>=150 $scene.spriteset.addUserAnimation(Emo_love, pos_x, pos_y-2) pbWait(70) Kernel.pbMessage(_INTL("{1} loves traveling with {2}.",e.name,$Trainer.name)) end

else

end end end end end

def Come_back(shiny=nil, altform=nil, animation=nil) events=$PokemonGlobal.dependentEvents if $game_variables[Current_Following_Variable]==$Trainer.party.length $game_variables[Current_Following_Variable] else $game_variables[Current_Following_Variable] end if $game_variables[Current_Following_Variable]==$Trainer.party.length remove_sprite(false) for i in 0...events.length $scene.spriteset.addUserAnimation(Animation_Come_Out,@realEvents[i].x,@realEvents[i].y) end else if $Trainer.party[0].isShiny? shiny=true else shiny=false end if $Trainer.party[0].form>0 altform=true else altform=false end change_sprite($Trainer.party[0].species, shiny, altform, false) end for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp>0 && !$Trainer.party[0].egg? $game_variables[Current_Following_Variable]=i refresh_sprite break end end for i in 0...events.length for i in 0..$Trainer.party.length-1 if $Trainer.party[i].hp<=0 id = $Trainer.party[i].species else id = $Trainer.party[i].species end end

if events[i] && events[i][8]=="Dependent" if shiny==true && altform==false events[i][6]=sprintf("%03ds",id) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds",id) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==false events[i][6]=sprintf("%03d_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03d_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end elsif altform==true && shiny==true events[i][6]=sprintf("%03ds_%d",id,$Trainer.party[0].form) if FileTest.image_exist?("Graphics/Characters/"+events[i][6]) @realEvents[i].character_name=sprintf("%03ds_%d",id,$Trainer.party[0].form) else events[i][6]=sprintf("%03d",id) @realEvents[i].character_name=sprintf("%03d",id) end end

if animation==true else end end end end

#---------------------------------------------------------------------------- # - check_faint # - If current Pokemon is fainted, change other Pokemon. #----------------------------------------------------------------------------

def check_faint if $PokemonGlobal.surfing==true || $PokemonGlobal.bicycle==true else

if $Trainer.party[0].hp<=0 $game_variables[Current_Following_Variable]=0 remove_sprite elsif $Trainer.party[0].hp>0 && !$Trainer.party[0].egg?

end end end

def SetMoveRoute(commands,waitComplete=false) events=$PokemonGlobal.dependentEvents for i in 0...events.length if events[i] && events[i][8]=="Dependent" pbMoveRoute(@realEvents[i],commands,waitComplete) end end end end

#---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbSurf, It'll check curent Pokemon when surf #----------------------------------------------------------------------------

def Kernel.pbSurf # if $game_player.pbHasDependentEvents? # return false # end if $DEBUG || (HIDDENMOVESCOUNTBADGES ? $Trainer.numbadges>=BADGEFORSURF : $Trainer.badges[BADGEFORSURF]) movefinder=Kernel.pbCheckMove(:SURF) if $DEBUG || movefinder if Kernel.pbConfirmMessage(_INTL("The water is dyed a deep blue... Would you like to surf?")) speciesname=!movefinder ? $Trainer.name : movefinder.name Kernel.pbMessage(_INTL("{1} used Surf!",speciesname)) pbHiddenMoveAnimation(movefinder) # $PokemonTemp.dependentEvents.check_surf surfbgm=pbGetMetadata(0,MetadataSurfBGM) $PokemonTemp.dependentEvents.check_surf if surfbgm pbCueBGM(surfbgm,0.5) end pbStartSurfing() return true end end end return false end

#---------------------------------------------------------------------------- # - Auto add Script to pbEndSurf, It'll show sprite after surf #----------------------------------------------------------------------------

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 pbIsSurfableTag?(currentTag)&&!pbIsSurfableTag?(facingTag) if Kernel.pbJumpToward Kernel.pbCancelVehicles $game_map.autoplayAsCue $game_player.increase_steps result=$game_player.check_event_trigger_here([1,2]) Kernel.pbOnStepTaken(result) $PokemonTemp.dependentEvents.Come_back(true) end return true end return false end #---------------------------------------------------------------------------- # - Auto add Script to Kernel.pbCanUseHiddenMove, fix HM bug #---------------------------------------------------------------------------- def Kernel.pbCanUseHiddenMove?(pkmn,move) case move when PBMoves::FLY if !$DEBUG && !$Trainer.badges[BADGEFORFLY] 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[BADGEFORCUT] 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[BADGEFORCUT] 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[BADGEFORSTRENGTH] 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[BADGEFORROCKSMASH] 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[BADGEFORFLASH] 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[BADGEFORWATERFALL] 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[BADGEFORDIVE] 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

def pbPokemonFollow(x) Kernel.pbAddDependency2(x, "Dependent", CommonEvent) $PokemonTemp.dependentEvents.refresh_sprite end

I looked back. The Scripts still are not showing the pokemon. I have every single last pokemon named correctly. Such as the number men't to be show. My data is EXACTLY like everyone else. I use Venom12's data. I have not changed anything in that data. And yet I am still not able to show them.

Reply With Quote
  #73    
Old August 5th, 2012 (4:40 AM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Sorry guys I figured out my problem XD I was missing the audio files for the pokemon :/ All that for nothing XD all well it's working now and soon will have alternate forms :D

Reply With Quote
  #74    
Old August 5th, 2012 (9:23 AM). Edited August 5th, 2012 by korjamer.
korjamer's Avatar
korjamer korjamer is offline
Pixel Artist
 
Join Date: Apr 2011
Gender: Male
Nature: Relaxed
Posts: 19

I replaced the followpokemon script in my game for the alternate forms fix that zingzags came up with and now only shiny Pokemon follow me... The sprites for regular Pokemon are invisible. Are they named wrong? If so how should I name them?

Edit: I found that if I change the Pokemon's form to 1 with the debug editor The regular (non shiny) sprite works... But I have to do it manually... Also the shiny doesn't appear on form 1...

And just for reference in my characters folder they are named:
001, 001s, 001_1, 001s_1, ect...

Reply With Quote
  #75    
Old August 5th, 2012 (10:36 AM).
~Angel~'s Avatar
~Angel~ ~Angel~ is offline
Lead developer for Pokémon Millennium
 
Join Date: Mar 2010
Location: United States Of America.
Age: 18
Gender: Male
Nature: Quiet
Posts: 272

Quote originally posted by korjamer:
I replaced the followpokemon script in my game for the alternate forms fix that zingzags came up with and now only shiny Pokemon follow me... The sprites for regular Pokemon are invisible. Are they named wrong? If so how should I name them?

Edit: I found that if I change the Pokemon's form to 1 with the debug editor The regular (non shiny) sprite works... But I have to do it manually... Also the shiny doesn't appear on form 1...

And just for reference in my characters folder they are named:
001, 001s, 001_1, 001s_1, ect...

You would need to change them. With Zingzags premission I would be glad to let you use the script he made for me. But he changed it differently then what you have all ready. You could go to his original post and get the characters there correctly named.

Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 2:51 AM.