/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <engine>
#include <amxmisc>
#include <amxconst>
#include <core>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <sqlx>
#include <regex>

#define PLUGIN "Veteran mod"
#define VERSION "0.1"
#define AUTHOR "author"
#define Prefix "[.:DarK~DemonS:.]"

new Array:g_Advert;

const NETOLTS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4));

  static const SQLINFO[][] = { "", "", "", ""};
  static Query[10048];
  new Handle:g_SqlTuple;

new PlayersNow;

/*new const AdminPermissions[][][] =
{
	{"[Játékos]", "z", "0",}, //0
	{"[Fejlesztő]", "abcvnmlpoikujzhtgrfedwsayc", "1"}, //1
	{"[Tulajdonos]", "abcvnmlpoikujzhtgrfedwsayc", "1"}, //2
	{"[SzuperAdmin]", "abmcfscdtiue", "1"}, //3
	{"[FőAdmin]", "bmcfscdtiue", "0"}, //4
	{"[Admin]", "bmcfscdtiue", "0"}  //5
};*/
new const view_hud[][] =
{
	"A Fragverseny véget ért!^nElső: %s",
	"A Fragverseny véget ért!^nElső: %s | Második: %s",
	"A Fragverseny véget ért!^nElső: %s | Második: %s | Harmadik: %s",
	"Jelenleg Fragverseny van (%s-%s)^n1. %s - ÖléS: %i",
	"Jelenleg Fragverseny van (%s-%s)^n1. %s - ÖléS: %i | 2. %s - ÖléS: %i",
	"Jelenleg Fragverseny van (%s-%s)^n1. %s - ÖléS: %i | 2. %s - ÖléS: %i | 3. %s - ÖléS: %i",
	"A Fragverseny elkezdődik %s-kor..."
}
enum _:Fragrace_Properties
{
  StartTime[32],
  EndTime[32],
  kills,
  bool:SwitchFrag,
  bool:FirstTask,
  x_tempid
};
new FragRacers[33][Fragrace_Properties];
new FragInfo[Fragrace_Properties];

enum _:weapon_Properties
{
  Id,
  name[32],
  model[128],
  type[16],
  neededkills,
  killsinweapon
}
static const Empty[weapon_Properties];
//Kés skin hozzáadása
//következő szám / Kés neve / model / CSW_KNIFE / ölésszám ami kell hozzá.
new const WeaponKnife[][weapon_Properties] =
{
  {0, "Default Knife", "models/v_knife.mdl", CSW_KNIFE, 0},
  {1, "Butterfly Fade", "models/bn/knife/ButterflyFade.mdl", CSW_KNIFE, 10},
  {2, "Butterfly BloodyWeb", "models/bn/knife/ButterflyKnifeBloodyWeb.mdl", CSW_KNIFE, 20},
  {3, "Butterfly CrimsonWeb", "models/bn/knife/ButterflyKnifeCrimsonWeb.mdl", CSW_KNIFE, 50},
  {4, "Falion Killing", "models/bn/knife/FalionKilling.mdl", CSW_KNIFE, 80},
  {5, "Karambit Superfurry", "models/bn/knife/KarambitSuperfurry.mdl", CSW_KNIFE, 100},
  {6, "Karambit TigerTooth", "models/bn/knife/KarambitTigerTooth.mdl", CSW_KNIFE, 120},
  {7, "Karambit Ultraibolya", "models/bn/knife/Karambitultraibolya.mdl", CSW_KNIFE, 150},
  {8, "Karambit BlueDreamer", "models/bn/knife/KarambitBlueDreamer.mdl", CSW_KNIFE, 180},
  {9, "M9 Bayonet Damascus Steel", "models/bn/knife/M9BayonetDamascusSteel.mdl", CSW_KNIFE, 250},
  {10, "M9 Bayonet DopplerSapphire", "models/bn/knife/M9BayonetDopplerSapphire.mdl", CSW_KNIFE, 300},
  {11, "M9 Bayonet Dragon Soul", "models/bn/knife/M9BayonetDragonSoul.mdl", CSW_KNIFE, 350},
  {12, "M9 Bayonet Gamma Doppler Phase", "models/bn/knife/M9BayonetGammaDopplerPhase.mdl", CSW_KNIFE, 400}
}
new const WeaponAK[][weapon_Properties] =
{
  {0, "Default AK47", "models/v_ak47.mdl", CSW_AK47, 0},
  {1, "Bloodsport AK47", "models/bn/ak/Bloodsport.mdl", CSW_AK47, 50},
  {2, "Curzon AK47", "models/bn/ak/Curzon.mdl", CSW_AK47, 100},
  {3, "Demon AK47", "models/bn/ak/Demon.mdl", CSW_AK47, 200},
  {4, "Illusion AK47", "models/bn/ak/Illusion.mdl", CSW_AK47, 400},
  {5, "Meres AK47", "models/bn/ak/Meres.mdl", CSW_AK47, 800},
  {6, "Neon Revolution AK47", "models/bn/ak/NeonRevolution.mdl", CSW_AK47, 1600},
  {7, "Overdrive AK47", "models/bn/ak/Overdrive.mdl", CSW_AK47, 3200},
  {8, "Ringleader AK47", "models/bn/ak/Ringleader.mdl", CSW_AK47, 6400},
  {9, "Rise Purple AK47", "models/bn/ak/RisePurple.mdl", CSW_AK47, 12800},
  {10, "Starladder AK47", "models/bn/ak/Starladder.mdl", CSW_AK47, 25600},
  {11, "Tigerstrike AK47", "models/bn/ak/Tigerstrike.mdl", CSW_AK47, 51200},
  {12, "Vulcan AK47", "models/bn/ak/Vulcan.mdl", CSW_AK47, 102400}
}

