Unlimited ammo
From Halopedia, the Halo wiki
The Unlimited Ammunition glitch can be done in Halo 3 multiplayer and campaign.
Walkthrough
Campaign
One way to get unlimited ammo is to give an ally a weapon. Even if there is one round left when you give them it, it will never deplete unless you use it again, but you still need to reload.
Another is to play co-op, and continue to kill your partner in a safe zone to get a huge amount of dropped weapons.
Multiplayer
Edit a level in custom games by pressing the X button on the controller on the main custom games screen. Then, you can set all weapons on the map to have unlimited ammo.
Some Halo 3 matchmaking types, such as Team Snipers or Griffball, include unlimited ammo. Most types, with a set weapons list, include unlimited ammo.