#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.1 version"
#define AUTHOR2 "saXXo"
/////////////////////////////////////////////////////
#define Tablename "neverlessfun"
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
#define TULAJ ADMIN_IMMUNITY
#define FOADMIN ADMIN_LEVEL_E
#define ADMIN ADMIN_MAP
#define VIP ADMIN_LEVEL_H
#define MAX_MUSIC 32
/////////////////////////////////////////////////////
//-------------------------------------------------
//Beállitsok
//-------------------------------------------------
///////////////////////////////////////////////////
new const gMenuPrefix[] = "\r.:[NeverLess]:.";
new const gChatPrefix[] = ".:[NeverLess]:.";
///////////////////////////////////////////////////
///////////////////////////////////////////////////
new gOles[33], gRang[33];
new gHud[33], gMasodpercek[33];
enum gePlayer{eKills, geUnclockedSkin};
new gPlayer[gePlayer][33];
enum _:eWData {eWName[64],eWFile[64],eWKill,eWType[64],};
new giActiveSkin[10][33], giWeaponKills[10][33], iLoadedSkins, iTempID, iMaxPlayers, iChoosedMode, SynHud;
new Array: aWSkins;
new betoltve[33];
new musics[MAX_MUSIC][64], music_count, play_count, bool:gkorvegi[33];
///////////////////////////////////////////////////
enum _:Rangs { Szint[32], Xp[8] };
new const Rangok[][Rangs] =
{
{ "Unranked", 50 },
{ "BOT", 100 },
{ "IdiĂłta", 150 },
{ "Szarzsák", 200 },
{ "Kezdo", 250 },
{ "Amator", 300 },
{ "Valamit tud", 350 },
{ "Halad", 400 },
{ "Halad", 450 },
{ "HaladI", 500 },
{ "Terrifer", 550 },
{ "HullaadĂł", 600 },
{ "Pornószinész", 650 },
{ "--------------", 0 }
};
//////////////////////////////////////////////////
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_impulse(201, "main_menu");
register_clcmd("say /menu", "main_menu");
register_clcmd("say", "sayhook");
register_clcmd("type_itemremoveoradd", "type_itemammount");
register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_ctwin") //CT Körvégi
register_event("SendAudio", "PlayMusic", "a", "2&%!MRAD_terwin") // T Körvégi
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_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);
//iMaxPlayers = get_maxplayers();
SynHud = CreateHudSyncObj();
set_task(1.0, "AutoCheck",_,_,_,"b");
}
public AutoCheck()
{
new p[32],n;
get_players(p,n,"ch");
for(new i=0;i<n;i++)
{
new id = p[i];
if(gHud[id])
{
InfoHud(id);
}
}
}
public InfoHud(id)
{
new Target = pev(id, pev_iuser1) == 4 ? pev(id, pev_iuser2) : id;
if(is_user_alive(id))
{
new iMasodperc, iPerc, iOra, Nev[32];
get_user_name(id, Nev, 31);
iMasodperc = gMasodpercek[id] + get_user_time(id);
iPerc = iMasodperc / 60;
iOra = iPerc / 60;
iMasodperc = iMasodperc - iPerc * 60;
iPerc = iPerc - iOra * 60;
set_hudmessage(255, 255, 255, 0.01, 0.15, 0, 6.0, 1.1, 0.0, 0.0, -1);
ShowSyncHudMsg(id, SynHud, "Üdv %s! ^n^nÖlés: [ %d ] ^nRang: [ %s ] ^nKövetkező Rang: [ %s ] ^nJátssz idő: %i óra %i perc %i mp", Nev, gOles[id], Rangok[gRang[id]][Szint], Rangok[gRang[id]+1], iOra, iPerc, iMasodperc);
}
else
{
new iMasodperc, iPerc, iOra;
iMasodperc = gMasodpercek[Target] + get_user_time(Target);
iPerc = iMasodperc / 60;
iOra = iPerc / 60;
iMasodperc = iMasodperc - iPerc * 60;
iPerc = iPerc - iOra * 60;
set_hudmessage(255, 255, 255, 0.01, 0.15, 0, 6.0, 1.1, 0.0, 0.0, -1);
ShowSyncHudMsg(id, SynHud, "Nézett játékos adatai: ^n^nÖlés: [ %d ] ^nRang: [ %s ] ^nKövetkező Rang: [ %s ] ^nJátssz idő: %i óra %i perc %i mp", gOles[Target], Rangok[gRang[Target]][Szint], Rangok[gRang[id]+1], iOra, iPerc, iMasodperc);
}
}
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]);
static 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;
}
new sBuffer[192], sFile[128], sData[64], pFile;
get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
format(sFile, charsmax(sFile), "%s/korvegi_zene.ini", sFile);
pFile = fopen(sFile, "rt");
if(pFile) {
while(music_count < MAX_MUSIC && !feof(pFile)) {
fgets(pFile, sBuffer, charsmax(sBuffer));
trim(sBuffer);
if(sBuffer[0] != ';' && parse(sBuffer, sData, charsmax(sData))) {
if(contain(sData, ".mp3") != -1) {
precache_sound(sData)
copy(musics[music_count++], charsmax(musics[]), sData)
}
}
}
fclose(pFile);
}
else
write_file(sFile, ";^"mappa/valami.mp3^"");
if(!music_count) set_fail_state("Nem találtunk zenéket! Ellenőrizd a fájlt ^"addons/amxmodx/configs/korvegi_zene.ini^"");
}
public PlayMusic() {
new Mp3File[128], players[32], num, tempid;
formatex(Mp3File, charsmax(Mp3File), "sound/%s", musics[play_count == music_count ? (play_count = 0) : play_count++]);
get_players(players, num, "c");
for(new i; i < num; i++) {
tempid = players[i];
if(gkorvegi[tempid]) {
client_cmd(tempid, "mp3 play %s", Mp3File);
}
}
}
stock bool:user_roundmusic(id) {
new azonosit[8];
get_user_info(id, "korvegi", azonosit, charsmax(azonosit));
if(equal(azonosit, "0")) return false;
return true;
}
public WeaponChange_p(iEnt){
new id = get_pdata_cbase(iEnt, 41, 4);
if(!is_user_alive(id) || !is_user_connected(id))
return HAM_IGNORED;
static eData[eWData];
new iWeapon = cs_get_weapon_id(iEnt);
switch(iWeapon){
case CSW_M4A1: {if(giActiveSkin[0][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[0][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AK47: {if(giActiveSkin[1][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[1][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_AWP: {if(giActiveSkin[2][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[2][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_SCOUT: {if(giActiveSkin[3][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[3][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_FAMAS: {if(giActiveSkin[4][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[4][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_XM1014: {if(giActiveSkin[5][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[5][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_KNIFE: {if(giActiveSkin[6][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[6][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_DEAGLE: {if(giActiveSkin[7][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[7][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_USP: {if(giActiveSkin[8][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[8][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
case CSW_GLOCK18: {if(giActiveSkin[9][id] == -1)return HAM_IGNORED;ArrayGetArray(aWSkins, giActiveSkin[9][id], eData);entity_set_string(id, EV_SZ_viewmodel, eData[eWFile]);}
}
return HAM_IGNORED;
}
public PlayerKilled_p(iVictim, iKiller)
{
while(gOles[iVictim] >= Rangok[gRang[iVictim]][Xp])
if(iVictim == iKiller || !iKiller || !iVictim)
return PLUGIN_HANDLED;
gOles[iVictim]++;
new iWeapon = get_user_weapon(iKiller);
new id;
gPlayer[eKills][iKiller]++;
hp_up(iKiller);
switch(iWeapon){
case CSW_M4A1:{
giWeaponKills[0][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "Jutalmad: M4a1 1+ Pont",iKiller);
}
case CSW_AK47:{
giWeaponKills[1][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"Jutalmad: Ak47 1+ Pont",iKiller);
}
case CSW_AWP:{
giWeaponKills[2][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "Jutalmad: AWP 1+ Pont",iKiller);
}
case CSW_SCOUT:{
giWeaponKills[3][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "Jutalmad: Scout 1+ Pont",iKiller);
}
case CSW_FAMAS:{
giWeaponKills[4][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "Jutalmad: Famas 1+ Pont",iKiller);
}
case CSW_XM1014:{
giWeaponKills[5][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"Jutalmad: XM1014 1+ Pont",iKiller);
}
case CSW_KNIFE:{
giWeaponKills[6][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"Jutalmad: Knife 1+ Pont",iKiller);
}
case CSW_DEAGLE:{
giWeaponKills[7][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "Jutalmad: Deagle 1+ Pont",iKiller);
}
case CSW_USP:{
giWeaponKills[8][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud,"Jutalmad: USP 1+ Pont",iKiller);
}
case CSW_GLOCK18:{
giWeaponKills[9][iKiller] += 1;
set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
ShowSyncHudMsg(id, SynHud, "Jutalmad: Glock18 1+ Pont",iKiller);
}
}
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ü", gMenuPrefix);
new iMenu = menu_create(sTitle, "menu_main_h");
formatex(sTitle, charsmax(sTitle), "\y[\wFegyver Skinek\y]");
menu_additem(iMenu, sTitle, "1", 0);
menu_additem(iMenu, "\y[\wBeállitások\y]", "2", 0);
menu_additem(iMenu, "\y[\wAdatkezelő\y]", "3", 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: beallitasok(id);
case 3:
if(get_user_flags(id) & TULAJ) adminmenuopen(id);
else
client_print_color(id, print_team_default, "^4%s ^1Ezt a menüt csak ^4Tulajdonos ^1használhatja^3.", gChatPrefix)
}
playspk(id);
}
public menu_storage(id){
new sTitle[128];
formatex(sTitle, charsmax(sTitle), "%s \dVálassz fegyvert", gMenuPrefix);
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, "\rXM1014 \ySkinek", "5", 0);
menu_additem(iMenu, "\rKNIFE \ySkinek", "6", 0);
menu_additem(iMenu, "\rDEAGLE \ySkinek", "7", 0);
menu_additem(iMenu, "\rUSP \ySkinek", "8", 0);
menu_additem(iMenu, "\rGLOCK18 \ySkinek", "9", 0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépéss");
menu_setprop(iMenu, MPROP_BACKNAME, "Vissza");
menu_setprop(iMenu, MPROP_NEXTNAME, "Tovább");
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..9: WeaponSkins(id, iKey);
}
playspk(id);
}
public WeaponSkins(id, iWhich){
new sTitle[128], sRow[8];
static eData[eWData];
format(sTitle, charsmax(sTitle), "%s \dFegyver Skinek", gMenuPrefix);
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(gPlayer[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(gPlayer[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(gPlayer[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(gPlayer[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(gPlayer[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], "XM1014")){
num_to_str(i, sRow, 7);
if(gPlayer[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], "KNIFE")){
num_to_str(i, sRow, 7);
if(gPlayer[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], "DEAGLE")){
num_to_str(i, sRow, 7);
if(gPlayer[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], "USP")){
num_to_str(i, sRow, 7);
if(gPlayer[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], "GLOCK18")){
num_to_str(i, sRow, 7);
if(gPlayer[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;
static 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(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[0][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "AK47")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[1][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "AWP")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[2][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "SCOUT")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[3][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "FAMAS")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[4][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "XM1014")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[5][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "KNIFE")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[6][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "DEAGLE")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[7][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "USP")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[8][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
else if(equali(eData[eWType], "GLOCK18")){
if(gPlayer[eKills][id] < eData[eWKill])
client_print_color(id, print_team_default, "^4%s ^1Nincs elegendő ölésed a skinhez.", gChatPrefix);
else{
giActiveSkin[9][id] = iKey;
client_print_color(id, print_team_default, "^4%s ^1Kiválasztottad a(z) %s skint.", gChatPrefix, eData[eWName]);
}
}
playspk(id);
}
public beallitasok(id){
new sTitle[128];
formatex(sTitle, charsmax(sTitle), "%s \dBeállitások", gMenuPrefix);
new iMenu = menu_create(sTitle, "Beallitasok_h");
menu_additem(iMenu, gHud[id] == 1 ? "HUD: \rBekapcsolva":"HUD: \rKikapcsolva", "1",0);
menu_additem(iMenu, gkorvegi[id] == true ? "Zene: \rBekapcsolva":"Zene: \rKikapcsolva", "2",0);
menu_setprop(iMenu, MPROP_EXITNAME, "Kilépés");
menu_display(id, iMenu, 0);
}
public Beallitasok_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: gHud[id] = !gHud[id]
case 2: gkorvegi[id] = !gkorvegi[id]
}
beallitasok(id);
}
public adminmenuopen(id){
new sTitle[128];
format(sTitle, charsmax(sTitle), "%s \dJátékosok kezelése", gMenuPrefix);
new iMenu = menu_create(sTitle, "adminmenuopen_h");
menu_additem(iMenu, "\wPont küldé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", gMenuPrefix);
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 Ărhatsz ^40 ^1Ă©rtĂ©ket^3.", gChatPrefix);
return PLUGIN_HANDLED;
}
switch(iChoosedMode){
case 0:{
for(new i = 0; i < 10; i++)
giWeaponKills[i][iTempID] += iItemAmmount;
client_print_color(id, print_team_default, "%s ^1Sikeresen jĂłváĂrtak:^4 %d ^1pontot, neki:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(iTempID, print_team_default, "%s ^1JĂłváĂrtak neked^4 %d ^1pontot! BY:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(id, print_team_default, "%s %s | JátĂ©kos: %s | összeg: %d | Tipus: pont jĂłváĂrás", gChatPrefix, sSenderName, sTargetName, iItemAmmount);
return PLUGIN_HANDLED;
}
case 1:{
for(new i = 0; i < 10; i++)
giWeaponKills[i][iTempID] -= iItemAmmount;
client_print_color(id, print_team_default, "%s ^1Sikeresen elvettek:^4 %d ^1, tőle:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(iTempID, print_team_default, "%s ^1Elvettek toled^4 %d ^1pontot! BY:^4 %s", gChatPrefix, iItemAmmount, sTargetName);
client_print_color(id, print_team_default, "%s %s | Játékos: %s | összeg: %d | Tipus: Pont elvétel", gChatPrefix, sSenderName, sTargetName, iItemAmmount);
return PLUGIN_HANDLED;
}
}
return PLUGIN_HANDLED;
}
public client_putinserver(id){
if(is_user_bot(id))
return;
betoltve[id] = false;
gPlayer[eKills][id] = 0;
gPlayer[geUnclockedSkin][id] = 0;
gHud[id] = 1;
gRang[id] = 0;
gOles[id] = 0;
gkorvegi[id] = true;
for(new i = 0; i < 10; i++)
giActiveSkin[i][id] = -1;
for(new i = 0; i < 10; i++)
giWeaponKills[i][id] = 0;
SelectDataTable(id);
}
public client_disconnected(id)
{
if(is_user_bot(id))
return;
TableUpdate(id);
}
new Handle:g_SqlTuple;
public plugin_cfg()
{
//Kiszolg?| Felhaszn? | Jelsz??Adatb?s
g_SqlTuple = SQL_MakeDbTuple("mysql8.srkhost.eu", "", "", "");
CreateTable();
}
public CreateTable()
{
new iLen;
static sQuery[10048];
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "CREATE TABLE IF NOT EXISTS \\`%s\\` ", Tablename);
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "( ");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`Id\\` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`SteamId\\` varchar(64) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gUnlockedSkin\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gOlesek\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gHud\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gMasodpercek\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gSzint\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gOles\\` int(11) NOT NULL,");
iLen += format(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gkorvegi\\` int(11) NOT NULL,");
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gWK%d\\` int(11) NOT NULL,", i);
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery) - iLen, "\\`gMentettSkin_%d\\` int(11) NOT NULL,", i);
sQuery[iLen - 1] = ')';
sQuery[iLen] = 0;
SQL_ThreadQuery(g_SqlTuple, "TableCreateThread", sQuery);
}
public TableCreateThread(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
{
if(iFailState == TQUERY_CONNECT_FAILED)
{
log_amx("[Create] Nem lehet csatlakozni az adatb?shoz!");
set_fail_state("[Create] Nem lehet csatlakozni az adatb?shoz!");
}
else if(iFailState == TQUERY_QUERY_FAILED)
{
log_amx("[Create] Lekérdezési hiba: %s", sError);
set_fail_state("[Create] Lekérdezési hiba");
}
else
{
log_amx("[Create] Tábla sikeresen létrehozva.");
}
if(iErrcode)
{
log_amx("[Create] Hiba:**!! %s !!**", sError);
}
}
public TableUpdate(id)
{
if(betoltve[id])
{
static sQuery[10048];
new iLen, g_sSteamID[64];
get_user_authid(id, g_sSteamID, charsmax(g_sSteamID));
iLen += formatex(sQuery[iLen], charsmax(sQuery), "UPDATE \\`%s\\` SET ", Tablename);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gUnlockedSkin = ^"%i^", ", gPlayer[geUnclockedSkin][id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gHud = ^"%i^", ", gHud[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gMasodpercek = ^"%i^", ", gMasodpercek[id] + get_user_time(id));
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gSzint = ^"%i^",", gRang[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gOles = ^"%i^",", gOles[id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gkorvegi = ^"%i^",", gkorvegi[id]);
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gWK%d = ^"%i^", ", i, giWeaponKills[i][id]);
for(new i = 0; i < 10; i++)
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gMentettSkin_%d = ^"%i^", ", i, giActiveSkin[i][id]);
iLen += formatex(sQuery[iLen], charsmax(sQuery)-iLen, "gOlesek = ^"%i^" WHERE Steamid = ^"%s^";", gPlayer[eKills][id], g_sSteamID);
SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
}
}
public TableInsert(id)
{
static sQuery[10048], g_sSteamID[64];
get_user_authid(id, g_sSteamID, charsmax(g_sSteamID));
formatex(sQuery, charsmax(sQuery), "INSERT INTO \\`%s\\` (\\`SteamId\\`) VALUES (^"%s^");", Tablename, g_sSteamID);
SQL_ThreadQuery(g_SqlTuple, "QuerySetDataTable", sQuery);
betoltve[id] = true;
}
public SelectDataTable(id)
{
static sQuery[10048];
new sData[1], g_sSteamID[64];
sData[0] = id;
get_user_authid(id, g_sSteamID, charsmax(g_sSteamID));
formatex(sQuery, charsmax(sQuery), "SELECT * FROM \\`%s\\` WHERE SteamId = ^"%s^";", Tablename, g_sSteamID);
SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataTable", sQuery, sData, 1);
}
public QuerySelectDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
{
if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
{
log_amx("[Insert] Hiba:**!! %s !!**", sError);
return;
}
else
{
new id = sData[0];
if(SQL_NumRows(sQuery) > 0)
{
gPlayer[geUnclockedSkin][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gUnlockedSkin"));
for(new i = 0; i < 10; i++){
new sString[64];
formatex(sString, charsmax(sString), "gWK%d", i);
giWeaponKills[i][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, sString));
}
for(new i = 0; i < 10; i++){
new sString[64];
formatex(sString, charsmax(sString), "gMentettSkin_%d", i);
giActiveSkin[i][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, sString));
}
gPlayer[eKills][id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gOlesek"));
gHud[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gHud"));
gMasodpercek[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gMasodpercek"));
gOles[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gOles"));
gRang[id] = SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gSzint"));
SQL_ReadResult(sQuery, SQL_FieldNameToNum(sQuery, "gkorvegi"), gkorvegi[id], charsmax(gkorvegi[]));
betoltve[id] = true;
}
else
{
TableInsert(id);
}
}
}
public QuerySetDataTable(iFailState, Handle:sQuery, sError[], iErrcode, sData[], iDataSize, Float:fQueuetime)
{
if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
{
log_amx("[SetData] Hiba:**!! %s !!**", sError);
return;
}
}
public playspk(id){
client_cmd(id, "spk buttons/lightswitch2");
}
public sayhook(id)
{
new sMessage[512], sText[128], sDeath[16], iLen, sName[64];
read_args(sMessage, charsmax(sMessage));
remove_quotes(sMessage);
if(strlen(sMessage) == 0 || sMessage[0] == '/' || sMessage[0] == '@')
return PLUGIN_HANDLED_MAIN;
new iTeam, iColor;
iTeam = get_user_team(id);
switch(iTeam)
{
case CS_TEAM_CT: iColor = -3;
case CS_TEAM_T: iColor = -2;
case CS_TEAM_SPECTATOR: iColor = -1;
}
format(sDeath, charsmax(sDeath), is_user_alive(id) ? "":"*Halott*");
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1%s", sDeath);
if(get_user_flags(id) & TULAJ)
{
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1[^4Tulaj^1]");
}
else if(get_user_flags(id) & FOADMIN)
{
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1[^4FoAdmin^1]");
}
else if(get_user_flags(id) & ADMIN)
{
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1[^4Admin^1]");
}
else if(get_user_flags(id) & VIP)
{
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1[^4Vip^1]");
}
else
{
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1[^4Játékos^1]");
}
iLen += formatex(sText[iLen], charsmax(sText)-iLen, "^1[^4%s^1]", Rangok[gRang[id]][Szint]);
get_user_name(id, sName, charsmax(sName));
format(sMessage, charsmax(sMessage), "%s ^1%s ^3»%s %s", sText, sName, get_user_flags(id) & ADMIN_MAP ? "^4" : "^3", sMessage);
for(new i; i < get_maxplayers(); i++)
{
if(!is_user_connected(i))
continue;
client_print_color(i, iColor, sMessage);
}
return PLUGIN_HANDLED_MAIN;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/