Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для DoN_SancheS
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.11.2016
    Сообщений
    64
    Репутация:
    0 ±

    Array index out of bounds

    Здравствуйте продвинутые люди,
    Выручайте ребят. Снова ошибки в логах, помогите пожалуйста.

    [20:39:55] [kill] MinMax killed Wolf UZI
    [20:40:16] [debug] Run time error 4: "Array index out of bounds"
    [20:40:16] [debug] Attempted to read/write array element at index 65535 in array of size 120
    [20:40:16] [debug] AMX backtrace:
    [20:40:16] [debug] #0 00035a44 in public OnPlayerDeath (playerid=2, killerid=65535, reason=255) at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:3520
    [20:40:16] [death] MinMax died 255
    [22:00:49] [debug] #0 00110158 in public OnPlayerCommandText (playerid=0, cmdtext[]=@00297560 "/asellbiz 2") at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:15620
    [22:01:03] [debug] Run time error 4: "Array index out of bounds"
    [22:01:03] [debug] Attempted to read/write array element at index 155 in array of size 12
    [22:01:03] [debug] AMX backtrace:
    [22:01:03] [debug] #0 0010cc2c in public OnPlayerCommandText (playerid=0, cmdtext[]=@00297560 "/asellsbiz 2 ") at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:15385
    [20:42:22] [debug] #0 001571a8 in public OnPlayerCommandText (playerid=2, cmdtext[]=@00297560 "/goto 1]") at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:19403
    [21:35:44] [debug] Run time error 4: "Array index out of bounds"
    [21:35:44] [debug] Attempted to read/write array element at index 65535 in array of size 120
    [21:35:44] [debug] AMX backtrace:
    [21:35:44] [debug] #0 00139ccc in public OnPlayerCommandText (playerid=2, cmdtext[]=@00297560 "/uninvite 7") at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:18398

    Строка 3520 (if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8))
      Открыть/закрыть
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    GetPlayerWeapon(killerid) == 22PlayerInfo[killerid][pKillColt] += 5;
        if(
    GetPlayerWeapon(killerid) == 23PlayerInfo[killerid][pKillSD] += 5;
        if(
    GetPlayerWeapon(killerid) == 31)    PlayerInfo[killerid][pKillM4] += 5// 8 óáèéñòâ ÷òîáû ïîëó÷èòü îäèí ïðîöåíò
        
    if(GetPlayerWeapon(killerid) == 25)    PlayerInfo[killerid][pKillShotgun] += 5;
        if(
    GetPlayerWeapon(killerid) == 29)    PlayerInfo[killerid][pKillMP5] += 5;
        if(
    GetPlayerWeapon(killerid) == 30)    PlayerInfo[killerid][pKillAk47] += 5;
        
    ServerResetPlayerWeaponsAC(playerid);
        
    vZone[playerid] = 0;
        
    TextDrawHideForPlayer(playerid,Anim[playerid]);
        if(
    WarTimeSec && killerid != INVALID_PLAYER_ID)
        {
            if(
    FrakCD[PlayerInfo[playerid][pMember]])
            {
                if(
    captureteam[0] == PlayerInfo[killerid][pMember] && PlayerInfo[playerid][pMember] == captureteam[1])
                {
                    
    CommandKill[0]++;
                }
                else if(
    captureteam[1] == PlayerInfo[killerid][pMember] && PlayerInfo[playerid][pMember] == captureteam[0])
                {
                    
    CommandKill[1]++;
                }
            }
        }
        if(
    PlayerInfo[killerid][pMember] == || PlayerInfo[killerid][pLeader] == 8)
        {
            
    PlayerInfo[playerid][pMaskuse] = 0;
            
    ShowPlayerNameTagForPlayer(playeridkillerid1);
            
    ServerResetPlayerWeaponsAC(playerid);
        }
        if(
    GetPVarInt(playerid,"Gruz") > 0)
        {
            
    DeletePVar(playerid,"Gruz");
            
    DeletePVar(playerid,"MoneyGruz");
            
    DisablePlayerCheckpoint(playerid);
        } 



    Строка 15620
      Открыть/закрыть
    PHP код:
    if(strcmp(cmd"/asellbiz"true) == 0)
        {
            if(
    IsPlayerConnected(playerid))
            {
                if (
    PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playeridCOLOR_GREY"{FF3300}x{AFAFAF} Íåò ïðàâ íà èñïîëüçîâàíèå êîìàíäû.");
                
    GetPlayerName(playeridplayernamesizeof(playername));
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp)) return SendClientMessage(playeridCOLOR_GRAD1"Èñïîëüçîâàòü: /asellbiz [id áèçíåñà]");
                new 
    biz strval(tmp);
                new 
    bouse PlayerInfo[playerid][pPbiskey];
                {
                    
    BizzInfo[biz][bLocked] = 1;
                    
    BizzInfo[biz][bOwned] = 0;
                    
    strmid(BizzInfo[biz][bOwner], "-"0strlen("-"), 255);
                    
    PlayerPlaySound(playerid10520.00.00.0);
                    
    format(stringsizeof(string), "~w~ ‹‘ ŒPOƒA‡… €…ˆìEC");
                    
    GameTextForPlayer(playeridstring100003);
                    
    BizzInfo[bouse][bTill] = 0;
                    
    OnPlayerSave(playerid);
                    
    UpdateBizz(bouse);
                    
    UpdateBizz(biz);
                    return 
    1;
                }
            }
        } 


    Строка 19403
      Открыть/закрыть
    PHP код:
    if(strcmp(cmd"/goto"true) == 0)
        {
            new 
    Float:PLOCX[3],tmpcar GetPlayerVehicleID(playerid);
            if(
    PlayerInfo[playerid][pAdmin] < && PlayerInfo[playerid][pHelper] < 1) return SendClientMessage(playeridCOLOR_GREY"{FF3300}x{AFAFAF} Íåò ïðàâ íà èñïîëüçîâàíèå êîìàíäû.");
            
    tmp strtok(cmdtextidx);
            if(!
    strlen(tmp)) return SendClientMessage(playeridCOLOR_GRAD1"Èñïîëüçóé: /goto [playerid]");
            
    params[0] = ReturnUser(tmp);
            if(!
    IsPlayerConnected(params[0])) SendClientMessage(playeridCOLOR_GREY"{FF3300}x{AFAFAF} Èãðîê íå â èãðå.");
            if(
    gPlayerLogged[params[0]] == 0) return SendClientMessage(playeridCOLOR_GREY"{FF3300}x{AFAFAF} Èãðîê íå àâòîðèçèðîâàí.");
            
    GetPlayerPos(params[0], PLOCX[0], PLOCX[1], PLOCX[2]);
            
    NaMP[playerid] = 0;
            if(
    GetPlayerState(playerid) == 2SetVehiclePos(tmpcarPLOCX[0], PLOCX[1]+4PLOCX[2]);
            else
            {
                
    SetPlayerPos(playerid,PLOCX[0],PLOCX[1]+2PLOCX[2]);
                
    SetPlayerVirtualWorld(playeridGetPlayerVirtualWorld(params[0]));
                
    SetPlayerInterior(playeridGetPlayerInterior(params[0]));
            }
            
    GetPlayerName(params[0], sendernamesizeof(sendername));
            switch(
    PlayerInfo[playerid][pSex])
            {
            case 
    1format(stringsizeof(string), "Òû òåëåïîðòèðîâàëñÿ ê èãðîêó %s"sendername);
            case 
    2format(stringsizeof(string), "Òû òåëåïîðòèðîâàëàñü ê èãðîêó %s"sendername);
            }
            
    SendClientMessage(playeridCOLOR_GRAD1string);
            for(new 
    i=0i<GetMaxPlayers(); i++)
            {
                if(
    IsPlayerConnected(i))
                {
                    if(
    GainAdmin[i] == 1)
                    {
                        new 
    admin[MAX_PLAYER_NAME];
                        
    GetPlayerName(playeridadmin,sizeof(admin));
                        
    GetPlayerName(params[0], sendernamesizeof(sendername));
                        switch(
    PlayerInfo[playerid][pSex])
                        {
                        case 
    1format(string,sizeof(string),"Gain Admin: {FFFFFF}%s òåëåïîðòèðîâàëñÿ ê èãðîêó %s",admin,sendername);
                        case 
    2format(string,sizeof(string),"Gain Admin: {FFFFFF}%s òåëåïîðòèðîâàëañü ê èãðîêó %s",admin,sendername);
                        }
                        
    SendClientMessage(iCOLOR_LIGHTREDstring);
                    }
                }
            }
            return 
    1;
        } 



    Строка 18398
      Открыть/закрыть
    PHP код:
    if(strcmp(cmd"/uninvite"true) == 0)
        {
            if(
    IsPlayerConnected(playerid))
            {
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp)) return SendClientMessage(playeridCOLOR_GREY"Èñïîëüçóé: /uninvite [playerid]");
                new 
    para1;
                
    para1 ReturnUser(tmp);
                if(
    PlayerInfo[playerid][pLeader] != PlayerInfo[para1][pMember])
                {
                    
    SendClientMessage(playeridCOLOR_GREY"{FF3300}x{AFAFAF} Èãðîê äîëæåí íàõîäèòüñÿ â òâîåé ôðàêöèè.");
                    return 
    1;
                }
                if(
    PlayerInfo[playerid][pLeader] < 1) return SendClientMessage(playeridCOLOR_GREY"{FF3300}x{AFAFAF} Òû íå ëèäåð.");
                {
                    if(
    IsPlayerConnected(para1))
                    {
                        if(
    para1 != INVALID_PLAYER_ID)
                        {
                            if (
    PlayerInfo[para1][pMember] > 0)
                            {
                                
    GetPlayerName(para1giveplayersizeof(giveplayer));
                                
    GetPlayerName(playeridsendernamesizeof(sendername));
                                
    format(stringsizeof(string), "Òû óâîëèë(à) èãðîêà %s èç ñâîåé ôðàêöèè."giveplayer);
                                
    SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                                
    format(stringsizeof(string), "Òû óâîëåí(à) èç îðãàíèçàöèè ëèäåðîì %s"sendername);
                                
    SendClientMessage(para1COLOR_LIGHTBLUEstring);
                                
    SpawnPlayer(para1);
                                
    gTeam[para1] = 3;
                                
    PlayerInfo[para1][pTeam] = 3;
                                
    PlayerInfo[para1][pMember] = 0;
                                
    PlayerInfo[para1][pRank] = 0;
                                
    PlayerInfo[para1][pFWarns] = 0;
                                if(
    PlayerInfo[para1][pSex] == 1) { PlayerInfo[para1][pChar] = 23; }
                                else if(
    PlayerInfo[para1][pSex] == 2) { PlayerInfo[para1][pChar] = 192; }
                                
    OnPlayerSave(playerid);
                            }
                        }
                    }
                }
            }
            return 
    1;
        } 


    Паблик OnPlayerDeath
      Открыть/закрыть
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    GetPlayerWeapon(killerid) == 22PlayerInfo[killerid][pKillColt] += 5;
        if(
    GetPlayerWeapon(killerid) == 23PlayerInfo[killerid][pKillSD] += 5;
        if(
    GetPlayerWeapon(killerid) == 31)    PlayerInfo[killerid][pKillM4] += 5// 8 óáèéñòâ ÷òîáû ïîëó÷èòü îäèí ïðîöåíò
        
    if(GetPlayerWeapon(killerid) == 25)    PlayerInfo[killerid][pKillShotgun] += 5;
        if(
    GetPlayerWeapon(killerid) == 29)    PlayerInfo[killerid][pKillMP5] += 5;
        if(
    GetPlayerWeapon(killerid) == 30)    PlayerInfo[killerid][pKillAk47] += 5;
        
    ServerResetPlayerWeaponsAC(playerid);
        
    vZone[playerid] = 0;
        
    TextDrawHideForPlayer(playerid,Anim[playerid]);
        if(
    WarTimeSec && killerid != INVALID_PLAYER_ID)
        {
            if(
    FrakCD[PlayerInfo[playerid][pMember]])
            {
                if(
    captureteam[0] == PlayerInfo[killerid][pMember] && PlayerInfo[playerid][pMember] == captureteam[1])
                {
                    
    CommandKill[0]++;
                }
                else if(
    captureteam[1] == PlayerInfo[killerid][pMember] && PlayerInfo[playerid][pMember] == captureteam[0])
                {
                    
    CommandKill[1]++;
                }
            }
        }
        if(
    PlayerInfo[killerid][pMember] == || PlayerInfo[killerid][pLeader] == 8)
        {
            
    PlayerInfo[playerid][pMaskuse] = 0;
            
    ShowPlayerNameTagForPlayer(playeridkillerid1);
            
    ServerResetPlayerWeaponsAC(playerid);
        }
        if(
    GetPVarInt(playerid,"Gruz") > 0)
        {
            
    DeletePVar(playerid,"Gruz");
            
    DeletePVar(playerid,"MoneyGruz");
            
    DisablePlayerCheckpoint(playerid);
        }
        if(
    zone228[playerid] == || zone228[killerid] == 1)
        {
            new 
    string[126];
            
    GiveMoney(killerid100);
            
    GiveMoney(playerid, -100);
            
    PlayerInfo[killerid][pArena] += 1;
            
    PlayerInfo[playerid][pArenaKill] += 1;
            
    format(stringsizeof(string), "~g~$+%d"100);
            
    GameTextForPlayer(killeridstring2001);
            
    format(stringsizeof(string), "~r~$-%d"100);
            
    GameTextForPlayer(playeridstring2001);
        }
        if(
    PlayerInfo[killerid][pMember] == || PlayerInfo[killerid][pLeader] == || zone228[killerid] == || PlayerInfo[killerid][pJaileda] > || PlayerInfo[killerid][pJailed] > || PlayerInfo[killerid][pJailedlv] > 0)
        {
            
    ServerResetPlayerWeaponsAC(playerid);
        }
        else
        {
            
    SendDeathMessage(killeridplayeridreason);
            
    ServerResetPlayerWeaponsAC(playerid);
        }
        new 
    name[MAX_PLAYER_NAME];
        new 
    Float:px,Float:py,Float:pz;
        
    DisablePlayerCheckpoint(playerid);
        
    Checkpoint[playerid] = 0;
        
    SetVehicleToRespawn(GetVehicleTrailer(GetPlayerVehicleID(playerid)));
        
    gPlayerSpawned[playerid] = 0;
        
    GetPlayerName(playeridnamesizeof(name));
        
    PlayerInfo[playerid][pLocal] = 255;
        
    GetPlayerPos(playeridpxpypz);
        new 
    string[256];
        if(
    killerid != 255)
        {
            new 
    kickname[MAX_PLAYER_NAME];
            if(
    GetPlayerState(killerid) == 2)
            {
                if(
    ProxDetectorS(20killeridplayerid))
                {
                    if(!
    IsPlayerInAnyVehicle(playerid))
                    {
                        
    GetPlayerName(killeridkicknamesizeof(kickname));
                        
    SendClientMessage(killeridCOLOR_YELLOW"Òû íàðóøèë(à) ïðàâèëî ñåðâåðà: Óáèéñòâî èãðîêà èç òðàíñïîðòà.");
                        switch(
    PlayerInfo[playerid][pSex])
                        {
                        case 
    1:    format(string256"%s[%d] íàðóøèë ïðàâèëî ñåðâåðà: Óáèéñòâî èãðîêà èç òðàíñïîðòà.",kickname,killerid);
                        case 
    2format(string256"%s[%d] íàðóøèëà ïðàâèëî ñåðâåðà: Óáèéñòâî èãðîêà èç òðàíñïîðòà.",kickname,killerid);
                        }
                        
    SendAdminMessage(COLOR_YELLOWstring);
                        return 
    1;
                    }
                }
            }
        }
        if (
    gPlayerCheckpointStatus[playerid] > && gPlayerCheckpointStatus[playerid] < 11)
        {
            
    DisablePlayerCheckpoint(playerid);
            
    gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
        }
        if(
    PlayerInfo[playerid][pHeadValue] > 0)
        {
            if(
    IsPlayerConnected(killerid))
            {
                if(
    PlayerInfo[killerid][pLeader] == || PlayerInfo[killerid][pMember] == 8)
                {
                    if(
    GoChase[killerid] == playerid)
                    {
                        new 
    killer[MAX_PLAYER_NAME];
                        
    GetPlayerName(killeridkillersizeof(killer));
                        
    PlayerInfo[killerid][pMoney] += PlayerInfo[playerid][pHeadValue];
                        switch(
    PlayerInfo[playerid][pSex])
                        {
                        case 
    1:    format(string,128,"Íà¸ìíûé óáèéöà %s âûïîëíèë êîíòðàêò íà %s è çàáðàë %d$.",killer,name,PlayerInfo[playerid][pHeadValue]);
                        case 
    2format(string,128,"Íà¸ìíûé óáèéöà %s âûïîëíèëa êîíòðàêò íà %s è çàáðàëà %d$.",killer,name,PlayerInfo[playerid][pHeadValue]);
                        }
                        
    SendFamilyMessage(8COLOR_YELLOWstring);
                        
    SendClientMessage(playeridCOLOR_GOLDEN"Íè÷åãî ëè÷íîãî, ýòî ïðîñòî çàêàç.");
                        
    PlayerInfo[playerid][pHeadValue] = 0;
                        
    GotHit[playerid] = 0;
                        
    GetChased[playerid] = 999;
                        
    GoChase[killerid] = 999;
                    }
                }
            }
        }
        
    killerid INVALID_PLAYER_ID;
        
    SetPlayerToTeamColor(playerid);
        
    ServerResetPlayerWeaponsAC(playerid);
        
    NaCS[playerid] = 0;
        return 
    1;




    и немножко от ПабликаOnPlayerCommandText
      Открыть/закрыть
    PHP код:
    public OnPlayerCommandText(playeridcmdtext[])
    {
        new 
    string[256];
        new 
    specplayerid;
        new 
    playermoney;
        new 
    sendername[MAX_PLAYER_NAME];
        new 
    giveplayer[MAX_PLAYER_NAME];
        new 
    playername[MAX_PLAYER_NAME];
        new 
    cmd[256];
        new 
    tmp[256];
        new 
    params[128];
        new 
    giveplayeridmoneysidx;
        
    sscanf(cmdtext"s[32]s[128]"cmdparams);
        
    cmd strtok(cmdtextidx);
        if(
    strcmp(cmd"/czona"true) == 0)
        { 

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Уже отвечали в предыдущей теме
    Цитата Сообщение от VVWVV Посмотреть сообщение
    В данной теме все подробно изложено.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    1.
    Цитата Сообщение от DoN_SancheS Посмотреть сообщение
    [20:40:16] [debug] Run time error 4: "Array index out of bounds"
    [20:40:16] [debug] Attempted to read/write array element at index 65535 in array of size 120
    [20:40:16] [debug] AMX backtrace:
    [20:40:16] [debug] #0 00035a44 in public OnPlayerDeath (playerid=2, killerid=65535, reason=255) at C:\Users\Karen\Desktop\*\OBM\gamemodes\Obmalion.pwn:3520
    ->

    ->
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    killerid != INVALID_PLAYER_ID// <-
        
    {
            switch(
    GetPlayerWeapon(killerid))
            {
                case 
    22PlayerInfo[killerid][pKillColt] += 5;
                case 
    23PlayerInfo[killerid][pKillSD] += 5;
                case 
    25PlayerInfo[killerid][pKillShotgun] += 5;
                case 
    29PlayerInfo[killerid][pKillMP5] += 5;
                case 
    30PlayerInfo[killerid][pKillAk47] += 5;
                case 
    31PlayerInfo[killerid][pKillM4] += 5;
            }
        }

        
    //...

        
    if(killerid != INVALID_PLAYER_ID && (PlayerInfo[killerid][pMember] == || PlayerInfo[killerid][pLeader] == 8)) // <-
        
    {
            
    PlayerInfo[playerid][pMaskuse] = 0;
            
    ShowPlayerNameTagForPlayer(playeridkillerid1);
        }
        return 
    1;

    По остальному нет либо конкретных строк, либо сообщения вырезаны из лога не полностью, больше инфы нужно
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •