#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>
#include <sqlx>
#define PLUGIN "New Plugin"
#define AUTHOR "Unknown"
#define VERSION "1.0"
#define MAXPLAYERS 33
#define TULAJ ADMIN_IMMUNITY
#define ADMIN ADMIN_BAN
#define VIP ADMIN_LEVEL_H
new const SQL_INFO[][] = {"","","",""};
enum eCvar{eCpref,eMpref,};
new cvarS[eCvar];
enum ePlayer{eKills, eUnclockedSkin};
new Player[ePlayer][MAXPLAYERS];
enum _:eWData {eWName[64],eWFile[64],eWKill,eWType[64],};
new iActiveSkin[13][33], iWeaponKills[13][33], iLoadedSkins, iTempID, iMaxPlayers, iChoosedMode, gSteamID[128], SyncHud;
new Handle:SqlTuple;
new Array: aWSkins;
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_impulse(201, "main_menu");
register_clcmd("say /menu", "main_menu");
cvarS[eCpref] = register_cvar("C_Pref", "^4[.:White*_*Fire:.]^3");
cvarS[eMpref] = register_cvar("M_Pref", "\y[.:White*_*Fire:.]\y");
register_clcmd("type_itemremoveoradd", "type_itemammount");
RegisterHam(Ham_Killed, "player", "PlayerKilled_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_awp", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_scout", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_famas", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_galil", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_aug", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_m3", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_xm1014", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_knife", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_deagle", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_usp", "WeaponChange_p", 1);
RegisterHam(Ham_Item_Deploy, "weapon_glock18", "WeaponChange_p", 1);
register_clcmd("say", "sayhook");
register_clcmd("say_team", "sayteamhook");
iMaxPlayers = get_maxplayers();
SyncHud = CreateHudSyncObj();
}
public InfoHud(id)
{
new eData[eWData];
new idT;
new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
idT = is_user_alive(id) ? id:Target;
new iWeapon = get_user_weapon(idT);
set_hudmessage(0, 255, 0, -1.0, 0.80, 0, 6.0, 1.1, 0.1, 0.2, -1);
set_task(1.0, "InfoHud", id);
switch(iWeapon){
case CSW_M4A1: {if(iActiveSkin[0][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;} ArrayGetArray(aWSkins, iActiveSkin[0][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[0][id]);}
case CSW_AK47: {if(iActiveSkin[1][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[1][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[1][id]);}
case CSW_AWP: {if(iActiveSkin[2][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[2][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[2][id]);}
case CSW_SCOUT: {if(iActiveSkin[3][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[3][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[3][id]);}
case CSW_FAMAS: {if(iActiveSkin[4][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[4][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[4][id]);}
case CSW_GALIL: {if(iActiveSkin[5][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[5][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[5][id]);}
case CSW_AUG: {if(iActiveSkin[6][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[6][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[6][id]);}
case CSW_M3: {if(iActiveSkin[7][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[7][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[7][id]);}
case CSW_XM1014: {if(iActiveSkin[8][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[8][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[8][id]);}
case CSW_KNIFE: {if(iActiveSkin[9][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[9][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[9][id]);}
case CSW_DEAGLE: {if(iActiveSkin[10][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[10][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[10][id]);}
case CSW_USP: {if(iActiveSkin[11][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[11][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[11][id]);}
case CSW_GLOCK18:{if(iActiveSkin[12][id] == -1){ShowSyncHudMsg(id, SyncHud, "--");return;}ArrayGetArray(aWSkins, iActiveSkin[12][id], eData);ShowSyncHudMsg(id, SyncHud, "Fegyver neve: %s, Ölések: %d", eData[eWName], iWeaponKills[12][id]);}
}
}
public plugin_precache(){
LoadSkins();
}
public LoadSkins(){
aWSkins = ArrayCreate(eWData);
new sPath[40];
get_configsdir(sPath, charsmax(sPath));
format(sPath, charsmax(sPath), "%s/skins.ini", sPath);
if(!file_exists(sPath)){
log_amx("[HIBA]: Ez a f??jl nem l??tezik: (%s).", sPath);
return;
}
if(file_exists(sPath)){
enum aDatas{eName[64],eFile[64],eKill2[64],eType[64],};
new sData[aDatas];
new sLineData[512], iLine;
new iFile = fopen(sPath, "rt");
while(!feof(iFile)){
fgets(iFile, sLineData, charsmax(sLineData));
replace(sLineData, charsmax(sLineData), "^n", "");
if(sLineData[0] == ';' || !sLineData[0]) continue;
parse(sLineData, sData[eName], charsmax(sData), sData[eFile], charsmax(sData), sData[eKill2], charsmax(sData),
sData[eType], charsmax(sData));
remove_quotes(sData[eName]);remove_quotes(sData[eFile]);
remove_quotes(sData[eKill2]);remove_quotes(sData[eType]);
new eData[eWData];
copy(eData[eWName], sizeof(eData[eWName]) - 1, sData[eName]);
copy(eData[eWFile], sizeof(eData[eWFile]) - 1, sData[eFile]);
eData[eWKill] = str_to_num(sData[eKill2]);
copy(eData[eWType], sizeof(sData[eWType])- 1, sData[eType]);
ArrayPushArray(aWSkins, eData);
precache_model(eData[eWFile]);
iLine++;
}
fclose(iFile);
iLoadedSkins = iLine;
}
}
public WeaponChange_p(iEnt){
if(!pev_valid(iEnt))
return HAM_IGNORED
new id = get_pdata_cbase(iEnt, 41, 4);
if(!is_user_alive(id) || !is_user_connected(id))
return HAM_IGNORED;
new eData[eWData];
new iWeapon = cs_get_weapon_id(iEnt);
switch(iWeapon){
case CSW_M4A1: {if(iActiveSkin[0][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[0][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AK47: {if(iActiveSkin[1][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[1][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AWP: {if(iActiveSkin[2][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[2][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_SCOUT: {if(iActiveSkin[3][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[3][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_FAMAS: {if(iActiveSkin[4][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[4][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_GALIL: {if(iActiveSkin[5][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[5][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AUG: {if(iActiveSkin[6][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[6][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_M3: {if(iActiveSkin[7][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[7][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_XM1014: {if(iActiveSkin[8][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[8][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_KNIFE: {if(iActiveSkin[9][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[9][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_DEAGLE: {if(iActiveSkin[10][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[10][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_USP: {if(iActiveSkin[11][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[11][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_GLOCK18: {if(iActiveSkin[12][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, iActiveSkin[12][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
}
return HAM_IGNORED;
}
public PlayerKilled_p(iVictim, iKiller){
if(iVictim == iKiller || !iKiller || !iVictim)
return PLUGIN_HANDLED;
new iWeapon = get_user_weapon(iKiller);
Player[eKills][iKiller]++;
hp_up(iKiller);
switch(iWeapon){
case CSW_M4A1:{
iWeaponKills[0][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[M4a1 fegyver]^1 Jutalom ^3[ +2 M4a1 Pont]", get_prefix(0));
}
case CSW_AK47:{
iWeaponKills[1][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[AK47 fegyver]^1 Jutalom ^3[ +2 AK47 Pont]", get_prefix(0));
}
case CSW_AWP:{
iWeaponKills[2][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[AWP fegyver]^1 Jutalom ^3[ +2 AWP Pont]", get_prefix(0));
}
case CSW_SCOUT:{
iWeaponKills[3][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[SCOUT fegyver]^1 Jutalom ^3[ +2 SCOUT Pont]", get_prefix(0));
}
case CSW_FAMAS:{
iWeaponKills[4][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[FAMAS fegyver]^1 Jutalom ^3[ +2 FAMAS Pont]", get_prefix(0));
}
case CSW_GALIL:{
iWeaponKills[5][iKiller] += 3;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[GALIL fegyver]^1 Jutalom ^3[ +2 GALIL Pont]", get_prefix(0));
}
case CSW_AUG:{
iWeaponKills[6][iKiller] += 3;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[AUG fegyver]^1 Jutalom ^3[ +2 AUG Pont]", get_prefix(0));
}
case CSW_M3:{
iWeaponKills[7][iKiller] += 3;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[M3 fegyver]^1 Jutalom ^3[ +2 M3 Pont]", get_prefix(0));
}
case CSW_XM1014:{
iWeaponKills[8][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[XM1014 fegyver]^1 Jutalom ^3[ +2 XM1014 Pont]", get_prefix(0));
}
case CSW_KNIFE:{
iWeaponKills[9][iKiller] += 3;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[KNIFE fegyver]^1 Jutalom ^3[ +2 KNIFE Pont]", get_prefix(0));
}
case CSW_DEAGLE:{
iWeaponKills[10][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[DEAGLE fegyver]^1 Jutalom ^3[ +2 DEAGLE Pont]", get_prefix(0));
}
case CSW_USP:{
iWeaponKills[11][iKiller] += 2;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[USP fegyver]^1 Jutalom ^3[ +2 USP Pont]", get_prefix(0));
}
case CSW_GLOCK18:{
iWeaponKills[12][iKiller] += 3;
client_print_color(iKiller, print_team_default, "%s ^1 Fegyver :^3[GLOCK18 fegyver]^1 Jutalom ^3[ +2 GLOCK18 Pont]", get_prefix(0));
}
}
return PLUGIN_HANDLED;
}
public hp_up(id)
{
new iHealth = get_user_health(id);
if(iHealth < 100)
set_user_health(id, iHealth + 5);
if(iHealth > 100)
set_user_health(id, 110);
}
public main_menu(id){
new sTitle[128];
format(sTitle, charsmax(sTitle), "%s \dFőmenü", get_prefix(1));
new iMenu = menu_create(sTitle, "menu_main_h");
formatex(sTitle, charsmax(sTitle), "\wFegyver Skinek");
menu_additem(iMenu, sTitle, "1", 0);
menu_additem(iMenu, "\wAdatkezelő", "2", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public menu_main_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey)
{
case 1: menu_storage(id);
case 2: adminmenuopen(id);
}
playspk(id);
}
public menu_storage(id){
new sTitle[128];
format(sTitle, charsmax(sTitle), "%s \dVálassz fegyvert", get_prefix(1));
new iMenu = menu_create(sTitle, "menu_storage_h");
menu_additem(iMenu, "\rM4A1 \ySkinek", "0", 0);
menu_additem(iMenu, "\rAK47 \ySkinek", "1", 0);
menu_additem(iMenu, "\rAWP \ySkinek", "2", 0);
menu_additem(iMenu, "\rSCOUT \ySkinek", "3", 0);
menu_additem(iMenu, "\rFAMAS \ySkinek", "4", 0);
menu_additem(iMenu, "\rGALIL \ySkinek", "5", 0);
menu_additem(iMenu, "\rAUG \ySkinek", "6", 0);
menu_additem(iMenu, "\rM3 \ySkinek", "7", 0);
menu_additem(iMenu, "\rXM1014 \ySkinek", "8", 0);
menu_additem(iMenu, "\rKNIFE \ySkinek", "9", 0);
menu_additem(iMenu, "\rDEAGLE \ySkinek", "10", 0);
menu_additem(iMenu, "\rUSP \ySkinek", "11", 0);
menu_additem(iMenu, "\rGLOCK18 \ySkinek", "12", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilepes");
menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
menu_setprop(iMenu, MPROP_NEXTNAME, "Tovabb");
menu_display(id, iMenu, 0);
}
public menu_storage_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey){
case 0..12: WeaponSkins(id, iKey);
}
playspk(id);
}
public WeaponSkins(id, iWhich){
new sTitle[128], sRow[8];
new eData[eWData];
format(sTitle, charsmax(sTitle), "%s \dFegyver Skinek", get_prefix(1));
new iMenu = menu_create(sTitle, "WeaponSkins_h");
switch(iWhich){
case 0:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "M4A1")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 1:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "AK47")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 2:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "AWP")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 3:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "SCOUT")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 4:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "FAMAS")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 5:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "GALIL")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 6:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "AUG")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 7:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "M3")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 8:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "XM1014")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 9:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "KNIFE")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 10:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "DEAGLE")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 11:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "USP")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
case 12:{
for(new i; i < iLoadedSkins; i++)
{
ArrayGetArray(aWSkins, i, eData);
if(equali(eData[eWType], "GLOCK18")){
num_to_str(i, sRow, 7);
if(Player[eKills][id] < eData[eWKill])
formatex(sTitle, charsmax(sTitle), "\w%s\d - \w%d\r Pont", eData[eWName], eData[eWKill]);
else
formatex(sTitle, charsmax(sTitle), "\w%s", eData[eWName]);
menu_additem(iMenu, sTitle, sRow);
}
}
}
}
menu_setprop(iMenu, MPROP_EXITNAME, "Kil??p??s");
menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
menu_setprop(iMenu, MPROP_NEXTNAME, "Tov??bb");
menu_display(id, iMenu, 0);
}
public WeaponSkins_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
new eData[eWData];
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
ArrayGetArray(aWSkins, iKey, eData);
if(equali(eData[eWType], "M4A1")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[0][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "Ak47")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[1][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "AWP")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[2][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "SCOUT")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[3][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "FAMAS")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[4][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "GALIL")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[5][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "AUG")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[6][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "M3")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[7][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "XM1014")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[8][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "KNIFE")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[9][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "DEAGLE")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[10][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "USP")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[11][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
else if(equali(eData[eWType], "GLOCK18")){
if(Player[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s^1Nincs elegendő ölésed a skinhez.", get_prefix(0));
else{
iActiveSkin[12][id] = iKey;
client_print_color(id, print_team_default, "%s^1Kiválasztottad a(z) %s skint.", get_prefix(0), eData[eWName]);
}
}
playspk(id);
}
public adminmenuopen(id){
new sTitle[128];
format(sTitle, charsmax(sTitle), "%s \dJátékosok kezelése", get_prefix(1));
new iMenu = menu_create(sTitle, "adminmenuopen_h");
menu_additem(iMenu, "\wPont adás", "1", 0);
menu_additem(iMenu, "\wPont elvétel", "2", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kil??p??s");
menu_display(id, iMenu, 0);
}
public adminmenuopen_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
new iKey = str_to_num(sData);
switch(iKey){
case 1: {menu_chooseplayer(id); iChoosedMode = 0;}
case 2: {menu_chooseplayer(id); iChoosedMode = 1;}
}
playspk(id);
}
public menu_chooseplayer(id){
new sTitle[128], iPlayers[32], iPNum, iId, sName[64], sId[10];
format(sTitle, charsmax(sTitle), "%s \dVálassz játékost", get_prefix(1));
new iMenu = menu_create(sTitle, "menu_chooseplayer_h");
get_players(iPlayers, iPNum);
for(new i; i < iPNum; i++)
{
iId = iPlayers[i];
if(is_user_bot(iId) || !is_user_connected(iId))
continue;
get_user_name(iId, sName, charsmax(sName));
num_to_str(iId, sId, charsmax(sId));
menu_additem(iMenu, sName, sId, 0);
}
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public menu_chooseplayer_h(id, iMenu, iItem){
if(iItem == MENU_EXIT){menu_destroy(iMenu);return;}
new sData[10], sName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName), iCallback);
iTempID = str_to_num(sData);
client_cmd(id, "messagemode type_itemremoveoradd");
playspk(id);
}
public type_itemammount(id){
new sItem[128], iItemAmmount, sSenderName[64], sTargetName[64];
read_args(sItem, charsmax(sItem));
remove_quotes(sItem);
get_user_name(id, sSenderName, charsmax(sSenderName));
get_user_name(iTempID, sTargetName, charsmax(sTargetName));
iItemAmmount = str_to_num(sItem);
if(iItemAmmount < 0){
client_print_color(id, print_team_blue, "%s ^1Nem írhasz nulla értéket!.", get_prefix(0));
return PLUGIN_HANDLED;
}
switch(iChoosedMode){
case 0:{
for(new i = 0; i < 13; i++)
iWeaponKills[i][iTempID] += iItemAmmount;
client_print_color(id, print_team_blue, "%s ^1Sikeresen jóváírtak:^4 %d ^1t, neki:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
client_print_color(iTempID, print_team_blue, "%s ^1Jóváírtak neked^4 %d ^1pontot! BY:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
client_print_color(id, print_team_blue, "^3 Admin: %s | Játékos: %s | összeg: %d | Tíus: pont jóváírás", sSenderName, sTargetName, iItemAmmount);
return PLUGIN_HANDLED;
}
case 1:{
for(new i = 0; i < 13; i++)
iWeaponKills[i][iTempID] -= iItemAmmount;
client_print_color(id, print_team_blue, "%s ^1Sikeresen elvettek:^4 %d ^1, t?e:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
client_print_color(iTempID, print_team_blue, "%s ^1Elvettek tőled^4 %d ^1pontot! BY:^4 %s", get_prefix(0), iItemAmmount, sTargetName);
client_print_color(id, print_team_blue, "^3 Admin: %s | Játékos: %s | összeg: %d | Tius: Pont elvétel", sSenderName, sTargetName, iItemAmmount);
return PLUGIN_HANDLED;
}
}
return PLUGIN_HANDLED;
}
public client_disconnected(id){
if(is_user_bot(id))
return;
Update(id);
Player[eKills][id] = 0;
Player[eUnclockedSkin][id] = 0;
for(new i = 0; i < 13; i++)
iActiveSkin[i][id] = -1;
for(new i = 0; i < 13; i++)
iWeaponKills[i][id] = 0;
}
public client_putinserver(id){
if(is_user_bot(id))
return;
for(new i = 0; i < 13; i++)
iActiveSkin[i][id] = -1;
for(new i = 0; i < 13; i++)
iWeaponKills[i][id] = 0;
SQL_load(id);
InfoHud(id);
}
public plugin_cfg(){
new iLen, sQuery[2048];
SqlTuple = SQL_MakeDbTuple(SQL_INFO[0], SQL_INFO[1], SQL_INFO[2], SQL_INFO[3])
iLen += formatex(sQuery[iLen], charsmax(sQuery), "CREATE TABLE IF NOT EXISTS `SkinMenu`")
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "(`Steamid` varchar(128) NOT NULL, ")
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`UnlockedSkin` int(11) NOT NULL,");
for(new i = 0; i < 13; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`WK%d` int(11) NOT NULL,", i);
for(new i = 0; i < 13; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`MentettSkin_%d` int(11) NOT NULL,", i);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "`Olesek` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
SQL_ThreadQuery(SqlTuple, "createTableThread", sQuery);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime){
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error");
if(Errcode)
log_amx("[HIBA*] HIBAT DOBTAM: %s", Error);
}
public SQL_load(id){
new Data[1], sQuery[2048];
Data[0] = id;
get_user_authid(id, gSteamID, charsmax(gSteamID))
formatex(sQuery, charsmax(sQuery), "SELECT * FROM `SkinMenu` WHERE Steamid = ^"%s^";", gSteamID);
SQL_ThreadQuery(SqlTuple, "SQL_load_thr", sQuery, Data, 1)
}
public SQL_load_thr(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime){
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("[*HIBA*] NEM LEHET KAPCSOLODNI AZ ADATBAZISHOZ!");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("[*HIBA*] A LEKERDEZES MEGSZAKADT!");
if(Errcode)
log_amx("[*HIBA*] PROBLEMA A LEKERDEZESNEL! ( %s )",Error);
new id = Data[0];
if(SQL_NumRows(Query) > 0){
Player[eUnclockedSkin][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "UnlockedSkin"));
for(new i = 0; i < 13; i++){
new sString[64];
formatex(sString, charsmax(sString), "WK%d", i);
iWeaponKills[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, sString));
}
for(new i = 0; i < 13; i++){
new sString[64];
formatex(sString, charsmax(sString), "MentettSkin_%d", i);
iActiveSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, sString));
}
Player[eKills][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Olesek"));
}
else
SQL_Save(id);
}
public Update(id){
new iLen, sQuery[2048];
get_user_authid(id, gSteamID, charsmax(gSteamID))
iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE `SkinMenu` SET UnlockedSkin = ^"%i^", ", Player[eUnclockedSkin][id]);
for(new i = 0; i < 13; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "WK%d = ^"%i^", ", i, iWeaponKills[i][id]);
for(new i = 0; i < 13; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "MentettSkin_%d = ^"%i^", ", i, iActiveSkin[i][id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "Olesek = ^"%i^" WHERE Steamid = ^"%s^";", Player[eKills][id], gSteamID);
SQL_ThreadQuery(SqlTuple, "QuerySetData", sQuery)
}
public SQL_Save(id){
new sQuery[2048]
get_user_authid(id, gSteamID, charsmax(gSteamID))
formatex(sQuery, charsmax(sQuery), "INSERT INTO `SkinMenu` (`Steamid`) VALUES (^"%s^");", gSteamID);
SQL_ThreadQuery(SqlTuple, "QuerySetData", sQuery);
}
public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime){
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED){
log_amx("%s", Error);
return;
}
}
public plugin_end(){
SQL_FreeHandle(SqlTuple);
}
public sayhook(id){
new Message[192];
read_args(Message, charsmax(Message))
remove_quotes(Message)
if(strlen(Message) == 0 || Message[0] == '/')
return PLUGIN_HANDLED_MAIN;
new Death[16], sName[MAX_NAME_LENGTH];
get_user_name(id, sName, charsmax(sName));
new sRank[64], sColor[16];
switch(get_user_flags(id)){
case TULAJ:{ sRank = "^4[^3Tulajdonos^4]"; sColor = "^4";}
case ADMIN:{ sRank = "^4[^3Admin^4]"; sColor = "^4";}
case VIP:{ sRank = "^4[^3VIP^4]"; sColor = "^3";}
default:{ sRank = "^4[^3Játékos^4]"; sColor = "^1";}
}
for(new i = 1; i <= iMaxPlayers; i++){
if(is_user_connected(i) && !is_user_bot(i)){
formatex(Death, charsmax(Death), is_user_alive(id) ? "":"*Halott*");
client_print_color(i, print_team_default, "%s%s^3%s: %s%s", Death, sRank, sName, sColor, Message);
}
}
return PLUGIN_HANDLED_MAIN;
}
public sayteamhook(id){
new Message[192];
read_args(Message, charsmax(Message))
remove_quotes(Message)
if(strlen(Message) == 0 || Message[0] == '/')
return PLUGIN_HANDLED_MAIN;
new Death[16], sName[MAX_NAME_LENGTH];
get_user_name(id, sName, charsmax(sName));
new iTeam, sTeam[32];
iTeam = get_user_team(id, sTeam, charsmax(sTeam));
switch(iTeam){
case CS_TEAM_CT: sTeam = "CT";
case CS_TEAM_T: sTeam = "T";
case CS_TEAM_SPECTATOR: sTeam = "SPEC";
}
for(new i = 1; i <= iMaxPlayers; i++){
if(is_user_connected(i) && !is_user_bot(i) || get_user_flags(id) & ADMIN_BAN){
formatex(Death, charsmax(Death), is_user_alive(id) ? "":"*Halott*");
client_print_color(i, print_team_default, "%s^3(%s)^1%s: ^3%s", Death, sTeam, sName, Message);
}
}
return PLUGIN_HANDLED_MAIN;
}
stock get_prefix(which){
new sPrefix[32];
if(which == 0)
get_pcvar_string(cvarS[eCpref], sPrefix, charsmax(sPrefix));
else if(which == 1)
get_pcvar_string(cvarS[eMpref], sPrefix, charsmax(sPrefix));
return sPrefix;
}
public playspk(id){
client_cmd(id, "spk buttons/lightswitch2");
}