Вопросы

Здравствуйте дорогие форумчани.
После добавления Античита Nexius у меня выскакивают такие ошибки

Спойлер

[17:38:38] Run time error 4: "Array index out of bounds"
[17:38:38]  Attempted to read/write array element at negative index -1
[17:38:38] AMX backtrace:
[17:38:38] #0 003c02d4 in public ac_OnPlayerKeyStateChange (playerid=1, newkeys=1, oldkeys=0) at C:\Users\RusTick\Desktop\Normative RP. Server 02\gamemodes\rls.pwn:56182
[17:38:38] #1 00024058 in public OnPlayerKeyStateChange (playerid=1, newkeys=1, oldkeys=0) at C:\Users\RusTick\Desktop\NORMAT~1.SER\pawno\include\
rakcheat.inc:5115
[17:48:43] Run time error 4: "Array index out of bounds"
[17:48:43]  Attempted to read/write array element at index 23 in array of size 20
[17:48:43] AMX backtrace:
[17:48:43] #0 00722770 in CaptureUpd (bandkiller=18) at C:\Users\RusTick\Desktop\Normative RP. Server 02\gamemodes\rls.pwn:63307
[17:48:43] #1 00198d0c in public ac_OnPlayerDeath (playerid=2, killerid=6, reason=24) at C:\Users\RusTick\Desktop\Normative RP. Server 02\gamemodes\rls.pwn:26314
[17:48:43] #2 000129b4 in public OnPlayerDeath (playerid=2, killerid=6, reason=24) at C:\Users\RusTick\Desktop\NORMAT~1.SER\pawno\include\
rakcheat.inc:3341
[17:48:44] Run time error 4: "Array index out of bounds"
[17:48:44]  Attempted to read/write array element at index 23 in array of size 20
[17:48:44] AMX backtrace:
[17:48:44] #0 00722770 in CaptureUpd (bandkiller=18) at C:\Users\RusTick\Desktop\Normative RP. Server 02\gamemodes\rls.pwn:63307
[17:48:44] #1 00198d0c in public ac_OnPlayerDeath (playerid=3, killerid=6, reason=24) at C:\Users\RusTick\Desktop\Normative RP. Server 02\gamemodes\rls.pwn:26314
[17:48:44] #2 000129b4 in public OnPlayerDeath (playerid=3, killerid=6, reason=24) at C:\Users\RusTick\Desktop\NORMAT~1.SER\pawno\include\
rakcheat.inc:3341

 

Вот строка 56182

           

Спойлер

if(IsPlayerInAnyVehicle(playerid))
    {
        //new vehicleid = GetPlayerVehicleID(playerid);
        //new model = (GetVehicleModel(vehicleid)-400);
        if (newkeys == 262144 && IsACar(plcar)) return callcmd::radio(playerid); //262144 - ??? id ??????? R
        if (newkeys == KEY_SUBMISSION && !IsABycicle(plcar)) return callcmd::en(playerid);
        if(GetPlayerState(playerid) == 2)
        {
            if(newkeys & 1)
            {
                   if (!(IsABycicle(plcar) || IsAPlane(plcar) || IsABoat(plcar)))
                {
                    if(LightsStatus(plcar) == 1)
                    {
                        Lights(plcar, false);
                        LightPwr[plcar] = 0;
                        lightcar[GetPlayerVehicleID(playerid)] = 0;
                        GetVehicleParamsEx(plcar,engine,lights,alarm,doors,bonnet,boot,objective);
                        SetVehicleParamsEx(plcar,engine,LightPwr[plcar],alarm,doors,bonnet,boot,objective);

                        if (plcar <= MAX_BUYABLE_CARS)
                        {
                            if (CarsInfo[plcar-1][vNeon]) // 56182{
                                DestroyDynamicObject(neons[plcar][0]);
                                DestroyDynamicObject(neons[plcar][1]);
                                neons[plcar][0] = -1;
                                neons[plcar][1] = -1;
                                //SendClientMessage(playerid,COLOR_GREY,"* ?? ????????? ???? ? ????");
                            }
                            //else SendClientMessage(playerid,COLOR_GREY,"* ?? ????????? ????");
                        }
                        //else SendClientMessage(playerid,COLOR_GREY,"* ?? ????????? ????");
                    }
                    else
                    {
                        Lights(plcar, true);
                          LightPwr[plcar] = 1;
                          lightcar[GetPlayerVehicleID(playerid)] = 1;
                          GetVehicleParamsEx(plcar,engine,lights,alarm,doors,bonnet,boot,objective);
                        SetVehicleParamsEx(plcar,engine,LightPwr[plcar],alarm,doors,bonnet,boot,objective);

                          if (plcar <= MAX_BUYABLE_CARS)
                        {
                            if (CarsInfo[plcar-1][vNeon])  //{
                                DestroyDynamicObject(neons[plcar][0]);
                                DestroyDynamicObject(neons[plcar][1]);
                                neons[plcar][0] = CreateDynamicObject(CarsInfo[plcar-1][vNeon],0,0,0,0,0,0);
                                neons[plcar][1] = CreateDynamicObject(CarsInfo[plcar-1][vNeon],0,0,0,0,0,0);
                                new modelS = GetVehicleModel(plcar);
                                AttachDynamicObjectToVehicle(neons[plcar][0], plcar, -1 * NeonPos[modelS-400][0], NeonPos[modelS-400][1], NeonPos[modelS-400][2], 0.0, 0.0, 0.0);
                                AttachDynamicObjectToVehicle(neons[plcar][1], plcar, NeonPos[modelS-400][0], NeonPos[modelS-400][1], NeonPos[modelS-400][2], 0.0, 0.0, 0.0);
                                //SendClientMessage(playerid,COLOR_WHITE,"* ?? ???????? ???? ? ????");
                            }
                            //else SendClientMessage(playerid,COLOR_WHITE,"* ?? ???????? ????");
                        }
                        //else SendClientMessage(playerid,COLOR_WHITE,"* ?? ???????? ????");
                    }
                }
            }

 

Вот от 26314

Спойлер

new bandkiller;
        new bandkill;
        if(PlayerInfo[killerid][pLeader] !=0)
        {
            bandkiller = PlayerInfo[killerid][pLeader];
        }
        else
        {
            bandkiller = PlayerInfo[killerid][pMember];
        }
        if(PlayerInfo[playerid][pLeader] !=0)
        {
            bandkill = PlayerInfo[playerid][pLeader];
        }
        else
        {
            bandkill = PlayerInfo[playerid][pMember];
        }
        if(bandkiller != bandkill)
        {
            if(GangInfo[bandkiller][capture] && GangInfo[bandkill][capture] == 1)
            {
                if(GangInfo[bandkiller][captureid] == GangInfo[bandkill][captureid])
                {
                    GangInfo[bandkiller][score] = GangInfo[bandkiller][score]+1;
                    CaptureUpd(bandkiller);//26314
                }
            }
        }
    }

 

 

Отредактировано пользователем DEST

Заметка от DEST , создано

Большой код оборачивайте еще и под спойлер, как это указано тут.

Поделиться сообщением


Ссылка на сообщение

9 ответов на этот вопрос

  • 0

@Рустик по поводу первой ошибки, то переменная plcar принимает значение 0, и поэтому идет обращение по отрицательному индексу в массиве. Найдите в этом коде где объявлена переменная plcar и ей выполнено присваивание какого-нибудь значения (т.е. строку вида 

plcar = ... )

По поводу второй проблемы, скидывайте функцию

CaptureUpd

Поделиться сообщением


Ссылка на сообщение
  • 0
В 03.08.2019 в 18:25, DEST сказал:

@Рустик по поводу первой ошибки, то переменная plcar принимает значение 0, и поэтому идет обращение по отрицательному индексу в массиве. Найдите в этом коде где объявлена переменная plcar и ей выполнено присваивание какого-нибудь значения (т.е. строку вида 

plcar = ... )

По поводу второй проблемы, скидывайте функцию


CaptureUpd

Извените что так долго не отвечал дела были

 

Вот функция
 

stock CaptureUpd(bandkiller)
{
    new SCORE1[10],SCORE2[10];
    tforeach(i)
    {
        if(!gPlayerLogged[i]) continue;
    	if(GangInfo[PlayerInfo[i][pMember]][capture] > 0)
    	{
	        if(GangInfo[bandkiller][gangnumber] == 1)
	        {
	            format(SCORE1, sizeof(SCORE1), "%d", GangInfo[bandkiller][score]);
	            PlayerTextDrawSetString(i,capture_PTD[i][13], SCORE1);
	        }
	        else
	        {
	            format(SCORE2, sizeof(SCORE2), "%d", GangInfo[bandkiller][score]);
	            PlayerTextDrawSetString(i,capture_PTD[i][14], SCORE2);
	       	}
    	}
    }
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Рустик как объявлена capture_PTD

Поделиться сообщением


Ссылка на сообщение
  • 0
2 часа назад, DEST сказал:

@Рустик как объявлена capture_PTD

new PlayerText:capture_PTD[MAX_PLAYERS][16];

Отредактировано пользователем Рустик

Поделиться сообщением


Ссылка на сообщение
  • 0

@Рустик А GangInfo? 

Поделиться сообщением


Ссылка на сообщение
  • 0
2 часа назад, DEST сказал:

@Рустик А GangInfo? 

#define MAX_GANGS 20
enum Ganginfa{
    capture,
    score,
    captureid,
    gangnumber}
new GangInfo[MAX_GANGS][Ganginfa];
#define MAX_GZONE 120

 

Отредактировано пользователем Рустик

Поделиться сообщением


Ссылка на сообщение
  • 0

@Рустик ID фракции игрока равен 23, а количество ячеек массива под информацию GangInfo составляет всего 20. Найдите в моде места, где идет обращение по индексу GangInfo и скиньте сюда. 

Поделиться сообщением


Ссылка на сообщение
  • 0
2 часа назад, DEST сказал:

@Рустик ID фракции игрока равен 23, а количество ячеек массива под информацию GangInfo составляет всего 20. Найдите в моде места, где идет обращение по индексу GangInfo и скиньте сюда. 

if(GangInfo[faction][capture] == 1

Поделиться сообщением


Ссылка на сообщение
  • 0
В 13.08.2019 в 20:08, Рустик сказал:

if(GangInfo[PlayerInfo[i][pMember]][capture] > 0)

это условие замените следующим и ошибка пропадет

if(PlayerInfo[i][pMember] < MAX_GANGS && GangInfo[PlayerInfo[i][pMember]][capture] > 0)

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };