#include <amxmodx>
#include <cstrike>
#include <reapi>
#include <fakemeta>
#define PLUGIN "Yekta's Combo Sprite"
#define VERSION "1.3"
#define AUTHOR "Yek'-ta"
#define SHOWTIME 1.5 //it should be float
#define HUD_HIDE_FLASH (1<<1)
#define HUD_HIDE_CROSS (1<<6)
#define HUD_DRAW_CROSS (1<<7)
new g_msgHideWeapon,iMsgCrosshair;
#define CSW_SHIELD 2
new isitON[33]
new kills[33]
enum _:MESSAGES {
g_iMsg_WeaponList,
g_iMsg_ScreenFade,
g_iMsg_CurWeapon,
g_iMsg_ForceCam,
g_iMsg_SetFOV,
g_iMsg_HideWeapon
}
new g_Messages[MESSAGES];
new g_Messages_Name[MESSAGES][] = {
"WeaponList",
"ScreenFade",
"CurWeapon",
"ForceCam",
"SetFOV",
"HideWeapon"
}
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR)
iMsgCrosshair = get_user_msgid("Crosshair");
g_msgHideWeapon = get_user_msgid("HideWeapon");
for(new i; i < sizeof g_Messages; i++){
g_Messages[i] = get_user_msgid(g_Messages_Name[i]);
//register_message(g_Messages[i], "block");
}
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn",true);
RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed", true);
register_event("CurWeapon","comboHudGoster","be", "1=1")
}
public plugin_precache(){
precache_model("sprites/yek_combo/spr/alarm_headshot.spr")
new forstring[52];
for(new i=0;i<15;i++){
formatex(forstring,charsmax(forstring),"sprites/yek_combo/txt/%ialarm_headshot.txt", i)
precache_generic(forstring)
}
}
public CBasePlayer_Killed(iVictim, iKiller)
{
if(!is_user_connected(iKiller) || iVictim == iKiller)
return HC_CONTINUE;
kills[iVictim] = 0
kills[iKiller] += 1;
remove_task(1997+iKiller);
if(get_member(iVictim, m_bHeadshotKilled))
{
isitON[iKiller] = 12
comboHudGoster(iKiller)
}
set_task(SHOWTIME,"RemoveHUD",1997+iKiller);
return HC_CONTINUE;
}
public RemoveHUD(numara){
Hide_NormalCrosshair(numara-1997, 0);
show_crosshair(numara-1997, 0)
isitON[numara-1997] = 0;
}
public CBasePlayer_Spawn(oyuncu){
kills[oyuncu] = 0;
}
public comboHudGoster(id){
if(isitON[id] == 0){
return PLUGIN_HANDLED
}
else if(cs_get_user_zoom(id) >= 2){
return PLUGIN_HANDLED
}
static userwpn, prim,sec, sprtxt[52], iAmmoType
userwpn = get_user_weapon(id, prim, sec)
iAmmoType = rg_get_weapon_info(userwpn, WI_AMMO_TYPE);
//server_print("wpn id: %d", iAmmoType)
if(isitON[id] == 11) {
formatex(sprtxt,charsmax(sprtxt),"yek_combo/txt/%dalarm_headshot", iAmmoType)
}
switch (userwpn)
{
case CSW_P228: { Msg_WeaponList(id, sprtxt,9,52,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_HEGRENADE: { Msg_WeaponList(id, sprtxt,12,1,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_XM1014: { Msg_WeaponList(id, sprtxt,5,32,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_C4: { Msg_WeaponList(id, sprtxt,14,1,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_MAC10: { Msg_WeaponList(id, sprtxt,6,100,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_AUG: { Msg_WeaponList(id, sprtxt,4,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_SMOKEGRENADE: { Msg_WeaponList(id, sprtxt,13,1,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_ELITE: { Msg_WeaponList(id, sprtxt,10,120,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_FIVESEVEN: { Msg_WeaponList(id, sprtxt,7,100,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_UMP45: { Msg_WeaponList(id, sprtxt,6,100,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_GALIL: { Msg_WeaponList(id, sprtxt,4,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_FAMAS: { Msg_WeaponList(id, sprtxt,4,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_USP: { Msg_WeaponList(id, sprtxt,6,100,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_GLOCK18: { Msg_WeaponList(id, sprtxt,10,120,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_MP5NAVY: { Msg_WeaponList(id, sprtxt,10,120,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_M249: { Msg_WeaponList(id, sprtxt,3,200,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_M3: {Msg_WeaponList(id, sprtxt,5,32,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_M4A1: { Msg_WeaponList(id, sprtxt,4,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_TMP: { Msg_WeaponList(id, sprtxt,10,120,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_FLASHBANG: { Msg_WeaponList(id, sprtxt,11,2,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_DEAGLE: { Msg_WeaponList(id, sprtxt,8,35,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_SG552: { Msg_WeaponList(id, sprtxt,4,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_AK47: { Msg_WeaponList(id, sprtxt,2,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_KNIFE:{ Msg_WeaponList(id, sprtxt,-1,-1,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_P90: { Msg_WeaponList(id, sprtxt,7,100,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 0); }
case CSW_SCOUT: { Msg_WeaponList(id, sprtxt,2,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 1); }
case CSW_AWP: { Msg_WeaponList(id, sprtxt,1,30,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 1); }
case CSW_SG550: { Msg_WeaponList(id, sprtxt,4,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 1); }
case CSW_G3SG1: { Msg_WeaponList(id, sprtxt,2,90,-1,-1,0,11,CSW_SHIELD,0);Hide_NormalCrosshair(id, 1); }
}
Msg_SetFOV(id, 89);
Msg_CurWeapon(id, 1,CSW_SHIELD,prim);
Msg_SetFOV(id, 90);
return PLUGIN_CONTINUE
}
stock Hide_NormalCrosshair(id, flag){
if(flag == 1)
{
message_begin(MSG_ONE, g_msgHideWeapon, _, id);
write_byte(HUD_HIDE_CROSS | HUD_HIDE_FLASH);
message_end();
}
else
{
message_begin(MSG_ONE, g_msgHideWeapon, _, id);
write_byte(HUD_DRAW_CROSS | HUD_HIDE_FLASH);
message_end();
}
}
stock show_crosshair(id, flag)
{
message_begin(MSG_ONE_UNRELIABLE, iMsgCrosshair, _, id);
write_byte(flag);
message_end();
}
stock Msg_CurWeapon(id, IsActive,WeaponID,ClipAmmo){
message_begin(MSG_ONE,g_Messages[g_iMsg_CurWeapon], {0,0,0}, id);
write_byte(IsActive);
write_byte(WeaponID);
write_byte(ClipAmmo);
message_end();
}
stock Msg_WeaponList(id, const WeaponName[],PrimaryAmmoID,PrimaryAmmoMaxAmount,SecondaryAmmoID,SecondaryAmmoMaxAmount,
SlotID,NumberInSlot,WeaponID,Flags){
message_begin(MSG_ONE,g_Messages[g_iMsg_WeaponList], {0,0,0}, id);
write_string(WeaponName);
write_byte(PrimaryAmmoID);
write_byte(PrimaryAmmoMaxAmount);
write_byte(SecondaryAmmoID);
write_byte(SecondaryAmmoMaxAmount);
write_byte(SlotID);
write_byte(NumberInSlot);
write_byte(WeaponID);
write_byte(Flags);
message_end();
}
stock Msg_SetFOV(id, Degrees){
message_begin(MSG_ONE,g_Messages[g_iMsg_SetFOV], {0,0,0}, id);
write_byte(Degrees);
message_end();
}
stock Msg_HideWeapon(id, Flags){
message_begin(MSG_ONE,g_Messages[g_iMsg_HideWeapon], {0,0,0}, id);
write_byte(Flags);
message_end();
}