Advertisement
Guest User

краш

a guest
Feb 23rd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.56 KB | None | 0 0
  1. /*
  2.     Наш краш-лог.
  3.  
  4.     Краш вызвался в 51 диалоге, когда игрок ввёл цифру 2.
  5.     Краш на строке номер 21165.
  6. */
  7. [08:51:42] [debug] Run time error 4: "Array index out of bounds"
  8. [08:51:42] [debug]  Accessing element at negative index -1
  9. [08:51:42] [debug] AMX backtrace:
  10. [08:51:42] [debug] #0 00190760 in public ac_OnDialogResponse (playerid=140, dialogid=51, response=1, listitem=-1, inputtext[]=@01353a80 "2") at C:\Users\Admin\Desktop\Flin RP\gamemodes\gm.pwn:21165
  11. [08:51:42] [debug] #1 0001b1d4 in public OnDialogResponse (playerid=140, dialogid=51, response=1, listitem=-1, inputtext[]=@01353a80 "2") at C:\Users\Admin\Desktop\Flin RP\pawno\include\nex-ac.inc:3635
  12.  
  13. /*
  14.     А вот и наш 51 диалог.
  15. */
  16. case 51:
  17. {
  18.     if(response)
  19.     {
  20.         if(isnums(inputtext)) // Тут я, кстати, проебался с проверкой, тут должно быть if(0 == isnums(inputtext)), но, даже если так, игрока бы просто не пустило дальше.
  21.             return SendClientMessage(playerid, COLOR_ERROR, "[Ошибка] {ffffff}Вводить нужно только цифру пункта!");
  22.  
  23.         new
  24.             fix_listitem = strval(inputtext); // игрок ввёл цифру 2
  25.  
  26.         if(!(1 <= fix_listitem <= 10)) // проверка успешно пройдена, 1 <= 2 <= 10
  27.             return 1;
  28.  
  29.         fix_listitem--; // 2 - 1 = 1
  30.  
  31.         new
  32.             str[164];
  33.  
  34.         if(DBizitem[playerid][0] == 999 && fix_listitem == 0) // проверка не пройдена, fix_listitem (1) != 0
  35.         {
  36.             SetPVarInt(playerid, "biz_zakaz", DBizitem[playerid][0]); // IMPORTANT: А ВОТ, СОБСТВЕННО, НАША 21165 СТРОКА. wtf? Сначала идёт проверка DBizitem[playerid][0] == 999, а потом мы это же значение передаём в PVar,
  37.                 // тогда как там может быть -1?
  38.             SetPVarInt(playerid, "zakaz", 1000);
  39.             SetPlayerRaceCheckpoint(playerid, 1, -116.9392,-316.1367,2.7646, -116.9392,-316.1367,2.7646, 8.0);
  40.             SetPVarInt(playerid, "biz_load",0+1);
  41.             return 1;
  42.         }
  43.  
  44.         if(b_info[DBizitem[playerid][fix_listitem]][_status] == 1) // b_info[DBizitem[playerid][1]][_status] == 1 - IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
  45.         {
  46.             SendClientMessage(playerid, error, "Данный заказ уже выполняется кем-то");
  47.             return list_delivery(playerid);
  48.         }
  49.  
  50.         b_info[DBizitem[playerid][fix_listitem]][_status] = 1; // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
  51.  
  52.         f(str, "Вы приняли заказ "W"'%s [%d], заработок %d$'"I" загрузите сначало продукты на заводе и отправляйтесь на контрольную точку",
  53.             b_info[DBizitem[playerid][fix_listitem]][_name], // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
  54.             DBizitem[playerid][fix_listitem], // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
  55.             b_info[DBizitem[playerid][fix_listitem]][_zakaz] * 3); // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
  56.  
  57.         SendClientMessage(playerid, info, str);
  58.  
  59.         SetPVarInt(playerid, "biz_zakaz", DBizitem[playerid][fix_listitem]);
  60.         SetPVarInt(playerid, "zakaz", b_info[DBizitem[playerid][fix_listitem]][_zakaz]);
  61.         SetPlayerRaceCheckpoint(playerid, 1, -116.9392,-316.1367,2.7646, -116.9392,-316.1367,2.7646, 8.0);
  62.         SetPVarInt(playerid, "biz_load", fix_listitem + 1);
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement