#include #include #include #include #include #include   #define PLUGIN "Call of Duty: MW Mod" #define VERSION "1.0-3" #define AUTHOR "QTM_Peyote"   #define MAX_WIELKOSC_NAZWY 32 #define MAX_WIELKOSC_OPISU 256 #define MAX_ILOSC_PERKOW 120 #define MAX_ILOSC_KLAS 100   #define MAX_WIELKOSC_FRAKCJA 64 new frakcja_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_FRAKCJA+1]   #define STANDARDOWA_SZYBKOSC 250.0   #define ZADANIE_POKAZ_INFORMACJE 672 #define ZADANIE_POKAZ_REKLAME 768 #define ZADANIE_USTAW_SZYBKOSC 832   new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,  90, 2, 35, 90, 90,0, 100};   new MsgScreenfade;   new vault;   new SyncHudObj, SyncHudObj2;   new cvar_doswiadczenie_za_zabojstwo,      cvar_doswiadczenie_za_obrazenia,      cvar_doswiadczenie_za_wygrana,      cvar_typ_zapisu,      cvar_limit_poziomu,      cvar_proporcja_poziomu,      cvar_blokada_broni;         new perk_zmieniony,      klasa_zmieniona;         new nazwy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_NAZWY+1],      opisy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_OPISU+1],      max_wartosci_perkow[MAX_ILOSC_PERKOW+1],      min_wartosci_perkow[MAX_ILOSC_PERKOW+1],      pluginy_perkow[MAX_ILOSC_PERKOW+1],      ilosc_perkow;         new nazwa_gracza[33][64],      klasa_gracza[33],      nowa_klasa_gracza[33],      poziom_gracza[33],      doswiadczenie_gracza[33],      perk_gracza[33],      wartosc_perku_gracza[33];   new Float:maksymalne_zdrowie_gracza[33],      Float:szybkosc_gracza[33],      Float:redukcja_obrazen_gracza[33];       new punkty_gracza[33],      zdrowie_gracza[33],      inteligencja_gracza[33],      wytrzymalosc_gracza[33],      kondycja_gracza[33];   new bool:gracz_ma_tarcze[33],      bool:gracz_ma_noktowizor[33];        new bonusowe_bronie_gracza[33],      bonusowe_zdrowie_gracza[33],      bonusowa_inteligencja_gracza[33],      bonusowa_wytrzymalosc_gracza[33],      bonusowa_kondycja_gracza[33];   new bronie_klasy[MAX_ILOSC_KLAS+1],       zdrowie_klas[MAX_ILOSC_KLAS+1],      kondycja_klas[MAX_ILOSC_KLAS+1],       inteligencja_klas[MAX_ILOSC_KLAS+1],       wytrzymalosc_klas[MAX_ILOSC_KLAS+1],      nazwy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_NAZWY+1],      opisy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_OPISU+1],      pluginy_klas[MAX_ILOSC_KLAS+1],      ilosc_klas;   new bronie_druzyny[] = {0, 1< speed*1.8) set_pev(id, pev_flTimeStepSound, 300);   return FMRES_IGNORED; }   public Odrodzenie(id) { if(!task_exists(id+ZADANIE_POKAZ_INFORMACJE)) set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE, _, _, "b");   if(nowa_klasa_gracza[id]) UstawNowaKlase(id);   if(!klasa_gracza[id]) { WybierzKlase(id); return PLUGIN_CONTINUE; }   DajBronie(id); ZastosujAtrybuty(id);   if(punkty_gracza[id] > 0) PrzydzielPunkty(id);   return PLUGIN_CONTINUE; }   public UstawNowaKlase(id) { new ret;   new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL); ExecuteForward(forward_handle, ret, id, klasa_gracza[id]); DestroyForward(forward_handle);   forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL); ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]); DestroyForward(forward_handle);     if(ret == 4) { klasa_gracza[id] = 0; return PLUGIN_CONTINUE; }   ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);   if(ret == 4) { klasa_gracza[id] = 0; return PLUGIN_CONTINUE; }   klasa_gracza[id] = nowa_klasa_gracza[id]; nowa_klasa_gracza[id] = 0; UstawPerk(id, perk_gracza[id], wartosc_perku_gracza[id], 0);   WczytajDane(id, klasa_gracza[id]); return PLUGIN_CONTINUE; }   public DajBronie(id) { for(new i=1; i < 32; i++) { if((1< 0) cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]); }   public ZastosujAtrybuty(id) { redukcja_obrazen_gracza[id] = 0.7*(1.0-floatpower(1.1, -0.112311341*PobierzWytrzymalosc(id, 1, 1, 1)));   maksymalne_zdrowie_gracza[id] = 100.0+PobierzZdrowie(id, 1, 1, 1);   szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC+PobierzKondycje(id, 1, 1, 1)*1.3;   set_pev(id, pev_health, maksymalne_zdrowie_gracza[id]); }   public PoczatekRundy() { freezetime = false; for(new id=0;id<=32;id++) { if(!is_user_alive(id)) continue;   Display_Fade(id, 1<<9, 1<<9, 1<<12, 0, 255, 70, 100);   set_task(0.1, "UstawSzybkosc", id+ZADANIE_USTAW_SZYBKOSC);   switch(get_user_team(id)) { case 1: client_cmd(id, "spk QTM_CodMod/start2"); case 2: client_cmd(id, "spk QTM_CodMod/start"); } } }   public NowaRunda() freezetime = true;   public Obrazenia(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(idattacker)) return HAM_IGNORED;   if(get_user_team(this) == get_user_team(idattacker)) return HAM_IGNORED;   if(get_user_health(this) <= 1) return HAM_IGNORED;   SetHamParamFloat(4, damage*(1.0-redukcja_obrazen_gracza[this]));   return HAM_IGNORED; }   public ObrazeniaPost(id, idinflictor, attacker, Float:damage, damagebits) { if(!is_user_connected(attacker) || !klasa_gracza[attacker]) return HAM_IGNORED;   if(get_user_team(id) != get_user_team(attacker)) { new doswiadczenie_za_obrazenia = get_pcvar_num(cvar_doswiadczenie_za_obrazenia); while(damage>20) { damage -= 20; doswiadczenie_gracza[attacker] += doswiadczenie_za_obrazenia; } } SprawdzPoziom(attacker); return HAM_IGNORED; }   public SmiercGraczaPost(id, attacker, shouldgib) { if(!is_user_connected(attacker)) return HAM_IGNORED;   if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker]) { new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo); new nowe_doswiadczenie = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);   if(poziom_gracza[id] > poziom_gracza[attacker]) nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);   if(!perk_gracza[attacker]) UstawPerk(attacker, -1, -1, 1); doswiadczenie_gracza[attacker] += nowe_doswiadczenie; }   SprawdzPoziom(attacker);   return HAM_IGNORED; }     public MessageHealth(msg_id, msg_dest, msg_entity) { static health; health = get_msg_arg_int(1);   if (health < 256) return;   if (!(health % 256)) set_pev(msg_entity, pev_health, pev(msg_entity, pev_health)-1);   set_msg_arg_int(1, get_msg_argtype(1), 255); }   public client_authorized(id) { UsunUmiejetnosci(id);   get_user_name(id, nazwa_gracza[id], 63);   UsunZadania(id);   set_task(10.0, "PokazReklame", id+ZADANIE_POKAZ_REKLAME); }   public client_disconnect(id) { ZapiszDane(id); UsunUmiejetnosci(id); UsunZadania(id); }   public UsunUmiejetnosci(id) { nowa_klasa_gracza[id] = 0; UstawNowaKlase(id); klasa_gracza[id] = 0; poziom_gracza[id] = 0; doswiadczenie_gracza[id] = 0; punkty_gracza[id] = 0; zdrowie_gracza[id] = 0; inteligencja_gracza[id] = 0; wytrzymalosc_gracza[id] = 0; kondycja_gracza[id] = 0; bonusowe_zdrowie_gracza[id] = 0; bonusowa_wytrzymalosc_gracza[id] = 0; bonusowa_inteligencja_gracza[id] = 0; bonusowa_kondycja_gracza[id] = 0; maksymalne_zdrowie_gracza[id] = 0.0; szybkosc_gracza[id] = 0.0; UstawPerk(id, 0, 0, 0); }   public UsunZadania(id) { remove_task(id+ZADANIE_POKAZ_INFORMACJE); remove_task(id+ZADANIE_POKAZ_REKLAME); remove_task(id+ZADANIE_USTAW_SZYBKOSC); }   public WygranaTerro() WygranaRunda("TERRORIST");   public WygranaCT() WygranaRunda("CT");   public WygranaRunda(const Team[]) { new Players[32], playerCount, id; get_players(Players, playerCount, "aeh", Team); new doswiadczenie_za_wygrana = get_pcvar_num(cvar_doswiadczenie_za_wygrana);   if(get_playersnum() < 3) return;   for (new i=0; i -1) num_to_str(wartosc, losowa_wartosc, 14); else format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_perkow[perk], max_wartosci_perkow[perk]);   format(opis_perku, charsmax(opis_perku), opisy_perkow[perk]); replace_all(opis_perku, charsmax(opis_perku), "LW", losowa_wartosc);   client_print(id, print_chat, "Perk: %s.", nazwy_perkow[perk]); client_print(id, print_chat, "Opis: %s.", opis_perku); }   public OpisPerkow(id) { new menu = menu_create("Wybierz Perk:", "OpisPerkow_Handle"); for(new i=1; i <= ilosc_perkow; i++) menu_additem(menu, nazwy_perkow[i]); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); }   public OpisPerkow_Handle(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } OpisPerku(id, item, -1); OpisPerkow(id); return PLUGIN_CONTINUE; }     public OpisKlasy(id) { new menu = menu_create("Wybierz klase:", "OpisKlasy_Handle"); for(new i=1; i <= ilosc_klas; i++) menu_additem(menu, nazwy_klas[i]); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu);   client_cmd(id, "spk QTM_CodMod/select"); }   public OpisKlasy_Handle(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select");   if(item++ == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; }   new bronie[320]; for(new i=1, n=1; i <= 32; i++) { if((1< 1) add(bronie, charsmax(bronie), ","); add(bronie, charsmax(bronie), weaponname); n++; } }   new opis[416+MAX_WIELKOSC_OPISU]; format(opis, charsmax(opis), "yKlasa: w%s^nyInteligencja: w%i^nyZdrowie: w%i^nyWytrzymalosc: w%i^nyKondycja: w%i^nyBronie:w%s^nyDodatkowy opis: w%s^n%s", nazwy_klas[item], inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item], bronie, opisy_klas[item], opisy_klas[item][79]); show_menu(id, 1023, opis);   return PLUGIN_CONTINUE; } public bool:is_in_previous(frakcja[],from){ for(new i = from - 1;i>=1;i--){ if(equali(frakcja_klas[i],frakcja)){ return true; } } return false; }   public WybierzKlase(id) { new menu = menu_create("Wybierz klase:", "WybierzKlase_Frakcje"); for(new i=1; i <= ilosc_klas; i++) { if(!equal(frakcja_klas[i],"") && !is_in_previous(frakcja_klas[i],i)){ menu_additem(menu,frakcja_klas[i],frakcja_klas[i]) } }   menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); }   public WybierzKlase_Frakcje(id, menu, item) { if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_CONTINUE; }   new data[65], iName[64]  new acces, callback  menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)    new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");   new klasa[50],szTmp[5]; for(new i=1; i <= ilosc_klas; i++) { if(equali(data,frakcja_klas[i])){ WczytajDane(id, i); format(klasa, charsmax(klasa), "%s yPoziom: %i", nazwy_klas[i], poziom_gracza[id]); num_to_str(i,szTmp,charsmax(szTmp)); menu_additem(menu2, klasa,szTmp); } }   WczytajDane(id, klasa_gracza[id]);   menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu2);   client_cmd(id, "spk QTM_CodMod/select");   menu_destroy(menu); return PLUGIN_CONTINUE; }   public WybierzKlase_Handle(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select");   if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; }   new data[65], iName[64]  new acces, callback  menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)    item = str_to_num(data);   if(item == klasa_gracza[id] && !nowa_klasa_gracza[id]) return PLUGIN_CONTINUE;   nowa_klasa_gracza[id] = item;   if(klasa_gracza[id]) client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie."); else { UstawNowaKlase(id); DajBronie(id); ZastosujAtrybuty(id); }   return PLUGIN_CONTINUE; }   public PrzydzielPunkty(id) { new inteligencja[65]; new zdrowie[60]; new wytrzymalosc[60]; new kondycja[60]; new tytul[25]; new allkondycja[60]; new allinteligencja[60]; new allwytrzymalosc[60]; new allzdrowie[60]; new kondycjaa[60]; new wytrzymalosca[60]; new zdrowiea[60]; new inteligencjaa[60]; format(inteligencja, charsmax(inteligencja), "Inteligencja: r%i y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1)); format(zdrowie, charsmax(zdrowie), "Zdrowie: r%i y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1)); format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: r%i y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1)); format(kondycja, charsmax(kondycja), "Kondycja: r%i y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1)); format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]); format(allinteligencja, charsmax(allinteligencja), "Dodaj wszystko w inteligencje"); format(allkondycja, charsmax(allkondycja), "Dodaj wszystko w kondycje"); format(allzdrowie, charsmax(allzdrowie), "Dodaj wszystko w zdrowie"); format(allwytrzymalosc, charsmax(allwytrzymalosc), "Dodaj wszystko w wytrzymalosc"); format(kondycjaa, charsmax(kondycjaa), "Dodaj 10 punktow w kondycje"); format(zdrowiea, charsmax(zdrowiea), "Dodaj 10 punktow w zdrowie"); format(inteligencjaa, charsmax(inteligencjaa), "Dodaj 10 punktow w inteligencje"); format(wytrzymalosca, charsmax(wytrzymalosca), "Dodaj 10 punktow w wytrzymalosc"); new menu = menu_create(tytul, "PrzydzielPunkty_Handler"); menu_additem(menu, inteligencja); menu_additem(menu, zdrowie); menu_additem(menu, wytrzymalosc); menu_additem(menu, kondycja); menu_additem(menu, inteligencjaa); menu_additem(menu, zdrowiea); menu_additem(menu, wytrzymalosca); menu_additem(menu, kondycjaa); menu_additem(menu, allinteligencja); menu_additem(menu, allzdrowie); menu_additem(menu, allwytrzymalosc); menu_additem(menu, allkondycja); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); }   public PrzydzielPunkty_Handler(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select");   if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; }   if(punkty_gracza[id] < 1) return PLUGIN_CONTINUE;   new limit_poziomu = get_pcvar_num(cvar_limit_poziomu); new limit_int, limit_zdr, limit_kon, limit_wyt; limit_int = limit_poziomu/2; limit_zdr = limit_poziomu/2; limit_kon = limit_poziomu/2; limit_wyt = limit_poziomu/2;   switch(item)  {  case 0:  { if(inteligencja_gracza[id] < limit_int) { inteligencja_gracza[id]++; punkty_gracza[id]--; } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom inteligencji osiagniety");     } case 1:  { if(zdrowie_gracza[id] < limit_zdr) { zdrowie_gracza[id]++; punkty_gracza[id]--; } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom zdrowia osiagniety"); } case 2:  { if(wytrzymalosc_gracza[id] < limit_wyt) { wytrzymalosc_gracza[id]++; punkty_gracza[id]--; } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom wytrzymalosci osiagniety");   } case 3:  { if(kondycja_gracza[id] < limit_kon) { kondycja_gracza[id]++; punkty_gracza[id]--; } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom kondycji osiagniety"); } case 4:  { if(inteligencja_gracza[id] < limit_int) { if(punkty_gracza[id] < 10) { client_print(id, print_chat, "[COD:MW] Masz za malo punktow do rozdania"); } else { if(inteligencja_gracza[id] + 10 <= limit_int) { inteligencja_gracza[id] += 10; punkty_gracza[id] -= 10; } else { new punktydododania; punktydododania = limit_int - inteligencja_gracza[id]; inteligencja_gracza[id] += punktydododania; punkty_gracza[id] -= punktydododania; } } } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom inteligencji osiagniety");     } case 5:  { if(zdrowie_gracza[id] < limit_zdr) { if(punkty_gracza[id] < 10) { client_print(id, print_chat, "[COD:MW] Masz za malo punktow do rozdania"); } else { if(zdrowie_gracza[id] + 10 <= limit_zdr) { zdrowie_gracza[id] += 10; punkty_gracza[id] -= 10; } else { new punktydododania; punktydododania = limit_zdr - zdrowie_gracza[id]; zdrowie_gracza[id] += punktydododania; punkty_gracza[id] -= punktydododania; } } } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom zdrowia osiagniety"); } case 6:  { if(wytrzymalosc_gracza[id] < limit_wyt) { if(punkty_gracza[id] < 10) { client_print(id, print_chat, "[COD:MW] Masz za malo punktow do rozdania"); } else { if(wytrzymalosc_gracza[id] + 10 <= limit_wyt) { wytrzymalosc_gracza[id] += 10; punkty_gracza[id] -= 10; } else { new punktydododania; punktydododania = limit_wyt - wytrzymalosc_gracza[id]; wytrzymalosc_gracza[id] += punktydododania; punkty_gracza[id] -= punktydododania; } } } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom wytrzymalosci osiagniety");   } case 7:  { if(kondycja_gracza[id] < limit_kon) { if(punkty_gracza[id] < 10) { client_print(id, print_chat, "[COD:MW] Masz za malo punktow do rozdania"); } else { if(kondycja_gracza[id] + 10 <= limit_kon) { kondycja_gracza[id] += 10; punkty_gracza[id] -= 10; } else { new punktydododania; punktydododania = limit_kon - kondycja_gracza[id]; kondycja_gracza[id] += punktydododania; punkty_gracza[id] -= punktydododania; } } } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom kondycji osiagniety"); } case 8:  { if(inteligencja_gracza[id] < limit_int) { if(punkty_gracza[id] > limit_int - inteligencja_gracza[id]) { punkty_gracza[id] = punkty_gracza[id] + inteligencja_gracza[id] - limit_int; inteligencja_gracza[id] = limit_int; } else { inteligencja_gracza[id] = inteligencja_gracza[id] + punkty_gracza[id]; punkty_gracza[id] = 0; } } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom inteligencji osiagniety");     } case 9:  { if(zdrowie_gracza[id] < limit_zdr) { if(punkty_gracza[id] > limit_zdr - zdrowie_gracza[id]) { punkty_gracza[id] = punkty_gracza[id] + zdrowie_gracza[id] - limit_zdr; zdrowie_gracza[id] = limit_zdr; } else { zdrowie_gracza[id] = zdrowie_gracza[id] + punkty_gracza[id]; punkty_gracza[id] = 0; } } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom zdrowia osiagniety"); } case 10:  { if(wytrzymalosc_gracza[id] < limit_wyt) { if(punkty_gracza[id] > limit_wyt - wytrzymalosc_gracza[id]) { punkty_gracza[id] = punkty_gracza[id] + wytrzymalosc_gracza[id] - limit_wyt; wytrzymalosc_gracza[id] = limit_wyt; } else { wytrzymalosc_gracza[id] = wytrzymalosc_gracza[id] + punkty_gracza[id]; punkty_gracza[id] = 0; } } else  client_print(id, print_chat, "[COD:MW] Maksymalny poziom wytrzymalosci osiagniety");   } case 11:  { if(kondycja_gracza[id] < limit_kon) { if(punkty_gracza[id] > limit_kon - kondycja_gracza[id]) { punkty_gracza[id] = punkty_gracza[id] + kondycja_gracza[id] - limit_kon; kondycja_gracza[id] = limit_kon; } else { kondycja_gracza[id] = kondycja_gracza[id] + punkty_gracza[id]; punkty_gracza[id] = 0; } } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom kondycji osiagniety"); } }   if(punkty_gracza[id] > 0) PrzydzielPunkty(id);   return PLUGIN_CONTINUE; }   public KomendaResetujPunkty(id) { client_print(id, print_chat, "[COD:MW] Umiejetnosci zostana zresetowane."); client_cmd(id, "spk QTM_CodMod/select");   ResetujPunkty(id); }   public ResetujPunkty(id) { punkty_gracza[id] = (poziom_gracza[id]-1)*2; inteligencja_gracza[id] = 0; zdrowie_gracza[id] = 0; kondycja_gracza[id] = 0; wytrzymalosc_gracza[id] = 0;   if(punkty_gracza[id]) PrzydzielPunkty(id); }   public CurWeapon(id) { if(!is_user_connected(id)) return;   new team = get_user_team(id);   if(team > 2) return;   new bron = read_data(2);   new bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone);   if(!(1<0?str_to_num(danegracza[1]):1; inteligencja_gracza[id] = str_to_num(danegracza[2]); zdrowie_gracza[id] = str_to_num(danegracza[3]); wytrzymalosc_gracza[id] = str_to_num(danegracza[4]); kondycja_gracza[id] = str_to_num(danegracza[5]); punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];   return PLUGIN_CONTINUE; }      public WyrzucPerk(id) { if(perk_gracza[id]) { client_print(id, print_chat, "[COD:MW] Wyrzuciles %s.", nazwy_perkow[perk_gracza[id]]); UstawPerk(id, 0, 0, 0); } else client_print(id, print_chat, "[COD:MW] Nie masz zadnego perku."); }   public SprawdzPoziom(id) { if(!is_user_connected(id)) return;   new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);   new bool:zdobyl_poziom = false, bool:stracil_poziom = false;   while(doswiadczenie_gracza[id] >= PobierzDoswiadczeniePoziomu(poziom_gracza[id]) && poziom_gracza[id] < limit_poziomu) { poziom_gracza[id]++; punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; zdobyl_poziom = true; }   while(doswiadczenie_gracza[id] < PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)) { poziom_gracza[id]--; stracil_poziom = true; }   if(poziom_gracza[id] > limit_poziomu) { poziom_gracza[id] = limit_poziomu; ResetujPunkty(id); }   if(stracil_poziom) { ResetujPunkty(id); set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0); ShowSyncHudMsg(id, SyncHudObj2,"Spadles do %i poziomu!", poziom_gracza[id]); } else if(zdobyl_poziom) { punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0); ShowSyncHudMsg(id, SyncHudObj2,"Awansowales do %i poziomu!", poziom_gracza[id]); client_cmd(id, "spk QTM_CodMod/levelup"); }     ZapiszDane(id); }   public PokazInformacje(id)  { id -= ZADANIE_POKAZ_INFORMACJE;   if(!is_user_connected(id)) { remove_task(id+ZADANIE_POKAZ_INFORMACJE); return PLUGIN_CONTINUE; }   if(!is_user_alive(id)) { new target = pev(id, pev_iuser2);   if(!target) return PLUGIN_CONTINUE;   set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2); ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]); return PLUGIN_CONTINUE; }   set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0); ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);   return PLUGIN_CONTINUE; }     public PokazReklame(id) { id-=ZADANIE_POKAZ_REKLAME; client_print(id, print_chat, "[COD:MW] Witaj w Modyfikacji Call of Duty stworzonej przez QTM_Peyote"); client_print(id, print_chat, "[COD:MW] W celu uzyskania informacji o komendach napisz /pomoc."); }   public Pomoc(id) show_menu(id, 1023, "y/resetw - resetuje statystyki^ny/statystykiw - wyswietla statystyki^ny/klasaw - uruchamia menu wyboru klas^ny/wyrzucw - wyrzuca perk^ny/perkw - pokazuje opis twojego perku^ny/klasyw - pokazuje opisy klas^ny+usew - Uzycie umiejetnosci klasy^nyradio3w (standardowo C) lub  yuseperkw - Uzycie perku", -1, "Pomoc");   public UstawSzybkosc(id) { id -= id>32? ZADANIE_USTAW_SZYBKOSC: 0;   if(klasa_gracza[id] && !freezetime) set_pev(id, pev_maxspeed, szybkosc_gracza[id]); }   public DotykBroni(weapon, id) { if(get_pcvar_num(cvar_blokada_broni) < 1) return HAM_IGNORED;   if(!is_user_connected(id)) return HAM_IGNORED;   new model[23]; pev(weapon, pev_model, model, 22); if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1) return HAM_IGNORED; return HAM_SUPERCEDE; }   public DotykTarczy(weapon, id) { if(get_pcvar_num(cvar_blokada_broni) < 1) return HAM_IGNORED;   if(!is_user_connected(id)) return HAM_IGNORED;   if(gracz_ma_tarcze[id]) return HAM_IGNORED;   return HAM_SUPERCEDE; }   public UstawPerk(id, perk, wartosc, pokaz_info) { if(!ilosc_perkow) return PLUGIN_CONTINUE;   static obroty[33];   if(obroty[id]++ >= 5) { UstawPerk(id, 0, 0, 0); obroty[id] = 0; return PLUGIN_CONTINUE; }   perk = (perk == -1)? random_num(1, ilosc_perkow): perk; wartosc = (wartosc == -1 || min_wartosci_perkow[perk] > wartosc ||  wartosc > max_wartosci_perkow[perk])? random_num(min_wartosci_perkow[perk], max_wartosci_perkow[perk]): wartosc;    new ret;   new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_disabled", FP_CELL, FP_CELL); ExecuteForward(forward_handle, ret, id, perk); DestroyForward(forward_handle);   perk_gracza[id] = 0;   forward_handle = CreateOneForward(pluginy_perkow[perk], "cod_perk_enabled", FP_CELL, FP_CELL, FP_CELL); ExecuteForward(forward_handle, ret, id, wartosc, perk); DestroyForward(forward_handle);   if(ret == 4) { UstawPerk(id, -1, -1, 1); return PLUGIN_CONTINUE; }   ExecuteForward(perk_zmieniony, ret, id, perk, wartosc);   if(ret == 4) { UstawPerk(id, -1, -1, 1); return PLUGIN_CONTINUE; }   perk_gracza[id] = perk; wartosc_perku_gracza[id] = wartosc;   obroty[id] = 0;   if(pokaz_info && perk_gracza[id])  client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_perkow[perk_gracza[id]]);   return PLUGIN_CONTINUE; }   public UstawDoswiadczenie(id, wartosc) { doswiadczenie_gracza[id] = wartosc; SprawdzPoziom(id); }   public UstawKlase(id, klasa, zmien) { nowa_klasa_gracza[id] = klasa; if(zmien) { UstawNowaKlase(id); DajBronie(id); ZastosujAtrybuty(id); } }   public UstawTarcze(id, wartosc) { if((gracz_ma_tarcze[id] = (wartosc > 0))) fm_give_item(id, "weapon_shield"); }   public UstawNoktowizor(id, wartosc) { if((gracz_ma_noktowizor[id] = (wartosc > 0))) cs_set_user_nvg(id, 1); }   public DajBron(id, bron) { bonusowe_bronie_gracza[id] |= (1< MAX_ILOSC_PERKOW) return -1;   pluginy_perkow[ilosc_perkow] = plugin; get_string(1, nazwy_perkow[ilosc_perkow], MAX_WIELKOSC_NAZWY); get_string(2, opisy_perkow[ilosc_perkow], MAX_WIELKOSC_OPISU); min_wartosci_perkow[ilosc_perkow] = get_param(3); max_wartosci_perkow[ilosc_perkow] = get_param(4);   return ilosc_perkow; }   public ZarejestrujKlase(plugin, params) { if(params != 7) return PLUGIN_CONTINUE;   if(++ilosc_klas > MAX_ILOSC_KLAS) return -1;   pluginy_klas[ilosc_klas] = plugin;   get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY); get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);   bronie_klasy[ilosc_klas] = get_param(3); zdrowie_klas[ilosc_klas] = get_param(4); kondycja_klas[ilosc_klas] = get_param(5); inteligencja_klas[ilosc_klas] = get_param(6); wytrzymalosc_klas[ilosc_klas] = get_param(7);         if(equali(nazwy_klas[ilosc_klas],"EliteScout(P)")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Ninja[Premium]")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Snajper")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas], "Strzelec Wyborowy")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Medyk")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Demolitions")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Wsparcie Ogniowe")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Saper")){ frakcja_klas[ilosc_klas] = "Darmowe"; }           if(equali(nazwy_klas[ilosc_klas],"Rusher")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Longer")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Mistrz Famasa")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Predator[P]")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Robal")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Amadeusz")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Zwinny")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Spiderman")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Szeregowy")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Terminator [P]")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Szturmowiec")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Terrorysta")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Umarly")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Hejter[Premium]")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Wojskowy")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Zlodziej")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Replicant [P]")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Trust (Premium)")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Hardkor")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Admin[MP]")){ frakcja_klas[ilosc_klas] = "Premium; }         if(equali(nazwy_klas[ilosc_klas],"Kameleon")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Maxpyne")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Aniol[P]")){ frakcja_klas[ilosc_klas] = "Premium"; }         if(equali(nazwy_klas[ilosc_klas],"Rysio")){ frakcja_klas[ilosc_klas] = "Darmowe"; }         if(equali(nazwy_klas[ilosc_klas],"Zajebisty Gracz (Premium)")){ frakcja_klas[ilosc_klas] = "Darmowe"; }   stock ham_strip_weapon(id, weapon[]) { if(!equal(weapon, "weapon_", 7) ) return 0 new wId = get_weaponid(weapon) if(!wId) return 0 new wEnt while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {} if(!wEnt) return 0   if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)   if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0 ExecuteHamB(Ham_Item_Kill ,wEnt)   set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<