new const WeaponM4A1[][weapon_Properties] =
{
  {0, "Default M4A1", "models/v_m4a1.mdl", CSW_M4A1, 0},
  {1, "Flashback M4A1", "models/bn/m4a1/Flashback.mdl", CSW_M4A1, 50},
  {2, "Golden Coil M4A1", "models/bn/m4a1/GoldenCoil.mdl", CSW_M4A1, 100},
  {3, "Hellfire M4A1", "models/bn/m4a1/Hellfire.mdl", CSW_M4A1, 200},
  {4, "Kendall M4A1", "models/bn/m4a1/Kendall.mdl", CSW_M4A1, 400},
  {5, "Lightning Blue M4A1", "models/bn/m4a1/LightningBlue.mdl", CSW_M4A1, 800},
  {6, "Neon Electro M4A1", "models/bn/m4a1/NeonElectro.mdl", CSW_M4A1, 1600},
  {7, "OPTIMUS M4A1", "models/bn/m4a1/OPTIMUS.mdl", CSW_M4A1, 3200},
  {8, "Pathfinder M4A1", "models/bn/m4a1/Pathfinder.mdl", CSW_M4A1, 6400},
  {9, "Shark's Carnage M4A1", "models/bn/m4a1/Shark'sCarnage.mdl", CSW_M4A1, 12800},
  {9, "Starladder M4A1", "models/bn/m4a1/Starladder.mdl", CSW_M4A1, 25600},
  {9, "Ultimate M4A1", "models/bn/m4a1/Ultimate.mdl", CSW_M4A1, 51200},
  {9, "Vanquish M4A1", "models/bn/m4a1/Vanquish.mdl", CSW_M4A1, 102400}
}

new const WeaponAWP[][weapon_Properties] =
{
  {0, "Default AWP", "models/v_awp.mdl", CSW_AWP, 0},
  {1, "Asiimov Fnatic AWP", "models/bn/awp/AsiimovFnatic.mdl", CSW_AWP, 50},
  {2, "Bercut AWP", "models/bn/awp/Bercut.mdl", CSW_AWP, 100},
  {3, "BlackRock AWP", "models/bn/awp/BlackRock.mdl", CSW_AWP, 200},
  {4, "Blood Hunter AWP", "models/bn/awp/BloodHunter.mdl", CSW_AWP, 400},
  {5, "Fenrir AWP", "models/bn/awp/Fenrir.mdl", CSW_AWP, 800},
  {6, "Meres AWP", "models/bn/awp/Meres.mdl", CSW_AWP, 1600},
  {7, "Phobos v2 AWP", "models/bn/awp/Phobosv2.mdl", CSW_AWP, 3200},
  {8, "Ronin AWP", "models/bn/awp/Ronin.mdl", CSW_AWP, 6400},
  {9, "Villámcsavar AWP", "models/bn/awp/villamcsavar.mdl", CSW_AWP, 12800},
  {9, "Viper Strike AWP", "models/bn/awp/ViperStrike.mdl", CSW_AWP, 25600},
  {9, "Vulkan AWP", "models/bn/awp/vulkan.mdl", CSW_AWP, 51200},
  {9, "Wild Style AWP", "models/bn/awp/WildStyle.mdl", CSW_AWP, 102400}
}

new const WeaponDeagle[][weapon_Properties] =
{
  {0, "Default Deagle", "models/v_deagle.mdl", CSW_DEAGLE, 0},
  {1, "Black and Red Deagle", "models/bn/deagle/BlackandRed.mdl", CSW_DEAGLE, 50},
  {2, "Blaze Deagle", "models/bn/deagle/Blaze.mdl", CSW_DEAGLE, 100},
  {3, "Carp Koi Deagle", "models/bn/deagle/CarpKoi.mdl", CSW_DEAGLE, 200},
  {4, "Dragon Leader Deagle", "models/bn/deagle/DragonLeader.mdl", CSW_DEAGLE, 400},
  {5, "Eagle Glory Deagle", "models/bn/deagle/EagleGlory.mdl", CSW_DEAGLE, 800},
  {6, "IDN Deagle", "models/bn/deagle/IDN.mdl", CSW_DEAGLE, 1600},
  {7, "Kumicho Dragon Fix Deagle", "models/bn/deagle/KumichoDragonFix.mdl", CSW_DEAGLE, 3200},
  {8, "Scala Deagle", "models/bn/deagle/Scala.mdl", CSW_DEAGLE, 6400}
}

new KnifeSkinKills[33][30][weapon_Properties];
new AKSkinKills[33][30][weapon_Properties];
new M4A1SkinKills[33][30][weapon_Properties];
new AWPSkinKills[33][30][weapon_Properties];
new DeagleSkinKills[33][30][weapon_Properties];

enum _:announcment_Properties
{
  message[512],
  uniqid
}
enum _:Deathsmg_Properties
{
  Damagers,
  DamagedHit,
  WhoGetDamage,
}
new Player_Death[33][Deathsmg_Properties];
enum _:player_Settings
{
  s_lefthud,
  s_bottomhud,
}
new Player_Settings[33][player_Settings];
enum _:player_Properties
{
  PlayerName[64],
  steamid[32],
  ip[32],
  SelectedAK,
  SelectedM4A1,
  SelectedAWP,
  SelectedDEAGLE,
  SelectedKnife,
  Knifeshow,
  PlayerBought,
  k_ak47,
  k_m4a1,
  k_awp,
  k_deagle,
  k_knife,
  Float:l_exp,
  l_name[32],
  a_Id,
  Float:money,
  v_isVip,
  v_time,
  PlayTime,
  ad_level
}
new Player_Info[33][player_Properties]
enum _:level_Properties
{
  r_name[32],
  Float:r_exp,
  Float:r_money
};

