To jest ten kod
Da radę jakoś dodać żeby nie zmieniało configu ale zeby dzialal pod F każdemu ?
Plugin dziala pod bind klawisz "inscept"
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
const XoWeapon = 4;
const XoPlayer = 5;
const m_pPlayer = 41;
const m_flNextPrimaryAttack = 46;
const m_flTimeWeaponIdle = 48;
const m_fInSpecialReload = 55;
const m_flNextAttack = 83;
const m_pActiveItem = 373;
new const PLUGIN[] = "CS:GO Inspect Weapon";
new const VERSION[] = "5.1.1";
new const DATE[] = "22 November 2017";
new const wpns_without_inspect = (1 << CSW_C4) | (1 << CSW_HEGRENADE) | (1 << CSW_FLASHBANG) | (1 << CSW_SMOKEGRENADE);
new const wpns_scoped = (1 << CSW_AUG) | (1 << CSW_AWP) | (1 << CSW_G3SG1) | (1 << CSW_SCOUT) | (1 << CSW_SG550) | (1 << CSW_SG552);
new g_deagle_overide[33];
new inspect_anim[] =
{
0, //null
7, //p228
0, //shield
5, //scout
0, //hegrenade
7, //xm1014
0, //c4
6, //mac10
6, //aug
0, //smoke grenade
16, //elites
6, //fiveseven
6, //ump45
5, //sg550
6, //galil
6, //famas
16, //usp
13, //glock
6, //awp
6, //mp5
5, //m249
7, //m3
14, //m4a1
6, //tmp
5, //g3sg1
0, //flashbang
6, //deagle
6, //sg552
6, //ak47
8, //knife
6 //p90
}
new Float:idle_calltime[] =
{
0.0, //null
5.2, //p228
0.0, //shield
5.0, //scout
0.0, //hegrenade
4.4, //xm1014
0.0, //c4
5.1, //mac10
3.4, //aug
0.0, //smoke grenade
4.5, //elites
5.2, //fiveseven
5.3, //ump45
5.2, //sg550
3.7, //galil
3.4, //famas
6.1, //usp
5.2, //glock
5.0, //awp
5.3, //mp5
5.5, //m249
4.5, //m3
4.8, //m4a1
5.8, //tmp
3.5, //g3sg1
0.0, //flashbang
4.6, //deagle
3.7, //sg552
4.4, //ak47
4.9, //knife
4.2 //p90
}
new V_MODELS[][] =
{
"null",
"models/v_p228.mdl",
"models/v_shield.mdl",
"models/v_scout.mdl",
"models/v_hegrenade.mdl",
"models/v_xm1014.mdl",
"models/v_c4.mdl",
"models/v_mac10.mdl",
"models/v_aug.mdl",
"models/v_smokegrenade.mdl",
"models/v_elite.mdl",
"models/v_fiveseven.mdl",
"models/v_ump45.mdl",
"models/v_sg550.mdl",
"models/v_galil.mdl",
"models/v_famas.mdl",
"models/v_usp.mdl",
"models/v_glock18.mdl",
"models/v_awp.mdl",
"models/v_mp5.mdl",
"models/v_m249.mdl",
"models/v_m3.mdl",
"models/v_m4a1.mdl",
"models/v_tmp.mdl",
"models/v_g3sg1.mdl",
"models/v_flashbang.mdl",
"models/v_deagle.mdl",
"models/v_sg552.mdl",
"models/v_ak47.mdl",
"models/v_knife.mdl",
"models/v_p90.mdl"
}
new V_MODELS_ALT[][] =
{
"null",
"models/alt/v_p228.mdl",
"models/alt/v_shield.mdl",
"models/alt/v_scout.mdl",
"models/alt/v_hegrenade.mdl",
"models/alt/v_xm1014.mdl",
"models/alt/v_c4.mdl",
"models/alt/v_mac10.mdl",
"models/alt/v_aug.mdl",
"models/alt/v_smokegrenade.mdl",
"models/alt/v_elite.mdl",
"models/alt/v_fiveseven.mdl",
"models/alt/v_ump45.mdl",
"models/alt/v_sg550.mdl",
"models/alt/v_galil.mdl",
"models/alt/v_famas.mdl",
"models/alt/v_usp.mdl",
"models/alt/v_glock18.mdl",
"models/alt/v_awp.mdl",
"models/alt/v_mp5.mdl",
"models/alt/v_m249.mdl",
"models/alt/v_m3.mdl",
"models/alt/v_m4a1.mdl",
"models/alt/v_tmp.mdl",
"models/alt/v_g3sg1.mdl",
"models/alt/v_flashbang.mdl",
"models/alt/v_deagle.mdl",
"models/alt/v_sg552.mdl",
"models/alt/v_ak47.mdl",
"models/alt/v_knife.mdl",
"models/alt/v_p90.mdl"
}
new weapon_classnames[][] =
{
"weapon_p228",
"weapon_elite",
"weapon_fiveseven",
"weapon_usp",
"weapon_glock18",
"weapon_deagle",
"weapon_ak47",
"weapon_m4a1",
"weapon_awp",
"weapon_mp5navy",
"weapon_ump45",
"weapon_galil",
"weapon_famas",
"weapon_sg552",
"weapon_aug",
"weapon_mac10",
"weapon_tmp",
"weapon_scout",
"weapon_m3",
"weapon_xm1014",
"weapon_g3sg1",
"weapon_sg550",
"weapon_m249",
"weapon_knife",
"weapon_p90"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, "hellmonja");
for(new i = 0; i < sizeof weapon_classnames; i++)
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_classnames[i], "Fw_Weapon_PrimaryAttack", 1);
RegisterHam(Ham_Item_Deploy, "weapon_deagle", "Fw_Deagle_Disable");
RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "Fw_Deagle_Disable");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_aug", "Fw_Weapon_SecondaryAttack");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_awp", "Fw_Weapon_SecondaryAttack");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_g3sg1", "Fw_Weapon_SecondaryAttack");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_scout", "Fw_Weapon_SecondaryAttack");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_sg550", "Fw_Weapon_SecondaryAttack");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_sg552", "Fw_Weapon_SecondaryAttack");
register_clcmd("cl_inspect", "Inspect_Weapon");
register_concmd("inspect", "Inspect_Weapon");
register_concmd("ver_csgo_inspect", "Code_Version");
}
public Code_Version(id)
{
console_print(id, "==============================");
console_print(id, "%s v%s", PLUGIN, VERSION);
console_print(id, "%s", DATE);
console_print(id, "==============================");
}
public Fw_Weapon_PrimaryAttack(weapon)
{
static id;
id = get_pdata_cbase(weapon, m_pPlayer, XoWeapon);
if(!is_user_alive(id))
return
new wpn_id = get_user_weapon(id);
static model[32];
pev(id, pev_viewmodel2, model, 31);
if(equali(model, V_MODELS[wpn_id]) || equali(model, V_MODELS_ALT[wpn_id]))
{
switch(wpn_id)
{
case CSW_DEAGLE:
g_deagle_overide[id] = 1;
case CSW_AWP, CSW_SCOUT, CSW_M3:
set_pdata_float(weapon, m_flTimeWeaponIdle, 1.5, XoWeapon);
case CSW_KNIFE:
set_pdata_float(weapon, m_flTimeWeaponIdle, 2.0, XoWeapon);
default:
set_pdata_float(weapon, m_flTimeWeaponIdle, 0.5, XoWeapon);
}
}
}
public Fw_Weapon_SecondaryAttack(weapon)
{
static id;
id = get_pdata_cbase(weapon, m_pPlayer, XoWeapon);
new wpn_id = get_user_weapon(id);
if(wpns_scoped & (1 << wpn_id) && cs_get_user_zoom(id) <= 1)
{
set_pev(id, pev_weaponanim, 0);
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id);
write_byte(0);
write_byte(pev(id, pev_body));
message_end();
}
}
public Fw_Deagle_Disable(weapon)
{
static id;
id = get_pdata_cbase(weapon, m_pPlayer, XoWeapon);
remove_task(id)
}
public Deagle_Overide(id)
g_deagle_overide[id] = 1;
public Inspect_Weapon(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_HANDLED
if(cs_get_user_shield(id))
return PLUGIN_HANDLED
if(cs_get_user_zoom(id) > 1)
return PLUGIN_HANDLED
new wpn_id = get_user_weapon(id);
if(wpns_without_inspect & (1 << wpn_id))
return PLUGIN_HANDLED
static weapon; weapon = get_pdata_cbase(id, m_pActiveItem);
static Float:flNextAttack; flNextAttack = get_pdata_float(id, m_flNextAttack, XoPlayer);
static Float:flNextPrimaryAttack; flNextPrimaryAttack = get_pdata_float(weapon, m_flNextPrimaryAttack, XoWeapon);
if(flNextAttack <= 0 && flNextPrimaryAttack <= 0)
{
static model[32]; pev(id, pev_viewmodel2, model, 31);
if(equali(model, V_MODELS[wpn_id]) || equali(model, V_MODELS_ALT[wpn_id]))
{
new anim = inspect_anim[wpn_id];
new current_anim = pev(get_pdata_cbase(weapon, m_pPlayer, XoWeapon), pev_weaponanim);
switch (wpn_id)
{
case CSW_USP: if(!cs_get_weapon_silen(weapon)) anim = 17;
case CSW_M4A1:if(!cs_get_weapon_silen(weapon)) anim = 15;
case CSW_KNIFE: anim = random_num(8, 10);
case CSW_DEAGLE:
if(wpn_id == CSW_DEAGLE && g_deagle_overide[id] == 1)
{
play_inspect(id, anim);
remove_task(id);
g_deagle_overide[id] = 0;
set_task(idle_calltime[CSW_DEAGLE], "Deagle_Overide", id);
return PLUGIN_CONTINUE
}
}
if(wpn_id == CSW_KNIFE && (current_anim == 8 || current_anim == 9 || current_anim == 10 ))
return PLUGIN_HANDLED
if(!get_pdata_int(weapon, m_fInSpecialReload, 4) && current_anim != anim)
{
play_inspect(id, anim);
set_pdata_float(weapon, m_flTimeWeaponIdle, idle_calltime[wpn_id], XoWeapon);
}
}
}
return PLUGIN_CONTINUE
}
play_inspect(id, anim)
{
set_pev(id, pev_weaponanim, anim);
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id);
write_byte(anim);
write_byte(pev(id, pev_body));
message_end();
}
Użytkownik Jarek XDD edytował ten post 21.07.2018 22:04