thepsynergist
Vinemon: Sauce Edition Programmer and Composer
- 795
- Posts
- 16
- Years
- California, USA
- Seen Apr 17, 2025
Do you have a file named 494cry.wav in your sound folder? That might be an issue, I don't know.
It works for me. I know it took a bit of fiddling, though, and I'm not sure what exactly I did. Try running as administrator.
My version is over a year old, and it works with Windows 7. I know I've got my User Account Control settings switched off, so it never bugs me with messages like "Are you sure you want to move this file?".I tried everything. It does nothing. Do you think poccil has made a newer version that is compatible for w7?
EDIT: I think I might try using another method using conditional branches and pbHasSpecies?. I just need to know how to get the level of the pokemon chosen.
def pbFindSpeciesInParty(species)
for pokemon in $Trainer.party
next if pokemon.egg?
return pokemon if pokemon.species==species
end
return -1
end
The party screen is in PokemonScreen. Find where the hidden moves (and Teleport/Sweet Scent/Dig/Headbutt/Milk Drink/Softboiled) are handled (one place to put them in the list, another place to decide what they do), and copy-paste as appropriate.How do I add a new HM, I'm trying to add Rock Climb and I have edited the appropriate .txt files in the PBS folder and also added a new script for Rock Climb in PokemonHiddenMoves and a minor edit in PokemonField for a Rock Climb terrain tag (for the top of the rock and the bottom of the rock, much like Waterfall). For the Rock Climb script, I just used Waterfall as reference and made a couple of minor edits.
When I go to test it, the Pokemon knows Rock Climb but it doesn't appear in the little menu that pops up when you want to use a HM move such as Fly or Flash. Also, pressing A on the actual Rock Climb rocks does absolutely nothing.
Is there something I'm missing here?
Yes, breeding works. I'm not sure how functional it is, but it appeared to be very in depth. It even has a field for egg moves for each Pokemon, so "inheriting" moves is possible. I tried it out real quick, and I don't think you'll have to add anything to it (I don't know about inheriting stats or anything like that though).Is breeding possible in essentials?
What do you mean by cross breeding? As long as they are in the same egg group, it's fine. If you want all pokemon to be able to breed with each other, regardless of type, go to pokemon.txt and change the egg group of all of them to be the same (though it's probably not the best idea).Cross Breeding? Is that possible?
While fabricating my the introduction to my game, I had the idea of switching across different map, the narrator telling a story. However, when I tried to transfer the player to another map after the first few images, I get this error:
Spoiler:---------------------------
Pokemon Essentials
---------------------------
Exception: TypeError
Message: cannot convert Fixnum into String
Sprite_Character:93:in `+'
Sprite_Character:93:in `update_or'
PerspectiveTilemap:408:in `shadow_update'
Shadow:179:in `update'
Sprite_Character:33:in `perspectivetilemap_initialize'
PerspectiveTilemap:404:in `shadow_initialize'
Shadow:155:in `initialize'
Spriteset_Map:147:in `new'
Spriteset_Map:147:in `_animationSprite_initialize'
AnimationSprite:42:in `shadow_initialize'
This exception was logged in errorlog.txt.
Press Ctrl+C to copy this message to the clipboard.
---------------------------
OK
---------------------------
Which means that I didn't call the script pbchangeplayer(0). However, when I go to the first map I want to pan across, the player sprite is shown, defeating the purpose I have for my introduction. This arose two questions in my mind, one will solve this problem, and one will solve a later problem. How do I change the player's sprite?
when 6 # right
$game_switches[30]=true
$game_player.jump(dist,0)
$game_switches[30]=false
My version is over a year old, and it works with Windows 7. I know I've got my User Account Control settings switched off, so it never bugs me with messages like "Are you sure you want to move this file?".
Why bother changing the method? The one I gave you will work just fine. Unless you're thinking along the lines of saying you want X stone, then a check runs in the background for one of the relevant species (and a level check if it finds one). That would be neater, yes.
In which case, make a new def like the following:
This def will return the party index number of the Pokémon it finds. You then do a simple conditional statement with the argument "$Trainer.party[pokemon].level>=32", and go that way.Code:def pbFindSpeciesInParty(species) for pokemon in $Trainer.party next if pokemon.egg? return pokemon if pokemon.species==species end return -1 end
Alternatively, to make the event even neater, put the whole process in a new def, so all you'll need in the event is a choice of which stone you want (which sets the variable "stonewant" to equal a value), then a conditional statement with the argument "pbCheckPartyForStoneGiving(stonewant)" (which contains all the checks, as well as the list of pokémon and associated levels), and for the "true" part of the conditional branch, give the item (depending on the value of "stonewant"). Or go even further and put the whole process in a def, so the event just contains a single line calling "pbShowPokemonForStone" (or whatever).
It's fairly straightforward, I think (but then again, I'm good at this kind of thing).
The party screen is in PokemonScreen. Find where the hidden moves (and Teleport/Sweet Scent/Dig/Headbutt/Milk Drink/Softboiled) are handled (one place to put them in the list, another place to decide what they do), and copy-paste as appropriate.
Make sure you copy everything about Waterfall, up to and including tinkering with Kernel.pbHiddenMoveEvent. Everywhere in PokemonField that has anything to do with Waterfall, make a copy of it. Perhaps you just missed something.
However, I would have thought that having an event at the top and bottom of the rock climbing place would work just as well. Set the direction the player is facing and how far they need to go, turn "through" on (so you can walk over the cliff) and set a move route. That's not how other HMs are set up (e.g. Cut, Strength which also only work when used on an event), and it won't display the "Rock Climb" option in the party screen menu, but it'll work. Just a simple option if you don't mind about that.
Remember, though, that if you're going up the sides of cliffs (i.e. left-right or right-left) that you only go half a tile up for every tile across. This becomes really awkward for long climbing sessions. You may want to copy the "jump" settings and make your own "this is how you move when climbing" commands, in order to cope with going diagonally, but that's really advanced stuff.
xception: RuntimeError
Message: Script error within event 34, map 25 (Test Map 2):
Exception: NameError
Message: (eval):6:in `pbExecuteScript'uninitialized constant Interpreter::TURTWIG
***Full script:
pbChoosePokemon(1,2,
proc {|poke|
!poke.egg? and
poke.species==PBSpecies::TURTWIG
})
if pbGetPokemon(1).species==TURTWIG && pbGetPokemon(1).level>=36
Kernel.pbReceiveItem(::PBItems::FIRESTONE)
else
Kernel.pbMessage(_INTL("The soil returned to its soft and loamy state."))
end
Interpreter:239:in `pbExecuteScript'
Interpreter:1583:in `eval'
Interpreter:239:in `pbExecuteScript'
Interpreter:1583:in `command_355'
Interpreter:492:in `execute_command'
Interpreter:191:in `update'
Interpreter:104:in `loop'
Interpreter:196:in `update'
Scene_Map:96:in `update'
Scene_Map:94:in `loop'
Interpreter:274:in `pbExecuteScript'
Interpreter:1583:in `command_355'
Interpreter:492:in `execute_command'
Interpreter:191:in `update'
Interpreter:104:in `loop'
Interpreter:196:in `update'
Scene_Map:96:in `update'
Scene_Map:94:in `loop'
Scene_Map:107:in `update'
Scene_Map:63:in `main'
Got a few silly questions for you guys, that have bugged me for months =/
1. By default, if you go through a map transition while running and have an autorun event on the next map, you will keep sprinting. Is there a way to fix this? Set a wait function at the beginning of the auto run event.
2. How would one go about increasing the frequency at which charsets animate? I'm not talking about movement frequency, I'm asking how to make it so that, for example, the hero animates faster while sprinting (by default he moves much faster than his animation would imply). Edit this in the Walk_Run script
Spoiler:
if !pbMapInterpreterRunning? &&
!moving? && !@move_route_forcing && $PokemonGlobal
if $PokemonGlobal.bicycle
@move_speed = $RPGVX ? 8 : 5.2
elsif pbCanRun?
@move_speed = $RPGVX ? 6.5 : 4.8
else
@move_speed = $RPGVX ? 4.5 : 3.8
end
end
Thats the speed at which the player run's by default its too fast anyways.
3. I am trying to implement a minor scripting edit so that when the player jumps a normal ledge, his charset is changed while he is in the air, and then changes back to normal when he lands. I tried doing this:
Code:when 6 # right $game_switches[30]=true $game_player.jump(dist,0) $game_switches[30]=false
I made it so when that switch was turned on, the players charset would change (that part worked). In that section there though, the player would jump, land and then his charset would change, and remain like that forever. Is there any way to create a switch that is turned on ONLY when the player is in mid-air? Yeah, try chainging it by setting up a new switch that will change it back. You set it to false, but the switch has been made. You've changed in the internal player array Now u need to set it back.
4. Any way to increase the text speed? By default, "Fast" is still pretty slow. Poccil showed me an excellent method, but it only applies to the latest version =/. Anyone know how this is done in older versions? Not a clue lost my older versions
5. How does one increase the speed at which the battle boxes (health/level/experience boxes) fly into the screen? I can't seem to find the line of code that applies to these - but I did find everything else inbetween, lol have you checked the pokebattle_scene script, I'm not sure exactly where it is but I know its somewhere, maybe not in there but its in one of the pokebattle scripts
Sorry for the abundance of questions; I've accumulated these over quite some time, and unfortunately haven't managed to sort them out myself.
def pbItemDrop
itemlist=[
:POTION,:SUPERPOTION,:REVIVE (this is just as an example)
]
for i in itemlist
return true if isConst?(PBItems)
end
return false
end
itemgained=PBItems::itemlist
itemname=PBItems.getName(itemgained)
if @internalbattle
pbDisplayPaused(_INTL("{1} found a {2}!",self.pbPlayer.name,itemname))
$PokemonBag.pbStoreItem(itemgained)
end
I figured out how to make item drops when a battle ends. Now, I need to figure out how to specify the item dropped from a list of values. I set up an array like this:
Then the item is obtained like this:Code:def pbItemDrop itemlist=[ :POTION,:SUPERPOTION,:REVIVE (this is just as an example) ] for i in itemlist return true if isConst?(PBItems) end return false end
I can figure out the random part, but the problem is the itemgained=PBItems::itemlist.Code:itemgained=PBItems::itemlist itemname=PBItems.getName(itemgained) if @internalbattle pbDisplayPaused(_INTL("{1} found a {2}!",self.pbPlayer.name,itemname)) $PokemonBag.pbStoreItem(itemgained) end
If I set it to PBItems::POTION, it works just fine. I need it to recognize the values in the array, then I can make it work from there.
pbItemDrop only returns true or false. It doesn't return an item. I'm not sure what the point of it is. In fact, I can't even see how it works.I figured out how to make item drops when a battle ends. Now, I need to figure out how to specify the item dropped from a list of values. I set up an array like this:
Then the item is obtained like this:Code:def pbItemDrop itemlist=[ :POTION,:SUPERPOTION,:REVIVE (this is just as an example) ] for i in itemlist return true if isConst?(PBItems) end return false end
I can figure out the random part, but the problem is the itemgained=PBItems::itemlist.Code:itemgained=PBItems::itemlist itemname=PBItems.getName(itemgained) if @internalbattle pbDisplayPaused(_INTL("{1} found a {2}!",self.pbPlayer.name,itemname)) $PokemonBag.pbStoreItem(itemgained) end
If I set it to PBItems::POTION, it works just fine. I need it to recognize the values in the array, then I can make it work from there.
def pbItemDrop
itemlist=[
PBItems::POTION,
PBItems::SUPERPOTION,
PBItems::RARECANDY
]
return itemlist[rnd(itemlist.length)]
end
itemgained=pbItemDrop
if @internalbattle
pbDisplayPaused(_INTL("{1} found a {2}!",self.pbPlayer.name,PBItems.getName(itemgained))
$PokemonBag.pbStoreItem(itemgained)
end
To make the player invisible, use change transparent flag and set it to transparency. When the intro is over, change the transparent flag to visible. That should do the trick.