14.03.2015, 11:17
pawn Код:
CMD:ban(playerid, params[]) {
new banId, banLen[12], banX, banT, banTimestamp;
if (sscanf(params, "us[12]", banId, banLen))
return SendClientMessage(playerid, -1, "Usage: /ban [id/name] Xy/Xm/Xd/Xh/Xm - X = number");
if (!IsPlayerConnected(banId))
return SendClientMessage(playerid, -1, "Invalid player.");
if (!(banX = strval(banLen)))
return SendClientMessage(playerid, -1, "Usage: /ban [id/name] Xy/Xm/Xd/Xh/Xm - X = number");
for (new i = -1; banLen[++ i] != '\0' ;) {
switch (banLen[i]) {
case 'y', 'm', 'd', 'h': {
banT = ((banLen[i] == 'y') ? 31536000 : ((banLen[i] == 'm') ? 2592000 : ((banLen[i] == 'd') ? 86400 : ((banLen[i] == 'h') ? 3600 : 60))));
printf("debug: LOOP\r\n");
break;
}
}
}
if (!banT)
return SendClientMessage(playerid, -1, "Usage: /ban [id/name] Xy/Xm/Xd/Xh/Xm - X = number");
banTimestamp = gettime() + (banT * banX);
printf("debug: TS: %d | banT: %d | banX: %d\r\n", banTimestamp, banT, banX);
// ban them
// ban length should be banTimestamp
// OnPlayerConnect fetch banTimestamp and compare like
// if (banTimestamp <= gettime())
// if so then unban them
// else kick because they're still banned
return 1;
}