Üdv! Ezeknek az SQL mentéseknek valaki segítene a táblázatában?
Kód:
public plugin_cfg()
{
static Query[5120], Len
g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `g_offen` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL")
for(new i; i<ArraySize(Skins);i++)
{
ArrayGetArray(Skins, i, tmp_Skins)
Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL", tmp_Skins[InSQL])
}
for(new i; i<ArraySize(Cases);i++)
{
ArrayGetArray(Cases, i, tmp_Skins)
Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` int(11) NOT NULL, `%s_k` int(11) NOT NULL", tmp_Skins[InSQL], tmp_Skins[InSQL])
}
Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("Nem lehet csatlakozni az adatbazishoz.")
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error")
if(Errcode)
log_amx("Hiba: %s",Error)
}
public client_putinserver(id)
{
if(!is_user_bot(id) && !is_user_hltv(id))
{
get_user_name(id, name[id], charsmax(name))
get_user_authid(id, authid[id], charsmax(authid))
if(contain(authid[id], "_ID_LAN") != -1) get_user_ip(id, authid[id], charsmax(authid), 1)
Load_SQL(id)
}
}
public client_disconnect(id)
{
if(!is_user_bot(id) && !is_user_hltv(id))
Update_SQL(id)
ArrayClear(Owned[id])
ArrayClear(OwnedKeys[id])
ArrayClear(OwnedCases[id])
arrayset(chosen[id], 0, sizeof(Weapons))
authid[id][0] = EOS;
name[id][0] = EOS;
}
public client_infochanged(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED
get_user_info(id, "name", name[id], charsmax(name[]))
return PLUGIN_CONTINUE
}
public Load_SQL(id)
{
static Query[5120], Data[1]; Data[0] = id
formatex(Query, charsmax(Query), "SELECT * FROM `g_offen` WHERE authid = ^"%s^";", authid[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
}
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];
new kname[32], stg
if(SQL_NumRows(Query) > 0)
{
for(new i; i<ArraySize(Skins);i++)
{
ArrayGetArray(Skins, i, tmp_Skins)
stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
ArrayPushCell(Owned[id], stg)
}
for(new i; i<ArraySize(Cases);i++)
{
ArrayGetArray(Cases, i, tmp_Skins)
formatex(kname, charsmax(kname), "%s_k", tmp_Skins[InSQL])
stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, kname))
ArrayPushCell(OwnedKeys[id], stg)
stg = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, tmp_Skins[InSQL]))
ArrayPushCell(OwnedCases[id], stg)
}
arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gold"))
}
else
{
Save_SQL(id)
}
}
}
public Save_SQL(id)
{
static Query[5120], Len
Len += formatex(Query[Len], charsmax(Query), "INSERT INTO `g_offen` (`authid`, `username`")
for(new i; i<ArraySize(Skins);i++)
{
ArrayGetArray(Skins, i, tmp_Skins)
Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`", tmp_Skins[InSQL])
}
for(new i; i<ArraySize(Cases); i++)
{
ArrayGetArray(Cases, i, tmp_Skins)
Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s`, `%s_k`", tmp_Skins[InSQL], tmp_Skins[InSQL])
}
Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold`) VALUES (^"%s^", ^"%s^"", authid[id], name[id])
for(new i;i<ArraySize(Skins);i++)
{
Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^"")
}
for(new i; i<ArraySize(Cases); i++)
{
Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^", ^"0^"")
}
Len += formatex(Query[Len], charsmax(Query)-Len, ", ^"0^");")
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 Update_SQL(id)
{
static Query[5120], Len
Len += formatex(Query[Len], charsmax(Query), "UPDATE `g_offen` SET `username` = ^"%s^"", name[id])
for(new i;i<ArraySize(Skins);i++)
{
ArrayGetArray(Skins, i, tmp_Skins)
Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d", tmp_Skins[InSQL], ArrayGetCell(Owned[id], i))
}
for(new i;i<ArraySize(Cases);i++)
{
ArrayGetArray(Skins, i, tmp_Skins)
Len += formatex(Query[Len], charsmax(Query)-Len, ", `%s` = %d, `%s_k` = %d", tmp_Skins[InSQL], ArrayGetCell(OwnedCases[id], i), tmp_Skins[InSQL], ArrayGetCell(OwnedKeys[id], i))
}
Len += formatex(Query[Len], charsmax(Query)-Len, ", `gold` = %d WHERE `authid` = ^"%s^";", arany[id], authid[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
for(new i; i<34; i++)
{
ArrayDestroy(Owned[i])
ArrayDestroy(OwnedCases[i])
ArrayDestroy(OwnedKeys[i])
}
ArrayDestroy(Skins)
ArrayDestroy(Cases)
}
-------------------------------------------------
Kód:
public plugin_cfg()
{
g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
SQL_ThreadQuery(g_SqlTuple,"createTableThread", "CREATE TABLE IF NOT EXISTS `elo_ranking` (authid varchar(32) NOT NULL, name varchar(64) NOT NULL, rating int(8) NOT NULL, kills int(8) NOT NULL, deaths int(8) NOT NULL, notify int(2) NOT NULL)")
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("Nem lehet csatlakozni az adatbazishoz.")
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error")
if(Errcode)
log_amx("Hiba: %s",Error)
}
public client_putinserver(id)
{
arrayset(g_PlayerDatas[id], 0, 7)
g_PlayerDatas[id][SessionRating] = 1600
g_PlayerDatas[id][Rating] = -1
g_PlayerDatas[id][Name][0] = EOS
g_PlayerDatas[id][AuthId][0] = EOS
g_PlayerDatas[id][Notify] = true
if(get_user_flags(id) & ADMIN_CHAT) SetBit(bitadmin, id)
else ResetBit(bitadmin, id)
if(!is_user_bot(id) && !is_user_hltv(id))
{
get_user_name(id, g_PlayerDatas[id][Name], charsmax(g_PlayerDatas[][Name]))
get_user_authid(id, g_PlayerDatas[id][AuthId], charsmax(g_PlayerDatas[][AuthId]))
if(contain(g_PlayerDatas[id][AuthId], "_ID_LAN") != -1) get_user_ip(id, g_PlayerDatas[id][AuthId], charsmax(g_PlayerDatas[][AuthId]), 1)
Load_SQL(id)
}
}
public client_infochanged(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED
get_user_info(id, "name", g_PlayerDatas[id][Name], charsmax(g_PlayerDatas[][Name]))
return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
ResetBit(bitelo, id)
if(!is_user_bot(id) && !is_user_hltv(id)) Update_SQL(id)
arrayset(g_PlayerDatas[id], 0, 7)
g_PlayerDatas[id][SessionRating] = 1600
g_PlayerDatas[id][Rating] = -1
g_PlayerDatas[id][Name][0] = EOS
g_PlayerDatas[id][AuthId][0] = EOS
g_PlayerDatas[id][Notify] = true
}
public Load_SQL(id)
{
static Query[512]
new Data[1]; Data[0] = id
formatex(Query, charsmax(Query), "SELECT * FROM `elo_ranking` WHERE authid = ^"%s^";", g_PlayerDatas[id][AuthId])
SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
}
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)
{
g_PlayerDatas[id][Kills] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "kills"))
g_PlayerDatas[id][Deaths] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "deaths"))
g_PlayerDatas[id][Rating] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "rating"))
g_PlayerDatas[id][Notify] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "notify"))
}
else
{
Save_SQL(id)
}
}
}
public Save_SQL(id)
{
static Query[512]
formatex(Query, charsmax(Query), "INSERT INTO `elo_ranking` (`authid`, `name`, `rating`, `kills`, `deaths`, `notify`) VALUES (^"%s^", ^"%s^", ^"1600^", ^"0^", ^"0v, ^"0^")", g_PlayerDatas[id][AuthId], g_PlayerDatas[id][Name])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query)
}
public Update_SQL(id)
{
static Query[512]
formatex(Query, charsmax(Query), "UPDATE `elo_ranking` SET `name` = ^"%s^", `rating` = %d, `kills` = %d, `deaths` = %d, `notify` = %d WHERE `authid` = ^"%s^";", g_PlayerDatas[id][Name], g_PlayerDatas[id][Rating], g_PlayerDatas[id][Kills], g_PlayerDatas[id][Deaths], g_PlayerDatas[id][Notify], g_PlayerDatas[id][AuthId])
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 SQL_Rank(id)
{
static Query[512]
new Data[1]; Data[0] = id
formatex(Query, charsmax(Query), "SELECT COUNT(*) FROM `elo_ranking` WHERE `rating`>%i", g_PlayerDatas[id][Rating])
SQL_ThreadQuery(g_SqlTuple, "QueryRank", Query, Data, 1)
}
public QueryRank(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", Error)
return
}
else
{
g_PlayerDatas[Data[0]][Rank] = SQL_ReadResult(Query, P_DATA)
g_PlayerDatas[Data[0]][Rank] ++
}
SQL_ThreadQuery(Query, "QueryCount", "SELECT COUNT(*) FROM `elo_ranking`", Data, 1)
}
public QueryCount(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 Float:kpd = g_PlayerDatas[id][Deaths]==0?1.0:float(g_PlayerDatas[id][Kills]/g_PlayerDatas[id][Deaths])
ColorChat(id, NORMAL, "^4[%s] ^1ELO pontjaid: ^4%i ^1| Rangod: ^4%s ^1| Rankod: ^4%i ^1| KPD: ^4%.2f", Prefix, g_PlayerDatas[id][Rating], get_user_rang(g_PlayerDatas[id][Rating]), g_PlayerDatas[id][Rank], kpd)
}
}
public SQL_Top10(id)
{
new Data[1]; Data[0] = id
SQL_ThreadQuery(g_SqlTuple, "QueryTop10", "SELECT `name`, `rating` FROM `elo_ranking` ORDER BY `rating` DESC LIMIT 10", Data, 1)
}
public QueryTop10(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 i
while(SQL_MoreResults(Query))
{
SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "name"), g_Top10[i][Name], charsmax(g_Top10[][Name]))
g_Top10[i][Kills] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "kills"))
g_Top10[i][Deaths] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "deaths"))
g_Top10[i][Rating] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "rating"))
i++
}
ShowTopMOTD(Data[0])
}
}
public ShowTopMOTD(id)
{
static Menu[1024]
new Len
Len += formatex(Menu[Len], charsmax(Menu) - Len, "<center><table border=^"1^">")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "<body bgcolor=#000000><table style=^"color: #00FFFF^">")
Len += formatex(Menu[Len], charsmax(Menu) - Len, "<td>Név</td><td>Rang</td><td>Ölések</td><td>Halálok</td><td>Pontszám</td>")
for(new i; i< 10; i++)
Len += formatex(Menu[Len], charsmax(Menu) - Len, "<tr><td>%s</td><td>%s</td><td>%i</td><td>%i</td><td>%i</td></tr>", g_Top10[i][Name], get_user_rang(g_Top10[i][Rating]), g_Top10[i][Kills], g_Top10[i][Deaths], g_Top10[i][Rating])
Len += formatex(Menu[Len], charsmax(Menu) - Len, "</table></center>")
show_motd(id, Menu, "ELO Rankrendszer | TOP10")
}