...Or (this may take a while) play Pokemon XD, go to this area where you have to battle100 trainers, complete the 100 battles and defeat the leader, Battlus. Once you defeat him he gives you one of the three starter Johto pokemon. Then trade it to Emerald and one-way trade it to Diamond. It's cpnfusing as heck and I'm sure you don't have XD so all I can say is trade with someone or try to go to the next pokemon convention and get as many Typhlosions as you want.
Chdonga
I think you need to one-way trade it from Pokemon FireRed or LeafGreen. But what do I know about Pokemon, a lot. If that don't work you could always use Action replay (not gameshark, gameshark sucks)
Shi-Gu
The problem there is that you can't get a Cyndaquil in those games if you don't complete the pokedex catching all the pokemons, anyway, I just have Ruby, Emerald and Diamong and i got no friends who play pokemon around the place where I live