It's easy. Just download Sanny Builder program and open "C:\Program Files\Rockstar Games\Grand Theft Auto Vice City\data\main.scm" (don't forget to select Vice City in the lower right corner of Sanny Builder). The text will show up - find this line:
You'll see more of these similar lines for all gangs below that line. All weapons and gangs have their numbers. Use Sanny Builder help (contents, SCM documentation, GTA VC, weapon numbers and gang numbers) to change them as you like. After you finish click run-compile. That's it.
If you did then just change the number 17 (which is colt45 weapon) to a weapon you want. For example we want to change the Cuban (gang 0) pistols(17) to m4(26). Change number 17 to 26. And did you click run - compile after you finished? Also my answer is for Vice City only.
Well you can't expect that changes happen when you load a game. You have to start a new game and then the gangs will have a new weapons. And next time when you want to write more text use EDIT instead of ADD REPLY.
They are hardcoded - not located in main.scm file but in gta vc.exe. Only professional coders could change their weapons via coding. But if you want to change their textures and models then download a few weapon mods. Same for a weapon sounds - download a mod.
Im not sure what the coding means by the term "secondary weapon" when each character was only given one weapon to begin with. I have given each gang both a primary and a secondary weapon to make things more interesting.
I wanted to keep things within the borders of reality and not have street gangs walking around with high powered assault weapons.
I have realistic weapon mods for every single firearm in the game. The Ruger now looks awesome and the "M4" is now an M16-A1.