/* Script generated by Pawn Studio */ #include #include #include #include #define PLUGIN "[CoD] Magazyn na perki" #define AUTHOR "Goliath" #define VERSION "2.2" /************************************* * KONFIGURACJA PLUGINU * **************************************/ /******************************** Zmień 32 na ilość slotów na twoim serwerze *********************************/ #define MAX_PLAYERS 17 /******************************** Jeżeli używasz pluginu na wytrzymałość perków, zmień poniższą linijkę na: #define WYTRZYMALOSC Jeżeli nie, zmień ją na: //define WYTRZYMALOSC *********************************/ #define WYTRZYMALOSC /******************************** Jeżeli chcesz, aby perki w magazynie przechodziły na następną mapę, zmień poniższą linijkę na: #define ZAPISUJ Jeżeli nie, zmień ją na: //define ZAPISUJ *********************************/ #define ZAPISUJ /******************************** Tutaj zmień 3 na ilość slotów, jaką chcesz mieć w magazynie. *********************************/ #define ILOSC_SLOTOW 3 /* UWAGA! * * Po jakiejkolwiek zmianie w konfiguracji * * musisz ponownie skompilować plugin! * */ /************************************* * KONIEC KONFIGURACJI * **************************************/ native cod_get_user_perk(id, &wartosc=0); native cod_get_perk_name(perk, Return[], len); native cod_set_user_perk(id, perk, wartosc=-1, pokaz_info=1); native cod_get_perkid(const perk[]); #if defined WYTRZYMALOSC native cod_set_perk_durability(id, set); native cod_get_perk_durability(id); new cvar_max_wytrzymalosc, Array:aWytrzymalosc, max_wytrzymalosc; #endif new Array:aPerki, Array:aWartosc; new Uzyto[MAX_PLAYERS+1]; #if defined ZAPISUJ new cvar_typ_zapisu, typ_zapisu; new vault; #endif #if ILOSC_SLOTOW <= 0 #error Podano błędną ilość slotów w magazynie! #endif #if MAX_PLAYERS <= 0 || MAX_PLAYERS > 32 #error Podano błędną ilość slotów na serwerze! #endif public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) aPerki = ArrayCreate(); aWartosc = ArrayCreate(); #if defined WYTRZYMALOSC aWytrzymalosc = ArrayCreate(); cvar_max_wytrzymalosc = get_cvar_pointer("cod_maxperkdurability"); max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc); #endif #if defined ZAPISUJ cvar_typ_zapisu = get_cvar_pointer("cod_savetype"); typ_zapisu = get_pcvar_num(cvar_typ_zapisu); vault = nvault_open("CodMagazyn"); #endif register_clcmd("say /magazyn", "Magazyn"); register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); for(new i=0; i<=ILOSC_SLOTOW; i++) { for(new id=0; id<=MAX_PLAYERS; id++) { ArrayPushCell(aPerki, 0); ArrayPushCell(aWartosc, -1); #if defined WYTRZYMALOSC ArrayPushCell(aWytrzymalosc, 0); #endif } } } public Magazyn(id) { if(!is_user_alive(id)) return 0; #if defined ZAPISUJ Wczytaj(id); #endif new menu = menu_create("yMagazyn na perki dby rGoliath", "Magazyn_Handler"); new text[33], perk; for(new i=1; i<=ILOSC_SLOTOW; i++) { perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+i) if(!perk) formatex(text, 32, "Pusty slot"); else { #if defined WYTRZYMALOSC cod_get_perk_name(perk, text, 32); format(text, 32, "%s %i/%i", text, ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+i), max_wytrzymalosc); #else cod_get_perk_name(perk, text, 32); #endif } menu_additem(menu, text); } menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Wstecz"); menu_display(id, menu); return 1; } public Magazyn_Handler(id, menu, item) { if(item++ == MENU_EXIT) return 0; new perk = ArrayGetCell(aPerki, id*ILOSC_SLOTOW+item), wartosc = ArrayGetCell(aWartosc, id*ILOSC_SLOTOW+item); new wartosc_gracza, perk_gracza = cod_get_user_perk(id, wartosc_gracza); #if defined WYTRZYMALOSC new wytrzymalosc = ArrayGetCell(aWytrzymalosc, id*ILOSC_SLOTOW+item); new wytrzymalosc_gracza = cod_get_perk_durability(id); #endif if(perk) { if(Uzyto[id] & (1<