Raised This Month: $ Target: $400
 0% 

Optimize this code (+SQL)


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Mlk27
Veteran Member
Join Date: May 2008
Old 06-15-2009 , 16:46   Optimize this code (+SQL)
Reply With Quote #1

This isn't my plugin I just cleaned up the code, add pcvar etc. I need you to futher optimize this plugin since the original author has pretty much abandoned his plugin

So anyone?

Code:
#include <amxmodx> #include <amxmisc> #include <sqlx> #define PLUGIN "ratemap" #define VERSION "0.9.6" #define AUTHOR "sTmN" new const TAG[] = "[RateMap]" new filename[256],parsedrate[2],mapname[30] new Handle:g_SqlTuple new g_Error[512] new ErrorCode,Handle:SqlConnection new cv_RateMap_sql, cv_RateMap_mode new cv_RateMap_host, cv_RateMap_user, cv_RateMap_pass, cv_RateMap_db new cv_RateMap_hostname new g_szRateMap_host[64], g_szRateMap_user[64], g_szRateMap_pass[64], g_szRateMap_db[64] new g_szRateMap_hostname[64], g_szRateMap_ip[15], g_szRateMap_port[8] public plugin_init() {     register_plugin(PLUGIN, VERSION, AUTHOR)     register_clcmd("say /rate","say_rate")     cv_RateMap_sql = register_cvar("rm_sql","1")     cv_RateMap_mode = register_cvar("rm_mode","1") // 1-steamid, 2-name, 3-ip     cv_RateMap_host = register_cvar("rm_host","localhost")     cv_RateMap_user = register_cvar("rm_user","username")     cv_RateMap_pass = register_cvar("rm_pass","password")     cv_RateMap_db = register_cvar("rm_db","database")     cv_RateMap_hostname = register_cvar("rm_hostname","Your Hostname")     get_pcvar_string(cv_RateMap_host, g_szRateMap_host, charsmax(g_szRateMap_host))     get_pcvar_string(cv_RateMap_user,g_szRateMap_user,charsmax(g_szRateMap_user))     get_pcvar_string(cv_RateMap_pass,g_szRateMap_pass,charsmax(g_szRateMap_pass))     get_pcvar_string(cv_RateMap_db,g_szRateMap_db,charsmax(g_szRateMap_db))     get_pcvar_string(cv_RateMap_hostname,g_szRateMap_hostname,charsmax(g_szRateMap_hostname))     get_cvar_string("ip",g_szRateMap_ip,charsmax(g_szRateMap_ip))     get_cvar_string("port",g_szRateMap_port,charsmax(g_szRateMap_port))     get_mapname(mapname,30)     get_configsdir(filename,255)     format(filename,charsmax(filename),"%s/rate",filename)     if(!get_pcvar_num(cv_RateMap_sql))     {         if(!dir_exists(filename))         {             mkdir(filename)             if(dir_exists(filename))             {                 format(filename,charsmax(filename),"%s/%s.ini",filename,mapname)                 new fp=fopen(filename,"w"); fclose(fp);                 return             }         }         else         {             format(filename,charsmax(filename),"%s/%s.ini",filename,mapname)             if(!file_exists(filename))             {                 new fp=fopen(filename,"w"); fclose(fp);                 return             }         }         server_print("# File created successfully.")     }     else     {         table_init();     } } public sql_connect() {     SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)     if(SqlConnection == Empty_Handle)         set_fail_state(g_Error) } public table_init() {     g_SqlTuple = SQL_MakeDbTuple(g_szRateMap_host,g_szRateMap_user,g_szRateMap_pass,g_szRateMap_db)     sql_connect();     // tworzy tabele     new Handle:Query = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS rm_rates (steamid TEXT(32),nickname TEXT(32),ip TEXT(32),mapname TEXT(32),rate INT(11),g_szRateMap_ip TEXT(32))")     if(!SQL_Execute(Query))     {         SQL_QueryError(Query,g_Error,511)         set_fail_state(g_Error)     }     new Handle:Query2 = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS rm_servers (ip TEXT(32),g_szRateMap_hostname TEXT(32))")     if(!SQL_Execute(Query2))     {         SQL_QueryError(Query2,g_Error,511)         set_fail_state(g_Error)     }     server_print("# Connected to database succesfully.")     // dodaje serwer do tabeli 'server'     new Handle:Query3 = SQL_PrepareQuery(SqlConnection,"SELECT ip, hostname FROM rm_servers WHERE ip='%s:%s'",g_szRateMap_ip,g_szRateMap_port)     if(!SQL_Execute(Query3))     {         SQL_QueryError(Query3,g_Error,511)         set_fail_state(g_Error)     }     if(!SQL_MoreResults(Query3))     {         new Handle:Query4 = SQL_PrepareQuery(SqlConnection,"INSERT INTO rm_servers VALUES('%s:%s','%s')",g_szRateMap_ip,g_szRateMap_port,g_szRateMap_hostname)         if(!SQL_Execute(Query4))         {             SQL_QueryError(Query4,g_Error,511)             set_fail_state(g_Error)         }     }     else     {         new hostname_fromsql[60]         hostname_fromsql[0]=SQL_ReadResult(Query3,0)         if(!equal(hostname_fromsql,g_szRateMap_hostname))         {             new Handle:Query5 = SQL_PrepareQuery(SqlConnection,"UPDATE rm_servers SET hostname='%s' WHERE ip='%s:%s'",g_szRateMap_hostname,g_szRateMap_ip,g_szRateMap_port)             if(!SQL_Execute(Query5))             {                 SQL_QueryError(Query5,g_Error,511)                 set_fail_state(g_Error)             }         }     }     SQL_FreeHandle(SqlConnection) } public say_rate(id) {     new iMode = get_pcvar_num(cv_RateMap_mode)     new steamid[32], name[32], ip[32]     get_user_authid(id,steamid,31)     get_user_name(id,name,32)     get_user_ip(id,ip,32,1)     if(!get_pcvar_num(cv_RateMap_sql))     {         new readdata[128],txtlen         new parsedsteamid[32], parsedname[32], parsedip[32]         new pomocnik=0         new fsize = file_size(filename,1)         for (new line=0;line<=fsize;line++)         {             read_file(filename,line,readdata,127,txtlen)             parse(readdata,parsedsteamid,31,parsedrate,2,parsedname,31,parsedip,31)             // sprawdzanie rm_mode             switch(iMode)             {                 case 1:                 {                     if(equal(steamid,parsedsteamid))                     {                         fnGreenChat(id,"%s You already rated this map.",TAG)                         break                     }                     else                     {                         pomocnik=pomocnik+1                         if(pomocnik==fsize)                             ratemenu(id)                     }                 }                 case 2:                 {                     if(equal(name,parsedname))                     {                         fnGreenChat(id,"%s You already rated this map.",TAG)                         break                     }                     else                     {                         pomocnik=pomocnik+1                         if(pomocnik==fsize)                             ratemenu(id)                     }                 }                 case 3:                 {                     if(equal(ip,parsedip))                     {                         fnGreenChat(id,"%s You already rated this map.",TAG)                         break                     }                     else                     {                         pomocnik=pomocnik+1                         if(pomocnik==fsize)                             ratemenu(id)                     }                 }             }         }     }     else     {         switch(iMode)         {             case 1:             {                 // steamid                 sql_connect()                 new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT steamid FROM rm_rates WHERE steamid='%s' AND mapname='%s'",steamid,mapname)                 if(!SQL_Execute(Query))                 {                     SQL_QueryError(Query,g_Error,511)                     set_fail_state(g_Error)                 }                 if(!SQL_MoreResults(Query))                     ratemenu(id)                 else                     fnGreenChat(id,"%s You already rated this map.",TAG)             }             case 2:             {                 // nickname                 sql_connect();                 new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT nickname FROM rm_rates WHERE nickname='%s' AND mapname='%s'",name,mapname)                 if(!SQL_Execute(Query))                 {                     SQL_QueryError(Query,g_Error,511)                     set_fail_state(g_Error)                 }                 if(!SQL_MoreResults(Query))                     ratemenu(id)                 else                     fnGreenChat(id,"%s You already rated this map.",TAG)             }             case 3:             {                 // ip adress                 sql_connect();                 new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT ip FROM rm_rates WHERE ip='%s' AND mapname='%s'",ip,mapname)                 if(!SQL_Execute(Query))                 {                     SQL_QueryError(Query,g_Error,511)                     set_fail_state(g_Error)                 }                 if(!SQL_MoreResults(Query))                     ratemenu(id)                 else                     fnGreenChat(id,"%s You already rated this map.",TAG)             }         }         SQL_FreeHandle(SqlConnection)     } } public ratemenu(id) {     new Temp[64]     format(Temp, 64, "Rate map:");     new menu = menu_create(Temp,"func_ratemenu")     format(Temp, 64, "Terrible");     menu_additem(menu, Temp,"1",0)     format(Temp, 64, "Poor");     menu_additem(menu, Temp,"2",0)     format(Temp, 64, "Average");     menu_additem(menu, Temp,"3",0)     format(Temp, 64, "Good");     menu_additem(menu, Temp,"4",0)     format(Temp, 64, "Perfect");     menu_additem(menu, Temp,"5",0)     menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)     menu_display(id,menu,0) } public func_ratemenu(id,menu,item) {     if(item==MENU_EXIT)     {         menu_destroy(menu);         return PLUGIN_HANDLED     }     new data[6], iName[64]     new access, callback     menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);     new key = str_to_num(data);     if(!get_pcvar_num(cv_RateMap_sql))     {         switch(key)         {             case 1: ratelocal(id,key);             case 2: ratelocal(id,key);             case 3: ratelocal(id,key);             case 4: ratelocal(id,key);             case 5: ratelocal(id,key);             case 6: ratelocal(id,key);         }     }     else     {         switch(key)         {             case 1: ratesql(id,key);             case 2: ratesql(id,key);             case 3: ratesql(id,key);             case 4: ratesql(id,key);             case 5: ratesql(id,key);             case 6: ratesql(id,key);         }     }     return PLUGIN_HANDLED } public ratelocal(id,key) {     new writedata[128], steamid[32], name[32], ip[32]     get_user_authid(id,steamid,31)     get_user_name(id,name,32)     get_user_ip(id,ip,32,1)     new ocenka[15]     num_to_str(key,ocenka,12)     formatex(writedata,127,"^"%s^" ^"%s^" ^"%s^" ^"%s^"",steamid,ocenka,name,ip)     write_file(filename,writedata)     switch(key)     {         case 1: format(ocenka, 15, "Terrible");         case 2: format(ocenka, 15, "Poor");         case 3: format(ocenka, 15, "Average");         case 4: format(ocenka, 15, "Good");         case 5: format(ocenka, 15, "Perfect");     }     fnGreenChat(0,"%s For %s, this map is %s.",TAG,name,ocenka) } public ratesql(id,key) {     new steamid[32],name[32],ip[32]     get_user_authid(id,steamid,32)     get_user_name(id,name,32)     get_user_ip(id,ip,32,1)     new rate[15]     num_to_str(key,rate,12)     sql_connect();     new Handle:Queries = SQL_PrepareQuery(SqlConnection,"INSERT INTO rm_rates VALUES('%s','%s','%s','%s','%s','%s:%s')",steamid,name,ip,mapname,rate,g_szRateMap_ip,g_szRateMap_port)     switch(key)     {         case 1: format(rate, 15, "Terrible");         case 2: format(rate, 15, "Poor");         case 3: format(rate, 15, "Average");         case 4: format(rate, 15, "Good");         case 5: format(rate, 15, "Perfect");     }     fnGreenChat(0,"%s For %s, this map is %s.",TAG,name,rate)     if(!SQL_Execute(Queries))     {         SQL_QueryError(Queries,g_Error,511)         set_fail_state(g_Error)     }     SQL_FreeHandle(SqlConnection) } fnGreenChat( plr, const message[], {Float,Sql,Result,_}:... ) {     static max_players, svc_saytext;     if(!max_players)    max_players = get_maxplayers( );     if(!svc_saytext)    svc_saytext = get_user_msgid( "SayText" );     static msg[192]; msg[0] = 0x04;     vformat( msg[1], sizeof msg - 2, message, 3 );     if(1 <= plr <= max_players)     {         message_begin( MSG_ONE, svc_saytext, { 0, 0, 0 }, plr );         write_byte( plr );         write_string( msg );         message_end( );     }     else if( plr == 0 )     {         for( new i = 1 ; i <= max_players ; i++ )         {             if( is_user_connected( i ) )             {                 message_begin( MSG_ONE, svc_saytext, { 0, 0, 0 }, i );                 write_byte( i );                 write_string( msg );                 message_end( );             }         }     }     return 1; }
Mlk27 is offline
Reply


Thread Tools
Display Modes

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 14:04.


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