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

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±

    Краш в логах от команды

    При нажатии в данной команде -> на текст "{0BDA51}Ячейка\t\t\t\tПатроны"
    Высвечивается в логах это:
    Код:
    [17:22:35] [debug] Run time error 4: "Array index out of bounds"
    [17:22:35] [debug]  Accessing element at negative index -1
    [17:22:35] [debug] AMX backtrace:
    [17:22:35] [debug] #0 000bf7ac in public OnDialogResponse () from mazafack.amx
    Вот сама команда -
    PHP код:
    CMD:trunk(playeridparams[])
    {
        if(
    GetPlayerHouse(playerid) == 0) return SCM(playeridCOLOR_WHITE"У вас нет машины!");
        if(
    CarInfo[playerid][cLock] == 1) return SCM(playeridCOLOR_WHITE"Ошибка: Ваш транспорт закрыт. Откройте его, дабы воспользоваться багажником.");
        new 
    FloatvXFloatvYFloatvZ;
        
    GetCoordBootVehicle(GetPVarInt(playerid,"CREVEH"), vXvYvZ);
        if(!
    IsPlayerInRangeOfPoint(playerid2.0vXvYvZ) || IsPlayerInAnyVehicle(playerid)) return SCM(playeridCOLOR_WHITE"Ошибка: Подсказка: Возможно использовать команду возле багажника!");
        new 
    engine,lights,alarm,doors,bonnet,boot,objective;
        
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
        
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,1,objective);
        
    ApplyAnimation(playerid,"CASINO","dealone",4.1,1,1,1,1,1);
        new 
    string[500];
        new 
    gunname[5][32];
        for(new 
    05i++)
        {
            if(
    CarInfo[playerid][cGun][i] != 0GetWeaponName(CarInfo[playerid][cGun][i],gunname[i],32);
            if(
    CarInfo[playerid][cGun][i] == 0format(gunname[i], 6,"Пусто");
        }
        
    format(string,sizeof(string),"[-] Заправить транспорт\n[-] Положить оружие\n[-] Забрать все оружие\n[-] Положить наркотики\n[-] Взять наркотики\t\t%i г.\n{0BDA51}Ячейка\t\t\t\tПатроны\n[0]Ячейка(%s)\t%i пт.\n[1]Ячейка(%s)\t\t%i пт.\n[2]Ячейка(%s)\t\t%i пт.\n[3]Ячейка(%s)\t\t%i пт.\n[4]Ячейка(%s)\t\t%i пт.",
        
    CarInfo[playerid][cDrugs],
        
    gunname[0],CarInfo[playerid][cGunAmmo][0],
        
    gunname[1],CarInfo[playerid][cGunAmmo][1],
        
    gunname[2],CarInfo[playerid][cGunAmmo][2],
        
    gunname[3],CarInfo[playerid][cGunAmmo][3],
        
    gunname[4],CarInfo[playerid][cGunAmmo][4]);
        
    SPD(playerid,169,DIALOG_STYLE_LIST,"Багажник личного транспорта",string,"Выбрать","Закрыть");
        return 
    true;


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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±
    case 169 -
    PHP код:
        case 169:
            {
                if(
    response)
                {
                    switch(
    listitem)
                    {
                        case 
    0://Заправить авто
                        
    {
                               if(
    PlayerInfo[playerid][pJerrycan] == 0)
                               {
                                   new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                                
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                                
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                                
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                                
    SCM(playeridCOLOR_GREY"У вас нет канистры!");
                                return 
    true;
                            }
                            
    PlayerInfo[playerid][pJerrycan] = 0;
                            
    Vehicle[vehicle][Fuel] += 50;
                            
    SCM(playeridCOLOR_LIGHTBLUE"[Т] Вы дозаправили транспорт (+50 литров)");
                        }
                        case 
    1://Положить оружие, по слотам
                        
    {
                            new 
    weaponid GetPlayerWeapon(playerid);
                            new 
    slot GetWeaponSlot(weaponid);
                            if(
    slot || slot 6)
                            {
                                new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                                
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                                
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                                
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                                
    SCM(playeridCOLOR_GREY"Данное оружие не подходить к ячейке!");
                                return 
    true;
                            }
                            if(
    PlayerInfo[playerid][pGun][slot] == 0)
                            {
                                new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                                
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                                
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                                
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                                
    SCM(playeridCOLOR_GREY"Ошибка!");
                                return 
    true;
                            }
                            if(
    CarInfo[playerid][cGun][slot-2] != && PlayerInfo[playerid][pGun][slot] != CarInfo[playerid][cGun][slot-2])
                            {
                                new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                                
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                                
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                                
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                                
    SCM(playeridCOLOR_GREY"Данная ячейка уже занята!");
                                return 
    true;
                            }
                            
    CarInfo[playerid][cGun][slot-2] = PlayerInfo[playerid][pGun][slot];
                               
    CarInfo[playerid][cGunAmmo][slot-2] += PlayerInfo[playerid][pGunAmmo][slot];
                            
    ResetPlayerWeaponID(playeridPlayerInfo[playerid][pGun][slot]);
                        }
                        case 
    2:
                        {
                            new 
    guns;
                            for(new 
    05i++)
                            {
                                if(
    CarInfo[playerid][cGun][i] == || CarInfo[playerid][cGunAmmo][i] == 0) continue;
                                
    GivePlayerWeaponAC(playeridCarInfo[playerid][cGun][i], CarInfo[playerid][cGunAmmo][i]);
                                   
    CarInfo[playerid][cGunAmmo][i] = 0;
                                   
    CarInfo[playerid][cGun][i] = 0;
                                   
    guns++;
                               }
                               if(!
    gunsSCM(playeridCOLOR_GREY,"В багажнике нет оружия.");
                               else 
    SCM(playeridCOLOR_GREY,"Вы забрали все оружие из багажника.");
                        }
                        case 
    3://Положить наркотики
                        
    {
                            
    CarInfo[playerid][cDrugs] += PlayerInfo[playerid][pDrugs];
                            
    PlayerInfo[playerid][pDrugs] = 0;
                        }
                          case 
    4://Взять наркотики
                        
    {
                            if(
    CarInfo[playerid][cDrugs] == 0)
                            {
                                new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                                
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                                
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                                
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                                 
    SCM(playerid,COLOR_GREY,"В транспорте нет наркотиков!");
                                 return 
    true;
                            }
                            if(
    CarInfo[playerid][cDrugs] > 50)
                            {
                                 
    CarInfo[playerid][cDrugs] -= 50;
                                   
    PlayerInfo[playerid][pDrugs] += 50;
                            }
                            if(
    CarInfo[playerid][cDrugs] <= 50)
                            {
                                
    PlayerInfo[playerid][pDrugs] += CarInfo[playerid][cDrugs];
                                
    CarInfo[playerid][cDrugs] = 0;
                            }
                        }
                    }
                    new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                    
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                    
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                    
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                    if(
    CarInfo[playerid][cGunAmmo][listitem-5] == 0) return SCM(playeridCOLOR_GREY,"В данной ячейки нет оружия!");
                     if(
    CarInfo[playerid][cGunAmmo][listitem-5] > 50)
                    {
                        new 
    gunname[32];
                        
    GetWeaponName(CarInfo[playerid][cGun][listitem-5],gunname,32);
                        new 
    mes[128];
                        
    format(mes,sizeof(mes),"Вы взяли 50 патрон %s"gunname);
                        
    SCM(playeridCOLOR_GREY,mes);
                          
    GivePlayerWeaponAC(playeridCarInfo[playerid][cGun][listitem-5], 50);
                           
    CarInfo[playerid][cGunAmmo][listitem-5] -= 50;
                           return 
    true;
                    }
                       if(
    CarInfo[playerid][cGunAmmo][listitem-5] <= 50)
                      {
                          new 
    gunname[32];
                        
    GetWeaponName(CarInfo[playerid][cGun][listitem-5],gunname,32);
                        new 
    mes[128];
                        
    format(mes,sizeof(mes),"Вы взяли %i патрон %s"CarInfo[playerid][cGunAmmo][listitem-5], gunname);
                        
    SCM(playeridCOLOR_GREY,mes);
                          
    GivePlayerWeaponAC(playeridCarInfo[playerid][cGun][listitem-5], CarInfo[playerid][cGunAmmo][listitem-5]);
                           
    CarInfo[playerid][cGunAmmo][listitem-5] = 0;
                           
    CarInfo[playerid][cGun][listitem-5] = 0;
                        return 
    true;
                      }
                    return 
    true;
                }
                else
                {
                    new 
    engine,lights,alarm,doors,bonnet,boot,objective;
                    
    GetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,boot,objective);
                    
    SetVehicleParamsEx(GetPVarInt(playerid,"CREVEH"),engine,lights,alarm,doors,bonnet,0,objective);
                    
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                    return 
    true;
                }
            } 
    Отладка
    Код:
    [18:10:28] [debug] #0 000f0ab0 in public OnDialogResponse (playerid=0, dialogid=169, response=1, listitem=5, inputtext[]=@0x001f34b4 "") at C:\Documents and Settings\Admin\Рабочий стол\mazafaka.pwn:12622
    Строка 12622
    PHP код:
    if(CarInfo[playerid][cGunAmmo][listitem-5] == 0) return SCM(playeridCOLOR_GREY,"В данной ячейки нет оружия!"); 
    Последний раз редактировалось Trender; 09.05.2014 в 19:43.

  4. #4
    Аватар для bredvix
    Старичок

    Статус
    Оффлайн
    Регистрация
    01.08.2013
    Адрес
    Нижний Новгород
    Сообщений
    480
    Репутация:
    183 ±
    найди эту строку
    PHP код:
    if(CarInfo[playerid][cGunAmmo][listitem-5] == 0) return SCM(playeridCOLOR_GREY,"В данной ячейки нет оружия!"); 
    и перед ней поставь это:
    PHP код:
    if(listitem 5) return true

  5. Пользователь сказал cпасибо:
    Trender (09.05.2014)
  6. #5
    Аватар для Trender
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±
    Цитата Сообщение от Dron_Turbo Посмотреть сообщение
    найди эту строку
    PHP код:
    if(CarInfo[playerid][cGunAmmo][listitem-5] == 0) return SCM(playeridCOLOR_GREY,"В данной ячейки нет оружия!"); 
    и перед ней поставь это:
    PHP код:
    if(listitem 5) return true
    Cпс.Помог.

 

 

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

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

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

Ваши права

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