Hello CrazY.
many, many thanks for your effort and help!
I think I got it that far. nevertheless i still have a question?
I understand correctly when I write this line in the .ini:
Quote:
|
"weapon_ak47" "models/v_ak47.mdl" "models/p_ak47.mdl"
|
that the vip sees another model and the no vip sees the standard model?
can I also use this code:
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)
}
for other HE, Flash and smoke models for the VIPs?
Many thanks and best regards !!
edit:
I have tried to compile (.sma to .amxx) this code. unfortunately i get an error message:
Code:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
/tmp/textKVpGyx.sma(18) : error 017: undefined symbol "TrieIterCreate"
/tmp/textKVpGyx.sma(19) : warning 213: tag mismatch
/tmp/textKVpGyx.sma(21) : error 017: undefined symbol "TrieIterEnded"
/tmp/textKVpGyx.sma(23) : error 017: undefined symbol "TrieIterGetKey"
/tmp/textKVpGyx.sma(23) : error 088: number of arguments does not match definition
/tmp/textKVpGyx.sma(24) : error 017: undefined symbol "TrieIterNext"
/tmp/textKVpGyx.sma(32) : error 017: undefined symbol "TrieIterDestroy"
/tmp/textKVpGyx.sma(48) : error 017: undefined symbol "get_ent_data_entity"
/tmp/textKVpGyx.sma(105) : error 088: number of arguments does not match definition
/tmp/textKVpGyx.sma(118) : error 088: number of arguments does not match definition
9 Errors.
Could not locate output file /home/groups/amxmodx/public_html/websc3/textKVpGyx.amx (compile failed).