• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проблема с выходом за границы массива

hamykeig

Умник
похожей темы не нашел , по этому пишу сюда , значится такая проблема в консоль выбивает ошибку при воде команды /call и номер
тут ошибка if(params[0] == PlayerInfo[pPhone][1] && PlayerInfo[params[0]][pPhone] != 0)
это я пробывал такой вариант не промогло //if(params[0] == PlayerInfo[pPhone][1] || PlayerInfo[params[0]][pPhone] != 0)


PHP:
CMD:call(playerid, params[])
{
    if(PlayerLogged[playerid] == 0) return true;
    if(PlayerInfo[playerid][pMuted] > 0) return SendClientMessage(playerid, COLOR_PURPLE, PlayerHaveMuteTime);
    if(Phone[playerid] == false) return SendClientMessage(playerid, CGREY, "У вас выключен телефон!");
    if(Mobile[playerid] != -1) return SendClientMessage(playerid, CGREY, "Вы уже разговариваете по телефону!");
    if(PlayerInfo[playerid][pPhone][0] == 0) return SendClientMessage(playerid, CGREY, "Вы не владеете телефоном!");
    if(sscanf(params, "i", params[0])) return ShowPlayerDialog(playerid, D_HEAL+3, 2, "Сервис", "- Вызвать механика\n- Вызвать такси\n- Вызвать мед. помошь\n- Вызвать полицию", "Принять", "Отмена");
    if(params[0] < 0 || params[0] > 9999999) return SendClientMessage(playerid, CGREY, "Неверный номер телефона!");
    if(params[0] == PlayerInfo[playerid][pPhone][1]) return SendClientMessage(playerid, CGREY, "Ты не можешь позвонить самому себе!");
    if(PlayerInfo[playerid][pBank] < 1) return SendClientMessage(playerid, CGREY, YouDoNotHaveEnoughMoneyBank);
    new string[128];
    new full;
    if(params[0] == TODAY_NUMBER)
        {
            if(Ether[playerid] == true) return SendClientMessage(playerid, CGREY, "Ошибка! Действие невозможно!");
            if(PlayerInfo[playerid][pNews] != NEWS_UNITED) return SendMes(playerid, CGREY, "Вы должны слушать радио: %s", FracInfo[F_NEWS][fName]);
            if(EtherCall[PlayerInfo[playerid][pNews]-1] == false) return SendClientMessage(playerid, CGREY, "Радио не принимает звонков!");
            if(PlayerInfo[playerid][pPhoneBalance] < 150) return SendClientMessage(playerid, CGREY, "Пополните баланс мобильного телефона!");
            SetPVarInt(playerid,"CallNews",1);
            static const fmt_string[] = "[R] %s звонит в студию. Принять: /acall %i";
            new str[sizeof(fmt_string)+MAX_PLAYER_NAME+4];
            format(str, sizeof(str), fmt_string,PN(playerid),playerid);
            SendFMes(F_NEWS,COLOR_LIGHTRED,str);
            PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
            if(!IsPlayerInAnyVehicle(playerid)) SetPlayerSpecialAction(playerid, 11);
            CellTime[playerid] = 0;
            full++;
            return true;
        }
    else
    {
        foreach(new i:Player)
        {
            if(!IsPlayerConnected(i) || PlayerLogged[i] == 0) continue;
     if(params[0] == PlayerInfo[i][pPhone][1] && PlayerInfo[params[0]][pPhone] != 0)
   //if(params[0] == PlayerInfo[i][pPhone][1] || PlayerInfo[params[0]][pPhone] != 0)
            {
                if(Phone[i] == false) return SendClientMessage(playerid, CGREY, "Игрок выключил телефон!");
                if(Mobile[i] != -1) return SendClientMessage(playerid, CGREY, "Игрок уже разговаривает по телефону!");
                if(Ether[i] == true) return SendClientMessage(playerid, CGREY, "Ошибка! Действие невозможно!");
                Mobile[playerid] = i;
                SendMes(i, COLOR_WHITE, "Ваc вызывает: %s. Чтобы ответить, введите: /P", PN(playerid));
                format(string, 90, "У %s звонит мобильный телефон", PN(i));
                ProxDetectorNew(i,30.0,COLOR_PURPLE,string);
                PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
                SendClientMessage(playerid, COLOR_WHITE, "Чтобы повесить трубку, введите: /H");
                if(!IsPlayerInAnyVehicle(playerid)) SetPlayerSpecialAction(playerid, 11);
                CellTime[playerid] = 0;
                full++;
                break;
            }
            else SendClientMessage(playerid, COLOR_WHITE, "Ошибка!");
        }
    }
    if(full == 0) return SendClientMessage(playerid, CGREY, "Игрок с данным номером не найден!");
    return true;
}
PHP:
[debug] Run time error 4: "Array index out of bounds"
[debug]  Accessing element at index 715957 past array upper bound 999
[debug] AMX backtrace:
[debug] #0 0032730c in public pc_cmd_call (playerid=0, params[]=@009d3bdc "") at C:\Users\Андрей\Desktop\WARkeigV6.0\gamemodes\WARkeig.pwn:21498
[Pawn.CMD] HandleCommand: Call: amx_Exec(struct tagAMX *:02B82F98, int *:0019F7C0, int:177): Array index out of bounds (4)
 
Сверху Снизу