Zrobilem takie cos ale skomplikowalo sie bez problem, wgralem to na serwer i wpisuje /wymien i pokazuje menu, wciskam na gracza i pisze ze itemy zostaly wymienione, ale patrze i mam ten sam item jaki mialem
new bool:dostal_przedmiot[33]; new oddaj_id[33]; public ZamienPerk(id) { new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle"); new cb = menu_makecallback("OddajPerk_Callback"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; oddaj_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0, cb); } menu_display(id, menu); } public cod_perk_changed(id) dostal_przedmiot[id] = false; public ZamienPerk_Handle(id, menu, item) { if(!is_user_connected(oddaj_id[item])){ client_print(id, print_chat, "Nie odnaleziono zadanego gracza."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]]){ client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id]){ client_print(id, print_chat, "Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!informacje_przedmiotu_gracza[id][0]){ client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!informacje_przedmiotu_gracza[id][0]){ client_print(id, print_chat, "Nie masz zadnego perka."); return PLUGIN_CONTINUE; } new nazwa_menu[128], nick[64]; get_user_name(id, nick, charsmax(nick)) formatex(nazwa_menu, charsmax(nazwa_menu), "Wymien sie perkiem z %s:", nick) new menu2 = menu_create(nazwa_menu, "menu_wymien"); menu_additem(menu2, "Tak", nick); menu_addblank(menu2, 0) menu_additem(menu2, "Nie", nick); menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz"); menu_display(oddaj_id[item], menu2); return PLUGIN_CONTINUE; } public menu_wymien(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } new access, callback, data[64]; menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback); new id2 = get_user_index(data) switch(item) { case 0: { dostal_przedmiot[id2] = true; dostal_przedmiot[id] = true; new nazwa_dajacego[64]; get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego)) client_print(id, print_chat, "Wymieniles sie perkiem z %s.", data); client_print(id2, print_chat, "Wymieniles sie perkiem z %s.", nazwa_dajacego) } case 1: client_print(id2, print_chat, "Wybrany gracz nie zgodzil sie na wymiane perka.") } return PLUGIN_CONTINUE; } public OddajPerk_Callback(id, menu, item) { if(oddaj_id[item] == id ) return ITEM_DISABLED; return ITEM_ENABLED; }
Jak ktos to poprawi dostanie +++