Mysql logging
Posted: 2012 Dec 23 15:01
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
Pradejau nuo kažko tokio:
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


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