Page 1 of 2

Mysql logging

Posted: 2012 Dec 23 15:01
by V1LKAS
Pilnai tikiu kad toks pluginas kurio ieškau gali būti seniausiai sukurtas,tačiau išieškojau alliedmodders puslapį ir nesugebėjau surasti.

Zdž ieškau plugino, kuris įrašinėtų į duomenų bazę kiekvieno prisijungiančio žaidėjo ip, nick,steamid ir būtų gerai, kad fiksuotų map koks buvo prisijungiant kartu prisijungimo/atsijungimo time bei nekurtų tokio pat įrašo jeigu tas pats žaidėjas prisijungtų vėliau tokiu pat IP, o tiesiog atnaujintų lentelėje prisijungimo map bei time. Table Laukai galėtų būti tokie: player_ip, played_id, player_nick, connect_time, dconnect_time, connect_map, dconnect_map . Kažką pats bandžiau pats darytis bet žinių gerokai pritrūko :/ dar stipriai per durnas tam :fool:

Pradejau nuo kažko tokio:

Code: Select all

#include <amxmodx>#include <sqlx>#include <amxmisc> new player_ipnew player_idnew player_nicknew connect_time new connect_mapnew dconnect_time new dconnect_map public plugin_init(){register_plugin("blablabla", "0.1", "V1LKAS") register_cvar("amx_logs", "1")register_cvar("amx_logs_sql_host", "localhost")register_cvar("amx_logs_sql_user", "root")register_cvar("amx_logs_sql_pass", "")register_cvar("amx_logs_sql_db", "amx_logs")register_cvar("amx_logs_sql_type", "mysql") get_pcvar_string(cvTable, g_szSQLTable, charsmax(g_szSQLTable)) new host[32]new user[32]new password[32]new db[32] get_cvar_string("amx_logs_sql_host",host,31)get_cvar_string("amx_logs_user",user,31)get_cvar_string("amx_logs_sql_pass",password,31)get_cvar_string("amx_logs_sql_db",db,31)        g_hSQLTuple = SQL_MakeDbTuple(host,user,password,db) if(g_hSQLConnection != Empty_Handle)    {        SQL_QueryAndIgnore(g_hSQLConnection,            "CREATE TABLE IF NOT EXISTS `%amx_logs` (                               `player_ip` varchar(32) NOT NULL default '',                                 `player_id` varchar(32) NOT NULL default '',                                 `player_ick` varchar(32) NOT NULL default '',                                `connect_map` varchar(32) NOT NULL default '',                                 `dconnect_map` varchar(32) NOT NULL default '',                                  `connect_time` timestamp(14) NOT NULL,                                 `dconnect_time` timestamp(14) NOT NULL,                                                  , PRIMARY KEY  (`player_ip`) )                 TYPE=MyISAM",            g_szSQLTable )            else        log_amx("plugin_init(): SQL Error %amx_logs", iError, szError)    }         return PLUGIN_CONTINUE} public client_connect(id){if(get_cvar_num("amx_logs") = 1){ connect_time  = get_systime(0) get_time("%H:%M:%S %p",time) get_user_authid( id, player_id,31)get_user_name(id, player_nick, 31)get_user_ip(id, player_ip, 31)get_mapname(id,connect_map,31) Ką toliau daryti have no idea}return PLUGIN_HANDLED}public client_disconnect(id){   dconnect_time  = get_systime(0) get_time("%H:%M:%S %p",time)get_mapname(id,dconnect_map,31) } šūdų malūnas čia, bandžiau minti pasirašyti kaip viskas turėtų atrodyti gali būt daug klaidų, toliau disconect INSER INTRO t.t

Re: Mysql logging

Posted: 2012 Dec 23 15:16
by InvIs
O tai nebūtų papraščiau naudoti Arno sukurtą amx logs advanced pluginą?

Re: Mysql logging

Posted: 2012 Dec 23 15:22
by V1LKAS
Okey dėkingas, kaip ir maniau toks pluginas jau yra, ačiū kad nurodei pavadinimą ir autorių +karma, tik klausimėlis, kodėl pats forumo administratorius nepatalpinęs šiame forume šio pluginO?

Re: Mysql logging

