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)


Dodatki SourceMod




Temat jest zamknięty










