28.07.2011, 13:09
Hello , i have try to make a temp ban command but I do not know how to do this .
this is my temp ban command :
can any one help me to do this ??
this is my temp ban command :
Код HTML:
if(strcmp(cmd, "/tempban", true) == 0) { new name[MAX_PLAYER_NAME]; if(AccInfo[playerid][Level] >= 4) { tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { SendClientMessage(playerid, LIGHTBLUE2, "Usage: /tempban [PlayerID] [Day(s)] [Reason]"); SendClientMessage(playerid, orange, "Function: Temporarily bans a player for specified Days"); return 1; } giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { tmp = strtok(cmdtext, idx); if (!strlen(tmp)) { SendClientMessage(playerid, LIGHTBLUE2, "Usage: /tempban [PlayerID] [Day(s)] [Reason]"); SendClientMessage(playerid, orange, "Function: Temporarily bans a player for specified Days"); return 1; } new days = strval(tmp); if(!IsNumeric(tmp)) return SendClientMessage(playerid, lightred, "ERROR: Invalid Day! Only Numbers!"); if(strval(tmp) <= 0 || strval(tmp) > 1000) return SendClientMessage(playerid, lightred, "ERROR: Invalid Day! (1-1000)"); new reason[128]; reason = strtok2(cmdtext,idx); if (!strlen(reason)) return SendClientMessage(playerid, lightred, "ERROR: Reason not Specified!"); if (strlen(reason) <= 0 || strlen(reason) > 100) return SendClientMessage(playerid, lightred, "ERROR: Invalid Reason length!"); new ip[15]; GetPlayerIp(giveplayerid,ip,15); GetPlayerName(playerid, name, sizeof name); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); new File:tempban = fopen("LuxAdmin/Config/TempBans.ban", io_append); if (tempban) { new year,month,day; getdate(year, month, day); day += days; if (IsMonth31(month)) { if (day > 31) { month += 1; if (month > 12) { year += 1; while(day > 31) day -= 31; } else while(day > 31) day -= 31; } } else if (!IsMonth31(month)) { if (day > 30) { month += 1; if (month > 12) { year += 1; while(day > 30) day -= 30; } else while(day > 30) day -= 30; } } else if (!IsMonth31(month) && IsMonth29(year) && month == 2) { if (day > 29) { month += 1; if (month > 12) { year += 1; while(day > 29) day -= 29; } else while(day > 29) day -= 29; } } else if (!IsMonth31(month) && !IsMonth29(year) && month == 2) { if (day > 28) { month += 1; if (month > 12) { year += 1; while(day > 28) day -= 28; } else while(day > 28) day -= 28; } } new file[64]; new y,m,d,h,mi,s; getdate(y,m,d); gettime(h,mi,s); new playersip[64]; GetPlayerIp(playerid,playersip,sizeof(playersip)); format(file, sizeof(file),"LuxAdmin/Bans/%s.tempban",playersip); dini_Create(file); format(string, sizeof(string),"%d/%d/%d At %d:%d:%d",d,m,y,h,mi,s); dini_Set(file,"BanDate",string); format(string, sizeof(string),"%d",d); dini_Set(file,"BanDay",string); format(string, sizeof(string),"%d",m); dini_Set(file,"BanMonth",string); format(string, sizeof(string),"%d",d); dini_Set(file,"BanYear",string); format(string, sizeof(string),"%d/%d/%d",day,month,year); dini_Set(file,"Until",string); dini_Set(file,"BannedBy",plaName(playerid)); dini_Set(file,"BanReason",reason); dini_Set(file,"BanName",plaName(giveplayerid)); dUserSetINT(PlayerName2(giveplayerid)).("Banned",1); } format(string,128,"|- Administrator %s Temporarily Banned %s for %d Day(s) | Reason: %s -|",name,giveplayer,days,reason); SendClientMessageToAll(lightred,string); Kick(giveplayerid); format(string, sizeof string, "Admin %s Temporarily Banned %s for %d Day(s) | Reason: %s",name,giveplayer,days,reason); SaveIn("TempBansLog",string); } else { ErrorMessages(playerid, 2); } } else return ErrorMessages(playerid, 1); return true; }