Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Диалог 169 покажите.
    А вообще скомпилируйте мод с режимом отладки -d3 и crashdetect покажет строчку, где вызывается отрицательная ячейка
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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[][email protected] "") 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
    Адрес
    Нижний Новгород
    Сообщений
    482
    Репутация:
    180 ±
    найди эту строку
    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)

Ваши права

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