|
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viņa del Mar, Chile
|

05-09-2010
, 20:38
Rank System using SQLx
|
#1
|
I really don't know to how do it, but i founded this code:
PHP Code:
public clcmd_rank(id) { if (GET_FL(id, FLAG_LOADING)) return PLUGIN_HANDLED; if (GET_CASE(id) != CASE_INGAME) return PLUGIN_HANDLED; new consult[1024] new data[INFO_LEN] get_packet(id, data) formatex(consult, charsmax(consult), "SELECT *,(SELECT COUNT(*) FROM `%s`) AS `total` FROM (SELECT *, (@rownum := @rownum + 1) AS `rank` \ FROM `%s`, (SELECT @rownum := 0) AS `R` ORDER BY d1 DESC, d2 DESC) AS `newtable` WHERE `pj` = '%s';", _TABLE, _TABLE, esc_character[id]) loading(id, 1) SQL_ThreadQuery(tuple, "query_rank", consult, data, INFO_LEN) return PLUGIN_CONTINUE; }
public query_rank(failstate, Handle:query, error[], errcode, data[], datasize) { // lots of error checking if (!check_error(data[0], "query_rank", failstate, errcode, error)) return PLUGIN_CONTINUE; if (!get_unique(data)) return PLUGIN_CONTINUE;
new id = data[0] loading(id) new irank = SQL_FieldNameToNum(query, "rank") new itotal = SQL_FieldNameToNum(query, "total") new rank = SQL_ReadResult(query, irank) new total = SQL_ReadResult(query, itotal) client_print_color(id, Blue, "%s %L", cprefix, id, "C_RANK", rank, total) return PLUGIN_CONTINUE; }
Theres 2 problems:
- I don't understand too much things from that code
- How to do without SQL_ThreadQuery?
And i founded too a Top15 code:
PHP Code:
public clcmd_top10(id) { if (GET_FL(id, FLAG_LOADING)) return PLUGIN_HANDLED; new consult[256] new data[INFO_LEN] get_packet(id, data) formatex(consult, charsmax(consult), "SELECT * FROM `%s` ORDER BY d1 DESC, d2 DESC LIMIT 10", _TABLE); loading(id, 1) SQL_ThreadQuery(tuple, "query_top10", consult, data, INFO_LEN) return PLUGIN_CONTINUE; }
public query_top10(failstate, Handle:query, error[], errcode, data[], datasize) { // lots of error checking if (!check_error(data[0], "query_top10", failstate, errcode, error)) return PLUGIN_CONTINUE; if (!get_unique(data)) return PLUGIN_CONTINUE;
new id = data[0] loading(id) new name[64], buffer[2048], len, i = 0 len += formatex(buffer[len], charsmax(buffer) - len, "<meta charset=UTF-8><style>body{color:#FFFFFF;background-color:black;margin-top:5;font-family:arial}table{border-collapse:separate;border-spacing:1px;text-align:left;}")
len += formatex(buffer[len], charsmax(buffer) - len, "td{font-size:15px;}</style>")
// len += formatex(buffer[len], charsmax(buffer) - len, "<center><b><font size=6>ZP Top 10</b><table border=1 width=700>")
#if defined USE_CROSSGAMING len += formatex(buffer[len], charsmax(buffer) - len, "<center><img src=^"http://www.killer-instinct.com.ar/imageneszp/top10.bmp^"></img><table border=1 width=700>") #else len += formatex(buffer[len], charsmax(buffer) - len, "<center><img src=^"http://www.killer-instinct.com.ar/imageneszp/top10mz.bmp^"></img><table border=1 width=700>") #endif len += formatex(buffer[len], charsmax(buffer) - len, "%s","<br><tr bgcolor=#0000FF><td>#<td>Nick<td>Level<td>AP<td>Z matados<td>H matados<td>H infectados<td>N matados<td>S matados</tr>") new ipj = SQL_FieldNameToNum(query, "pj") new ilevel = SQL_FieldNameToNum(query, "d0") new iap = SQL_FieldNameToNum(query, "d1") new izkill = SQL_FieldNameToNum(query, "d2") new ihkill = SQL_FieldNameToNum(query, "d3") new ihinfected = SQL_FieldNameToNum(query, "d6") new inkill = SQL_FieldNameToNum(query, "d4") new iskill = SQL_FieldNameToNum(query, "d5") while (SQL_MoreResults(query)) { i++ if (i != 1) len += formatex(buffer[len], charsmax(buffer) - len, "<tr><td>%d", i) else len += formatex(buffer[len], charsmax(buffer) - len, "<tr bgcolor=#FF0000><td>%d", i) SQL_ReadResult(query, ipj, name, charsmax(name)) // replace_all(name, charsmax(name), ">", "gt;") replace_all(name, charsmax(name), "<", "lt;") len += formatex(buffer[len], charsmax(buffer) - len, "<td>%-22.22s", name) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, ilevel)) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, iap)) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, izkill)) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, ihkill)) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, ihinfected)) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, inkill)) len += formatex(buffer[len], charsmax(buffer) - len, "<td>%d", SQL_ReadResult(query, iskill))
SQL_NextRow(query) } len += formatex(buffer[len], charsmax(buffer) - len, "</table></font>") show_motd(id, buffer, "ZP Top 10") return PLUGIN_CONTINUE }
Same problems...
I want please if someone can do a correct example for me
For example, a money rank, data num 0 = 'account_name', data num 1 = 'money'
Sorry if i didn't expressed it well.
__________________
Quote:
Originally Posted by joropito
You're right Metalicross
|
|
|