Den4ik-Den
Умник
Здравствуйте,у меня есть команда /offban,я ее перевел на командный процессор Pawn.CMD и когда я ее перевел,я не мог забанить ни одного игрока в оффлайне
Вот код команды на Pawn.CMD
А вот на стандартном
Помогите пожалуйста
Вот код команды на Pawn.CMD
PHP:
cmd:offban(playerid,params[])
{
if(pData[playerid][pAdmin] < 5) return 1;
{
new zStr[128];
if(sscanf(params,"sis",params[0],params[1],params[2])) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
new account[24]; format(account, 24, "%s", params[0]);
if(params[1] < 1 || params[1] > 30) return SendClientMessage(playerid,CGRAY,"Неверное к-во дней");
sql_escape_string(snow, account,account, 24);
format(zStr,sizeof(zStr),"SELECT `id`,`admin` FROM `aplayerakk` WHERE `nickname` = '%s'",account);
new Result:r = sql_query(snow, zStr, QUERY_CACHED);
if(!sql_num_rows(r)) return SendClientMessage(playerid, COLOR_GREY, "Аккаунты не найдены");
new id = sql_get_field_int(r, 0);
new admin = sql_get_field_int(r, 1);
sql_free_result(r);
if(admin == 8) return SendPods(playerid, "/offban [name]");
if(admin > pData[playerid][pAdmin]) return SendClientMessage(playerid,CGRAY,"Вы не можете забанить администратора выше уровнем");
if(GetPlayerID(account) != -1)
{
//new stringer[256];
//format(stringer,sizeof(stringer),"/ban %d %d %s",GetPlayerID(account), time, tmp);
//OnPlayerCommandText(playerid,stringer);
SendClientMessage(playerid,-1,"Игрок онлайн,используйте /ban");
//callcmd::ban(playerid,"GetPlayerID(account),params[1],params[2]")
return 1;
}
format(zStr,sizeof(zStr),"SELECT `takeid` FROM `ban` WHERE `takeid` = '%d'",id);
new Result:zBan = sql_query(snow, zStr, QUERY_CACHED);
if(sql_num_rows(zBan)) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок забанен");
sql_free_result(zBan);
new stringer[312];
format(stringer, sizeof(stringer), "Администратор %s дал оффлайн бан игроку %s на %d дней. Причина: %s",pData[playerid][pNickname],account,params[1],params[2]);
SendLog(stringer);
format(zStr,sizeof(zStr),"%s получил оффлайн бан от Администратора %s на %d дней. Причина: %s",account, pData[playerid][pNickname],params[1],params[2]);
SendClientMessageToAll(COLOR_LIGHTRED,zStr);
new query[250];
params[1] += gCurDay;
if(!params[1]) params[1] += gCurDay + (365 * 99);
format(query,sizeof(query),"INSERT INTO `ban` VALUES ('','%d','%d','%d','%s')",pData[playerid][pMysqlID],id,params[1],params[2]);
sql_query(snow, query);
}
return 1;
}
PHP:
if(!strcmp(cmd,"/offban",true))
{
if(pData[playerid][pAdmin] < 5) return 1;
{
new zStr[128];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
new account[24]; format(account, 24, "%s", tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp) || !isNumeric(tmp)) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
new time = strval(tmp);
if(time < 1 || time > 30) return SendClientMessage(playerid,CGRAY,"Неверное к-во дней");
tmp = strrest(cmdtext, idx);
if(!strlen(tmp)) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
sql_escape_string(snow, account,account, 24);
format(zStr,sizeof(zStr),"SELECT `id`,`admin` FROM `aplayerakk` WHERE `nickname` = '%s'",account);
new Result:r = sql_query(snow, zStr, QUERY_CACHED);
if(!sql_num_rows(r)) return SendClientMessage(playerid, COLOR_GREY, "Аккаунты не найдены");
new id = sql_get_field_int(r, 0);
new admin = sql_get_field_int(r, 1);
sql_free_result(r);
if(admin == 8) return SendPods(playerid, "/offban [name]");
if(admin > pData[playerid][pAdmin]) return SendClientMessage(playerid,CGRAY,"Вы не можете забанить администратора выше уровнем");
if(GetPlayerID(account) != -1)
{
new stringer[256];
format(stringer,sizeof(stringer),"/ban %d %d %s",GetPlayerID(account), time, tmp);
OnPlayerCommandText(playerid,stringer);
return 1;
}
format(zStr,sizeof(zStr),"SELECT `takeid` FROM `ban` WHERE `takeid` = '%d'",id);
new Result:zBan = sql_query(snow, zStr, QUERY_CACHED);
if(sql_num_rows(zBan)) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок забанен");
sql_free_result(zBan);
new stringer[255];
format(stringer, sizeof(stringer), "Администратор %s дал оффлайн бан игроку %s на %d дней. Причина: %s",pData[playerid][pNickname],account,time,tmp);
SendLog(stringer);
format(zStr,sizeof(zStr),"%s получил оффлайн бан от Администратора %s на %d дней. Причина: %s",account, pData[playerid][pNickname],time,tmp);
SendClientMessageToAll(COLOR_LIGHTRED,zStr);
new query[250];
time += gCurDay;
if(!time) time += gCurDay + (365 * 99);
format(query,sizeof(query),"INSERT INTO `ban` VALUES ('','%d','%d','%d','%s')",pData[playerid][pMysqlID],id,time,tmp);
sql_query(snow, query);
}
}
