Advertisement
Guest User

Untitled

a guest
Mar 11th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <sqlx>
  3.  
  4. new c_SqlHost, c_SqlUser, c_SqlPass, c_SqlDB, c_SqlType, g_Error[512], Handle:g_SqlTuple;
  5.  
  6. public plugin_init()
  7. {
  8. register_plugin("Player On", "1.0", "*Or!g!naL*")
  9. c_SqlHost = register_cvar( "zp_ammo_bank_host", "localhost" )
  10. c_SqlUser = register_cvar( "zp_ammo_bank_user", "root" )
  11. c_SqlPass = register_cvar( "zp_ammo_bank_pass", "" )
  12. c_SqlDB = register_cvar( "zp_ammo_bank_db", "amx_panel" )
  13. c_SqlType = register_cvar( "zp_ammo_bank_type", "mysql" )
  14. if( !_PrepareSQL() ){
  15.  
  16. }
  17. }
  18. _PrepareSQL() {
  19.  
  20. new host[32], user[32], pass[32], db[32], type[12]
  21. get_pcvar_string( c_SqlHost, host, charsmax(host) )
  22. get_pcvar_string( c_SqlUser, user, charsmax(user) )
  23. get_pcvar_string( c_SqlPass, pass, charsmax(pass) )
  24. get_pcvar_string( c_SqlDB, db, charsmax(db) )
  25. get_pcvar_string( c_SqlType, type, charsmax(type) )
  26.  
  27. new get_type[12]
  28. SQL_GetAffinity( get_type, charsmax(get_type) )
  29.  
  30.  
  31. g_SqlTuple = SQL_MakeDbTuple( host, user, pass, db )
  32.  
  33.  
  34. new errcode, error[128];
  35. new Handle:link = SQL_Connect( g_SqlTuple, errcode, error, charsmax(error) )
  36.  
  37. if( link == Empty_Handle )
  38. {
  39. log_amx( "[ZP Ammo Bank] Failed to connect to database (%d): %s", errcode, error )
  40. return 0;
  41. }
  42.  
  43. SQL_FreeHandle(link)
  44.  
  45. return 1;
  46. }
  47.  
  48. public client_putinserver(id)
  49. {
  50. _LoadSQL(id)
  51. }
  52.  
  53. public client_disconnect(id)
  54. {
  55. _SaveSQL(id)
  56. }
  57. _MakeStringSQLSafe( output[], len ) {
  58.  
  59. replace_all( output, len, "'", "*" )
  60. replace_all( output, len, "^"", "*" ) //" - fix Sublime Text syntax highlight
  61. replace_all( output, len, "`", "*" )
  62. }
  63.  
  64. _LoadSQL(id) {
  65. new Name[64], onnli[64] = 1;
  66. get_user_name( id, Name, charsmax(Name) )
  67.  
  68. _MakeStringSQLSafe( Name, charsmax(Name) )
  69.  
  70. new queryString[512]
  71.  
  72. new data[2]
  73. data[0] = id
  74.  
  75. new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
  76. if(SqlConnection == Empty_Handle)
  77. set_fail_state(g_Error)
  78.  
  79.  
  80. formatex( queryString, charsmax(queryString),
  81. "UPDATE `amx_users` SET `is_online` = '%d' WHERE `auth` = '%s'",
  82. onnli, Name);
  83.  
  84. new Handle:Query = SQL_PrepareQuery(SqlConnection,queryString)
  85.  
  86. if(!SQL_Execute(Query))
  87. {
  88. SQL_QueryError(Query,g_Error,511)
  89. }
  90.  
  91. while(SQL_MoreResults(Query))
  92. {
  93.  
  94. SQL_NextRow(Query)
  95. }
  96.  
  97. SQL_FreeHandle(Query)
  98.  
  99. SQL_FreeHandle(SqlConnection)
  100. }
  101.  
  102. _SaveSQL(id) {
  103. new data[2]
  104. data[0] = id
  105.  
  106. new Name[64], online[64] = 0;
  107. get_user_name( id, Name, charsmax(Name) )
  108.  
  109. _MakeStringSQLSafe( Name, charsmax(Name) )
  110.  
  111. new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
  112. if(SqlConnection == Empty_Handle)
  113. set_fail_state(g_Error)
  114.  
  115. new queryString[ 1024 ];
  116.  
  117. formatex( queryString, charsmax(queryString),
  118. "UPDATE `amx_users` SET `is_online` = '%d' WHERE `auth` = '%s'",
  119. online, Name);
  120.  
  121. new Handle:Query = SQL_PrepareQuery(SqlConnection,queryString)
  122. if(!SQL_Execute(Query))
  123. {
  124. SQL_QueryError(Query,g_Error,511)
  125. set_fail_state(g_Error)
  126. }
  127. SQL_FreeHandle(Query)
  128.  
  129. SQL_FreeHandle(SqlConnection)
  130. }
  131. public QuerySaveData( failstate, Handle:query, error[], errcode, data[], size, Float:queueTime )
  132. {
  133. if( failstate == TQUERY_CONNECT_FAILED )
  134. {
  135. log_amx( "[ZP Achievement] Failed connecting to save data (%d): %s", errcode, error )
  136. }
  137. else if( failstate == TQUERY_QUERY_FAILED )
  138. {
  139. log_amx( "[ZP Achievement] Failed query on save data (%d): %s", errcode, error )
  140. }
  141. else
  142. {
  143. }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement