Open any mpq, open any model, save it as .mdl file.
I have used HeroPaladin.mdl for this short tut.
After that, using Oinkerwinkle's Vertex Modifier, open up ANY model EXCEPT the model that you have saved just now. I opened a random model from the primitives given.
After you have opened the model, delete everything that you see.
After that, click merge geoset, and open the model that was previously extracted from mpq (Mine was HeroPaladin.mdl for example).
There will be a window asking which geoset would you want to open. Open the geoset that contains the weapon. (HeroPaladin.mdl weapon would be on Geoset 1)
After that, delete everything except the weapon. To make things easier, when selected certain vertex, you can click Ctrl + E to expand selection.
Now you would probably left with this.
See there's a pointer-like in the center there? That is where a unit will hold his weapon. So, drag the weapon you have to the middle of the pointer. You may use Move, Rotate, Scale to get the positioning right. So, this is what I get:
NOTE: Use 'Save As'. If you used Save, you will overwrite the random model you opened. Save as something else.
After that, open up your model at Magos Model Editor. Open up MPQ browser. Now, I want you to find the texture that the earlier model used. For example, HeroPaladin uses HeroPaladin.blp.
Note: Not all units' textures are located in their folders. To check what textures are they using, open the actual model, and Windows >Texture Manager in Magos.
After that, right click the texture, and click 'Use as Texture'. By clicking this, your model now uses this texture. Now, open Material Manager, and click all those Material 7690798 thingy until you have this:
If done correctly, it should have the texture that you chose:
Im not gonna tell you what other options do. There are tuts for it. For now, just click Ok and ok. Your weapon should be textured by now.
After that, go to Texture Manager and delete the Textures/White.blp by right clicking it. This texture is deleted because it is no longer being used and deleting it could save the filesize by few bytes.
Save it as a
MDX and test it ingame. It should work.
Here's how it would look: