public plugin_cfg()
{
g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
PlayerTable();
AnnouncmentTable();
WeaponKillsTable();
}
public AnnouncmentTable()
{
new Len;
Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `Announcments` ");
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, "`text` VARCHAR(256) NOT NULL)");
SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
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_m4a1` INT(11) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`k_ak47` 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, "`SelectedM4A1` INT(3) NOT NULL,");
Len += formatex(Query[Len], charsmax(Query)-Len, "`SelectedAK` 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, "`SelectedKnife` 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, "`havePrefix` 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, "`ChatPrefix` VARCHAR(32) 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_sizeofM4A1 = sizeof(WeaponM4A1);
new m_sizeofAK47 = sizeof(WeaponAK);
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_sizeofM4A1; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "`m4a1_%i` INT(11) NOT NULL,", i);
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_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 QuerySelectAnnouncment(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", Error);
return;
}
else
{
if(SQL_NumRows(Query) > 0)
{
new Temp[256];
while(SQL_MoreResults(Query))
{
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "text"), Temp, 256);
ArrayPushString(g_Advert, Temp);
g_AdvertSize++;
console_print(0, "%i, %s", g_AdvertSize, Temp);
SQL_NextRow(Query);
}
}
}
}
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_sizeofM4A1 = sizeof(WeaponM4A1);
new m_sizeofAK47 = sizeof(WeaponAK);
new m_sizeofAWP = sizeof(WeaponAWP);
new m_sizeofDEAGLE = sizeof(WeaponDeagle);
new m_sizeofKnife = sizeof(WeaponKnife);
new iString[512];
if(SQL_NumRows(Query) > 0)
{
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_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_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];
if(SQL_NumRows(Query) > 0)
{
Player_Info[id][k_m4a1] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "k_m4a1"));
Player_Info[id][k_ak47] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "k_ak47"));
Player_Info[id][k_awp] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "k_awp"));
Player_Info[id][k_deagle] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "k_deagle"));
Player_Info[id][k_knife] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "k_knife"));
Player_Info[id][SelectedM4A1] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SelectedM4A1"));
Player_Info[id][SelectedAK] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SelectedAK"));
Player_Info[id][SelectedAWP] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SelectedAWP"));
Player_Info[id][SelectedDEAGLE] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SelectedDEAGLE"));
Player_Info[id][SelectedKnife] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "SelectedKnife"));
Player_Info[id][havePrefix] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "havePrefix"));
Player_Info[id][ChatPrefix] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ChatPrefix"));
Player_Info[id][l_exp] = (float(SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "l_exp")))/100.0);
Player_Info[id][money] = (float(SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "money")))/100.0);
Player_Info[id][v_isVip] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "isVip"));
Player_Info[id][ad_level] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ad_level"));
Player_Info[id][PlayTime] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "PlayTime"));
if(Player_Info[id][v_isVip])
Player_Info[id][v_time] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "vipTime"));
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ChatPrefix"), Player_Info[id][ChatPrefix], 31);
Player_Info[id][Knifeshow] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Knifeshow"));
Player_Settings[id][s_lefthud] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lefthud"));
Player_Settings[id][s_bottomhud] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "bottomhud"));
Player_Info[id][a_Id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "id"));
Rankadd(id);
}
else
{
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 Anouncment_insert(m_Text[256])
{
new text[512];
formatex(text, charsmax(text), "INSERT INTO `Announcments` (`text`) VALUES (^"%s^");", m_Text);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text);
}
public Anouncment_delete(m_Text[256])
{
new text[512];
formatex(text, charsmax(text), "DELETE FROM `Announcments` WHERE `text` = ^"%s^";", m_Text);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text);
}
public Update(id)
{
new Len;
Len += formatex(Query[Len], charsmax(Query), "UPDATE `Players` SET k_m4a1 = ^"%i^", ", Player_Info[id][k_m4a1]);
Len += formatex(Query[Len], charsmax(Query)-Len, "k_ak47 = ^"%i^", ", Player_Info[id][k_ak47]);
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, "k_knife = ^"%i^", ",Player_Info[id][k_knife]);
Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedM4A1 = ^"%i^", ", Player_Info[id][SelectedM4A1]);
Len += formatex(Query[Len], charsmax(Query)-Len, "SelectedAK = ^"%i^", ", Player_Info[id][SelectedAK]);
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, "SelectedKnife = ^"%i^", ", Player_Info[id][SelectedKnife]);
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, "havePrefix = ^"%i^", ", Player_Info[id][havePrefix]);
Len += formatex(Query[Len], charsmax(Query)-Len, "ChatPrefix = ^"%s^", ", Player_Info[id][ChatPrefix]);
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 UpdateSkinKills(id)
{
new Len;
new m_sizeofM4A1 = sizeof(WeaponM4A1);
new m_sizeofAK47 = sizeof(WeaponAK);
new m_sizeofAWP = sizeof(WeaponAWP);
new m_sizeofDEAGLE = sizeof(WeaponDeagle);
new m_sizeofKnife = sizeof(WeaponKnife);
Len += formatex(Query[Len], charsmax(Query), "UPDATE `WeaponKills` SET name = ^"%s^", ",Player_Info[id][PlayerName]);
for(new i; i < m_sizeofM4A1; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "m4a1_%i = ^"%i^", ", i, M4A1SkinKills[id][i][killsinweapon]);
for(new i; i < m_sizeofAK47; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "ak_%i = ^"%i^", ", i, AKSkinKills[id][i][killsinweapon]);
for(new i; i< m_sizeofAWP; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "awp_%i = ^"%i^", ", i, AWPSkinKills[id][i][killsinweapon]);
for(new i; i < m_sizeofDEAGLE; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "deagle_%i = ^"%i^", ", i, DeagleSkinKills[id][i][killsinweapon]);
for(new i; i < m_sizeofKnife; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "knife_%i = ^"%i^", ", i, KnifeSkinKills[id][i][killsinweapon]);
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 plugin_end()
{
SQL_FreeHandle(g_SqlTuple);
ArrayDestroy(g_Advert);
}