Witam, proszę o pomoc.
Co w tym kodzie jest źle? ( Niżej ERROR)
public rynek_kupno(id) { new szText[128], data[2]; formatex(szText, charsmax(szText), "\yDostepne Oferty:"); new menu = menu_create(szText, "rynek_kupno_handler"); for(new i = 0; i < ArraySize(items); ++i) { new perk[e_Perk], name[33]; ArrayGetArray(items,i,perk); get_user_name(perk[OWNER_ID], name, 32); data[0] = i+1; data[1] = perk[ITEM_ID]; formatex(szText, charsmax(szText), "%s\y [%s]\w Cena:\r [%i Monet]\w Wytrzymalosc:\r [%d/100]", name, perk[PERK_NAME],perk[PERK_PRICE],perk[PERK_DURABILITY]); menu_additem(menu, szText, data); } menu_setprop(menu, MPROP_BACKNAME, "Wstecz"); menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXIT, "Wyjscie"); menu_display(id, menu); return PLUGIN_CONTINUE; } public rynek_kupno_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new szText[512], iLen = 0, iMax = sizeof(szText) - 1; new perk[e_Perk], opis[64], name[32]; new data[2], zaccess, callback; menu_item_getinfo(menu, item, zaccess, data, 2, _, _, callback); ArrayGetArray(items,item,perk); get_user_name(perk[OWNER_ID], name, 32); cod_get_perk_desc(perk[PERK_ID], opis, charsmax(opis)); iLen += formatex(szText[iLen], iMax-iLen, "Potwierdzenie kupna perku od: \r%s^n", name); iLen += formatex(szText[iLen], iMax-iLen, "\yPerk: \r%s^n", perk[PERK_NAME]); iLen += formatex(szText[iLen], iMax-iLen, "\yOpis: \r%s^n", opis); iLen += formatex(szText[iLen], iMax-iLen, "\yKoszt: \r%d Monet^n", perk[PERK_PRICE]); iLen += formatex(szText[iLen], iMax-iLen, "\yWytrzymalosc: \r%d/100^n^n", perk[PERK_DURABILITY]); iLen += formatex(szText[iLen], iMax-iLen, "\wCzy chcesz kupic ten perk?"); new menu = menu_create(szText, "rynek_kupno_potwierdzenie"); menu_additem(menu, "\yTak", data); menu_additem(menu, "\rNie"); menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER) menu_display(id, menu); return PLUGIN_CONTINUE; } public rynek_kupno_potwierdzenie(id, menu, item) { if(item == MENU_EXIT || item == 1) { rynek_kupno(id); return PLUGIN_HANDLED; } new data[2], zaccess, callback; menu_item_getinfo(menu, item, zaccess, data, 2, _, _, callback); new perk[e_Perk]; new item_id = data[0]-1; ArrayGetArray(items,item_id,perk); if(data[1] != perk[ITEM_ID]) { ColorChat(id, GREEN, "[%s]^x03 Perk zostal juz kupiony.", PREFIX); rynek_kupno(id); return PLUGIN_CONTINUE; } if(cod_get_user_coins(id) < perk[PERK_PRICE]) { ColorChat(id, GREEN, "[%s]^x03 Masz za malo monet!", PREFIX); rynek_kupno(id); } else { new nick[32]; get_user_name(id, nick, charsmax(nick)); cod_set_user_coins(id, cod_get_user_coins(id) - perk[PERK_PRICE]); cod_set_user_coins(perk[OWNER_ID], cod_get_user_coins(perk[OWNER_ID]) + perk[PERK_PRICE]); cod_set_user_perk(id, perk[PERK_ID]); cod_set_perk_durability(id, perk[PERK_DURABILITY]); ColorChat(id, GREEN, "[%s]^x03 Perk zostal zakupiony pomyslnie!", PREFIX); ColorChat(perk[OWNER_ID], GREEN, "[%s]^x03 Twoj perk zostal zakupiony przez^x04 %s^x03. Otrzymujesz^x04 %i Monet^x03.", PREFIX, nick, perk[PERK_PRICE]); ArrayDeleteItem(items,item_id) } return PLUGIN_CONTINUE; } public rynek_usun(id) { new szText[128], data[2]; formatex(szText, charsmax(szText), "\yTwoje Oferty:"); new menu = menu_create(szText, "rynek_usun_handler"); for(new i = 0; i < ArraySize(items); ++i) { new perk[e_Perk]; ArrayGetArray(items,i,perk); if(perk[OWNER_ID] != id) continue; data[0] = i+1; data[1] = perk[ITEM_ID]; formatex(szText, charsmax(szText), "\y[%s]\w Cena:\r [%i Monet]\w Wytrzymalosc:\r [%d/100]", perk[PERK_NAME],perk[PERK_PRICE],perk[PERK_DURABILITY]); menu_additem(menu, szText, data); } menu_setprop(menu, MPROP_BACKNAME, "Wstecz"); menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXIT, "Wyjscie"); menu_display(id, menu); } public rynek_usun_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new szText[256], iLen = 0, iMax = sizeof(szText) - 1; new perk[e_Perk], item_id; new data[2], zaccess, callback; menu_item_getinfo(menu, item, zaccess, data, 2, _, _, callback); item_id = data[0]-1; ArrayGetArray(items,item_id,perk); iLen += formatex(szText[iLen], iMax-iLen, "Potwierdzenie usuniecia perku.^n"); iLen += formatex(szText[iLen], iMax-iLen, "\yPerk: \r%s^n", perk[PERK_NAME]); iLen += formatex(szText[iLen], iMax-iLen, "\yKoszt: \r%d Monet^n", perk[PERK_PRICE]); iLen += formatex(szText[iLen], iMax-iLen, "\yWytrzymalosc: \r%d/100^n^n", perk[PERK_DURABILITY]); iLen += formatex(szText[iLen], iMax-iLen, "\wCzy chcesz usunac ten perk?"); new menu = menu_create(szText, "rynek_usun_potwierdzenie"); menu_additem(menu, "\yTak", data); menu_additem(menu, "\rNie"); menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER) menu_display(id, menu); return PLUGIN_CONTINUE; } public rynek_usun_potwierdzenie(id, menu, item) { if(item == MENU_EXIT || item == 1) { rynek_usun(id); return PLUGIN_HANDLED; } new data[2], zaccess, callback; menu_item_getinfo(menu, item, zaccess, data, 2, _, _, callback); new perk[e_Perk]; new item_id = data[0]-1; ArrayGetArray(items,item_id,perk); if(data[1] != perk[ITEM_ID]) { ColorChat(id, GREEN, "[%s]^x03 Perk zostal juz kupiony.", PREFIX); rynek_usun(id); return PLUGIN_CONTINUE; } ArrayDeleteItem(items,item_id) ColorChat(id, GREEN, "[%s]^x03 Perk zostal pomyslnie usuniety z rynku!", PREFIX) rynek_usun(id); return PLUGIN_CONTINUE; }
error:
L 08/23/2014 - 10:50:44: Start of error session. L 08/23/2014 - 10:50:44: Info (map "de_dust2_long_2012") (file "addons/amxmodx/logs/error_20140823.log") L 08/23/2014 - 10:50:44: Invalid cellvector handle provided (2:1:1) L 08/23/2014 - 10:50:44: [AMXX] Displaying debug trace (plugin "cod_rynek.amxx") L 08/23/2014 - 10:50:44: [AMXX] Run time error 10: native error (native "ArrayGetArray") L 08/23/2014 - 10:50:44: [AMXX] [0] cod_rynek.sma::rynek_kupno_handler (line 223)