Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
Our weekly protagonist poll is now up! Vote for your favorite Trading Card Game 2 protagonist in the poll by clicking here.
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
Are you just changing the event and pressing play? And what kind of event is it? If it's an event that only happens once you'll need to start a new game to fix it. (if you've already completed the event). If it's something simple like a transfer event, then I'm not sure what you can do. x.x
You would have to edit the PBS/PokéMon And add him in in this format.
Spoiler:
[#] < Dex Number
Name=
InternalName=
Kind= (IE: five star - for Ledyba, the five star PokéMon)
Pokedex=[insert information]
Type1=
Type2= (if no second type, leave blank)
BaseStats=#,#,#,#,#,#
Rareness=#
BaseEXP=#
Happiness=#
GrowthRate=Fluctuating (There's more, but I can't remember the names)
StepsToHatch=5120 (that's typically the basic number)
Color=
Habitat=Grassland (I dont think the dex currently uses this function)
EffortPoints=0,0,0,0,1,0
Abilities=(Separate with a comma)
Compatibility=
Height=
Weight= (These are expressed in metric units)
GenderRate=FemaleOneEighth (again, I can't remember the others)
Moves=(ie: 1,TACKLE)
EggMoves= (leave blank if cannot be hatched from an egg)
Evolutions= (check the starter kit notes for a list of evolution methods and how you input them)
BattlerPlayerY=16
BattlerEnemyY=14
BattlerAltitude=0
(I can't remember the details; but maybe you should read this incase you already haven't.)
EDIT: On a completely off topic side note... Yea baby! Post 69! o_O
You would have to edit the PBS/PokéMon And add him in in this format.
Spoiler:
[#] < Dex Number
Name=
InternalName=
Kind= (IE: five star - for Ledyba, the five star PokéMon)
Pokedex=[insert information]
Type1=
Type2= (if no second type, leave blank)
BaseStats=#,#,#,#,#,#
Rareness=#
BaseEXP=#
Happiness=#
GrowthRate=Fluctuating (There's more, but I can't remember the names)
StepsToHatch=5120 (that's typically the basic number)
Color=
Habitat=Grassland (I dont think the dex currently uses this function)
EffortPoints=0,0,0,0,1,0
Abilities=(Separate with a comma)
Compatibility=
Height=
Weight= (These are expressed in metric units)
GenderRate=FemaleOneEighth (again, I can't remember the others)
Moves=(ie: 1,TACKLE)
EggMoves= (leave blank if cannot be hatched from an egg)
Evolutions= (check the starter kit notes for a list of evolution methods and how you input them)
BattlerPlayerY=16
BattlerEnemyY=14
BattlerAltitude=0
(I can't remember the details; but maybe you should read this incase you already haven't.)
EDIT: On a completely off topic side note... Yea baby! Post 69! o_O
I'm almost sure he's talking about alternate forms of a Pokemon (like different Rotoms), in which I know thats not the way to do it. I just don't know how to do it.
If it's an alternate form it's done the same way as adding a new PokéMon, the only difference being they have the same dex number (not internal number though)
That's the simple way that most people use at least. o.o
Many other well-known species have alternate forms that are not implemented in Pokémon Essentials. To give special forms to these and other species, edit the methods "pbLoadPokemonBitmapSpecies" and "pbPokemonIconFile" in the script section PokemonUtilities. It may also be necessary to add methods to the script section PokeBattle_Pokemon that calculate which form to display depending on the Pokémon's internal data (see PokeBattle_Pokemon in the advanced notes). This, however, is an advanced scripting feature.
^That's the hard way to do it, but you would have to do it this way for PokéMon such as Arceus, Shaymin, and Giratina, that change based on an item or Castform, who changes constantly.
But you can just do what I said for simpler species such as Wormadam, Shellos/Gastrodon, and unown. (theres something to do unown differently in essentials, but it doesn't work for a lot of people, so they just copy unown's dex data 27 more times, give them their internal numbers, and have it's dex number as the original unown.)
So I'm trying to write a script that creates a starter selection similar to R/S/E's but I have run into two small road blocks.
I have the core of the system working, as far as you can pick a starter and recieve it onto your team, however I can't seem to get a couple of things to work.
1. I can't display the picture of the starter when I select it
2. I can't for the life of me seem to code the whole "Are you sure you want STIPOLDOS?" "YES/NO" prompt thing after I select Stipoldos.
Can anyone help me out here, or at least give me some pointers...?
The script isn't anything fancy so I have included it as reference, especially since I suck at RGSS, so someone maybe able to pick up on other scripting errors that I need to fix aswell..
Spoiler:
Code:
#==============================================================================
# - Scene_StarterSelection
#------------------------------------------------------------------------------
# Modified By Harshboy
# Modified by Peter O.
# Also Modified By OblivionMew
#==============================================================================
class Scene_StarterSelection
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# main
#--------------------------------------------------------------------------
def main
# Main Menu settings you can add or change these
commands=[
_INTL("STIPOLDOS"),
_INTL("MOLTAMB"),
_INTL("WABUOY"),
]
@command_window = Window_CommandPokemon.new(commands,160)
@command_window.index = @menu_index
@command_window.x = (Graphics.width - @command_window.width) - 8
@command_window.y = 640
@card = GifSprite.new
@card.setBitmap("Graphics/Pictures/SelectStarterBG")
@card.x = 0
@card.y = 0
@STIPOLDOS_icon = Sprite.new
@STIPOLDOS_icon.bitmap = RPG::Cache.picture("starterselectionball")
@STIPOLDOS_icon.x = 140
@STIPOLDOS_icon.y = 160
@arr_icon= Sprite.new
@arr_icon.bitmap = RPG::Cache.picture("starterselectionarrow")
@arr_icon.x = 140
@arr_icon.y = 100
@MOLTAMB_icon = Sprite.new
@MOLTAMB_icon.bitmap = RPG::Cache.picture("starterselectionball")
@MOLTAMB_icon.x = 240
@MOLTAMB_icon.y = 200
@WABUOY_icon = Sprite.new
@WABUOY_icon.bitmap = RPG::Cache.picture("starterselectionball")
@WABUOY_icon.x = 340
@WABUOY_icon.y = 160
@info = Window_UnformattedTextPokemon.new("")
@info.height = Graphics.height / 4 + 16
@info.width = Graphics.width - 12
@info.x = 6
@info.y = Graphics.height - @info.height
@info.z = 99999
@info.letterbyletter=false
@target_window = Window_UnformattedTextPokemon.new("")
@target_window.visible = false
@target_window.active = false
@target_window.letterbyletter=false
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
@target_window.dispose
Graphics.freeze
@command_window.dispose
@card.bitmap.dispose
@info.dispose
@arr_icon.dispose
@STIPOLDOS_icon.dispose
@MOLTAMB_icon.dispose
@WABUOY_icon.dispose
end
#--------------------------------------------------------------------------
# update the scene
#--------------------------------------------------------------------------
def update
@arr_icon.update
@command_window.update
@info.update
case @command_window.index
when 0
@arr_icon.x=140
@arr_icon.y=100
when 1
@arr_icon.x=240
@arr_icon.y=140
when 2
@arr_icon.x=340
@arr_icon.y=100
end
#update command window and the info if it's active
if @command_window.active
update_command
update_info
return
end
end
#--------------------------------------------------------------------------
# update the command window
#--------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
party=[]
party.push(PBSpecies::STIPOLDOS) if hasConst?(PBSpecies,:STIPOLDOS)
# Species IDs of the Pokémon to be created
for i in 0...party.length
species=party[i]
# Generate Pokémon with species and level 20
$Trainer.party[i]=PokeBattle_Pokemon.new(species,5,$Trainer)
$Trainer.seen[species]=true # Set this species to seen and owned
$Trainer.owned[species]=true
end
$scene = Scene_Map.new
when 1
$game_system.se_play($data_system.decision_se)
party=[]
party.push(PBSpecies::MOLTAMB) if hasConst?(PBSpecies,:MOLTAMB)
# Species IDs of the Pokémon to be created
for i in 0...party.length
species=party[i]
# Generate Pokémon with species and level 20
$Trainer.party[i]=PokeBattle_Pokemon.new(species,5,$Trainer)
$Trainer.seen[species]=true # Set this species to seen and owned
$Trainer.owned[species]=true
end
$scene = Scene_Map.new
when 2
$game_system.se_play($data_system.decision_se)
party=[]
party.push(PBSpecies::WABUOY) if hasConst?(PBSpecies,:WABUOY)
# Species IDs of the Pokémon to be created
for i in 0...party.length
species=party[i]
# Generate Pokémon with species and level 20
$Trainer.party[i]=PokeBattle_Pokemon.new(species,5,$Trainer)
$Trainer.seen[species]=true # Set this species to seen and owned
$Trainer.owned[species]=true
end
$scene = Scene_Map.new
end
return
end
end
def update_info
case @command_window.index
when 0
@info.text=_INTL("STIPOLDOS, The Grass type THORN Pokémon.")
when 1
@info.text=_INTL("MOLTAMB, The Fire type KINDLE LAMB Pokémon.")
when 2
@info.text=_INTL("WABUOY, The Water type LUNGFISH Pokémon.")
end
end
end
So I'm trying to write a script that creates a starter selection similar to R/S/E's but I have run into two small road blocks.
I have the core of the system working, as far as you can pick a starter and recieve it onto your team, however I can't seem to get a couple of things to work.
1. I can't display the picture of the starter when I select it
2. I can't for the life of me seem to code the whole "Are you sure you want STIPOLDOS?" "YES/NO" prompt thing after I select Stipoldos.
Can anyone help me out here, or at least give me some pointers...?
The script isn't anything fancy so I have included it as reference, especially since I suck at RGSS, so someone maybe able to pick up on other scripting errors that I need to fix aswell..
Spoiler:
Code:
#==============================================================================
# - Scene_StarterSelection
#------------------------------------------------------------------------------
# Modified By Harshboy
# Modified by Peter O.
# Also Modified By OblivionMew
#==============================================================================
class Scene_StarterSelection
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# main
#--------------------------------------------------------------------------
def main
# Main Menu settings you can add or change these
commands=[
_INTL("STIPOLDOS"),
_INTL("MOLTAMB"),
_INTL("WABUOY"),
]
@command_window = Window_CommandPokemon.new(commands,160)
@command_window.index = @menu_index
@command_window.x = (Graphics.width - @command_window.width) - 8
@command_window.y = 640
@card = GifSprite.new
@card.setBitmap("Graphics/Pictures/SelectStarterBG")
@card.x = 0
@card.y = 0
@STIPOLDOS_icon = Sprite.new
@STIPOLDOS_icon.bitmap = RPG::Cache.picture("starterselectionball")
@STIPOLDOS_icon.x = 140
@STIPOLDOS_icon.y = 160
@arr_icon= Sprite.new
@arr_icon.bitmap = RPG::Cache.picture("starterselectionarrow")
@arr_icon.x = 140
@arr_icon.y = 100
@MOLTAMB_icon = Sprite.new
@MOLTAMB_icon.bitmap = RPG::Cache.picture("starterselectionball")
@MOLTAMB_icon.x = 240
@MOLTAMB_icon.y = 200
@WABUOY_icon = Sprite.new
@WABUOY_icon.bitmap = RPG::Cache.picture("starterselectionball")
@WABUOY_icon.x = 340
@WABUOY_icon.y = 160
@info = Window_UnformattedTextPokemon.new("")
@info.height = Graphics.height / 4 + 16
@info.width = Graphics.width - 12
@info.x = 6
@info.y = Graphics.height - @info.height
@info.z = 99999
@info.letterbyletter=false
@target_window = Window_UnformattedTextPokemon.new("")
@target_window.visible = false
@target_window.active = false
@target_window.letterbyletter=false
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
@target_window.dispose
Graphics.freeze
@command_window.dispose
@card.bitmap.dispose
@info.dispose
@arr_icon.dispose
@STIPOLDOS_icon.dispose
@MOLTAMB_icon.dispose
@WABUOY_icon.dispose
end
#--------------------------------------------------------------------------
# update the scene
#--------------------------------------------------------------------------
def update
@arr_icon.update
@command_window.update
@info.update
case @command_window.index
when 0
@arr_icon.x=140
@arr_icon.y=100
when 1
@arr_icon.x=240
@arr_icon.y=140
when 2
@arr_icon.x=340
@arr_icon.y=100
end
#update command window and the info if it's active
if @command_window.active
update_command
update_info
return
end
end
#--------------------------------------------------------------------------
# update the command window
#--------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
party=[]
party.push(PBSpecies::STIPOLDOS) if hasConst?(PBSpecies,:STIPOLDOS)
# Species IDs of the Pokémon to be created
for i in 0...party.length
species=party[i]
# Generate Pokémon with species and level 20
$Trainer.party[i]=PokeBattle_Pokemon.new(species,5,$Trainer)
$Trainer.seen[species]=true # Set this species to seen and owned
$Trainer.owned[species]=true
end
$scene = Scene_Map.new
when 1
$game_system.se_play($data_system.decision_se)
party=[]
party.push(PBSpecies::MOLTAMB) if hasConst?(PBSpecies,:MOLTAMB)
# Species IDs of the Pokémon to be created
for i in 0...party.length
species=party[i]
# Generate Pokémon with species and level 20
$Trainer.party[i]=PokeBattle_Pokemon.new(species,5,$Trainer)
$Trainer.seen[species]=true # Set this species to seen and owned
$Trainer.owned[species]=true
end
$scene = Scene_Map.new
when 2
$game_system.se_play($data_system.decision_se)
party=[]
party.push(PBSpecies::WABUOY) if hasConst?(PBSpecies,:WABUOY)
# Species IDs of the Pokémon to be created
for i in 0...party.length
species=party[i]
# Generate Pokémon with species and level 20
$Trainer.party[i]=PokeBattle_Pokemon.new(species,5,$Trainer)
$Trainer.seen[species]=true # Set this species to seen and owned
$Trainer.owned[species]=true
end
$scene = Scene_Map.new
end
return
end
end
def update_info
case @command_window.index
when 0
@info.text=_INTL("STIPOLDOS, The Grass type THORN Pokémon.")
when 1
@info.text=_INTL("MOLTAMB, The Fire type KINDLE LAMB Pokémon.")
when 2
@info.text=_INTL("WABUOY, The Water type LUNGFISH Pokémon.")
end
end
end
I'm almost sure he's talking about alternate forms of a Pokemon (like different Rotoms), in which I know thats not the way to do it. I just don't know how to do it.
If it's an alternate form it's done the same way as adding a new PokéMon, the only difference being they have the same dex number (not internal number though)
That's the simple way that most people use at least. o.o
^That's the hard way to do it, but you would have to do it this way for PokéMon such as Arceus, Shaymin, and Giratina, that change based on an item or Castform, who changes constantly.
But you can just do what I said for simpler species such as Wormadam, Shellos/Gastrodon, and unown. (theres something to do unown differently in essentials, but it doesn't work for a lot of people, so they just copy unown's dex data 27 more times, give them their internal numbers, and have it's dex number as the original unown.)
yeah, that helps alot, but is the "internal number" called the "internal name" in the PBS file?
EDIT: almost forgot, can a pokemon not have any pokedex number at all? Like a new species that has yet to be catagorized? I'm thinking of something like a baby groudon or something like that
Thank you very much, Wichu. I have another problem now. I am curious as to how I can call the Move Tutor script. I downloaded the move tutor script and I can't seem to figure out how to call it. Can you figure this out for me? I'm stumped.
When i try to update my starterkit and copy the files in the PBS-Folder, i get this error-message:
Spoiler:
Exception: RuntimeError
Message: Undefined species constant name: [GLUMANDA]
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 2
Glumanda,Glutexo,Glurak,Schiggy,Schillok,Turtok,Pikachu,Raichu,Sandan,Sandamer
Compiler:846:in `pbGetConst'
Compiler:865:in `parseSpecies'
Compiler:1416:in `pbCompileMachines'
Compiler:1413:in `each'
Compiler:1413:in `pbCompileMachines'
Compiler:1398:in `each_line'
Compiler:1398:in `pbCompileMachines'
Compiler:3738:in `pbCompileAllData'
EditorMain:226:in `pbEditorMenu'
EditorMain:80:in `loop'
Exception: RuntimeError
Message: Undefined species constant name: [GLUMANDA]
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 2
Glumanda,Glutexo,Glurak,Schiggy,Schillok,Turtok,Pikachu,Raichu,Sandan,Sandamer
the entry in pokemon.txt from line 82 to 107:
Spoiler:
[4]
Name=Glumanda
InternalName=Glumanda
Kind=LIZARD
Pokedex=Lodert die Flamme auf seiner Schweifspitze hell, ist Glumanda gesund.
Type1=FIRE
BaseStats=39,52,43,65,60,50
Rareness=45
BaseEXP=65
Happiness=70
GrowthRate=Fluctuating
StepsToHatch=5120
Color=Red
Habitat=Mountain
EffortPoints=0,0,0,1,0,0
Abilities=BLAZE
Compatibility=1,14
Height=0.6
Weight=8.5
GenderRate=FemaleOneEighth
Moves=1,SCRATCH,1,GROWL,7,EMBER,13,SMOKESCREEN,19,RAGE,25,SCARYFACE,31,FLAMETHROWER,37,SLASH,43,DRAGONRAGE,49,FIRESPIN
EggMoves=BELLYDRUM,ANCIENTPOWER,ROCKSLIDE,BITE,OUTRAGE,BEATUP,SWORDSDANCE,DRAGONDANCE
Evolutions=Glutexo,Level,16
BattlerPlayerY=14
BattlerEnemyY=12
BattlerAltitude=0
"Glumanda" does exist in pokemon.txt, i've checked the files, but i have noy idea. :(
When i try to update my starterkit and copy the files in the PBS-Folder, i get this error-message:
Spoiler:
Exception: RuntimeError
Message: Undefined species constant name: [GLUMANDA]
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 2 Glumanda,Glutexo,Glurak,Schiggy,Schillok,Turtok,Pikachu,Raichu,Sandan,Sandamer
Compiler:846:in `pbGetConst'
Compiler:865:in `parseSpecies'
Compiler:1416:in `pbCompileMachines'
Compiler:1413:in `each'
Compiler:1413:in `pbCompileMachines'
Compiler:1398:in `each_line'
Compiler:1398:in `pbCompileMachines'
Compiler:3738:in `pbCompileAllData'
EditorMain:226:in `pbEditorMenu'
EditorMain:80:in `loop'
Exception: RuntimeError
Message: Undefined species constant name: [GLUMANDA]
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 2
Glumanda,Glutexo,Glurak,Schiggy,Schillok,Turtok,Pikachu,Raichu,Sandan,Sandamer
the entry in pokemon.txt from line 82 to 107:
Spoiler:
[4]
Name=Glumanda
InternalName=Glumanda
Kind=LIZARD
Pokedex=Lodert die Flamme auf seiner Schweifspitze hell, ist Glumanda gesund.
Type1=FIRE
BaseStats=39,52,43,65,60,50
Rareness=45
BaseEXP=65
Happiness=70
GrowthRate=Fluctuating
StepsToHatch=5120
Color=Red
Habitat=Mountain
EffortPoints=0,0,0,1,0,0
Abilities=BLAZE
Compatibility=1,14
Height=0.6
Weight=8.5
GenderRate=FemaleOneEighth
Moves=1,SCRATCH,1,GROWL,7,EMBER,13,SMOKESCREEN,19,RAGE,25,SCARYFACE,31,FLAMETHROWER,37,SLASH,43,DRAGONRAGE,49,FIRESPIN
EggMoves=BELLYDRUM,ANCIENTPOWER,ROCKSLIDE,BITE,OUTRAGE,BEATUP,SWORDSDANCE,DRAGONDANCE
Evolutions=Glutexo,Level,16
BattlerPlayerY=14
BattlerEnemyY=12
BattlerAltitude=0
"Glumanda" does exist in pokemon.txt, i've checked the files, but i have noy idea. :(
The "undefined species constant name" is in all capitals, yet the internal name of Glumanda isn't. Capitalisation matters here, and I would suggest you follow the trend of the original Essentials and put all internal names as all capitals. Not only would it help, but all-capital words are easier to see in events/code.
That was the thing I was just looking at recently, and after a devastating long battle my Pokemon was almost swallowed up by the bottom screen. In PokeBattle_ActualScene search for:
Code:
@spriteY+2
(I can't just tell you the line it's on since I've altered most of it so our lines wouldn't be the same)
Once you found it you should see something like:
Code:
if ((@frame/9).floor&1)==1 && @selected==1 # When choosing commands for this Pokémon
self.x=@spriteX
self.y=[COLOR=Red]@spriteY+2[/COLOR]
self.visible=@spriteVisible
elsif @selected==2 # When targeted or damaged
self.x=@spriteX
self.y=@spriteY
self.visible=(@frame%10<7)
elsif
self.x=@spriteX
self.y=[COLOR=Lime]@spriteY[/COLOR]
self.visible=@spriteVisible
end
Change the text in red to your second position of the sprite (in my case the original position of the sprite is 128 for the y value, so I would just add 2 pixels more to make it 130). This way, if you have the fixed positions set, it won't surpass the limit. The Pokemon will stop moving at some point, but that shouldn't be too bothersome.
Having looked at this again, I've discovered that editing both the red and green parts in the code quoted, the player's pokémon will always bob properly. However, the green part also sets the foe's Y coordinate, so if it's a number rather than a variable, there's going to be something quite unwanted going on.
The solution, as seen below, is to edit the first number in red (make it equal to @spriteY+2), and to add in the new "elsif" section (with the y value equal to @spriteY).
Code:
if ((@frame/9).floor&1)==1 && @selected==1 # When choosing commands for this Pokémon
self.x=@spriteX
self.y=[COLOR=Red]130[/COLOR]
self.visible=@spriteVisible
[COLOR=Red]elsif @selected==1
self.x=@spriteX
self.y=128
self.visible=@spriteVisible[/COLOR]
elsif @selected==2 # When targeted or damaged
self.x=@spriteX
self.y=@spriteY
self.visible=(@frame%10<7)
elsif
self.x=@spriteX
self.y=@spriteY
self.visible=@spriteVisible
end
How would I go about making Pikachu (as a dependent event) disappear when trying to surf, fly, or something else I can't think of right now. Then reappear after you go on land when surfing or when you arrive once you fly. It's hard to explain. I am trying to make it like HGSS
How would I go about making Pikachu (as a dependent event) disappear when trying to surf, fly, or something else I can't think of right now. Then reappear after you go on land when surfing or when you arrive once you fly. It's hard to explain. I am trying to make it like HGSS