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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16
  1. #1
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±

    Ошибки с Крашдетектора

    PHP код:
    [00:59:36] [debugRun time error 4"Array index out of bounds"
    [00:59:36] [debug]  Accessing element at negative index -1
    [00:59:36] [debugAMX backtrace:
    [
    00:59:36] [debug#0 0000f174 in public OnPlayerWeaponShot (playerid=6, weaponid=69, hittype=214, hitid=5530, Float:fX=0.00000, Float:fY=0.00000, Float:fZ=130148118036432518432168083456.00000) at C:\Users\1\Desktop\mod\gamemodes\mod.pwn:543 

    Ругается на строку
    PHP код:
     GunInfo[playerid][pAmmo][Slot(weaponid)] --; 
    PHP код:
    stock Slot(w)
    {
         switch(
    w)
         {
               case 
    0,1: return 0;
               case 
    2..9: return 1;
               case 
    10..15: return 10;
               case 
    16..18,39: return 8;
               case 
    22..24: return 2;
               case 
    25..27: return 3;
               case 
    28,29,32: return 4;
               case 
    30,31: return 5;
               case 
    33,34: return 6;
               case 
    35..38: return 7;
               case 
    40: return 12;
               case 
    41..43: return 9;
               case 
    44..46: return 11;
         }
         return -
    1;

    PHP код:
    new GunInfo[MAX_PLAYERS][wInfo][13]; 

  2. #2
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    607
    Репутация:
    289 ±
    Выход за пределы массива. Очевидно же, что возвращается -1.
    Код:
    stock Slot(w) 
    { 
         switch(w) 
         { 
               case 0,1: return 0; 
               case 2..9: return 1; 
               case 10..15: return 10; 
               case 16..18,39: return 8; 
               case 22..24: return 2; 
               case 25..27: return 3; 
               case 28,29,32: return 4; 
               case 30,31: return 5; 
               case 33,34: return 6; 
               case 35..38: return 7; 
               case 40: return 12; 
               case 41..43: return 9; 
               case 44..46: return 11; 
         } 
         return -1; 
    }
    Ищите ошибку в переменной weaponid.

  3. Пользователь сказал cпасибо:
    DmX (16.03.2016)
  4. #3
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    PHP код:
        switch(weaponid)
        {
            case 
    0..15,40,44..46: return true;
        } 
    Вот код выше

  5. #4
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    607
    Репутация:
    289 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    PHP код:
        switch(weaponid)
        {
            case 
    0..15,40,44..46: return true;
        } 
    Вот код выше
    Это ничего не дало, т.к. нужно значение переменной weaponid.

    Код:
        switch(weaponid)
        {
            case 0..15,40,44..46: return true;
        }
     GunInfo[playerid][pAmmo][Slot(weaponid)] --;
    P.S. Странно, но у вас получается какой-то не логический код.

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

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Как было бы логично? (Можешь дать свой скайп?)

  8. #6
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    607
    Репутация:
    289 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    Как было бы логично? (Можешь дать свой скайп?)
    У вас идёт отбор, и, если значение совпадает, то возвращает истину. Соответственно, все "плохие" значения после переработки оператор switch отдаёт функции Slot (которая не находит такое число, и возвращает -1), поэтому и возникает данная ошибка.

  9. Пользователь сказал cпасибо:
    DmX (16.03.2016)
  10. #7
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Как исправить? )

  11. #8
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    607
    Репутация:
    289 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    Как исправить? )
    PHP код:
    switch (weaponid)
    {
        case 
    0..15,40,44..46:
        {
            
    GunInfo[playerid][pAmmo][Slot(weaponid)] --;
        }
        default: return 
    0;



    Сглупил (время: 3:10). Покажите, как вы инициализируете переменную weaponid.
    Последний раз редактировалось VVWVV; 16.03.2016 в 04:10.

  12. Пользователь сказал cпасибо:
    DmX (16.03.2016)
  13. #9
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    От души )

    - - - Добавлено - - -

    Ща покажу

    - - - Добавлено - - -

    Код HTML:
    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    	switch (weaponid)
    	{
    	    case 0..15,40,44..46:
    	    {
    	        GunInfo[playerid][pAmmo][Slot(weaponid)] --;
    	    }
    	    default: return 0;
    	}

  14. Пользователь сказал cпасибо:
    VVWVV (16.03.2016)
  15. #10
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    607
    Репутация:
    289 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    От души )

    - - - Добавлено - - -

    Ща покажу

    - - - Добавлено - - -

    Код HTML:
    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    	switch (weaponid)
    	{
    	    case 0..15,40,44..46:
    	    {
    	        GunInfo[playerid][pAmmo][Slot(weaponid)] --;
    	    }
    	    default: return 0;
    	}
    Мне казалось, что у вас там большая система - но нет.

 

 
Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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