public plugin_init() { register_plugin("Weapon Model Replacement", "0.0.1", "ZP Dev")
//register Ham_Item_Deploy forward for all CS weapons for (new i = 1; i < sizeof WEAPONENTNAMES; i++) { if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1); } }
// Ham Weapon Deploy Forward public OnItemDeployPost(ent) { // Get weapon's owner static id; id = fm_cs_get_weapon_ent_owner(ent);
// Valid owner? if (!pev_valid(id)) return;
// Replace weapon models with custom ones switch(cs_get_weapon_id(ent)) { case CSW_AK47: { //AK47 custom model set_pev(id, pev_viewmodel2, "models/v_custom.mdl") //v_ model set_pev(id, pev_weaponmodel2, "models/p_custom.mdl") //p_ model } case CSW_KNIFE: { //Knife custom model } } }
// Get Weapon Entity's Owner fm_cs_get_weapon_ent_owner(ent) { // Prevent server crash if entity's private data not initalized if (pev_valid(ent) != 2) return -1;
return get_pdata_cbase(ent, 41, 4); }
Code taken from ZP.
If you don't want to use loop for all weapon, then you can register 1 by 1.