#include #define PLUGIN "Wymien Perk" #define VERSION "1.0" #define AUTHOR "QTM.Peyote" native cod_set_user_perk(id, przedmiot) native cod_get_user_class(id) native cod_get_user_perk(id) native cod_get_perk_durability(id) native cod_set_perk_durability(id, wartosc) new bool:dostal_przedmiot[33]; new oddaj_id[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /wymien", "ZamienPerk"); register_clcmd("say /zamien", "ZamienPerk"); 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] = 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]]){ 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(!cod_get_user_perk(oddaj_id[item])){ client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id)){ 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 perk_oddajacego = cod_get_user_perk(id2) new perk_dajacego = cod_get_user_perk(id) new trim_oddajacego = cod_get_perk_durability(id2) new trim_dajacego = cod_get_perk_durability(id) cod_set_user_perk(id, perk_dajacego); cod_set_user_perk(id2, perk_oddajacego); cod_set_perk_durability(id, trim_dajacego) cod_set_perk_durability(id2, trim_oddajacego) dostal_przedmiot[id] = true; dostal_przedmiot[id2] = 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])) 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 } */