enum _:TEAMS {T, CT};
new g_Awps[TEAMS];
new String[512], StringHud[512];
new MaxPlayerInServer;
public plugin_init()
{
  register_impulse(201, "MainMenu");
  register_plugin(PLUGIN, VERSION, AUTHOR)

  register_clcmd("say /menu", "MainMenu");
  register_clcmd("say /skin", "MainMenu");
  register_clcmd("say /date", "testDate");

  register_event("DeathMsg", "WhenDie", "a");
  register_event("Damage", "TakeDamage", "be", "2!0", "3=0", "4!0" );

  RegisterHam(Ham_Spawn,"player","PlayerSpawn", 1);
  RegisterHam(Ham_Spawn,"player","WeaponMenu", 1);

  RegisterHam(Ham_Item_Deploy, "weapon_knife", "ChangeWeapon", 1);
  RegisterHam(Ham_Item_Deploy, "weapon_ak47", "ChangeWeapon", 1);
  RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "ChangeWeapon", 1);
  RegisterHam(Ham_Item_Deploy, "weapon_awp", "ChangeWeapon", 1);
  RegisterHam(Ham_Item_Deploy, "weapon_deagle", "ChangeWeapon", 1);

  register_plugin("Remove Buyzone", "1.0", "Can't remember")
  
  set_task(0.1, "Check",_,_,_,"b");

  register_event("HLTV", "NewRoundStart", "a", "1=0", "2=0");
  // Add your code here...
  MaxPlayerInServer = get_maxplayers();
}
public plugin_precache()
{
    g_Advert = ArrayCreate(256);
    new WeaponKnifeSize = sizeof(WeaponKnife);
    for(new i;i < WeaponKnifeSize; i++) precache_model(WeaponKnife[i][model]);

    new WeaponAKSize = sizeof(WeaponAK);
    for(new i; i < WeaponAKSize; i++) precache_model(WeaponAK[i][model]);

    new WeaponM4A1Size = sizeof(WeaponM4A1);
    for(new i; i < WeaponM4A1Size; i++) precache_model(WeaponM4A1[i][model]);

    new WeaponAWPSize = sizeof(WeaponAWP);
    for(new i; i < WeaponAWPSize; i++) precache_model(WeaponAWP[i][model]);

    new WeaponDeagleSize = sizeof(WeaponDeagle);
    for(new i; i < WeaponDeagleSize; i++) precache_model(WeaponDeagle[i][model]);

    RegisterHam(Ham_Spawn,"func_buyzone","buyZoneSpawn") 
}
public PlayerHud(id)
{
  new iWatch, wid;
  if(is_user_alive(id))
    iWatch = id;
  else
    iWatch = entity_get_int(id, EV_INT_iuser2);
  
  if(Player_Settings[id][s_lefthud])
  {
    new iSeconds, iMinutes, iHours, iDays, iLen;
    iSeconds = Player_Info[iWatch][PlayTime] + get_user_time(iWatch);
    iMinutes = iSeconds / 60;
    iHours = iMinutes / 60;
    iSeconds = iSeconds - iMinutes * 60;
    iMinutes = iMinutes - iHours * 60;
    iDays = iHours / 24;
    iHours = iHours - (iDays * 24);

    set_hudmessage(255, 255, 255, 0.01, 0.15, 0, 6.0, 0.2, 0.0, 0.0, -1);
    iLen = formatex(String[iLen], charsmax(String)-iLen, "Név: %s(#%i)!^n[ Dollár: %.2f$ ]^n[ EXP: %.3f ]",Player_Info[iWatch][PlayerName], Player_Info[iWatch][a_Id], Player_Info[iWatch][money], Player_Info[iWatch][l_exp]);

    replace_all(String, 511, ".", ",");
    show_hudmessage(id, String);
  }
  if(Player_Settings[id][s_bottomhud])
  {
    if(is_user_alive(iWatch) && !is_user_bot(iWatch))
    wid = get_user_weapon(iWatch);
    new Len;
    switch(wid)
    {
      case CSW_AK47:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "%s", WeaponAK[Player_Info[iWatch][SelectedAK]][name]);
        Len += formatex(StringHud[Len], charsmax(StringHud)- Len, "^nÖlések:%i", AKSkinKills[iWatch][Player_Info[iWatch][SelectedAK]][killsinweapon]);
      }
      case CSW_M4A1:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "%s", WeaponM4A1[Player_Info[iWatch][SelectedM4A1]][name]);
        Len += formatex(StringHud[Len], charsmax(StringHud)- Len, "^nÖlések:%i", M4A1SkinKills[iWatch][Player_Info[iWatch][SelectedM4A1]][killsinweapon]);
      }
      case CSW_AWP:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "%s", WeaponAWP[Player_Info[iWatch][SelectedAWP]][name]);
        Len += formatex(StringHud[Len], charsmax(StringHud)- Len, "^nÖlések:%i", AWPSkinKills[iWatch][Player_Info[iWatch][SelectedAWP]][killsinweapon]);
      }
      case CSW_DEAGLE:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "%s", WeaponDeagle[Player_Info[iWatch][SelectedDEAGLE]][name]);
        Len += formatex(StringHud[Len], charsmax(StringHud)- Len, "^nÖlések:%i", DeagleSkinKills[iWatch][Player_Info[iWatch][SelectedDEAGLE]][killsinweapon]);
      }
      case CSW_KNIFE:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "%s", WeaponKnife[Player_Info[iWatch][SelectedKnife]][name]);
        Len += formatex(StringHud[Len], charsmax(StringHud)- Len, "^nÖlések:%i", KnifeSkinKills[iWatch][Player_Info[iWatch][SelectedKnife]][killsinweapon]);
      }
      case CSW_FAMAS:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "Default FAMAS");
      }
      case CSW_MP5NAVY:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "Default MP5");
      }
      case CSW_SCOUT:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "Default XM1014");
      }
      case CSW_M3:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "Default M3");
      }
      case CSW_SMOKEGRENADE:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "Smoke Grenade");
      }
      case CSW_HEGRENADE:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "HE Grenade");
      }
      case CSW_FLASHBANG:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "FLASHBANG");
      }
      case CSW_C4:
      {
        Len = formatex(StringHud[Len], charsmax(StringHud)- Len, "C4");
      }
    }
    set_hudmessage(255, 255, 255, -1.0, 0.72, 0, 0.0, 0.2, 0.0, 0.0, -1);
    show_hudmessage(id, StringHud);
  }
}
public Check()
{
  new p[32],n;
  get_players(p,n,"ch");
  for(new i=0;i<n;i++)
  {
      new id = p[i];
      PlayerHud(id);
  }
}
public SeeBestPlayers(id)
{
	new Players[32], Num;
	get_players(Players, Num);
	SortCustom1D(Players, Num, "sort_bestthree")
 
	new Top1 = Players[0]
	new Top2 = Players[1]
	new Top3 = Players[2]
 
	new TopName1[32], TopName2[32], TopName3[32]
	get_user_name(Top1, TopName1, charsmax(TopName1))
	get_user_name(Top2, TopName2, charsmax(TopName2))
	get_user_name(Top3, TopName3, charsmax(TopName3))
 
	if(!FragInfo[SwitchFrag])
	{
		set_hudmessage(0, 255, 0, -1.0, 0.10, 0, 6.0, 30.0)
		if(Num == 1)
    {
      show_hudmessage(0, view_hud[0], TopName1)
    } 
		if(Num == 2)
    {
      show_hudmessage(0, view_hud[1], TopName1, TopName2)
    } 
		if(Num >= 3)
    {
      show_hudmessage(0, view_hud[2], TopName1, TopName2, TopName3)
    } 
	}
	else 
	{
		set_hudmessage(0, 127, 255, -1.0, 0.10, 0, 6.0, 0.5)
		if(Num == 1) show_hudmessage(0, view_hud[3], FragInfo[StartTime], FragInfo[EndTime], TopName1, FragRacers[Top1][kills])
		if(Num == 2) show_hudmessage(0, view_hud[4], FragInfo[StartTime], FragInfo[EndTime], TopName1, FragRacers[Top1][kills], TopName2, FragRacers[Top2][kills])
		if(Num >= 3) show_hudmessage(0, view_hud[5], FragInfo[StartTime], FragInfo[EndTime], TopName1, FragRacers[Top1][kills], TopName2, FragRacers[Top2][kills], TopName3, FragRacers[Top3][kills])
	}
}
public sort_bestthree(id1, id2)
{
	if(FragRacers[id1][kills] > FragRacers[id2][kills]) return -1
	else if(FragRacers[id1][kills] < FragRacers[id2][kills]) return 1
 
	return 0
}
public NewRoundStart()
{
  g_Awps[T] = 0;
  g_Awps[CT] = 0;

  new Players[32], iNum;
  new any:m_Team;
  new t_num = 0;
  new ct_num = 0;
  get_players(Players, iNum, "ch");
  get_players(Players, PlayersNow, "ch");
  new Player;
  for (new i=0; i<iNum; i++)
  {
    Player = Players[i];
    m_Team = cs_get_user_team(Player);
    switch(m_Team)
    {
      case CS_TEAM_CT:
      {
        ct_num++;
      }
      case CS_TEAM_T:
      {
        t_num++;
      }
    }
  }
}
public buyZoneSpawn(id)
{
  return HAM_SUPERCEDE;
}
public TakeDamage(iVictim)
{
  if ( 0 < iVictim < MaxPlayerInServer )
  {
    new iAttacker = get_user_attacker( iVictim );
    if ( 0 < iAttacker < MaxPlayerInServer )
    {
      new iDamage = read_data(2);
      Player_Death[iAttacker][DamagedHit] += iDamage;
      if ( Player_Death[iAttacker][DamagedHit] >= 50 )
      {
              Player_Death[iAttacker][Damagers] = iVictim;
              Player_Death[iVictim][WhoGetDamage] = iAttacker;
      }
    }
  }
}
bool:DeadfromWorld(iKiller)
{
    new classname[32];
    pev(iKiller,pev_classname,classname,31)
    if(equali(classname,"worldspawn")) 
    {
      return true;
    }
    else
      return false;
}
public WhenDie()
{
  new Killer, Victim, iHeadshot, Float:iReward, Float:iTake, Float:iMoneyReward;

  Killer = read_data(1);
  Victim = read_data(2);
  iHeadshot = read_data(3);

  if (Killer == Victim)
  {
    return;
  }

  if(Player_Death[Victim][WhoGetDamage] && Player_Death[Victim][WhoGetDamage] != Killer)
  {
    new FragRacers1 = Player_Death[Victim][WhoGetDamage];

    Player_Death[FragRacers1][Damagers] = 0;
    Player_Death[FragRacers1][WhoGetDamage] = 0;
    Player_Death[FragRacers1][DamagedHit] = 0;

    ExecuteHamB( Ham_AddPoints, FragRacers1, 1, false );
    iReward = random_float(0.25,0.50);
    iMoneyReward = random_float(0.25,0.50)

    Player_Info[FragRacers1][l_exp] += iReward;
    Player_Info[FragRacers1][money] += iMoneyReward;

    set_hudmessage(random(256), random(256), random(256), -1.0, 0.20, 0, 6.0, 3.0);
    show_hudmessage(FragRacers1, "+ %3.2f% EXP ^n+ %3.2f%$", iReward, iMoneyReward);
    client_print(0, print_team_default, "^3%s ^4%s ^1kapott ^4+1 ^1fraget, mert segített ^4%s ^1megölésében!", Prefix, Player_Info[FragRacers1][PlayerName], Player_Info[Victim][PlayerName])
  }
  iTake = random_float(0.25,1.00);
  Player_Info[Victim][l_exp] -= iTake;
  client_print(Victim, print_team_default, "^4%s ^1Meghaltál és ezért vesztettél ^4%3.2f% ^1EXP-t!", Prefix, iTake);
  if(DeadfromWorld(Killer)) //Ha megöli magát a játékos!
  {
    return;
  }

  new wid = get_user_weapon(Killer);

  switch(wid)
  {
    case CSW_AK47:
    {
      AKSkinKills[Killer][Player_Info[Killer][SelectedAK]][killsinweapon]++;
      Player_Info[Killer][k_ak47]++;
    }

    case CSW_M4A1:
    {
      M4A1SkinKills[Killer][Player_Info[Killer][SelectedM4A1]][killsinweapon]++;
      Player_Info[Killer][k_m4a1]++;
    } 

    case CSW_AWP:
    {
      AWPSkinKills[Killer][Player_Info[Killer][SelectedAWP]][killsinweapon]++;
      Player_Info[Killer][k_awp]++;
    }

    case CSW_DEAGLE:
    {
      DeagleSkinKills[Killer][Player_Info[Killer][SelectedDEAGLE]][killsinweapon]++;
      Player_Info[Killer][k_deagle]++;
    }

    case CSW_KNIFE :
    {
      KnifeSkinKills[Killer][Player_Info[Killer][SelectedKnife]][killsinweapon]++;
      Player_Info[Killer][k_knife]++;
    } 
  }

  if(FragInfo[SwitchFrag])
  FragRacers[Killer][kills]++;

  switch(Player_Info[Killer][v_isVip])
  {
    case 0:
    {
      if(iHeadshot)
      {
        iMoneyReward = random_float(0.50,1.25);
        iReward = random_float(1.00,2.00);
      }
      else
      {
        iMoneyReward = random_float(0.00,1.00);
        iReward = random_float(0.50,1.50);
      }       
    }
    case 1:
    {
      if(iHeadshot)
      {
        iMoneyReward = random_float(0.75,1.50);
        iReward = random_float(1.50,2.50);
      }
      else
      {
        iMoneyReward = random_float(0.25,1.25);
        iReward = random_float(0.75,1.75);
            }
       }
}
  Player_Info[Killer][money] += iMoneyReward;
  Player_Info[Killer][l_exp] += iReward;
  client_print(Killer, print_team_default, "^4%s ^1Amiért megölted ^3%s ^1kaptál ^4%3.2f% ^1EXP-t, és ^4%3.2f% $!", Prefix, Player_Info[Victim][PlayerName], iReward, iMoneyReward)

}
public ChangeWeapon(iEnt)
{
  new id = get_pdata_cbase(iEnt, 41, 4);
  new wid = cs_get_weapon_id(iEnt);

  if(id > 32 || id < 1 || !is_user_alive(id))
  {
    return HAM_SUPERCEDE
  }

  switch(wid)
  {
    case CSW_AWP: entity_set_string(id, EV_SZ_viewmodel, WeaponAWP[Player_Info[id][SelectedAWP]][model]);
    case CSW_AK47: entity_set_string(id, EV_SZ_viewmodel, WeaponAK[Player_Info[id][SelectedAK]][model]);
    case CSW_M4A1: entity_set_string(id, EV_SZ_viewmodel, WeaponM4A1[Player_Info[id][SelectedM4A1]][model]);
    case CSW_DEAGLE: entity_set_string(id, EV_SZ_viewmodel, WeaponDeagle[Player_Info[id][SelectedDEAGLE]][model]);
    case CSW_KNIFE: entity_set_string(id, EV_SZ_viewmodel, WeaponKnife[Player_Info[id][SelectedKnife]][model]);
  }
  return HAM_SUPERCEDE;
}
public MainMenu(id)
{
  formatex(String, charsmax(String), "\r%s \wFőmenü \r%3.2f$", Prefix, Player_Info[id][money]);
  new menu = menu_create(String , "MainMenu_h");

  formatex(String, charsmax(String), "\wRaktár");
  menu_additem(menu, String, "0", 0); 
  menu_display(id, menu);
}
public MainMenu_h(id,menu,item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);
  switch(key)
  {
    case 0: SkinMenuChooser(id);
  }
  menu_destroy(menu);
}
public SkinMenuChooser(id)
{
  formatex(String, charsmax(String), "\r%s \ySkinmenü", Prefix, Player_Info[id][k_ak47]);
  new menu = menu_create(String , "SkinMenuChooser_h");

  formatex(String, charsmax(String), "\wAK Skinek"); 
  menu_additem(menu, String, "0", 0);

  formatex(String, charsmax(String), "\wM4A1 Skinek"); 
  menu_additem(menu, String, "1", 0);

  formatex(String, charsmax(String), "\wAWP Skinek"); 
  menu_additem(menu, String, "2", 0);

  formatex(String, charsmax(String), "\wDeagle Skinek"); 
  menu_additem(menu, String, "3", 0);

  formatex(String, charsmax(String), "\wKnife Skinek"); 
  menu_additem(menu, String, "4", 0);

  menu_setprop(menu, MPROP_NEXTNAME, "Lapozás Előre");
  menu_setprop(menu, MPROP_BACKNAME, "Lapozás Vissza");
  menu_setprop(menu, MPROP_EXITNAME, "Vissza a Főmenübe");
  menu_display(id, menu);
  return PLUGIN_HANDLED;
}
public SkinMenuChooser_h(id, menu, item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    MainMenu(id);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);
  switch(key)
  {
    case 0: AKMenu(id);
    case 1: M4A1Menu(id);
    case 2: AWPMenu(id);
    case 3: DeagleMenu(id);
    case 4: KnifeMenu(id);
  }
}
public AKMenu(id)
{
  formatex(String, charsmax(String), "%s \yAK Menü^n \yÖléseid\r:\w%i", Prefix, Player_Info[id][k_ak47]);
  new menu = menu_create(String , "AKMenu_h");

  new m_nowak = sizeof(WeaponAK);
  new Num[4];

  for(new i=0; i < m_nowak;i++)
  {
  if(Player_Info[id][k_ak47] >= WeaponAK[i][neededkills])
    formatex(String, charsmax(String), "\y%s \r[Megszerezve]", WeaponAK[i][name])
  else
    formatex(String, charsmax(String), "\w%s \r[%i Ölés]\y-\r[LEZÁRVA]", WeaponAK[i][name], WeaponAK[i][neededkills])
  num_to_str(i, Num, 4)

  menu_additem(menu, String, Num, 0);
  }
  
  menu_display(id, menu);
  return PLUGIN_HANDLED;
}
public AKMenu_h(id, menu, item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);

  if(Player_Info[id][k_ak47] >= WeaponAK[key][neededkills])
  {
    Player_Info[id][SelectedAK] = key;
    client_print(id, print_team_default, "^4%s ^1Sikeresen kiválasztottad a ^3%s!", Prefix, WeaponAK[Player_Info[id][SelectedAK]][name]);
  }
  menu_destroy(menu);
}
public M4A1Menu(id)
{
  formatex(String, charsmax(String), "%s \yM4A1 Menü^n \yÖléseid\r:\w%i", Prefix, Player_Info[id][k_m4a1]);
  new menu = menu_create(String , "M4A1Menu_h");

  new m_nowm4 = sizeof(WeaponM4A1);
  new Num[4];

  for(new i=0; i < m_nowm4;i++)
  {
  if(Player_Info[id][k_m4a1] >= WeaponM4A1[i][neededkills])
    formatex(String, charsmax(String), "\y%s \r[Megszerezve]", WeaponM4A1[i][name])
  else
    formatex(String, charsmax(String), "\w%s \r[%i Ölés]\y-\r[LEZÁRVA]", WeaponM4A1[i][name], WeaponM4A1[i][neededkills])
  num_to_str(i, Num, 4)

  menu_additem(menu, String, Num, 0);
  }
  
  menu_display(id, menu);
  return PLUGIN_HANDLED;
}
public M4A1Menu_h(id, menu, item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);

  if(Player_Info[id][k_m4a1] >= WeaponM4A1[key][neededkills])
  {
    Player_Info[id][SelectedM4A1] = key;
    client_print(id, print_team_default, "^4%s ^1Sikeresen kiválasztottad a ^3%s!", Prefix, WeaponM4A1[Player_Info[id][SelectedM4A1]][name]);
  }
  menu_destroy(menu);
}
public AWPMenu(id)
{
  formatex(String, charsmax(String), "%s \yAWP Menü^n \yÖléseid\r:\w%i", Prefix, Player_Info[id][k_awp]);
  new menu = menu_create(String , "AWPMenu_h");

  new m_nowawp = sizeof(WeaponAWP);
  new Num[4];

  for(new i=0; i < m_nowawp;i++)
  {
  if(Player_Info[id][k_awp] >= WeaponAWP[i][neededkills])
    formatex(String, charsmax(String), "\y%s \r[Megszerezve]", WeaponAWP[i][name])
  else
    formatex(String, charsmax(String), "\w%s \r[%i Ölés]\y-\r[LEZÁRVA]", WeaponAWP[i][name], WeaponAWP[i][neededkills])
  num_to_str(i, Num, 4)

  menu_additem(menu, String, Num, 0);
  }
  
  menu_display(id, menu);
  return PLUGIN_HANDLED;
}
public AWPMenu_h(id, menu, item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);

  if(Player_Info[id][k_awp] >= WeaponAWP[key][neededkills])
  {
    Player_Info[id][SelectedAWP] = key;
    client_print(id, print_team_default, "^4%s ^1Sikeresen kiválasztottad a ^3%s!", Prefix, WeaponAWP[Player_Info[id][SelectedAWP]][name]);
  }
  menu_destroy(menu);
}
public DeagleMenu(id)
{
  formatex(String, charsmax(String), "%s \yDeagle Menü^n \yÖléseid\r:\w%i", Prefix, Player_Info[id][k_deagle]);
  new menu = menu_create(String , "DeagleMenu_h");

  new m_nowdeagle = sizeof(WeaponDeagle);
  new Num[4];

  for(new i=0; i < m_nowdeagle;i++)
  {
  if(Player_Info[id][k_deagle] >= WeaponDeagle[i][neededkills])
    formatex(String, charsmax(String), "\y%s \r[Megszerezve]", WeaponDeagle[i][name])
  else
    formatex(String, charsmax(String), "\w%s \r[%i Ölés]\y-\r[LEZÁRVA]", WeaponDeagle[i][name], WeaponDeagle[i][neededkills])
  num_to_str(i, Num, 4)

  menu_additem(menu, String, Num, 0);
  }
  
  menu_display(id, menu);
  return PLUGIN_HANDLED;
}
public DeagleMenu_h(id, menu, item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);

  if(Player_Info[id][k_deagle] >= WeaponDeagle[key][neededkills])
  {
    Player_Info[id][SelectedDEAGLE] = key;
    client_print(id, print_team_default, "^4%s ^1Sikeresen kiválasztottad a ^3%s!", Prefix, WeaponDeagle[Player_Info[id][SelectedDEAGLE]][name]);
  }
  menu_destroy(menu);
}
public KnifeMenu(id)
{
  formatex(String, charsmax(String), "%s \yKésmenü^n \yÖléseid\r:\w%i", Prefix, Player_Info[id][k_knife]);
  new menu = menu_create(String , "KnifeMenu_h");

  new m_nowknifes = sizeof(WeaponKnife);
  new Num[4];

  for(new i=0; i < m_nowknifes;i++)
  {
  if(Player_Info[id][k_knife] >= WeaponKnife[i][neededkills])
    formatex(String, charsmax(String), "\y%s \r[Megszerezve]", WeaponKnife[i][name])
  else
    formatex(String, charsmax(String), "\w%s \r[%i Ölés]\y-\r[LEZÁRVA]", WeaponKnife[i][name], WeaponKnife[i][neededkills])
  num_to_str(i, Num, 4)

  menu_additem(menu, String, Num, 0);
  }
  
  menu_display(id, menu);
  return PLUGIN_HANDLED;
}
public KnifeMenu_h(id, menu, item)
{
  if( item == MENU_EXIT )
  {
    if(is_user_connected(id))
      menu_destroy(menu);
    return;
  }
  new data[9], szName[64];
  new access, callback;
  menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  new key = str_to_num(data);

  if(Player_Info[id][k_knife] >= WeaponKnife[key][neededkills])
  {
    Player_Info[id][SelectedKnife] = key;
    client_print(id, print_team_default, "^4%s ^1Sikeresen kiválasztottad a ^3%s!", Prefix, WeaponKnife[Player_Info[id][SelectedKnife]][name]);
  }
  menu_destroy(menu);
}

