Can someone make this plugin to save nick, not by steamid.
#include <amxmodx> #include <sqlx> new Handle:g_SqlTuple new bool:g_HasSaved[33] public plugin_init() { register_event("DeathMsg", "event_death", "a") } public plugin_cfg() { g_SqlTuple = SQL_MakeStdTuple() if (g_SqlTuple == Empty_Handle) log_amx("Invalid SQL info.") else { new errcode, error[128] new Handle:db = SQL_Connect(g_SqlTuple, errcode, error, 127) if (db == Empty_Handle) log_amx("Could not connect to SQL: %s", error) else { new Handle:query = SQL_PrepareQuery(db, "CREATE TABLE IF NOT EXISTS player_stats \ (name VARCHAR(32) NOT NULL, \ steamid VARCHAR(35) NOT NULL PRIMARY KEY, \ kills INT(11) NOT NULL, \ deaths INT(11) NOT NULL);" ) if (!SQL_Execute(query)) { SQL_QueryError(query, error, 127) log_amx("Query error for create table: %s", error) } else state sql_enabled SQL_FreeHandle(query) new players[32], num get_players(players, num, "ch") for (new i = 0; i < num; i++) { handle_player_connect(db, players[i]) } SQL_FreeHandle(db) } } } handle_player_connect(Handle:db, id) { if (g_HasSaved[id]) return; new steamid[35] get_user_authid(id, steamid, 34) new Handle:query = SQL_PrepareQuery(db, "SELECT * FROM player_stats WHERE steamid = ^"%s^";", steamid) if (!SQL_Execute(query)) { new error[128] SQL_QueryError(query, error, 127) log_amx("Query error for select player stats: %s", error) } else if (SQL_NumResults(query)) { SQL_FreeHandle(query) new name[32] get_user_name(id, name, 31) query = SQL_PrepareQuery(db, "UPDATE player_stats SET name = ^"%s^" WHERE steamid = ^"%s^";", name, steamid) if (!SQL_Execute(query)) { new error[128] SQL_QueryError(query, error, 127) log_amx("Query error for update player name: %s", error) } g_HasSaved[id] = true } else { SQL_FreeHandle(query) new name[32] get_user_name(id, name, 31) query = SQL_PrepareQuery(db, "INSERT INTO player_stats (name, steamid, kills, deaths) VALUES (^"%s^", ^"%s^", 0, 0);", name, steamid) if (!SQL_Execute(query)) { new error[128] SQL_QueryError(query, error, 127) log_amx("Query error for insert player: %s", error) } else g_HasSaved[id] = true } SQL_FreeHandle(query) } public client_putinserver(id) <> { } public client_putinserver(id) <sql_enabled> { if (g_HasSaved[id]) return; new errcode, error[128] new Handle:db = SQL_Connect(g_SqlTuple, errcode, error, 127) if (db == Empty_Handle) return; handle_player_connect(db, id) SQL_FreeHandle(db); } public client_disconnect(id) { g_HasSaved[id] = false } public client_infochanged(id) <> { } public client_infochanged(id) <sql_enabled> { new oldname[32], newname[32] get_user_name(id, oldname, 31) get_user_info(id, "name", newname, 31) if (!equal(oldname, newname) && g_HasSaved[id]) { new errcode, error[128] new Handle:db = SQL_Connect(g_SqlTuple, errcode, error, 127) if (db == Empty_Handle) return; new steamid[35] get_user_authid(id, steamid, 34) new Handle:query = SQL_PrepareQuery(db, "UPDATE player_stats SET name = ^"%s^" WHERE steamid = ^"%s^";", newname, steamid) if (!SQL_Execute(query)) { SQL_QueryError(query, error, 127) log_amx("Query error for update player in client_putinserver(): %s", error) } SQL_FreeHandle(query); SQL_FreeHandle(db); } } public event_death() <> { } public event_death() <sql_enabled> { new killer = read_data(1) new victim = read_data(2) save_stats(killer, "kills", 1) save_stats(victim, "deaths", 1) } save_stats(id, stat[], addvalue) { if (is_user_connected(id) && g_HasSaved[id]) { new errcode, error[128] new Handle:db = SQL_Connect(g_SqlTuple, errcode, error, 127) if (db == Empty_Handle) return; new steamid[35] get_user_authid(id, steamid, 34) new Handle:query = SQL_PrepareQuery(db, "UPDATE player_stats SET %s = %s + %i WHERE steamid = ^"%s^";", stat, stat, addvalue, steamid) if (!SQL_Execute(query)) { SQL_QueryError(query, error, 127) log_amx("Query error for update player stat: %s", error) } SQL_FreeHandle(query); SQL_FreeHandle(db); } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang11274\\ f0\\ fs16 \n\\ par } */
Thanks ;]
Someone? Please.