#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Eternity"
new arany[33], oles[33]
new Handle:g_SqlTuple
new g_Error[512]
new Host[] = "localhost"
new User[] = "root"
new Pass[] = "jelszo"
new Db[] = "adatbazis"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "halal", "a")
set_task(1.0, "MySql_Init")
}
halal()
{
new tamado = read_data(1)
new aldozat = read_data(2)
if(tamado == aldozat)
{
arany++
oles++
}
return PLUGIN_HANDLED
}
public MySql_Init()
{
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) //csatlakozunk az adatbázishoz
new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
if(SqlConnection == Empty_Handle)
set_fail_state(g_Error)
new Handle:Queries
Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS ProbaMentes (nev varchar(32),arany INT(11), oles INT(11))") //létrehozzuk a pontrendszer táblát név és pont sorokkal
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries,g_Error,charsmax(g_Error))
set_fail_state(g_Error)
}
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public betoltes(id)
{
new szNev[32], szTemp[512]
get_user_name(id, szNev, charsmax(szNev))
new Data[1]
Data[0] = id
format(szTemp,charsmax(szTemp),"SELECT * FROM `ProbaMentes` WHERE (`ProbaMentes`.`nev` = '%s')", szNev) //kiválasztjuk a játékost a pontrendszer táblából a neve alapján
SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Kapcsolodas sikertelen. [%d] %s", Errcode, Error)
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
}
new id
id = Data[0]
if(SQL_NumResults(Query) < 1)
{
new szNev[32]
get_user_name(id, szNev, charsmax(szNev))
new szTemp[512]
format(szTemp,charsmax(szTemp),"INSERT INTO `ProbaMentes` ( `nev` , `arany` , `oles`)VALUES ('%s','0','0');",szNev) //ha a játékos neve nem található a táblában akkor létrehozunk neki egy új sort a nevével és a pont értékét beállítjük 0 ra
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
else
{
arany[id] = SQL_ReadResult(Query, 1)
oles[id] = SQL_ReadResult(Query, 2) // ha van már ilyen név az adatbázisban akkor a pontjait beállítjuk neki a pont sorban található értékre (0 = név, 1= pont)
}
return PLUGIN_HANDLED
}
public mentes(id)
{
new szNev[32], szTemp[512]
get_user_name(id, szNev, charsmax(szNev))
format(szTemp,charsmax(szTemp),"UPDATE `ProbaMentes` SET `arany`, `oles` = '%i', '%i' WHERE `ProbaMentes`.`nev` = '%s';",arany[id],oles[id], szNev) //frissítjük az adatokat tehát a pontrendszer táblán belüli pont sorba beírjuk a játékos jelenlegi pontját ott ahol a név megegyezik a játékos nevével
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
SQL_FreeHandle(Query)
return PLUGIN_HANDLED
}
public client_putinserver(id)
{
betoltes(id)
}
public client_disconnect(id)
{
mentes(id)
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}