Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

При каком раскладе скрипт мог сработать не так?

Статус
В этой теме нельзя размещать новые ответы.

Netix

Ученик
При каком раскладе админ может слететь с Админки? Случилось примерно такое: прописав /кикнуть 13 Просьба не флудить | Flood
Администрация слетает с админки (тобишь при очень длинном сообщении). Что не так? из за чего это?. Понятное дело что по скрипту, если больше 9 цифр = Кик, но тут админка слетает если больше 10 символов в причине кика.

PHP:
if(strcmp(cmdtext,"/кикнуть",true)==0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) return    SendClientMessage(playerid, COLOR_GREEN, "Используйте: /кикнуть [id игрока] [причина]");
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_RED, "[Ошибка]: >> Администратор не может быть кикнут!");
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    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)) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: /кикнуть [id игрока] [причина]");
                    for(new i;i < strlen(result);i++)
                    {
                        new a[2],c=0;
                        for(new j = 0;j < strlen(result);j++) //5
                        {
                            strmid(a,result,i+j,i+j+1,2);
                            if('0' <= a[0] <= '9')c+=1;
                        }
                        if(c == 9)
                        {
                            PlayerInfo[playerid][pAdmin] = 0;
                            SendClientMessage(playerid, 0xFFFFFFAA, " Слишком много цифр");
                            SendClientMessage(playerid, 0xFFFFFFAA, " Идет анализ твоего сообщения, ты снят с администраторских прав.");
                            format(string,sizeof(string)," Внимание: %s[%d] пытался отправить текст: %s",sendername, playerid, result);
                            ABroadCast(COLOR_YELLOW,string,1);
                            return 1;
                        }
                    }
                    new year, month,day;
                    getdate(year, month, day);
                    format(string, sizeof(string), "Администратор: %s кикнул %s. Причина: {FFA500}[%s]", sendername,giveplayer, (result));
                    SendClientMessageToAll(COLOR_LIGHTRED, string);
                    new coordsstring3[512];
                    new msg3[] = "{ff8800}Кикнул(а) Администратор: {FFFFFF}%s\n\t{ff8800}Причина: {FFFFFF}%s";
                    format(coordsstring3, sizeof coordsstring3, msg3, sendername,result);
                    Kick(giveplayerid);
                    return true;
                }
            }
        }
        else { SendClientMessage(playerid, COLOR_RED, "[Ошибка]: >> Данный игрок не найден"); }
    }
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу