#include //#include #include #define PLUGIN "[COD] Wymiana Perkami" #define VERSION "1.0" #define AUTHOR "QTM.Peyote & Cypis" #define PREFIX_COD "**ProCOD**" native cod_set_user_perk(id, przedmiot, wartosc, lp) native cod_get_user_class(id) native cod_get_user_perk(id, wartocs, lp) native cod_get_perk_name(perk, Return[], len) new bool:dostal_przedmiot[33][2]; new oddaj_id[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /wymien", "MenuPerkow"); register_clcmd("say /zamien", "MenuPerkow"); register_event("ResetHUD", "cod_perk_changed", "abe"); } public MenuPerkow(id) { new menu, formats[64]; formatex(formats, charsmax(formats), "y[wByy-rSkully] rProCOD wMenu Wymiany yPerkow:") menu = menu_create(formats, "MenuPerkow_Handler"); menu_additem(menu, "w[rProCODw] yWymien Perk 1"); menu_additem(menu, "w[rProCODw] yWymien Perk 2"); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_setprop(menu, MPROP_EXITNAME, "Wyjscie") menu_display(id, menu, 0) return PLUGIN_HANDLED; } public MenuPerkow_Handler(id, menu, item) { switch(item) { case 0: ZamienPerk(id) case 1: ZamienPerk2(id) } return PLUGIN_CONTINUE; } public cod_perk_changed(id) { dostal_przedmiot[id][1] = false; dostal_przedmiot[id][0] = false; } public ZamienPerk(id) { new szText[128], szPerk[33]; new menu = menu_create("y[wByy-rSkully] rProCOD wWymian yPerk 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 y[%s]", nazwa_gracza, szPerk); menu_additem(menu, szText, "0", 0, cb); } menu_display(id, menu); } 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, "%s Nie odnaleziono zadanego Gracza!", PREFIX_COD); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]][0]) { ColorChat(id, GREEN, "%s^x01 Wybrany Gracz musi poczekac^x04 1^x01 runde.", PREFIX_COD); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id][0]) { ColorChat(id, GREEN, "%s^x01 Musisz poczekac^x04 1^x01 runde!", PREFIX_COD); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item], 0, 0)) { ColorChat(id, GREEN, "%s^x01 Wybrany Gracz nie Perka 1 !", PREFIX_COD); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id, 0, 0)) { ColorChat(id, GREEN, "%s^x01 Nie masz Perka 1 !", PREFIX_COD); return PLUGIN_CONTINUE; } new nazwa_menu[128], nick[64]; get_user_name(id, nick, charsmax(nick)) formatex(nazwa_menu, charsmax(nazwa_menu), "rProCOD y- wWymien sie yPerkiem 1 wz r%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, "%s^x01 Wymieniles sie Perkiem 1 z^x04 %s", PREFIX_COD, data); ColorChat(id2, GREEN, "%s^x01 Wymieniles sie Perkiem 1 z^x04 %s", PREFIX_COD, nazwa_dajacego); client_print(id, print_chat, "Gracz 1. Perk przed: %d, Perk po: %d.", perk_dajacego, cod_get_user_perk(id, wartosc2, 0)) client_print(id, print_chat, "Gracz 2. Perk przed: %d, Perk po: %d.", perk_oddajacego, cod_get_user_perk(id2, wartosc2, 0)) } case 1: ColorChat(id2, GREEN, "%s^x01 Wybrany gracz nie zgodzil sie na wymiane Perka 1 !", PREFIX_COD); } 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 szText[128], szPerk[33]; new menu = menu_create("y[wByy-rSkully] rProCOD wWymian yPerk 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); cod_get_perk_name(cod_get_user_perk(i, 0, 1), szPerk, 32); format(szText, 127, "%s y[%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])) { client_print(id, print_chat, "%s Nie odnaleziono zadanego Gracza!", PREFIX_COD); return PLUGIN_CONTINUE; } if(dostal_przedmiot[oddaj_id[item]][1]) { ColorChat(id, GREEN, "%s^x01 Wybrany Gracz musi poczekac^x04 1^x01 runde.", PREFIX_COD); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id][1]) { ColorChat(id, GREEN, "%s^x01 Musisz poczekac^x04 1^x01 runde!", PREFIX_COD); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item], 0, 1)) { ColorChat(id, GREEN, "%s^x01 Wybrany Gracz nie mam Perka 2 !", PREFIX_COD); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id, 0, 1)) { ColorChat(id, GREEN, "%s^x01 Nie masz Perka 2 !", PREFIX_COD); return PLUGIN_CONTINUE; } new nazwa_menu[128], nick[64]; get_user_name(id, nick, charsmax(nick)) formatex(nazwa_menu, charsmax(nazwa_menu), "rProCOD y- wWymien sie yPerkiem 2 wz r%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, "%s^x01 Wymieniles sie Perkiem 2 z^x04 %s", PREFIX_COD, data); ColorChat(id2, GREEN, "%s^x01 Wymieniles sie Perkiem 2 z^x04 %s", PREFIX_COD, nazwa_dajacego); client_print(id, print_chat, "Gracz 1. Perk przed: %d, Perk po: %d.", perk_dajacego, cod_get_user_perk(id, wartosc2, 1)) client_print(id, print_chat, "Gracz 2. Perk przed: %d, Perk po: %d.", perk_oddajacego, cod_get_user_perk(id2, wartosc2, 1)) } case 1: ColorChat(id2, GREEN, "%s^x01 Wybrany gracz nie zgodzil sie na wymiane Perka 2 !", PREFIX_COD); } 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; }