#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
#pragma semicolon 1
#define MONEYBUY // ha nem szeretned hogy a jatekbeli penzer vonja rakj ele egy // jelet.
#define MAXPLAYERS 33
new const cPrefix[] = "PREFIX";
new Array: aWeaponIni;
enum _:eWeapons{eWeaponName[64],eWeaponAmmo,eWeaponType2[64],eWeaponPrize,};
enum _:ePlayer{eMinTeamCT,eMinTeamT,eCounterCT,eCounterT,};
new g_ePlayer[ePlayer];
new bool:g_bChoosed[MAXPLAYERS];
public plugin_init(){
register_plugin("Fegyvermenu", "1.0", "Hell");
register_clcmd("say /fegyo", "weapon_m");
RegisterHam(Ham_Spawn, "player", "spawnplayer_p", 1);
g_ePlayer[eMinTeamCT] = register_cvar("ctmin", "2");
g_ePlayer[eMinTeamT] = register_cvar("tmin", "2");
}
public spawnplayer_p(id)
{
if(!is_user_alive(id))
return HAM_IGNORED;
strip_user_weapons(id);
g_ePlayer[eCounterCT] = 0; g_ePlayer[eCounterT] = 0;
give_item(id, "weapon_knife");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
g_bChoosed[id] = false;
weapon_m(id);
return HAM_IGNORED;
}
public weapon_m(id)
{
if(g_bChoosed[id] == true)
{
client_print_color(id, print_team_default, "^4[%s] ^3»^1 Már válaszottál fegyvert!",cPrefix);
return;
}
new sText[128], iRow[8];
static eData[eWeapons];
formatex(sText, charsmax(sText), "\d[%s]\w |\d Nagy fegyverek^n\wVálassz fegyvert",cPrefix);
new iMenu = menu_create(sText, "weapon_mh");
for(new i = 0; i < 10; i++)
{
ArrayGetArray(aWeaponIni, i, eData);
num_to_str(i, iRow, charsmax(iRow));
formatex(sText, charsmax(sText), "%s - %d$", eData[eWeaponName], eData[eWeaponPrize]);
menu_additem(iMenu, sText, iRow);
}
menu_setprop(iMenu, MPROP_BACKNAME, "\wVissza");
menu_setprop(iMenu, MPROP_NEXTNAME, "\wKövetkező");
menu_setprop(iMenu, MPROP_EXITNAME, "\wKilépés");
menu_display(id, iMenu, 0);
}
public weapon_mh(id, iMenu, iItem)
{
if(iItem == MENU_EXIT){menu_destroy(iMenu); return PLUGIN_HANDLED;}
new sData[10], sName[64], iPlayer[2][32], iTeam[2], iMax;
new iAccess, iCallback;
static eData[eWeapons];
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
get_players(iPlayer[0], iTeam[0], "ce", "CT");
get_players(iPlayer[1], iTeam[1], "ce", "T");
ArrayGetArray(aWeaponIni, iKey, eData);
if(iTeam[0] > 6 && iTeam[1] > 6)
iMax = 2;
else
iMax = 1;
#if defined MONEYBUY
if(eData[eWeaponPrize] > cs_get_user_money(id))
{
client_print_color(id, print_team_default, "^4[%s] ^3»^1 Nincs elegendő pénzed erre!",cPrefix);
return PLUGIN_HANDLED;
}
#endif
if(iKey == 2)
{
if(iTeam[0] < g_ePlayer[eMinTeamCT] || iTeam[1] < g_ePlayer[eMinTeamT])
{
client_print_color(id, print_team_default, "^4[%s] ^3»^1 Nincs elegendő játékos valamelyik csapatban, hogy awpt használj!",cPrefix);
weapon_m(id);
return PLUGIN_HANDLED;
}
if(get_user_team(id) == 2)
{
if(g_ePlayer[eCounterCT] > iMax)
{
client_print_color(id, print_team_default, "^4[%s] ^3»^1 A csapatod elérte az awp limitet.",cPrefix);
weapon_m(id);
return PLUGIN_HANDLED;
}
g_ePlayer[eCounterCT]++;
}
else if(get_user_team(id) == 1)
{
if(g_ePlayer[eCounterT] > iMax)
{
client_print_color(id, print_team_default, "^4[%s] ^3»^1 A csapatod elérte az awp limitet.",cPrefix);
weapon_m(id);
return PLUGIN_HANDLED;
}
g_ePlayer[eCounterT]++;
}
}
give_item(id, eData[eWeaponType2]);
give_item(id, "item_assaultsuit");
give_bpammo(id, eData[eWeaponType2], iKey);
#if defined MONEYBUY
cs_set_user_money(id, cs_get_user_money(id)-eData[eWeaponPrize]);
#endif
client_print_color(id, print_team_default, "^4[%s] ^3» ^1Kiválasztottad a(z) %s nagyfegyvert.",cPrefix, eData[eWeaponName]);
weaponmimi_m(id);
return PLUGIN_HANDLED;
}
public weaponmimi_m(id)
{
new sText[128], iRow[8];
static eData[eWeapons];
formatex(sText, charsmax(sText), "\d[%s]\w Kis fegyverek^n\wVálassz fegyvert",cPrefix);
new iMenu = menu_create(sText, "weaponmimi_mh");
for(new i = 11; i < 14; i++)
{
ArrayGetArray(aWeaponIni, i, eData);
num_to_str(i, iRow, charsmax(iRow));
formatex(sText, charsmax(sText), "%s- %d$", eData[eWeaponName], eData[eWeaponPrize]);
menu_additem(iMenu, sText, iRow);
}
menu_setprop(iMenu, MPROP_EXITNAME, "\wKilépés");
menu_display(id, iMenu, 0);
}
public weaponmimi_mh(id, iMenu, iItem)
{
if(iItem == MENU_EXIT){menu_destroy(iMenu); return PLUGIN_HANDLED;}
new sData[10], sName[64];
static eData[eWeapons];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
ArrayGetArray(aWeaponIni, iKey, eData);
#if defined MONEYBUY
if(eData[eWeaponPrize] > cs_get_user_money(id))
{
client_print_color(id, print_team_default, "^4[%s] ^3»^1 Nincs elegendő pénzed erre!",cPrefix);
return PLUGIN_HANDLED;
}
#endif
give_item(id, eData[eWeaponType2]);
give_item(id, "item_assaultsuit");
give_bpammo(id, eData[eWeaponType2], iKey);
#if defined MONEYBUY
cs_set_user_money(id, cs_get_user_money(id)-eData[eWeaponPrize]);
#endif
client_print_color(id, print_team_default, "^4[%s] ^3»^1 Kiválasztottad a(z) %s kisfegyvert.",cPrefix, eData[eWeaponName]);
g_bChoosed[id] = true;
return PLUGIN_HANDLED;
}
public client_disconnected(id)
{
if(is_user_bot(id))
return PLUGIN_HANDLED;
g_bChoosed[id] = false;
return PLUGIN_HANDLED;
}
public LoadWeapons(){
aWeaponIni = ArrayCreate(eWeapons);
new sPath[40];
get_configsdir(sPath, charsmax(sPath));
format(sPath, charsmax(sPath), "%s/weaponmenu.ini", sPath);
if(!file_exists(sPath))
{
log_amx("[HIBA]: Ez a fájl nem létezik: (%s).", sPath);
return PLUGIN_HANDLED;
}
if(file_exists(sPath))
{
enum _:eDatas{enumData[64],enumData2[64],enumData3[64],enumData4[64],
}
new sData[eDatas];
new sLineData[512], iLine;
new iFile = fopen(sPath, "rt");
if (!iFile) return PLUGIN_HANDLED;
while(!feof(iFile))
{
fgets(iFile, sLineData, charsmax(sLineData));
replace(sLineData, charsmax(sLineData), "^n", "");
if(sLineData[0] == ';' || !sLineData[0]) continue;
parse(sLineData, sData[enumData], charsmax(sData), sData[enumData2], charsmax(sData), sData[enumData3], charsmax(sData),
sData[enumData4], charsmax(sData));
remove_quotes(sData[enumData]);
remove_quotes(sData[enumData2]);
remove_quotes(sData[enumData3]);
remove_quotes(sData[enumData4]);
static eData[eWeapons];
copy(eData[eWeaponName], sizeof(eData[eWeaponName]) - 1, sData[enumData]);
eData[eWeaponAmmo] = str_to_num(sData[enumData2]);
copy(eData[eWeaponType2], sizeof(eData[eWeaponType2]) - 1, sData[enumData3]);
eData[eWeaponPrize] = str_to_num(sData[enumData4]);
ArrayPushArray(aWeaponIni, eData);
iLine++;
}
fclose(iFile);
}
return PLUGIN_HANDLED;
}
stock give_bpammo(id, const sWeapon[], iKey)
{
static eData[eWeapons];
ArrayGetArray(aWeaponIni, iKey, eData);
new iWeaponid = get_weaponid(sWeapon);
cs_set_user_bpammo(id, iWeaponid, eData[eWeaponAmmo]);
}
public plugin_precache()
LoadWeapons();
public plugin_end()
ArrayDestroy(aWeaponIni);