#pragma semicolon 1
#include <amxmodx>
#include <reapi>
#include <cstrike>
// Eger bir yetkisi olan adminin bundan etkilenmesini istemiyorsan // kodunu kaldir. (#define ...)
//#define ADMIN_AWP_ETKILENMEZ ADMIN_RCON
new g_iMaxAwpinRound[TeamName];
new bool:g_blBoughtAwp[MAX_CLIENTS + 1];
new cvar_awp_sinir;
public plugin_init()
{
register_plugin("awpsinir", "1.4", "purpoLess / edit");
cvar_awp_sinir = register_cvar("amx_awp_sinir", "3");
RegisterHookChain(RG_BuyWeaponByWeaponID, "@BuyWeaponByWeaponID_Pre", .post = false);
RegisterHookChain(RG_CSGameRules_RestartRound, "@CSGameRules_RestartRound_Pre", .post = false);
register_clcmd("amx_awplist", "Cmd_AwpList");
register_clcmd("say /awplist", "Cmd_AwpList");
register_clcmd("say_team /awplist", "Cmd_AwpList");
}
public client_putinserver(id)
{
g_blBoughtAwp[id] = false;
}
public client_disconnected(id)
{
g_blBoughtAwp[id] = false;
}
public Cmd_AwpList(id)
{
if(!is_user_connected(id))
{
return PLUGIN_HANDLED;
}
new szHud[512];
new szName[MAX_NAME_LENGTH];
new iLen;
new iCtCount;
new iTCount;
iLen += formatex(szHud[iLen], charsmax(szHud) - iLen, "CT Awp'leri:^n");
for(new i = 1; i <= MaxClients; i++)
{
if(!is_user_alive(i))
{
continue;
}
if(get_member(i, m_iTeam) != TEAM_CT)
{
continue;
}
if(!user_has_weapon(i, CSW_AWP))
{
continue;
}
get_user_name(i, szName, charsmax(szName));
iCtCount++;
iLen += formatex(szHud[iLen], charsmax(szHud) - iLen, "%d) %s^n", iCtCount, szName);
if(iLen >= charsmax(szHud) - 64)
{
break;
}
}
if(!iCtCount)
{
iLen += formatex(szHud[iLen], charsmax(szHud) - iLen, "Yok^n");
}
iLen += formatex(szHud[iLen], charsmax(szHud) - iLen, "^nT Awp'leri:^n");
for(new i = 1; i <= MaxClients; i++)
{
if(!is_user_alive(i))
{
continue;
}
if(get_member(i, m_iTeam) != TEAM_TERRORIST)
{
continue;
}
if(!user_has_weapon(i, CSW_AWP))
{
continue;
}
get_user_name(i, szName, charsmax(szName));
iTCount++;
iLen += formatex(szHud[iLen], charsmax(szHud) - iLen, "%d) %s^n", iTCount, szName);
if(iLen >= charsmax(szHud) - 64)
{
break;
}
}
if(!iTCount)
{
iLen += formatex(szHud[iLen], charsmax(szHud) - iLen, "Yok");
}
set_hudmessage(0, 255, 0, 0.02, 0.22, 0, 0.0, 3.0, 0.1, 0.2, 4);
show_hudmessage(id, "%s", szHud);
return PLUGIN_HANDLED;
}
@BuyWeaponByWeaponID_Pre(const pPlayer, const WeaponIdType:weaponID)
{
if(weaponID != WEAPON_AWP)
{
return HC_CONTINUE;
}
#if defined ADMIN_AWP_ETKILENMEZ
if(get_user_flags(pPlayer) & ADMIN_AWP_ETKILENMEZ)
{
return HC_CONTINUE;
}
#endif
if(get_member(pPlayer, m_iAccount) < 4750 || !cs_get_user_buyzone(pPlayer) || user_has_weapon(pPlayer, CSW_AWP))
{
return HC_CONTINUE;
}
if(g_blBoughtAwp[pPlayer])
{
client_print_color(pPlayer, pPlayer, "^4[SSS] ^1Bu roundda zaten ^3AWP ^1satin almissin!");
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
new iAwpSinir = get_pcvar_num(cvar_awp_sinir);
new TeamName:iTeam = get_member(pPlayer, m_iTeam);
if(g_iMaxAwpinRound[iTeam] >= iAwpSinir)
{
set_hudmessage(0, 255, 0, -1.0, 0.24, 0, 6.0, 5.0);
show_hudmessage(pPlayer, "[AWP SINIRINA ULASILDI]^n(- %i/%i -)", g_iMaxAwpinRound[iTeam], iAwpSinir);
client_print_color(pPlayer, pPlayer, "^4[SSS] ^1Takimda maksimum ^3%i ^1AWP alinabilir!", iAwpSinir);
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
g_blBoughtAwp[pPlayer] = true;
g_iMaxAwpinRound[iTeam]++;
for(new i = 1; i <= MaxClients; i++)
{
if(is_user_connected(i) && get_member(pPlayer, m_iTeam) == get_member(i, m_iTeam))
{
client_print_color(i, pPlayer, "^4[SSS] ^3%n ^1adli oyuncu ^3AWP ^1satin aldi. ^4(%i/%i)", pPlayer, g_iMaxAwpinRound[iTeam], iAwpSinir);
}
}
return HC_CONTINUE;
}
@CSGameRules_RestartRound_Pre()
{
for(new TeamName:i = TEAM_UNASSIGNED; i <= TEAM_SPECTATOR; i++)
{
g_iMaxAwpinRound[i] = 0;
}
for(new i = 1; i <= MaxClients; i++)
{
if(is_user_connected(i))
{
g_blBoughtAwp[i] = false;
}
}
}