#include <amxmodx>
#include <reapi>
new const szTag[] = "BirAlem";
//new const iMenuAntiBugTask = 318502174;
new const sG_AwpModels[][][] = { {"","",0},
{"AWP User","models/basilah/vip/v_usawpba.mdl", ADMIN_USER},
{"AWP VIP","models/basilah/vips/v_awpvip_ba.mdl", ADMIN_CHAT},
{"AWP Gold VIP","models/basilah/newset/v_awp_biralem.mdl", ADMIN_LEVEL_A},
{"AWP Gold VIP II","models/basilah/newset2/v_gold2_awp.mdl", ADMIN_LEVEL_A},
{"AWP Admin","models/basilah/admin_new/v_awp_newba.mdl", ADMIN_LEVEL_D}
};
new const sG_DeagleModels[][][] = { {"","",0},
{"DEAGLE User","models/basilah/vip/v_usdgba.mdl", ADMIN_USER},
{"DEAGLE VIP","models/basilah/vips/v_deaglevip_ba.mdl", ADMIN_CHAT},
{"DEAGLE Gold VIP","models/basilah/newset/v_deagle_biralem.mdl", ADMIN_LEVEL_A},
{"DEAGLE Gold VIP II","models/basilah/newset2/v_gold2_deagle.mdl", ADMIN_LEVEL_A},
{"DEAGLE Admin","models/basilah/admin_new/v_deagle_newba.mdl", ADMIN_LEVEL_D}
};
new const sG_AK47Models[][][] = { {"","",0},
{"AK-47 User","models/basilah/vip/v_usakba.mdl", ADMIN_USER},
{"AK-47 VIP","models/basilah/vips/v_akvip_ba.mdl", ADMIN_CHAT},
{"AK-47 Gold VIP","models/basilah/newset/v_ak47_biralem.mdl", ADMIN_LEVEL_A},
{"AK-47 Gold VIP II","models/basilah/newset2/v_gold2_ak47.mdl", ADMIN_LEVEL_A},
{"AK-47 Admin","models/basilah/admin_new/v_ak47_newba.mdl", ADMIN_LEVEL_D}
};
new const sG_M4A1Models[][][] = { {"","",0},
{"M4A1 User","models/basilah/vip/v_usm4ba.mdl", ADMIN_USER},
{"M4A1 VIP","models/basilah/vips/v_m4a1vip_ba.mdl", ADMIN_CHAT},
{"M4A1 Gold VIP","models/basilah/newset/v_m4a1_biralem.mdl", ADMIN_LEVEL_A},
{"M4A1 Gold VIP II","models/basilah/newset2/v_gold2_m4a1.mdl", ADMIN_LEVEL_A},
{"M4A1 Admin","models/basilah/admin_new/v_m4a1_newba.mdl", ADMIN_LEVEL_D}
};
new const sG_Pistols[6][] = {
"weapon_usp","weapon_glock18","weapon_deagle","weapon_elite","weapon_p228","weapon_fiveseven"
};
new const sG_Weapons[18][] = {
"weapon_m4a1","weapon_awp","weapon_scout","weapon_xm1014","weapon_mac10","weapon_aug","weapon_ump45","weapon_sg550","weapon_galil",
"weapon_famas","weapon_mp5navy","weapon_m249","weapon_m3","weapon_m4a1","weapon_tmp","weapon_g3sg1","weapon_ak47","weapon_p90"
};
//Eger bir yetkisi olan adminin bundan etkilenmesini istemiyorsan // kodunu kaldir. (#define ...)
#define ADMIN_AWP_ETKILENMEZ ADMIN_RCON
new g_Sizeof[4],iWeaponSilahID[MAX_PLAYERS+1][4],bool:blAktif[MAX_PLAYERS+1],/*iMenuAntiBug[MAX_PLAYERS+1],iCvars[1],*/g_iMaxAwpinRound[TeamName],
bool:g_blBoughtAwp[MAX_CLIENTS+1], iAwpSinir;
public plugin_init()
{
register_plugin("BirAlem VIP Menu", "1.0", "scuro");
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "@WeaponDeploy", .post = false);
RegisterHookChain(RG_CBasePlayer_Spawn, "@IsSpawn", .post = true);
RegisterHookChain(RG_BuyWeaponByWeaponID, "@BuyWeaponByWeaponID_Pre", .post = false);
RegisterHookChain(RG_CSGameRules_RestartRound, "@CSGameRules_RestartRound_Pre", .post = false);
//bind_pcvar_num(create_cvar("vipmenu_menukapa","20"),iCvars[0]);
register_clcmd("say /skin","@VIPMenu");
register_clcmd("say .skin","@VIPMenu");
}
public plugin_precache(){
g_Sizeof[0]=sizeof(sG_AwpModels);
g_Sizeof[1]=sizeof(sG_DeagleModels);
g_Sizeof[2]=sizeof(sG_AK47Models);
g_Sizeof[3]=sizeof(sG_M4A1Models);
new i;
for(i=1;i<g_Sizeof[0];i++) {
precache_model(sG_AwpModels[i][1]);
}
for(i=1;i<g_Sizeof[1];i++) {
precache_model(sG_DeagleModels[i][1]);
}
for(i=1;i<g_Sizeof[2];i++) {
precache_model(sG_AK47Models[i][1]);
}
for(i=1;i<g_Sizeof[3];i++) {
precache_model(sG_M4A1Models[i][1]);
}
}
public client_disconnected(iPlayer){
for(new i=0;i<3;i++) {
iWeaponSilahID[iPlayer][i] = 0;
}
g_blBoughtAwp[iPlayer] = false;
blAktif[iPlayer] = false;
//iMenuAntiBug[iPlayer] = false;
//if(task_exists(iPlayer + iMenuAntiBugTask)) remove_task(iPlayer+iMenuAntiBugTask);
}
@WeaponDeploy(const iP_Ent, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal) {
new iP_ID = get_member(iP_Ent, m_pPlayer);
if(!is_user_alive(iP_ID)) return;
if(get_member(iP_Ent, m_iId) == WEAPON_AWP && iWeaponSilahID[iP_ID][0]>0) SetHookChainArg(2, ATYPE_STRING, sG_AwpModels[iWeaponSilahID[iP_ID][0]][1][0]);
if(get_member(iP_Ent, m_iId) == WEAPON_DEAGLE && iWeaponSilahID[iP_ID][1]>0) SetHookChainArg(2, ATYPE_STRING, sG_DeagleModels[iWeaponSilahID[iP_ID][1]][1][0]);
if(get_member(iP_Ent, m_iId) == WEAPON_AK47 && iWeaponSilahID[iP_ID][2]>0) SetHookChainArg(2, ATYPE_STRING, sG_AK47Models[iWeaponSilahID[iP_ID][2]][1][0]);
if(get_member(iP_Ent, m_iId) == WEAPON_M4A1 && iWeaponSilahID[iP_ID][3]>0) SetHookChainArg(2, ATYPE_STRING, sG_M4A1Models[iWeaponSilahID[iP_ID][3]][1][0])
}
@IsSpawn(const iPlayer) {
if(get_member(iPlayer, m_bJustConnected)) return;
if(blAktif[iPlayer]) @GiveExtra(iPlayer);
//iMenuAntiBug[iPlayer] = false;
//if(task_exists(iPlayer + iMenuAntiBugTask)) remove_task(iPlayer+iMenuAntiBugTask);
//set_task(float(iCvars[0]),"@MenuKapat",iPlayer+iMenuAntiBugTask);
}
@VIPMenu(const iP_ID) {
/*if((get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) + 1) < 3) {
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1ilk 3 round ^4Skin Menu ^3kullanilamaz.",szTag);
return PLUGIN_HANDLED;
}
if(iMenuAntiBug[iP_ID]){
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1%i saniye doldu ^4Skin Menu ^3kullanilamaz.",szTag,iCvars[0]);
return PLUGIN_HANDLED;
}*/
new Menu = menu_create(fmt("\d( \r%s \d) \y• \wSkin Menu", szTag), "@VIPMenu_");
if(!equali(MapName,"de_dust2_long")) menu_additem(Menu,fmt("\r[\y%s\r] \d• \wAWP Skin", szTag),"1");
menu_additem(Menu,fmt("\r[\y%s\r] \d• \wAK47 Skin", szTag),"2");
menu_additem(Menu,fmt("\r[\y%s\r] \d• \wM4A1 Skin", szTag),"3");
menu_additem(Menu,fmt("\r[\y%s\r] \d• \wDeagle Skin", szTag),"4");
menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iP_ID, Menu);
return PLUGIN_HANDLED;
}
@VIPMenu_(const iP_ID,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
new iData[6], iL_Key;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iL_Key = str_to_num(iData);
switch(iL_Key) {
case 1: @AwpSkins(iP_ID);
case 2: @AK47Skins(iP_ID);
case 3: @M4A1Skins(iP_ID);
case 4: @DeagleSkins(iP_ID);
}
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@AwpSkins(const iP_ID) {
new Menu = menu_create(fmt("\d( \r%s \d) \y• \wAwp Skinleri", szTag), "@AwpSkins_");
for(new i=1; i < g_Sizeof[0]; i++) {
(get_user_flags(iP_ID) & sG_AwpModels[i][2][0]) ?
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[%s\d]", szTag,sG_AwpModels[i][0][0],iWeaponSilahID[iP_ID][0] == i ? "\yAktif":"\rPasif"),fmt("%i",i)):
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[\rYetkin Yetersiz\d]", szTag,sG_AwpModels[i][0][0]),fmt("%i",i));
}
menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iP_ID, Menu);
return PLUGIN_HANDLED;
}
@AwpSkins_(const iP_ID,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
new iData[6], iL_Key;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iL_Key = str_to_num(iData);
if(get_user_flags(iP_ID) & sG_AwpModels[iL_Key][2][0]) {
iWeaponSilahID[iP_ID][0] = iWeaponSilahID[iP_ID][0] != iL_Key ? iL_Key:0;
for(new i=0; i < sizeof(sG_Weapons); i++){
rg_remove_item(iP_ID, sG_Weapons[i][0])
}
if(rg_has_item_by_name(iP_ID, "weapon_awp")) rg_remove_item(iP_ID, "weapon_awp");
rg_give_item(iP_ID, "weapon_awp"),rg_set_user_bpammo(iP_ID, WEAPON_AWP, 30);
@GiveExtra(iP_ID);
blAktif[iP_ID] = true;
g_blBoughtAwp[iP_ID] = true;
new TeamName:iTeam = get_member(iP_ID, m_iTeam);
g_iMaxAwpinRound[iTeam]++;
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Basarili bir sekilde ^3[^4%s^3] ^1skin ^3%s ^1edildi.",szTag,sG_AwpModels[iL_Key][0][0], iWeaponSilahID[iP_ID][0] != iL_Key ? "pasif":"aktif");
}
else {
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Yetkiniz yeterli degil.",szTag);
}
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@DeagleSkins(const iP_ID) {
new Menu = menu_create(fmt("\d( \r%s \d) \y• \wDeagle Skinleri", szTag), "@DeagleSkins_");
for(new i=1; i < g_Sizeof[1]; i++) {
(get_user_flags(iP_ID) & sG_DeagleModels[i][2][0]) ?
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[%s\d]", szTag,sG_DeagleModels[i][0][0],iWeaponSilahID[iP_ID][1] == i ? "\yAktif":"\rPasif"),fmt("%i",i)):
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[\rYetkin Yetersiz\d]", szTag,sG_DeagleModels[i][0][0]),fmt("%i",i));
}
menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iP_ID, Menu);
return PLUGIN_HANDLED;
}
@DeagleSkins_(const iP_ID,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
new iData[6], iL_Key;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iL_Key = str_to_num(iData);
if(get_user_flags(iP_ID) & sG_DeagleModels[iL_Key][2][0]) {
iWeaponSilahID[iP_ID][1] = iWeaponSilahID[iP_ID][1] != iL_Key ? iL_Key:0;
if(rg_has_item_by_name(iP_ID, "weapon_deagle")) rg_remove_item(iP_ID, "weapon_deagle");
rg_give_item(iP_ID, "weapon_deagle"),rg_set_user_bpammo(iP_ID, WEAPON_DEAGLE, 35);
@GiveExtra(iP_ID);
blAktif[iP_ID] = true;
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Basarili bir sekilde ^3[^4%s^3] ^1skin ^3%s ^1edildi.",szTag,sG_DeagleModels[iL_Key][0][0], iWeaponSilahID[iP_ID][1] != iL_Key ? "pasif":"aktif");
}
else {
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Yetkiniz yeterli degil. ^4gereken yetki ^3%s",szTag,read_flags(sG_DeagleModels[iL_Key][2][0]));
}
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@AK47Skins(const iP_ID) {
new Menu = menu_create(fmt("\d( \r%s \d) \y• \wAK47 Skinleri", szTag), "@AK47Skins_");
for(new i=1; i < g_Sizeof[2]; i++) {
(get_user_flags(iP_ID) & sG_AK47Models[i][2][0]) ?
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[%s\d]", szTag,sG_AK47Models[i][0][0],iWeaponSilahID[iP_ID][2] == i ? "\yAktif":"\rPasif"),fmt("%i",i)):
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[\rYetkin Yetersiz\d]", szTag,sG_AK47Models[i][0][0]),fmt("%i",i));
}
menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iP_ID, Menu);
return PLUGIN_HANDLED;
}
@AK47Skins_(const iP_ID,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
new iData[6], iL_Key;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iL_Key = str_to_num(iData);
if(get_user_flags(iP_ID) & sG_AK47Models[iL_Key][2][0]) {
iWeaponSilahID[iP_ID][2] = iWeaponSilahID[iP_ID][2] != iL_Key ? iL_Key:0;
/*for(new i=0; i < sizeof(sG_Weapons); i++){
rg_remove_item(iP_ID, sG_Weapons[i][0])
}
if(rg_has_item_by_name(iP_ID, "weapon_ak47")) rg_remove_item(iP_ID, "weapon_ak47");
rg_give_item(iP_ID, "weapon_ak47"),rg_set_user_bpammo(iP_ID, WEAPON_AK47, 90);*/
@GiveExtra(iP_ID);
blAktif[iP_ID] = true;
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Basarili bir sekilde ^3[^4%s^3] ^1skin ^3%s ^1edildi.",szTag,sG_AK47Models[iL_Key][0][0], iWeaponSilahID[iP_ID][2] != iL_Key ? "pasif":"aktif");
}
else {
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Yetkiniz yeterli degil. ^4gereken yetki ^3%s",szTag,read_flags(sG_AK47Models[iL_Key][2][0]));
}
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@M4A1Skins(const iP_ID) {
new Menu = menu_create(fmt("\d( \r%s \d) \y• \wM4A1 Skinleri", szTag), "@M4A1Skins_");
for(new i=1; i < g_Sizeof[3]; i++) {
(get_user_flags(iP_ID) & sG_M4A1Models[i][2][0]) ?
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[%s\d]", szTag,sG_M4A1Models[i][0][0],iWeaponSilahID[iP_ID][3] == i ? "\yAktif":"\rPasif"),fmt("%i",i)):
menu_additem(Menu,fmt("\r[\y%s\r] \d• \w%s \d[\rYetkin Yetersiz\d]", szTag,sG_M4A1Models[i][0][0]),fmt("%i",i));
}
menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iP_ID, Menu);
return PLUGIN_HANDLED;
}
@M4A1Skins_(const iP_ID,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
new iData[6], iL_Key;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iL_Key = str_to_num(iData);
if(get_user_flags(iP_ID) & sG_M4A1Models[iL_Key][2][0]) {
iWeaponSilahID[iP_ID][3] = iWeaponSilahID[iP_ID][3] != iL_Key ? iL_Key:0;
/*for(new i=0; i < sizeof(sG_Weapons); i++){
rg_remove_item(iP_ID, sG_Weapons[i][0])
}
if(rg_has_item_by_name(iP_ID, "weapon_m4a1")) rg_remove_item(iP_ID, "weapon_m4a1");
rg_give_item(iP_ID, "weapon_m4a1"),rg_set_user_bpammo(iP_ID, WEAPON_M4A1, 90);*/
@GiveExtra(iP_ID);
blAktif[iP_ID] = true;
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Basarili bir sekilde ^3[^4%s^3] ^1skin ^3%s ^1edildi.",szTag,sG_M4A1Models[iL_Key][0][0], iWeaponSilahID[iP_ID][3] != iL_Key ? "pasif":"aktif");
}
else {
client_print_color(iP_ID, iP_ID, "^4[^3%s^4] ^1Yetkiniz yeterli degil. ^4gereken yetki ^3%s",szTag,read_flags(sG_M4A1Models[iL_Key][2][0]));
}
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@GiveExtra(const iPlayer){
for(new i=0; i < sizeof(sG_Pistols); i++){
rg_remove_item(iPlayer, sG_Pistols[i][0])
}
rg_give_item(iPlayer,"weapon_deagle");
rg_set_user_bpammo(iPlayer, WEAPON_DEAGLE,35);
//rg_give_item(iPlayer,"weapon_hegrenade");
//rg_give_item(iPlayer,"weapon_flashbang");//rg_set_user_bpammo(iPlayer, WEAPON_FLASHBANG, 2);
rg_set_user_armor(iPlayer, 100, ARMOR_VESTHELM);
}
/*@MenuKapat(const iTaskim){
new iPlayer = iTaskim - iMenuAntiBugTask;
iMenuAntiBug[iPlayer]=true;
show_menu(iPlayer, 0, "");
}*/
@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[^4BirAlem^1] ^3Zaten ^4AWP ^3almissin.");
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
AwpSinirAyarla();
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], g_iMaxAwpinRound[iTeam]);
client_print_color(pPlayer, pPlayer, "^1[^4BirAlem^1] ^3Takiminizda maksimum^1 %i ^4AWP alinabilir.", g_iMaxAwpinRound[iTeam]);
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)) {
//client_print_color(i, pPlayer, "^1[^4BirAlem^1] ^3Awp alan oyuncu ^4%n",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;
}
}
}
stock AwpSinirAyarla()
{
new Players[32], iNum;
get_players(Players, iNum, "ch");
if(iNum <= 10)
{
iAwpSinir = 1;
}
else if(11 <= iNum <= 20)
{
iAwpSinir = 2;
}
else if(21 <= iNum <= 32)
{
iAwpSinir = 2;
}
}