Mógłby mi ktoś poprawić ten plugin aby wymieniał dobrze 2 perkiem ponieważ zamiast na 2 wymienia 1
#include <amxmodx> #define PLUGIN "Wymien Perk" #define VERSION "1.0" #define AUTHOR "QTM.Peyote & cypis & d0n tHe Pr0oo" native cod_set_user_perk(id, perk, wartosc=-1, pokaz_info=1, lp=0) native cod_get_user_class(id) new bool:dostal_przedmiot[33][2]; new oddaj_id[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /wymien", "ZamienPerk"); register_clcmd("say /zamien", "ZamienPerk"); register_clcmd("say /wymien2", "ZamienPerk2"); register_clcmd("say /zamien2", "ZamienPerk2"); register_event("ResetHUD", "cod_perk_changed", "abe"); } 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][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])){ client_print(id, print_chat, "Nie odnaleziono zadanego gracza."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]][0]){ client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id][0]){ client_print(id, print_chat, "Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item], 0, 0)){ client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id, 0, 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: { 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)) 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 || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 0)) return ITEM_DISABLED; return ITEM_ENABLED; } public ZamienPerk2(id) { new menu = menu_create("Zamien sie perkiem 2", "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) menu_additem(menu, nazwa_gracza, "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])){ client_print(id, print_chat, "Nie odnaleziono zadanego gracza."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]][1]){ client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id][1]){ client_print(id, print_chat, "Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item], 0, 1)){ client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id, 0, 1)){ 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_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)) 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_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; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */