Raised This Month: $ Target: $400
 0% 

Server hangs on mapchange :(


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Gizmo
Senior Member
Join Date: May 2006
Location: Sweden
Old 05-31-2006 , 16:49   Server hangs on mapchange :(
Reply With Quote #1

Can anyone tell me why the server hangs on mapchange because of this plugin

Code:
#include <amxmodx> #include <amxmisc> #include <sqlx> new AUTH[] = "Gizmo" new PLUGIN_NAME[] = "Tidtest" new VERSION[] = "0.1b" new Handle:g_SqlX new g_table[32] new Float:g_onlinetime[33] new maxplayers new g_steamid[32] public plugin_init() {     register_plugin(PLUGIN_NAME, VERSION, AUTH)     register_cvar(PLUGIN_NAME, VERSION, FCVAR_SERVER | FCVAR_SPONLY)     // Sql settings     register_cvar("pi_sql_host", "127.0.0.1")     register_cvar("pi_sql_user", "*****")     register_cvar("pi_sql_pass", "*****")     register_cvar("pi_sql_db", "amx")     register_cvar("pi_sql_table", "amx_tidtest")     //register_logevent ("EndofRound", 2, "1=Round_End")//"0=World triggered" ,     maxplayers = get_maxplayers()     new modname[32]     get_modname(modname,31)     if(equali("cstrike",modname))     {         register_event("SendAudio","EndofRound","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")     }     else if(equali("ns",modname))     {         register_event("GameStatus", "EndofRound", "ab", "1=2")     }     else if(equali("dod",modname))     {         register_event("RoundState","EndofRound","a","1=3","1=4")     }     //Execute configfile for tidtest     new configsDir[64]     get_configsdir(configsDir, 63)     server_cmd("exec %s/tidtest.cfg", configsDir)     server_exec() } public plugin_cfg() {     new host[64], user[64], pass[64], db[64]     get_cvar_string("pi_sql_host", host, 63)     get_cvar_string("pi_sql_user", user, 63)     get_cvar_string("pi_sql_pass", pass, 63)     get_cvar_string("pi_sql_db", db, 63)         g_SqlX = SQL_MakeDbTuple(host, user, pass, db)     set_task(0.1, "create_table") } public create_table() {     new errnum, error[255]     get_cvar_string("pi_sql_table", g_table, 31)     new Handle:db = SQL_Connect(g_SqlX, errnum, error, 254)     if (!db)     {         server_print("Connection failed [%d] %s", errnum, error)         return     }     new Handle:query = SQL_PrepareQuery(db, "CREATE TABLE IF NOT EXISTS `%s` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `authid` VARCHAR(32) NOT NULL DEFAULT '0' , `time` INT(10) UNSIGNED NOT NULL DEFAULT '0' , `connects` INT(10) UNSIGNED NOT NULL DEFAULT '0' , `rounds` INT(10) UNSIGNED NOT NULL DEFAULT '0') ENGINE = MYISAM" , g_table )         if (!SQL_Execute(query))     {         errnum = SQL_QueryError(query, error, 254)         server_print("Query failed [%d] %s", errnum, error)         SQL_FreeHandle(query)         SQL_FreeHandle(db)         return     }     SQL_FreeHandle(query)     SQL_FreeHandle(db) } /////////////////////////////////////////////////////////// public client_putinserver(id) {     if(is_user_connected(id) && !is_user_bot(id))     {         get_user_authid(id, g_steamid, 31)         set_task(0.1, "select_user")         g_onlinetime[id] = get_gametime() - 3.0     }     return PLUGIN_CONTINUE } public select_user(id) {     new query[512]     new data[1]     format(query, 511, "SELECT authid FROM `%s` WHERE `authid` = '%s'", g_table, g_steamid)     data[0] = id     SQL_ThreadQuery(g_SqlX, "insert_user", query, data, 1)     return } public insert_user(failstate, Handle:query, error[], errnum, data[], size) {     new id = data[0]     if (failstate)     {         new szQuery[256]         MySqlX_ThreadError( query, szQuery, error, errnum, failstate, 1 )     }     else     {         new result = SQL_NumResults(query)         if(result == 0)         {             new query[512], data[1]             format(query, 511, "INSERT INTO `%s` ( `authid` , `time` , `connects` , `rounds`) VALUES ( '%s', '0', '1' , '0' )", g_table, g_steamid)             data[0] = id             SQL_ThreadQuery(g_SqlX, "insert_to_table", query, data, 1)         }         else         {             new query[512], data[1]             format(query, 511, "UPDATE `%s` SET `connects`=connects+1 WHERE `authid`='%s'", g_table, g_steamid)             data[0] = id             SQL_ThreadQuery(g_SqlX, "update_table", query, data, 1)         }     } } public insert_to_table(failstate, Handle:query, error[], errnum, data[], size) {     //new id = data[0]     if (failstate)     {         new szQuery[256]         MySqlX_ThreadError(query, szQuery, error, errnum, failstate, 2)     }     SQL_FreeHandle(query) } public update_table(failstate, Handle:query, error[], errnum, data[], size) {     //new id = data[0]     if (failstate)     {         new szQuery[256]         MySqlX_ThreadError(query, szQuery, error, errnum, failstate, 3)     }     SQL_FreeHandle(query) } /////////////////////////////////////////////////////////// public EndofRound() {     new Float:gametime = get_gametime()     for(new id = 1; id <= maxplayers; id++)     if( is_user_connected(id) && !is_user_bot(id))     {         rounds (id, floatround(gametime - g_onlinetime[id]))     } } rounds(id, onlinetime) {     new query[512], data[1]     format(query, 511, "UPDATE `%s` SET `time`=time+%i, `rounds`=rounds+1 WHERE `authid`='%s'", g_table, onlinetime, g_steamid)     data[0] = id     SQL_ThreadQuery(g_SqlX, "round_update", query, data, 1)     new Float:gametime = get_gametime()     g_onlinetime[id] = gametime } public round_update(failstate, Handle:query, error[], errnum, data[], size) {     //new id = data[0]     if (failstate)     {         new szQuery[256]         MySqlX_ThreadError(query, szQuery, error, errnum, failstate, 4)     }     SQL_FreeHandle(query) } /////////////////////////////////////////////////////////// public client_disconnect(id) {     if(!is_user_bot(id))     _client_disconnect(id, floatround(get_gametime() - g_onlinetime[id]))     g_onlinetime[id] = 0.0     return PLUGIN_CONTINUE } _client_disconnect(id, onlinetime) {     new query[512], data[1]     format(query, 511, "UPDATE `%s` SET `time`=time+%i WHERE `authid`='%s'", g_table, onlinetime, g_steamid)     data[0] = id     SQL_ThreadQuery(g_SqlX, "disconnect_update", query, data, 1) } public disconnect_update(failstate, Handle:query, error[], errnum, data[], size) {     //new id = data[0]     if (failstate)     {         new szQuery[256]         MySqlX_ThreadError(query, szQuery, error, errnum, failstate, 5)     }     SQL_FreeHandle(query) } /////////////////////////////////////////////////////////// //update user on map change but not 2 times public plugin_end() {     new Float:gametime = get_gametime()     for(new id = 1; id <= maxplayers; id++)     if( is_user_connected(id) )         endquery(floatround(gametime - g_onlinetime[id]))     SQL_FreeHandle(g_SqlX)     return } endquery(onlinetime) {     server_print("time: %i", onlinetime)     new errnum, error[255]     new Handle:db = SQL_Connect(g_SqlX, errnum, error, 254)     if (!db)     {         server_print("Connection failed [%d] %s", errnum, error)         return     }     new Handle:query = SQL_PrepareQuery(db, "UPDATE `%s` SET `time`=time+%i WHERE `authid`='%s'", g_table, onlinetime, g_steamid)     server_print("Saved userinfo")     if (!SQL_Execute(query))     {         errnum = SQL_QueryError(query, error, 254)         server_print("Query failed [%d] %s", errnum, error)         SQL_FreeHandle(query)         SQL_FreeHandle(db)         return     }     SQL_FreeHandle(query)     SQL_FreeHandle(db) } /////////////////////////////////////////////////////////// MySqlX_ThreadError(Handle:query, szQuery[], error[], errnum, failstate, id) {     if (failstate == TQUERY_CONNECT_FAILED)     {         server_print("TConnection failed!")     }     else if (failstate == TQUERY_QUERY_FAILED)     {         server_print("TQuery failed!")     }     server_print( "[MYSQLX] Threaded query error, location: %d", id );     server_print( "[MYSQLX] Message: %s (%d)", error, errnum );     server_print( "[MYSQLX] Query statement: %s ", szQuery );     SQL_FreeHandle(query) }
__________________
Gizmo is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:21.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode