In pokemon essentials Can you make it so that your pokemon don't need to have learned the hm in order to do the field move ,like machoke doesn't have strength in his moves, but when I get the 5th badge it allows him to use strength on the field to move boulders around?
Erm, yes.
In
PokemonField, find
Kernel.pbStrength. There's a part involving
pbCheckMove. This part needs to be replaced with an analysis of an array which contains a list of all the pokémon that would be able to use Strength (alternatively, you can check to see if a pokémon in your party is capable of learning the move Strength, if that suits your requirements).
So create the array in
Kernel.pbStrength, then use a "for" loop to go through each pokémon in your party (
for i in $Trainer.party), and for each of those use another "for" loop to check each element of that array (
for j in strengthlist). If any party pokémon is the same species as any pokémon in the array, then you can push rocks around.
BADGEFORSTRENGTH is still used, and you want to set it to
4 (because the list of badges is zero-based, so badge number 4 is actually the fifth one).
You may also want to change the message "Machoke used Strength!", since it isn't.
Possible ways to expand on this idea are to set a minimum ATK value or Level required to push rocks around. These values can be different for each pokémon. You'd probably want to indicate when a pokémon becomes strong enough to shove boulders around, though.
Another, completely different, method to the above would be to make field moves "taught" by NPCs, except that an actual move isn't taught but the ability to haul rocks around (etc.) is. This can be done by setting to true a switch associated with the pokémon being shown how to do that something, and then simply check whether a pokémon in your party has the relevant switch being true when you try to do it in the field. Just an idea.