|
Junior Member
|

05-14-2011
, 05:31
Not working get_systime
|
#1
|
Hey, So I've made my own Ban system, and It's not working, I don't know why, could someone check it up ?
PHP Code:
#include <amxmodx> #include <amxmisc> #include <sqlx> #include <cstrike> #include <colorchat>
#define PLUGIN "Tutorial" #define VERSION "1.0" #define AUTHOR "Grim"
new Host[] = "127.0.0.1" new User[] = "root" new Pass[] = "nsth" new Db[] = "amx"
new Handle:g_SqlTuple new g_Error[512]
new iBan[33]; new iReason[33][255]; new iAdmin[33][32];
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) set_task(1.0, "MySql_Init") register_clcmd("say ", "said") }
public said(id) { if(~get_user_flags(id) & ADMIN_BAN) return PLUGIN_CONTINUE; new szArg[45] read_args(szArg, charsmax(szArg)) remove_quotes(szArg) new szCmd[12], szTarget[12], szTime[4], szReason[20] strbreak(szArg, szCmd, charsmax(szCmd), szArg, charsmax(szArg)) if(equali(szCmd, "!ban")) { strbreak(szArg, szTarget, charsmax(szTarget), szArg, charsmax(szArg)) strbreak(szArg, szTime, charsmax(szTime), szReason, charsmax(szReason)) if(!szTarget[0] || !szTime[0] || !szReason[0]) { client_print_color(id, DontChange, "^4[ INFO ]^1 Usage: ^3!ban player_name ban_time ban_reason") return PLUGIN_HANDLED_MAIN; } new szAdminName[33]; get_user_name(id, szAdminName, 32) new player = cmd_target(id, szTarget, CMDTARGET_OBEY_IMMUNITY); if(!player) return PLUGIN_HANDLED; new bantime; if(containi(szTime, "m") != -1) { replace_all(szTime, charsmax(szTime), "m", "") bantime = str_to_num(szTime) * 60; }else if(containi(szTime, "h") != -1) { replace_all(szTime, charsmax(szTime), "h", "") bantime = str_to_num(szTime) * 60 * 60; }else if(containi(szTime, "d") != -1) { replace_all(szTime, charsmax(szTime), "d", "") bantime = str_to_num(szTime) * 60 * 60 * 24; } if(bantime > 604800) { client_print_color(id, DontChange, "^4[ INFO ]^1 ban_time can not exceed more than 7 days") return PLUGIN_HANDLED_MAIN; } new szTargetName[33]; get_user_name(player, szTargetName, 32) switch(cs_get_user_team(player)) { case CS_TEAM_CT: client_print_color(0, BLUE, "^4[ INFO ]^1 Player ^3%s^1 banned ( %s )", szTargetName, szReason) case CS_TEAM_T: client_print_color(0, RED, "^4[ INFO ]^1 Player ^3%s^1 banned ( %s )", szTargetName, szReason) case CS_TEAM_SPECTATOR: client_print_color(0, GREY, "^4[ INFO ]^1 Player ^3%s^1 banned ( %s )", szTargetName, szReason) } client_cmd(player, "echo ^"---- You are banned ----^nbanned by: %s^nreason: %s^n---- You are banned ----^"", iAdmin[id], iReason[id]) server_cmd("kick #%d ^"You are banned,^ncheck your console^"", get_user_userid(player) ) new szTargetAuth[33]; get_user_authid(player, szTargetAuth, 32) new szTemp[512] format(szTemp,charsmax(szTemp),"INSERT INTO `bans` ( `auth` , `ban_time`, `ban_reason`, `ban_admin`)VALUES ('%s','%d', '%s', '%s');", szTargetAuth, get_systime() + bantime, szReason, szAdminName) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) return PLUGIN_HANDLED_MAIN; } return PLUGIN_CONTINUE; }
public MySql_Init() { g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error)) if(SqlConnection == Empty_Handle) set_fail_state(g_Error) new Handle:Queries Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS bans (ip varchar(32),ban_time INT(20), ban_reason varchar(50), ban_admin varchar(32) )")
if(!SQL_Execute(Queries)) { SQL_QueryError(Queries,g_Error,charsmax(g_Error)) set_fail_state(g_Error) } SQL_FreeHandle(Queries) SQL_FreeHandle(SqlConnection) }
public plugin_end() { SQL_FreeHandle(g_SqlTuple) }
public Load_MySql(id) { new szAuthID[32], szTemp[512] get_user_authid(id, szAuthID, charsmax(szAuthID)) new Data[1] Data[0] = id format(szTemp,charsmax(szTemp),"SELECT * FROM `bans` WHERE (`bans`.`auth` = '%s')", szAuthID) SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1) }
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(FailState == TQUERY_CONNECT_FAILED) { log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error) } else if(FailState == TQUERY_QUERY_FAILED) { log_amx("Load Query failed. [%d] %s", Errcode, Error) }
new id id = Data[0] if(SQL_NumResults(Query) > 1) { iBan[id] = SQL_ReadResult(Query, 1) SQL_ReadResult( Query, 2, iReason[id], charsmax( iReason[ ] ) ) SQL_ReadResult( Query, 3, iAdmin[id], charsmax( iAdmin[ ] ) ) } set_task(0.1, "CheckBan", id) return PLUGIN_HANDLED }
public CheckBan(id) { if( iBan[id] > get_systime() ) { client_cmd(id, "echo ^"---- You are banned ----^nbanned by: %s^nreason: %s^n---- You are banned ----^"", iAdmin[id], iReason[id]) server_cmd("kick #%d ^"You are banned,^ncheck your console^"", get_user_userid(id) ) } }
public client_disconnect(id) { iBan[id] = 0; iReason[id][0] = '^0' iAdmin[id][0] = '^0' }
/*public Save_MySql(id) { new szIp[32], szName[32], szTemp[512] get_user_ip(id, szIp, charsmax(szIp), 1) format(szTemp,charsmax(szTemp),"UPDATE `bans` SET `ban` = '%d' WHERE `bans`.`ip` = '%s';",iExp[id], szSteamId) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) }*/
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { SQL_FreeHandle(Query) return PLUGIN_HANDLED }
public client_putinserver(id) { Load_MySql(id) }
I Ban a player then he disconnects, and he can connect again.
Last edited by monolit; 05-14-2011 at 06:17.
|
|