31.12.2012, 11:46
i tried to convert this code but it's don't work, the server closed connection
convert:
isplayerbanned it's work
log:
[15:01:11] ProcessQueryThread(CheckPlayerBanned) - Query was successful. (SELECT * FROM `bans` WHERE (`Username` = 'Test' OR `IP` = '86.126.122.128') AND `Banned` = 1 LIMIT 1)
[15:01:11] ProcessQueryThread(CheckPlayerBanned) - Data caching enabled.
[15:01:11] CMySQLHandler::StoreResult() - Result was stored.
[15:01:11] CMySQLHandler::FreeResult() - Result was successfully free'd.
Код:
stock IsPlayerBanned(playerid) { new IP[16], String[128], Query[128], reason[64], admin[32], i[128], seconds; GetPlayerIp(playerid, IP, sizeof(IP)); format(Query, sizeof(Query), "SELECT * FROM `bans` WHERE (`Username` = '%s' OR `IP` = '%s') AND `Banned` = 1 LIMIT 1", PlayerName(playerid), IP); mysql_query(Query); mysql_store_result(); if(mysql_num_rows() != 0) { while(mysql_fetch_row_format(Query, "|")) { mysql_fetch_field_row(i, "Reason"); format(reason, sizeof(reason), i); mysql_fetch_field_row(i, "Seconds"); seconds = strval(i); mysql_fetch_field_row(i, "Admin"); format(admin, sizeof(admin), i); } if(seconds > gettime()) { SendClientMessage(playerid, RED_COLOR, "[BAN] You are banned from this server!"); format(String, sizeof(String), "* Ban reason: %s", reason); SendClientMessage(playerid, RED_COLOR, String); format(String, sizeof(String), "* Admin: %s", admin); SendClientMessage(playerid, RED_COLOR, String); format(String, sizeof(String), "* You'll be unbanned in: %s", timec(gettime()-(gettime()-seconds))); SendClientMessage(playerid, RED_COLOR, String); Kick(playerid); } else { format(Query, sizeof(Query), "UPDATE `bans` SET `Banned` = 0 WHERE `Username` = '%s'", PlayerName(playerid)); mysql_query(Query); format(String, sizeof(String), "[UNBAN] %s (%i) has been unbanned from the server!", PlayerName(playerid), playerid); SendClientMessageToAll(GREEN_COLOR, String); } } mysql_free_result(); return 1;
isplayerbanned it's work
log:
[15:01:11] ProcessQueryThread(CheckPlayerBanned) - Query was successful. (SELECT * FROM `bans` WHERE (`Username` = 'Test' OR `IP` = '86.126.122.128') AND `Banned` = 1 LIMIT 1)
[15:01:11] ProcessQueryThread(CheckPlayerBanned) - Data caching enabled.
[15:01:11] CMySQLHandler::StoreResult() - Result was stored.
[15:01:11] CMySQLHandler::FreeResult() - Result was successfully free'd.
Код:
stock IsPlayerBanned(playerid) { new IP[16], szQuery[300]; GetPlayerIp(playerid, IP, sizeof(IP)); format(szQuery, sizeof(szQuery), "SELECT * FROM `bans` WHERE (`Username` = '%s' OR `IP` = '%s') AND `Banned` = 1 LIMIT 1", returnName(playerid), IP); mysql_function_query(mysqlh, szQuery, true, "CheckPlayerBanned", "is", playerid); } stock CheckPlayerBanned(playerid) { new rows,fields; cache_get_data(rows,fields); if(rows) { new temp[40]; new IP[16], String[128], szQuery[128], reason[64], admin[32], seconds; cache_get_field_content(0, "Reason", reason); cache_get_field_content(0, "Seconds", temp), seconds = strval(temp); cache_get_field_content(0, "Admin", admin); if(seconds > gettime()) { SendClientMessage(playerid, COLOR_RED, "You are banned from this server!"); format(String, sizeof(String), "* Ban reason: %s", reason); SendClientMessage(playerid, COLOR_RED, String); format(String, sizeof(String), "* Admin: %s", admin); SendClientMessage(playerid, COLOR_RED, String); format(String, sizeof(String), "* You'll be unbanned in: %s", timec(gettime()-(gettime()-seconds))); SendClientMessage(playerid, COLOR_RED, String); Kick(playerid); } else { format(szQuery, sizeof(szQuery), "UPDATE `bans` SET `Banned` = 0 WHERE `Username` = '%s'", PlayerName(playerid)); mysql_function_query(mysqlh, szQuery, false, "SendQuery", ""); } return 1; }