public plugin_cfg() {
if(MItems > 0)
{
static Query[2000];
g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
format(Query, sizeof(Query) - 1,"CREATE TABLE IF NOT EXISTS `%s` (`username` varchar(32) NOT NULL", TABLE);
for(new i = 0; i < MItems; i++)
format(Query, sizeof(Query) - 1,"%s, `%d` INT(11) NOT NULL", Query, MWPN[i]);
for(new i = 0; i < MItems; i++)
format(Query, sizeof(Query) - 1,"%s, `%dm` INT(11) NOT NULL", Query, MWPN[i]);
format(Query, sizeof(Query) - 1,"%s,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY);", Query);
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 tudtam csatlakozni az adatbazishoz.");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error");
if(Errcode)
log_amx("Hibat dobtam: %s",Error);
}
public client_putinserver(id) {
if(!is_user_bot(id)) {
get_user_authid(id, player_name[id], 31)
load(id);
for(new i = 0; i < 31; i++)
player_kills[id][i] = player_menu[id][i] = 0;
}
}
public load(id) {
if(MItems > 0)
{
new Query[512], Data[1];
Data[0] = id;
formatex(Query, charsmax(Query), "SELECT * FROM `%s` WHERE username = ^"%s^";", TABLE, player_name[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];
if(SQL_NumRows(Query) > 0) {
new S[32];
for(new i = 0; i < MItems; i++)
{
num_to_str(MWPN[i], S, 31);
player_kills[id][MWPN[i]] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, S));
format(S, sizeof(S) - 1,"%sm", S);
player_menu[id][MWPN[i]] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, S));
}
}
else save(id)
}
}
public save(id) {
if(MItems > 0)
{
static query[3000];
format(query, sizeof(query) - 1,"INSERT INTO `%s` (`username`", TABLE);
for(new i = 0; i < MItems; i++)
format(query, sizeof(query) - 1,"%s,`%d`", query, MWPN[i]);
for(new i = 0; i < MItems; i++)
format(query, sizeof(query) - 1,"%s,`%dm`", query, MWPN[i]);
format(query, sizeof(query) - 1,"%s) VALUES ('%s'", query, player_name[id]);
for(new i = 0; i < MItems*2; i++)
format(query, sizeof(query) - 1,"%s,'0'", query);
format(query, sizeof(query) - 1,"%s);", query);
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(id) {
if(MItems > 0)
{
new query[4000];
format(query, sizeof(query) - 1,"UPDATE `%s` SET `%d`='%i'", TABLE, MWPN[0], player_kills[id][MWPN[0]]);
for(new i = 1; i < MItems; i++)
format(query, sizeof(query) - 1,"%s,`%d`='%i'", query, MWPN[i], player_kills[id][MWPN[i]]);
for(new i = 0; i < MItems; i++)
format(query, sizeof(query) - 1,"%s,`%dm`='%i'", query, MWPN[i], player_menu[id][MWPN[i]]);
format(query, sizeof(query) - 1,"%s WHERE `username` = '%s';", query, player_name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", query)
}
}
public client_disconnect(id) {
if(!is_user_bot(id))
update(id)
}
public plugin_end() {
SQL_FreeHandle(g_SqlTuple);
}
stock UTIL_PlayWeaponAnimation (const Player, const Sequence)
{
set_pev (Player, pev_weaponanim, Sequence)
message_begin (MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte (Sequence)
write_byte (pev(Player, pev_body ))
message_end ()
}
stock ChatColor(const id, const szMessage[], any:...) {
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id) {
if(!is_user_connected(id)) return;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++) {
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
}