public PlayerSpawn(id)
{
  if(!is_user_alive(id))
    return;
  
  Player_Death[id][Damagers] = 0;
  Player_Death[id][WhoGetDamage] = 0;
  Player_Death[id][DamagedHit] = 0;

  new m_HaveBomb = 0;
  if(user_has_weapon(id, CSW_C4))
    m_HaveBomb = 1;

  strip_user_weapons(id);
  if(m_HaveBomb)
    give_item(id, "weapon_c4");

  Player_Info[id][PlayerBought] = 0;
}

public client_putinserver(id)
{
  if(!is_user_bot(id))
  {
    new m_sizeofAK47 = sizeof(WeaponAK);
    new m_sizeofM4A1 = sizeof(WeaponM4A1);
    new m_sizeofAWP = sizeof(WeaponAWP);
    new m_sizeofDEAGLE = sizeof(WeaponDeagle);
    new m_sizeofKnife = sizeof(WeaponKnife);

    for(new i; i < m_sizeofAK47; i++)
    AKSkinKills[id][i] = Empty;

    for(new i; i < m_sizeofM4A1; i++)
    M4A1SkinKills[id][i] = Empty;

    for(new i; i < m_sizeofAWP; i++)
    AWPSkinKills[id][i] = Empty;

    for(new i; i < m_sizeofDEAGLE; i++)
    DeagleSkinKills[id][i] = Empty;

    for(new i; i < m_sizeofKnife; i++)
    KnifeSkinKills[id][i] = Empty;

    Player_Info[id][PlayerBought] = 0;
    Player_Info[id][a_Id] = 0;
    Player_Info[id][SelectedKnife] = 0;
    Player_Info[id][SelectedAK] = 0;
    Player_Info[id][SelectedM4A1] = 0;
    Player_Info[id][SelectedAWP] = 0;
    Player_Info[id][SelectedDEAGLE] = 0;
    Player_Info[id][Knifeshow] = 0;
    Player_Info[id][k_ak47] = 0;
    Player_Info[id][k_m4a1] = 0;
    Player_Info[id][k_awp] = 0;
    Player_Info[id][k_deagle] = 0;
    Player_Info[id][k_knife] = 0;
    Player_Info[id][l_exp] = 0.00;
    Player_Info[id][money] = 0.00;
    Player_Info[id][PlayTime] = 0;
    Player_Info[id][v_isVip] = 0;
    Player_Info[id][ad_level] = 0;
    Player_Info[id][v_time] = 0;

    Player_Settings[id][s_lefthud] = 1;
    Player_Settings[id][s_bottomhud] = 1;

    get_user_name(id, Player_Info[id][PlayerName], 64);
    get_user_ip(id, Player_Info[id][ip], 32);
    get_user_authid(id, Player_Info[id][steamid], 32);
    Load_All(id);
    set_task(3.0, "DemoRecord", id);
  }
}

