There you go
Create a file named vip_models.ini in addons/amxmodx/configs/
The syntax is
Code:
"weapon name" "path to v_model" "path to p_model"
Example
Code:
"weapon_ak47" "models/v_ak47.mdl" "models/p_ak47.mdl"
Leave blank to use default model, example
Code:
"weapon_ak47" "" "models/p_ak47.mdl"
You can get the weapon names here
https://wiki.alliedmods.net/Cs_weapons_information
Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
enum _:weaponmodel_e
{
WeaponVModel[64],
WeaponPModel[64],
}
new Trie:g_models
public plugin_init()
{
register_plugin("VIP Weapon Models", "1.0", "Ainsley Harriott")
new TrieIter:iterator = TrieIterCreate(g_models)
new weapon_name[32]
while (!TrieIterEnded(iterator))
{
TrieIterGetKey(iterator, weapon_name, charsmax(weapon_name))
TrieIterNext(iterator)
if (get_weaponid(weapon_name) > 0)
{
RegisterHam(Ham_Item_Deploy, weapon_name, "OnItemDeployPost", 1)
}
}
TrieIterDestroy(iterator)
}
public plugin_precache()
{
g_models = TrieCreate()
LoadConfigFile()
}
public plugin_end()
{
TrieDestroy(g_models)
}
public OnItemDeployPost(weapon)
{
new player = get_ent_data_entity(weapon, "CBasePlayerItem", "m_pPlayer")
if (!(get_user_flags(player) & ADMIN_LEVEL_H))
{
return
}
new data[weaponmodel_e], weapon_name[32]
pev(weapon, pev_classname, weapon_name, charsmax(weapon_name))
if (!TrieGetArray(g_models, weapon_name, data, sizeof data))
{
return
}
if (data[WeaponVModel][0])
{
set_pev(player, pev_viewmodel2, data[WeaponVModel])
}
if (data[WeaponPModel][0])
{
set_pev(player, pev_weaponmodel2, data[WeaponPModel])
}
}
LoadConfigFile()
{
new filename[128]
get_configsdir(filename, charsmax(filename))
add(filename, charsmax(filename), "/vip_models.ini")
new file = fopen(filename, "rt")
if (!file)
{
return
}
new buffer[200], weapon_name[32], data[weaponmodel_e]
while (fgets(file, buffer, charsmax(buffer)))
{
trim(buffer)
if (!buffer[0] || buffer[0] == ';' || buffer[0] == '#')
{
continue
}
if (parse(buffer, weapon_name, charsmax(weapon_name), data[WeaponVModel], charsmax(data[WeaponVModel]), data[WeaponPModel], charsmax(data[WeaponPModel])) < 2)
{
continue
}
if (data[WeaponVModel][0])
{
if (!file_exists(data[WeaponVModel], true))
{
log_amx("Couldn't find file '%s'", data[WeaponVModel])
data[WeaponVModel][0] = EOS
}
else
{
precache_model(data[WeaponVModel])
}
}
if (data[WeaponPModel][0])
{
if (!file_exists(data[WeaponPModel], true))
{
log_amx("Couldn't find file '%s'", data[WeaponPModel])
data[WeaponPModel][0] = EOS
}
else
{
precache_model(data[WeaponPModel])
}
}
TrieSetArray(g_models, weapon_name, data, sizeof data)
}
fclose(file)
}
__________________