SporTsmaN
Компетентный
Код №1.
Код №2
И ещё вопросик. Как лучше сделать 1 таймер или на него несколько.
PHP:
if(strcmp(cmd, "/prison",true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GREY," У вас недостаточно прав, чтобы использовать эту команду.");
if(gAdminLogged[playerid] == 0)
{
SPD(playerid,1999,DIALOG_STYLE_PASSWORD,"Авторизация в Админ панели","Введи свой админ пароль, чтобы ввести пароль 10 секунд","Войти","Отмена");
SetTimer("adminlogin", 10000, 0);
return true;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{33FFCC}Подсказка: {ffffff}/prison [id] [причина]");
giveplayerid = ReturnUser(tmp); //tmp = strtok(cmdtext, idx);//new minute = strval(tmp);
if(PlayerInfo[giveplayerid][pJailed] == 1|| PlayerInfo[giveplayerid][pJailed] == 4) return SendClientMessage(playerid, COLOR_GREY," Этот игрок уже сидит в тюрьме.");
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new arank[64];
if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Гл.Администратором"; }
else if(PlayerInfo[playerid][pAdmin] == 5) { arank = "Гл.Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Модератором"; }
else { arank = "Модератор"; }
new is1=0; // Вот антирекл
new r=0;
while(strlen(cmdtext[is1]))
{
if('0'<=cmdtext[is1]<='9')
{
new is2=is1+1;
new p=0;
while(p==0)
{
if('0'<=cmdtext[is2]<='9'&&strlen(cmdtext[is2])) is2++;
else
{
strmid(strR[r],cmdtext,is1,is2,255);
if(strval(strR[r])<255) r++;
is1=is2;
p=1;
}
}
}
is1++;
}
if(r>=4)
{
new strMy[255];
new STRname[255];
GetPlayerName(playerid,STRname,255);
SendClientMessage(playerid, COLOR_WHITE, "Найдены запрещённые символы! Сообщение не отправлено.");
format(strMy, sizeof(strMy), "(Антиреклама): Подозрение на рекламу в /prison причину %s[%d]: %s",STRname,playerid,cmdtext);
ABroadCast(COLOR_YELLOW, strMy, 1);
for(new z=0;z<r;z++)
{
new pr2;
while((pr2=strfind(cmdtext,strR[z],true))!=-1) for(new i=pr2,j=pr2+strlen(strR[z]);i<j;i++) cmdtext[i]='*';
}
return true;
} // Вот антирекл
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, "{33FFCC}Подсказка: {ffffff}/prison [id] [минуты] [причина]");
return true;
}
if(PlayerInfo[playerid][pAdmin] < 6)
if(Rekl[playerid] == 1 && strfind(cmdtext,"www",true)!=-1 || Rekl[playerid] == 1 && strfind(cmdtext,".ru",true)!=-1 // Вот антирекл
|| Rekl[playerid] == 1 && strfind(cmdtext,".net",true)!=-1 || Rekl[playerid] == 1 && strfind(cmdtext,".com",true)!=-1
|| Rekl[playerid] == 1 && strfind(cmdtext,"http",true)!=-1 || Rekl[playerid] == 1 && strfind(cmdtext,"ip",true)!=-1)
{
format(string,128,"(Антиреклама): Подозрение на рекламу в /prison причину %s[%d]: %s", sendername, playerid, cmdtext);
ABroadCast(COLOR_YELLOW, string,1);
return true;
}
format(string, sizeof(string), "UniversaL: %s был(а) посажен(а) в Форт Де Морган на 3 часа %s %s. Причина: %s.", giveplayer,arank,sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
format(string, sizeof(string), "Ты был(а) посажен(а) в Форт Де Морган на 3 часа %s %s.",arank, sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
GameTextForPlayer(giveplayerid, "~w~Welcome to ~n~~r~Fort De Morgan", 5000, 3);
PlayerInfo[giveplayerid][pWanted] = 0;
PlayerInfo[giveplayerid][pJailed] = 4;
SetPlayerSkin(giveplayerid, 268);
PlayerInfo[giveplayerid][pJailfdmTime] = 10800; //PlayerInfo[giveplayerid][pJailfdmTime] = 60 * minute;
SetPlayerWantedLevel(giveplayerid, PlayerInfo[giveplayerid][pWanted]);
SetPlayerWorldBounds(giveplayerid, 337.5694,101.5826,1940.9759,1798.7453); // Что-бы не збижал
SafeResetPlayerWeapons(giveplayerid);
SetPlayerPos(giveplayerid, 107.2300,1920.6311,18.5208);
}
}
else
{
SendClientMessage(playerid, COLOR_GREY,"Игрока нет в сети");
}
}
return true;
}
PHP:
if(strcmp(cmd, "/prison",true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] < 1)
{
SendClientMessage(playerid, COLOR_GREY, "Недостаточно прав для использования команды.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "/prison [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
new arank[64];
if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Гл.Администратором"; }
else if(PlayerInfo[playerid][pAdmin] == 5) { arank = "Администратором"; }
else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Гл.Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Модератором"; }
else if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Модератором"; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "YourDream-RPG: %s был(a) посажен(a) в Форт ДеМорган на 3 часа %s %s",giveplayer, arank, sendername);
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[giveplayerid][pWanted] = 0;
SetPlayerWantedLevel(giveplayerid, PlayerInfo[giveplayerid][pWanted]);
PlayerInfo[giveplayerid][pJailed] = 2;
PlayerInfo[giveplayerid][pJailTime] = 3600;
SpawnPlayer(giveplayerid);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GainAdmin[i] == 1)
{
new admin[MAX_PLAYER_NAME]; new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, admin,sizeof(admin));
GetPlayerName(giveplayerid, player,sizeof(player));
format(string,sizeof(string),"Gain Admin: {FFFFFF}%s посадил в форт игрока %s.",admin,player);
SendClientMessage(i, COLOR_LIGHTRED, string);
}
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок не подключен!");
return 1;
}
}
return 1;
}
