Cześć, posiadam plugin na wymianę perkami i zechciało mi się zrobić blokadę na wymianę perkami, aby jak posiadam jakiś perk nie przychodziło do mnie powiadomienie, że ktoś chce się ze mną wymienić perkiem, bo często to irytuje jak ktoś cały czas spami tą wiadomością.
Widziałem na internecie coś takiego, lecz nie działa, sam próbowałem kilkanaście razy coś wymyślić, lecz jedynie co udawało mi się zrobić to wyskakuje tylko komunikat, że zablokowałem/odblokowałem wymianę na say, ale możliwości wymiany nie blokuje. Ma ktoś jakiś pomysł w czym jest błąd ?
KOD:
Spoiler
#include <amxmodx> #include <ColorChat> #include <codmod> #define PLUGIN "Wymien Perk" #define VERSION "1.1" #define AUTHOR "QTM.Peyote" new bool:dostal_przedmiot[33]; new oddaj_id[33]; new bool:blokada[33]; new bool:block=true; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /wymien", "MenuZamien"); register_clcmd("say /zamien", "MenuZamien"); register_event("ResetHUD", "cod_perk_changed", "abe"); } public MenuZamien(id) { new menu = menu_create("Menu Wymiany", "MenuZamien_handle"); menu_additem(menu, "Wymien Perk^n", "1", 0); if(block) { menu_additem(menu,"\yMozliwosc Wymiany \d[\rOdblokowana\d]","2",0) } else { menu_additem(menu,"\yMozliwosc Wymiany \d[\rZablokowana\d]","3",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: { zablokuj(id) block=!block; return PLUGIN_HANDLED; } case 3: { 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", "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), 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] = 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]]){ ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz musi poczekac 1 runde."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id]){ ColorChat(id, GREEN, "[COD:MW3]^x03 Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(oddaj_id[item])){ ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz nie mam zadnego perka."); return PLUGIN_CONTINUE; } if(!cod_get_user_perk(id)){ 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 perk_oddajacego = cod_get_user_perk(id2) new perk_dajacego = cod_get_user_perk(id) cod_set_user_perk(id2, perk_dajacego); cod_set_user_perk(id, perk_oddajacego); dostal_przedmiot[id2] = true; dostal_przedmiot[id] = 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])) return ITEM_DISABLED; return ITEM_ENABLED; }
Attached Files
-
wymiana_perkami.sma 4.81KB 69 downloads
wymiana_perkami.amxx