Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Наш краш-лог.
- Краш вызвался в 51 диалоге, когда игрок ввёл цифру 2.
- Краш на строке номер 21165.
- */
- [08:51:42] [debug] Run time error 4: "Array index out of bounds"
- [08:51:42] [debug] Accessing element at negative index -1
- [08:51:42] [debug] AMX backtrace:
- [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
- [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
- /*
- А вот и наш 51 диалог.
- */
- case 51:
- {
- if(response)
- {
- if(isnums(inputtext)) // Тут я, кстати, проебался с проверкой, тут должно быть if(0 == isnums(inputtext)), но, даже если так, игрока бы просто не пустило дальше.
- return SendClientMessage(playerid, COLOR_ERROR, "[Ошибка] {ffffff}Вводить нужно только цифру пункта!");
- new
- fix_listitem = strval(inputtext); // игрок ввёл цифру 2
- if(!(1 <= fix_listitem <= 10)) // проверка успешно пройдена, 1 <= 2 <= 10
- return 1;
- fix_listitem--; // 2 - 1 = 1
- new
- str[164];
- if(DBizitem[playerid][0] == 999 && fix_listitem == 0) // проверка не пройдена, fix_listitem (1) != 0
- {
- SetPVarInt(playerid, "biz_zakaz", DBizitem[playerid][0]); // IMPORTANT: А ВОТ, СОБСТВЕННО, НАША 21165 СТРОКА. wtf? Сначала идёт проверка DBizitem[playerid][0] == 999, а потом мы это же значение передаём в PVar,
- // тогда как там может быть -1?
- SetPVarInt(playerid, "zakaz", 1000);
- SetPlayerRaceCheckpoint(playerid, 1, -116.9392,-316.1367,2.7646, -116.9392,-316.1367,2.7646, 8.0);
- SetPVarInt(playerid, "biz_load",0+1);
- return 1;
- }
- if(b_info[DBizitem[playerid][fix_listitem]][_status] == 1) // b_info[DBizitem[playerid][1]][_status] == 1 - IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
- {
- SendClientMessage(playerid, error, "Данный заказ уже выполняется кем-то");
- return list_delivery(playerid);
- }
- b_info[DBizitem[playerid][fix_listitem]][_status] = 1; // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
- f(str, "Вы приняли заказ "W"'%s [%d], заработок %d$'"I" загрузите сначало продукты на заводе и отправляйтесь на контрольную точку",
- b_info[DBizitem[playerid][fix_listitem]][_name], // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
- DBizitem[playerid][fix_listitem], // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
- b_info[DBizitem[playerid][fix_listitem]][_zakaz] * 3); // IMPORTANT: неизвестно, что у нас в DBizitem[playerid][1]
- SendClientMessage(playerid, info, str);
- SetPVarInt(playerid, "biz_zakaz", DBizitem[playerid][fix_listitem]);
- SetPVarInt(playerid, "zakaz", b_info[DBizitem[playerid][fix_listitem]][_zakaz]);
- SetPlayerRaceCheckpoint(playerid, 1, -116.9392,-316.1367,2.7646, -116.9392,-316.1367,2.7646, 8.0);
- SetPVarInt(playerid, "biz_load", fix_listitem + 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement