Guest User

Untitled

a guest
Jul 28th, 2011
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.33 KB | None | 0 0
  1. public MySQLConnect(sqlhost[], sqluser[], sqlpass[], sqldb[]) // by Luk0r
  2. {
  3. print("MYSQL: Attempting to connect to server...");
  4. samp_mysql_connect(sqlhost, sqluser, sqlpass);
  5. samp_mysql_select_db(sqldb);
  6. if(samp_mysql_ping()==0)
  7. {
  8. print("MYSQL: Database connection established.");
  9. return 1;
  10. }
  11. else
  12. {
  13. print("MYSQL: Connection error, retrying...");
  14. samp_mysql_connect(sqlhost, sqluser, sqlpass);
  15. samp_mysql_select_db(sqldb);
  16. if(samp_mysql_ping()==0)
  17. {
  18. print("MYSQL: Reconnection successful. We can continue as normal.");
  19. return 1;
  20. }
  21. else
  22. {
  23. print("MYSQL: Could not reconnect to server, terminating server...");
  24. SendRconCommand("exit");
  25. return 0;
  26. }
  27. }
  28. }
  29.  
  30. public MySQLDisconnect() // by Luk0r
  31. {
  32. samp_mysql_close();
  33. return 1;
  34. }
  35.  
  36. public MySQLCheckConnection() // by Luk0r
  37. {
  38. if(samp_mysql_ping()==0)
  39. {
  40. return 1;
  41. }
  42. else
  43. {
  44. print("MYSQL: Connection seems dead, retrying...");
  45. MySQLDisconnect();
  46. MySQLConnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);
  47. if(samp_mysql_ping()==0)
  48. {
  49. print("MYSQL: Reconnection successful. We can continue as normal.");
  50. return 1;
  51. }
  52. else
  53. {
  54. print("MYSQL: Could not reconnect to server, terminating server...");
  55. SendRconCommand("exit");
  56. return 0;
  57. }
  58. }
  59. }
  60.  
  61. public MySQLUpdateBuild(query[], sqlplayerid) // by Luk0r
  62. {
  63. new querylen = strlen(query);
  64. //new querymax = sizeof(query);
  65. new querymax = MAX_STRING;
  66. if (querylen < 1) format(query, querymax, "UPDATE players SET ");
  67. else if (querymax-querylen < 50) // make sure we're being safe here
  68. {
  69. // query is too large, send this one and reset
  70. new whereclause[32];
  71. format(whereclause, sizeof(whereclause), " WHERE id=%d", sqlplayerid);
  72. strcat(query, whereclause, querymax);
  73. samp_mysql_query(query);
  74. format(query, querymax, "UPDATE players SET ");
  75. }
  76. else if (strfind(query, "=", true) != -1) strcat(query, ",", MAX_STRING);
  77. return 1;
  78. }
  79.  
  80. public MySQLUpdateFinish(query[], sqlplayerid) // by Luk0r
  81. {
  82. if (strcmp(query, "WHERE id=", false) == 0) samp_mysql_query(query);
  83. else
  84. {
  85. new whereclause[32];
  86. format(whereclause, sizeof(whereclause), " WHERE id=%d", sqlplayerid);
  87. strcat(query, whereclause, MAX_STRING);
  88. samp_mysql_query(query);
  89. format(query, MAX_STRING, "UPDATE players SET ");
  90. }
  91. return 1;
  92. }
  93.  
  94. public MySQLUpdatePlayerInt(query[], sqlplayerid, sqlvalname[], sqlupdateint) // by Luk0r
  95. {
  96. MySQLUpdateBuild(query, sqlplayerid);
  97. new updval[64];
  98. format(updval, sizeof(updval), "%s=%d", sqlvalname, sqlupdateint);
  99. strcat(query, updval, MAX_STRING);
  100. return 1;
  101. }
  102.  
  103. public MySQLUpdatePlayerFlo(query[], sqlplayerid, sqlvalname[], Float:sqlupdateflo) // by Luk0r
  104. {
  105. /* new query[128];
  106. format(query, sizeof(query), "UPDATE players SET %s=%f WHERE id=%d", sqlvalname, sqlupdateflo, sqlplayerid);
  107. samp_mysql_query(query);*/
  108. new flotostr[32];
  109. format(flotostr, sizeof(flotostr), "%f", sqlupdateflo);
  110. MySQLUpdatePlayerStr(query, sqlplayerid, sqlvalname, flotostr);
  111. return 1;
  112. }
  113.  
  114. public MySQLUpdatePlayerStr(query[], sqlplayerid, sqlvalname[], sqlupdatestr[]) // by Luk0r
  115. {
  116. MySQLUpdateBuild(query, sqlplayerid);
  117. new escstr[128];
  118. new updval[128];
  119. samp_mysql_real_escape_string(sqlupdatestr, escstr);
  120. format(updval, sizeof(updval), "%s='%s'", sqlvalname, escstr);
  121. strcat(query, updval, MAX_STRING);
  122. return 1;
  123. }
  124.  
  125. public MySQLUpdatePlayerIntSingle(sqlplayerid, sqlvalname[], sqlupdateint) // by Luk0r
  126. {
  127. new query[128];
  128. format(query, sizeof(query), "UPDATE players SET %s=%d WHERE id=%d", sqlvalname, sqlupdateint, sqlplayerid);
  129. samp_mysql_query(query);
  130. return 1;
  131. }
  132.  
  133. public MySQLCheckAccount(sqlplayersname[]) // by Luk0r
  134. {
  135. new query[128];
  136. new escstr[MAX_PLAYER_NAME];
  137. samp_mysql_real_escape_string(sqlplayersname, escstr);
  138. format(query, sizeof(query), "SELECT id FROM players WHERE LOWER(Name) = LOWER('%s') LIMIT 1", escstr);
  139. samp_mysql_query(query);
  140. samp_mysql_store_result();
  141. if (samp_mysql_num_rows()==0)
  142. {
  143. return 0;
  144. }
  145. else
  146. {
  147. new strid[32];
  148. new intid;
  149. samp_mysql_fetch_row(strid);
  150. intid = strval(strid);
  151. return intid;
  152. }
  153. }
  154.  
  155. public MySQLCheckAccountLocked(sqlplayerid)
  156. {
  157. new query[64];
  158. new lockedboolstr[4];
  159. format(query, sizeof(query), "SELECT Locked FROM players WHERE id = %d LIMIT 1", sqlplayerid);
  160. samp_mysql_query(query);
  161. samp_mysql_store_result();
  162. samp_mysql_fetch_row(lockedboolstr);
  163. if (strval(lockedboolstr) != 0)
  164. {
  165. return 1;
  166. }
  167. return 0;
  168. }
  169.  
  170. public MySQLCheckIPBanned(ip[])
  171. {
  172. new query[64];
  173. format(query, sizeof(query), "SELECT type FROM bans WHERE ip = '%s' AND inactive = 0 ORDER BY id DESC LIMIT 1", ip);
  174. samp_mysql_query(query);
  175. samp_mysql_store_result();
  176. if (samp_mysql_num_rows() != 0)
  177. {
  178. new bantypestr[4];
  179. new bantypeint;
  180. samp_mysql_fetch_row(bantypestr);
  181. bantypeint = strval(bantypestr);
  182. samp_mysql_free_result();
  183. return bantypeint;
  184. }
  185. return 0;
  186. }
  187.  
  188. public MySQLFetchAcctSingle(sqlplayerid, sqlvalname[], sqlresult[])
  189. {
  190. new query[128];
  191. format(query, sizeof(query), "SELECT %s FROM players WHERE id = %d LIMIT 1", sqlvalname, sqlplayerid);
  192. samp_mysql_query(query);
  193. samp_mysql_store_result();
  194. if(samp_mysql_fetch_row(sqlresult)==1)
  195. {
  196. return 1;
  197. }
  198. return 0;
  199. }
  200.  
  201. public MySQLFetchAcctRecord(sqlplayerid, sqlresult[]) // by Luk0r
  202. {
  203. new query[64];
  204. format(query, sizeof(query), "SELECT * FROM players WHERE id = %d LIMIT 1", sqlplayerid);
  205. samp_mysql_query(query);
  206. samp_mysql_store_result();
  207. if(samp_mysql_fetch_row(sqlresult)==1)
  208. {
  209. return 1;
  210. }
  211. return 0;
  212. }
  213.  
  214. public MySQLCreateAccount(newplayersname[], newpassword[]) // by Luk0r
  215. {
  216. new query[128];
  217. new sqlplyname[64];
  218. new sqlpassword[64];
  219. samp_mysql_real_escape_string(newplayersname, sqlplyname);
  220. samp_mysql_real_escape_string(newpassword, sqlpassword);
  221. format(query, sizeof(query), "INSERT INTO players (Name, Password) VALUES ('%s', '%s')", sqlplyname, sqlpassword);
  222. samp_mysql_query(query);
  223. new newplayersid = MySQLCheckAccount(newplayersname);
  224. if (newplayersid != 0)
  225. {
  226. return newplayersid;
  227. }
  228. return 0;
  229. }
  230.  
  231. public MySQLAddLoginRecord(sqlplayerid, ipaddr[]) // by Luk0r
  232. {
  233. new query[128];
  234. new escip[16];
  235. samp_mysql_real_escape_string(ipaddr, escip);
  236. format(query, sizeof(query), "INSERT INTO logins (time,ip,userid) VALUES (UNIX_TIMESTAMP(),'%s',%d)", escip, sqlplayerid);
  237. samp_mysql_query(query);
  238. return 1;
  239. }
Advertisement
Add Comment
Please, Sign In to add comment