Posted: 2012 Dec 23 15:30
by laimiukas3
V1LKAS wrote:Okey dėkingas, kaip ir maniau toks pluginas jau yra, ačiū kad nurodei pavadinimą ir autorių +karma, tik klausimėlis, kodėl pats forumo administratorius nepatalpinęs šiame forume šio pluginO?
http://amxmodx.lt/viewtopic.php?f=14&t=4

Re: Mysql logging

Posted: 2012 Dec 24 01:08
by aaarnas
Jis yra, bet perkeltas į nepatvirtintų pluginų skyrių, nes sukurtas labai senai ir labai siaubingai prastai parašytas.
Be to, atrodo yra panašių pluginų

Re: Mysql logging

Posted: 2012 Dec 24 01:32
by laimiukas3
arnai o cia kur tavo puslapi tu cia sita plugina naudoji ar kazka kito ?:) http://logs.srventer.lt/

Re: Mysql logging

Posted: 2012 Dec 24 12:53
by aaarnas
Vienas iš daugelio mano privačių darbų.

Re: Mysql logging

Posted: 2012 Dec 24 12:56
by Leu
ar gal yra koks pluiginas kuris i weba logint kas vyksta serveriuose?

Re: Mysql logging

Posted: 2012 Dec 24 13:27
by V1LKAS
aaarnas wrote:Vienas iš daugelio mano privačių darbų.
Įmanoma būtų šį privatų darbelį įsigyti?

Re: Mysql logging

Posted: 2012 Dec 24 13:48
by Tetusis
kazkur radau

Code: Select all

#include <amxmodx>#include <amxmisc>#include <sqlx> #define PLUGIN "Enter server"#define VERSION "0.1"#define AUTHOR "Kat"  new pc_sql_hostnew pc_sql_usernew pc_sql_passnew pc_sql_dbnew Handle:g_sql_tuplenew Handle:g_sql_connectionnew bool:g_sql_ready public plugin_init(){    register_plugin(PLUGIN, VERSION, AUTHOR)    pc_sql_host = register_cvar("amx_sql_host", "127.0.0.1")    pc_sql_user = register_cvar("amx_sql_user", "")    pc_sql_pass = register_cvar("amx_sql_pass", "")    pc_sql_db = register_cvar("amx_sql_db", "test")        g_sql_ready = false    set_task(0.1, "mysql_connect")} public mysql_connect(){    new host[32], user[32], pass[32], db[32], err[512], err_code    get_pcvar_string(pc_sql_host, host, 31)    get_pcvar_string(pc_sql_user, user, 31)    get_pcvar_string(pc_sql_pass, pass, 31)    get_pcvar_string(pc_sql_db, db, 31)        g_sql_tuple = SQL_MakeDbTuple(host, user, pass, db)     g_sql_connection = SQL_Connect(g_sql_tuple,err_code,err,511)    if(g_sql_connection == Empty_Handle){        log_amx("SQL Error: %s (%d)", err, err_code)        return    }    g_sql_ready = true} public query_func(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){    if(FailState){        log_amx("SQL Error: %s (%d)", Error, Errcode)        return PLUGIN_HANDLED    }    return PLUGIN_HANDLED}  public client_connect (id){    if(!g_sql_ready)        return PLUGIN_CONTINUE            new name[32], quoted_name[64], ip[32], mapname[64], serv_port[32], steam[32];    new qtime = get_systime(0)        get_cvar_string("port", serv_port, 63)    get_mapname(mapname, 32)    get_user_ip(id, ip , 45 , 1)    get_user_authid (id, steam, 31 )    get_user_name(id, name, 31)    SQL_QuoteString(g_sql_connection, quoted_name, 63, name)        new cache[1001]    formatex(cache, 1000, "insert into `log_connect` set `nick` = '%s', `ip` = '%s', `map` = '%s', `port`= '%s', `time` = '%i', `steam` = '%s'", quoted_name, ip, mapname, serv_port, qtime, steam)    SQL_ThreadQuery(g_sql_tuple, "query_func", cache)        return PLUGIN_CONTINUE;} public plugin_end(){    if(g_sql_ready)        SQL_FreeHandle(g_sql_connection)}