@
john80#pragma semicolon 1
#include <amxmodx>
#include <reapi>
// Eger bir yetkisi olan adminin bundan etkilenmesini istemiyorsan // kodunu kaldir. (#define ...)
//#define ADMIN_AWP_ETKILENMEZ ADMIN_RCON
new g_iMaxAwpinRound[TeamName], bool:g_blBoughtAwp[MAX_CLIENTS+1];
new cvar_awp_sinir;
public plugin_init() {
register_plugin("Awp Siniri", "1.3", "PurposeLess / Edit");
// AWP Sınırı Cvar (Varsayılan 3)
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);
}
public client_putinserver(id) {
g_blBoughtAwp[id] = false;
}
@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_RCON) {
return HC_CONTINUE;
}
#endif
if(g_blBoughtAwp[pPlayer]) {
client_print_color(pPlayer, pPlayer, "^1[^4AWP BİLGİ^1] Zaten ^4AWP ^1satin almissiniz.");
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, "^1[^4AWP BİLGİ^1] ^3Takiminizda maksimum^1 %i ^4AWP ^1alinabilir.", iAwpSinir);
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
else {
for(new i = 1; i <= MaxClients; i++) {
if(is_user_connected(i) && get_member(pPlayer, m_iTeam) == get_member(i, m_iTeam)) {
// Sadece takım arkadaşlarına giden renkli mesaj
client_print_color(i, pPlayer, "^1[^4AWP BİLGİ^1] ^4@%n ^1AWP Aldi.", pPlayer);
}
}
}
g_blBoughtAwp[pPlayer] = true;
g_iMaxAwpinRound[iTeam]++;
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])
{
g_blBoughtAwp[i] = false;
}
}
}
Deneyin.
amx_awp_sinir komutuyla awp limitini ayarlayabilirsiniz. Mobilden düzenlemeye çalıştım sorunsuz derledi yazım yanlışları olabilir.