#include #include #include new bool:dostal_przedmiot[33][2]; new oddaj_id[33]; new bool:blokada[33]; new bool:block=true; register_clcmd("say /wymien", "MenuZamien"); register_clcmd("say /zamien", "MenuZamien"); public MenuZamien(id) { new menu = menu_create("Menu Wymiany", "MenuZamien_handle"); menu_additem(menu, "Wymien Perk^n", "1", 0); menu_additem(menu, "Wymien Perk2^n", "2", 0); if(block) { menu_additem(menu,"\yMozliwosc Wymiany \d[\rOdblokowana\d]","3",0) } else { menu_additem(menu,"\yMozliwosc Wymiany \d[\rZablokowana\d]","4",0) } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); } public MenuZamien_handle(id, menu, item) { new data[6], iName[64]; new zaccess, callback; menu_item_getinfo(menu, item, zaccess, data,5, iName, 64, callback); new key = str_to_num(data) switch(key) { case 1: { ZamienPerk(id) menu_destroy(menu); return PLUGIN_HANDLED; } case 2: { ZamienPerk2(id) menu_destroy(menu); return PLUGIN_HANDLED; } case 3: { zablokuj(id) block=!block; return PLUGIN_HANDLED; } case 4: { odblokuj(id) block=!block; return PLUGIN_HANDLED; } } menu_destroy(menu); return PLUGIN_HANDLED; } public zablokuj(id) { blokada[id] = true; ColorChat(id, GREEN, "[COD:MW3]^x03 Zablokowales mozliwosc wymiany z toba perkami!"); } public odblokuj(id) { blokada[id] = false; ColorChat(id, GREEN, "[COD:MW3]^x03 Odblokowales mozliwosc wymiany z toba perkami"); } public ZamienPerk(id) { new szText[128], szPerk[33]; new menu = menu_create("Zamien sie perkiem 1", "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); cod_get_perk_name(cod_get_user_perk(i, 0, 0), szPerk, 32); format(szText, 127, "%s \r[Perk: %s]", nazwa_gracza, szPerk); menu_additem(menu, szText, "0", 0, cb); } menu_display(id, menu); } public cod_perk_changed(id) { dostal_przedmiot[id][1] = false; dostal_przedmiot[id][0] = false; } public ZamienPerk_Handle(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } if(!is_user_connected(oddaj_id[item])){ ColorChat(id, GREEN, "[COD:MW3]^x03 Nie odnaleziono zadanego gracza."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]][0]){ ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz musi poczekac 1 runde."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id][0]){ ColorChat(id, GREEN, "[COD:MW3]^x03 Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item], 0, 0)){ ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id, 0, 0)){ ColorChat(id, GREEN, "[COD:MW3]^x03 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: { new wartosc1, wartosc2; new perk_oddajacego = cod_get_user_perk(id2, wartosc1, 0) new perk_dajacego = cod_get_user_perk(id, wartosc2, 0) cod_set_user_perk(id2, perk_dajacego, wartosc2, 0); cod_set_user_perk(id, perk_oddajacego, wartosc1, 0); dostal_przedmiot[id2][0] = true; dostal_przedmiot[id][0] = true; new nazwa_dajacego[64]; get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego)) ColorChat(id, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", data); ColorChat(id2, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", nazwa_dajacego) } case 1: ColorChat(id2, GREEN, "[COD:MW3]^x03 Wybrany gracz nie zgodzil sie na wymiane perka.") } return PLUGIN_CONTINUE; } public OddajPerk_Callback(id, menu, item) { if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 0) || blokada[oddaj_id[item]]) return ITEM_DISABLED; return ITEM_ENABLED; } public ZamienPerk2(id) { new szText[128], szPerk[33]; new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle2"); new cb = menu_makecallback("OddajPerk_Callback2"); 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); cod_get_perk_name(cod_get_user_perk(i, 0, 1), szPerk, 32); format(szText, 127, "%s \r[Perk: %s]", nazwa_gracza, szPerk); menu_additem(menu, szText, "0", 0, cb); } menu_display(id, menu); } public ZamienPerk_Handle2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } if(!is_user_connected(oddaj_id[item])){ ColorChat(id, GREEN, "[COD:MW3]^x03 Nie odnaleziono zadanego gracza."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]][1]){ ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz musi poczekac 1 runde."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id][1]){ ColorChat(id, GREEN, "[COD:MW3]^x03 Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item], 0, 1)){ ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id, 0, 1)){ ColorChat(id, GREEN, "[COD:MW3]^x03 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_wymien2"); 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_wymien2(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: { new wartosc1, wartosc2; new perk_oddajacego = cod_get_user_perk(id2, wartosc1, 1) new perk_dajacego = cod_get_user_perk(id, wartosc2, 1) cod_set_user_perk(id2, perk_dajacego, wartosc2, 1); cod_set_user_perk(id, perk_oddajacego, wartosc1, 1); dostal_przedmiot[id2][1] = true; dostal_przedmiot[id][1] = true; new nazwa_dajacego[64]; get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego)) ColorChat(id, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", data); ColorChat(id2, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", nazwa_dajacego) } case 1: ColorChat(id2, GREEN, "[COD:MW3]^x03 Wybrany gracz nie zgodzil sie na wymiane perka.") } return PLUGIN_CONTINUE; } public OddajPerk_Callback2(id, menu, item) { if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 1)) return ITEM_DISABLED; return ITEM_ENABLED; }