Хотел заменить стандартные модели AWP, на ASIMOV, написал вроде бы всё правильно, но в игре w_awp.mdl стандартный,а p_awp.mdl и v_awp.mdl стали ASIMOV, не подскажите где допустил ошибку?
- Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>
#define is_valid_player(%1) (1 <= %1 <= 32)
new const AWP_BIT_SUM = (1<<CSW_AWP)
new ASIMOV_V_MODEL[64] = "models/vip_asimov_awp/v_asimov_awp.mdl"
new ASIMOV_P_MODEL[64] = "models/vip_asimov_awp/p_asimov_awp.mdl"
new ASIMOV_W_MODEL[64] = "models/vip_asimov_awp/w_asimov_awp.mdl"
new WORLDASIMOV_MODEL[64] = "models/w_awp.mdl"
new gold_damage, golden_model, goldasimov_cost
new bool:g_HasASIMOV[33]
public plugin_init()
{
register_plugin("Asimovawp", "1.0", "Alienware")
register_clcmd("amx_asimovawp", "cmdasimovawp")
gold_damage = register_cvar("goldenasimov_dmg", "5")
golden_model = register_cvar("goldenasimov_custommodel", "1")
goldasimov_cost = register_cvar("goldenasimov_cost", "1")
register_event("DeathMsg", "Death", "a")
register_event("WeapPickup", "checkModel", "b","1=19")
register_event("CurWeapon", "checkWeapon", "be","1=1")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
register_forward(FM_CmdStart, "fw_CmdStart")
register_forward(FM_SetModel, "fw_SetModel")
}
public client_connect(id)
g_HasASIMOV[id] = false
public client_disconnect(id)
g_HasASIMOV[id] = false
public Death()
g_HasASIMOV[read_data(2)] = false
public plugin_precache()
{
precache_model(ASIMOV_V_MODEL)
precache_model(ASIMOV_P_MODEL)
precache_model(ASIMOV_W_MODEL)
}
public cmdasimovawp(id)
{
if(!is_user_alive(id)) return
new money = cs_get_user_money(id)
if(money < get_pcvar_num(goldasimov_cost))
{
ColorChat(id, GREEN, "^x01У вас недостаточно денег")
return
}
drop_weapon(id, 1)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_money(id, money - get_pcvar_num(goldasimov_cost))
ColorChat(id, GREEN, "^x01[^x04 SERVER^x01 ] Вы получили^x04 AWP ^x01 [^x03 ASIMOV ^x01 ]")
g_HasASIMOV[id] = true
}
public checkModel(id)
{
new szWeapID = read_data(2)
if(szWeapID == CSW_AWP && g_HasASIMOV[id] == true && get_pcvar_num(golden_model) == 1)
{
set_pev(id, pev_viewmodel2, ASIMOV_V_MODEL)
set_pev(id, pev_weaponmodel2, ASIMOV_P_MODEL)
}
return PLUGIN_HANDLED
}
public checkWeapon(id)
{
new plrWeapId
plrWeapId = get_user_weapon(id)
if (plrWeapId == CSW_AWP && g_HasASIMOV[id])
checkModel(id)
else
return PLUGIN_CONTINUE
return PLUGIN_HANDLED
}
public fw_SetModel(entity, model[])
{
if(!pev_valid(entity))
return FMRES_IGNORED
if(!equali(model, WORLDASIMOV_MODEL))
return FMRES_IGNORED
new className[33]
pev(entity, pev_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
engfunc(EngFunc_SetModel, entity, ASIMOV_W_MODEL)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_AWP && g_HasASIMOV[attacker])
SetHamParamFloat(4, damage * get_pcvar_float(gold_damage))
}
stock drop_weapon(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
for(i = 0; i < num; i++)
{
weaponid = weapons[i]
if((dropwhat == 1 && ((1<<weaponid) & AWP_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}