public client_disconnected(id)
{
  if(!is_user_bot(id))
  {
    for(new i; i < 3; i++)
    {
      switch(i)
      {
        case 0: Update(id);
      }
    }
  }
}

public plugin_cfg()
{
    g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
    PlayerTable();
}
public PlayerTable()
{
  new Len;

  Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `Players` ");
  Len += formatex(Query[Len], charsmax(Query)-Len, "( ");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`name` VARCHAR(32) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`steamid` VARCHAR(32) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`k_ak47` INT(11) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`k_m4a1` INT(11) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`k_awp` INT(11) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`k_deagle` INT(11) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`k_knife` INT(11) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`SelectedKnife` INT(3) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`SelectedAK` INT(3) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`SelectedM4A1` INT(3) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`SelectedAWP` INT(3) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`SelectedDEAGLE` INT(3) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`l_exp` INT(32) NOT NULL,")
  Len += formatex(Query[Len], charsmax(Query)-Len, "`money` INT(32) NOT NULL,")
  Len += formatex(Query[Len], charsmax(Query)-Len, "`isVip` INT(1) NOT NULL,")
  Len += formatex(Query[Len], charsmax(Query)-Len, "`vipTime` INT(32) NOT NULL,")
  Len += formatex(Query[Len], charsmax(Query)-Len, "`PlayTime` INT(32) NOT NULL,")
  Len += formatex(Query[Len], charsmax(Query)-Len, "`Knifeshow` INT(1) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`lefthud` INT(1) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`bottomhud` INT(1) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`p_kills` INT(11) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`ad_level` INT(1) NOT NULL,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`ip` VARCHAR(32) NOT NULL)");
  
  SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
public WeaponKillsTable()
{
  new Len;

  new m_sizeofAK47 = sizeof(WeaponAK);
  new m_sizeofM4A1 = sizeof(WeaponM4A1);
  new m_sizeofAWP = sizeof(WeaponAWP);
  new m_sizeofDEAGLE = sizeof(WeaponDeagle);
  new m_sizeofKnife = sizeof(WeaponKnife);

  Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `WeaponKills` ");
  Len += formatex(Query[Len], charsmax(Query)-Len, "( ");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,");
  Len += formatex(Query[Len], charsmax(Query)-Len, "`name` VARCHAR(32) NOT NULL,");

  for(new i; i < m_sizeofAK47; i++)
  Len += formatex(Query[Len], charsmax(Query)-Len, "`ak_%i` INT(11) NOT NULL,", i);
  
  for(new i; i < m_sizeofM4A1; i++)
  Len += formatex(Query[Len], charsmax(Query)-Len, "`m4a1_%i` INT(11) NOT NULL,", i);

  for(new i; i < m_sizeofAWP; i++)
  Len += formatex(Query[Len], charsmax(Query)-Len, "`awp_%i` INT(11) NOT NULL,", i);

  for(new i; i < m_sizeofDEAGLE; i++)
  Len += formatex(Query[Len], charsmax(Query)-Len, "`deagle_%i` INT(11) NOT NULL,", i);

  for(new i; i < m_sizeofKnife; i++)
  Len += formatex(Query[Len], charsmax(Query)-Len, "`knife_%i` INT(11) NOT NULL,", i);

  Len += formatex(Query[Len], charsmax(Query)-Len, "`steamid` VARCHAR(32) NOT NULL)");
  SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) 
{
  if(Errcode)
  log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
  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");
}
public Load_All(id)
{
  new Data[1];
  Data[0] = id;
  for (new i=1; i < 3; i++)
  {
    switch(i)
    {
      case 1:
      {
        formatex(Query, charsmax(Query), "SELECT * FROM `Players` WHERE steamid = ^"%s^";", Player_Info[id][steamid])
        SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
      }
      case 2:
      {
        formatex(Query, charsmax(Query), "SELECT * FROM `WeaponKills` WHERE steamid = ^"%s^";", Player_Info[id][steamid])
        SQL_ThreadQuery(g_SqlTuple, "QuerySelectSkinKills", Query, Data, 1);
      }
    }
  }
}
public LoadAnnouncment()
{
  new Data[1];
  formatex(Query, charsmax(Query), "SELECT * FROM `Announcments`;")
  SQL_ThreadQuery(g_SqlTuple, "QuerySelectAnnouncment", Query, Data, 1);
}
public LoadPrizeGame()
{
  new Data[1];
  formatex(Query, charsmax(Query), "SELECT * FROM `PrizeGame`;")
  SQL_ThreadQuery(g_SqlTuple, "QuerySelectPrizeGame", Query, Data, 1);
}
public Load_DataPrize15()
{
  new Data[1];
  formatex(Query, charsmax(Query), "SELECT `p_kills`,`name` FROM `Players` ORDER BY p_kills DESC;");
  SQL_ThreadQuery(g_SqlTuple, "QuerySelectPrize15", Query, Data, 1);
}
public QuerySelectSkinKills(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
  if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  {
    log_amx("%s", Error);
    return;
  }
  else
  {
    new id = Data[0];
    new m_sizeofAK47 = sizeof(WeaponAK);
    new m_sizeofM4A1 = sizeof(WeaponM4A1);
    new m_sizeofAWP = sizeof(WeaponAWP);
    new m_sizeofDEAGLE = sizeof(WeaponDeagle);
    new m_sizeofKnife = sizeof(WeaponKnife);
    new iString[64];

    if(SQL_NumRows(Query) > 0) 
    {
      for(new i; i < m_sizeofAK47; i++)
      {
        formatex(iString, charsmax(iString), "ak_%d", i);
        AKSkinKills[id][i][killsinweapon] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, iString));
      }
      
      for(new i; i < m_sizeofM4A1; i++)
      {
        formatex(iString, charsmax(iString), "m4a1_%d", i);
        M4A1SkinKills[id][i][killsinweapon] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, iString));
      }

      for(new i; i < m_sizeofAWP; i++)
      {
        formatex(iString, charsmax(iString), "awp_%d", i);
        AWPSkinKills[id][i][killsinweapon] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, iString));
      }
      for(new i; i < m_sizeofDEAGLE; i++)
      {
        formatex(iString, charsmax(iString), "deagle_%d", i);
        DeagleSkinKills[id][i][killsinweapon] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, iString));
      }
      for(new i; i < m_sizeofKnife; i++)
      {
        formatex(iString, charsmax(iString), "knife_%d", i);
        KnifeSkinKills[id][i][killsinweapon] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, iString));
      }
    }
    else
    {
      SaveWeaponKills(id);
    }
  }
}
public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
  if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  {
    log_amx("%s", Error);
    return;
  }
  else
  {
    new id = Data[0];
    Save(id);
    
  }
}
public Save(id)
{
new text[512];
formatex(text, charsmax(text), "INSERT INTO `Players` (`steamid`) VALUES (^"%s^");", Player_Info[id][steamid]);

SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text);
}
public SaveWeaponKills(id)
{
new text[512];
formatex(text, charsmax(text), "INSERT INTO `WeaponKills` (`steamid`) VALUES (^"%s^");", Player_Info[id][steamid]);

SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text);
}
public Update(id)
{
  new Len;

  Len += formatex(Query[Len], charsmax(Query), "UPDATE `Players` SET k_knife = ^"%i^", ",Player_Info[id][k_knife]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "k_ak47 = ^"%i^", ", Player_Info[id][k_ak47]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "k_m4a1 = ^"%i^", ", Player_Info[id][k_m4a1]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "k_awp = ^"%i^", ", Player_Info[id][k_awp]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "k_deagle = ^"%i^", ", Player_Info[id][k_deagle]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedKnife = ^"%i^", ", Player_Info[id][SelectedKnife]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedAK = ^"%i^", ", Player_Info[id][SelectedAK]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedM4A1 = ^"%i^", ", Player_Info[id][SelectedM4A1]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedAWP = ^"%i^", ", Player_Info[id][SelectedAWP]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedDEAGLE = ^"%i^", ", Player_Info[id][SelectedDEAGLE]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "l_exp = ^"%i^", ", floatround(Player_Info[id][l_exp]*100.0))
  Len += formatex(Query[Len], charsmax(Query)-Len, "money = ^"%i^", ", floatround(Player_Info[id][money]*100.0))
  Len += formatex(Query[Len], charsmax(Query)-Len, "isVip = ^"%i^", ", Player_Info[id][v_isVip]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "ad_level = ^"%i^", ", Player_Info[id][ad_level]);
  if(Player_Info[id][v_isVip])
  Len += formatex(Query[Len], charsmax(Query)-Len, "vipTime = ^"%i^", ", Player_Info[id][v_time] - get_user_time(id));
  Len += formatex(Query[Len], charsmax(Query)-Len, "PlayTime = ^"%i^", ", Player_Info[id][PlayTime]+get_user_time(id));
  Len += formatex(Query[Len], charsmax(Query)-Len, "Knifeshow = ^"%i^", ", Player_Info[id][Knifeshow]);

  Len += formatex(Query[Len], charsmax(Query)-Len, "lefthud = ^"%i^", ", Player_Settings[id][s_lefthud]);
  Len += formatex(Query[Len], charsmax(Query)-Len, "bottomhud = ^"%i^", ", Player_Settings[id][s_bottomhud]);

  Len += formatex(Query[Len], charsmax(Query)-Len, "name = ^"%s^" WHERE steamid = ^"%s^";", Player_Info[id][PlayerName], Player_Info[id][steamid]);
  SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
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(g_SqlTuple);
  ArrayDestroy(g_Advert);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/
