Zaczynamy: Otwórz swój plik QTM_CodMod.sma Znajdź: #include ; Dodaj ZA, w nowej linijce: #include ; Znajdź: new Float:maksymalne_zdrowie_gracza[33], // Ten punkt jest wymagany przy dodawaniu grawitacji. Jeżeli dodajesz inną statystykę to prawdopodobnie możesz pominąć ten punkt. Float:szybkosc_gracza[33], // Jeżeli nie wiesz czy to zrobić, to przeczytaj "Po pierwsze". To jest pierwsza trudna rzecz w tym poradniku. Float:redukcja_obrazen_gracza[33]; // *TU USUŃ ŚREDNIK* // // Dalej będzie gorzej, bo będziesz musiał wymyślić sposób w jaki będą zamieniane punkty na statystykę. Jeżeli dodajesz grawitację, to rób dalej to co jest opisane w tym poradniku. Usuń w wyróżnionej linijce na końcu średnik (;) i wstaw przecinek zamiast niego (,) Dodaj ZA: Float:wartosc_grawitacji_gracza[33]; Znajdź: new punkty_gracza[33], zdrowie_gracza[33], inteligencja_gracza[33], wytrzymalosc_gracza[33], kondycja_gracza[33]; // *TU USUŃ ŚREDNIK* // Usuń w wyróżnionej linijce na końcu średnik (;) i wstaw przecinek zamiast niego (,) Dodaj ZA: grawitacja_gracza[33]; Znajdź: new bonusowe_bronie_gracza[33], bonusowe_zdrowie_gracza[33], bonusowa_inteligencja_gracza[33], bonusowa_wytrzymalosc_gracza[33], bonusowa_kondycja_gracza[33]; // *TU USUŃ ŚREDNIK* // Usuń w wyróżnionej linijce na końcu średnik (;) i wstaw przecinek zamiast niego (,) Dodaj ZA: bonusowa_grawitacja_gracza[33]; Znajdź: 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], Dodaj ZA: grawitacja_klas[MAX_ILOSC_KLAS+1], Znajdź: register_native("cod_set_user_bonus_stamina", "UstawBonusowaWytrzymalosc", 1); Dodaj ZA: register_native("cod_set_user_bonus_gravity", "UstawBonusowaGrawitacje", 1); Znajdź: register_native("cod_points_to_stamina", "PrzydzielWytrzymalosc", 1); Dodaj ZA: register_native("cod_points_to_gravity", "PrzydzielGrawitacje", 1); Znajdź: register_native("cod_get_user_stamina", "PobierzWytrzymalosc", 1); Dodaj ZA: register_native("cod_get_user_gravity", "PobierzGrawitacje", 1); Znajdź: register_native("cod_get_class_stamina", "PobierzWytrzymaloscKlasy", 1); Dodaj ZA: register_native("cod_get_class_gravity", "PobierzGrawitacjeKlasy", 1); Znajdź: 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; Dodaj ZA: grawitacja_gracza[id] = 0; Znajdź: bonusowe_zdrowie_gracza[id] = 0; bonusowa_wytrzymalosc_gracza[id] = 0; bonusowa_inteligencja_gracza[id] = 0; bonusowa_kondycja_gracza[id] = 0; Dodaj ZA: bonusowa_grawitacja_gracza[id] = 0; Znajdź: 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]); Dodaj ZA ^nyKondycja: w%i w tej samej linii: ^nyGrawitacja: w%i Dodaj ZA kondycja_klas[item], w tej samej linii: grawitacja_klas[item], ////////////Te punkty dotyczą szybkiego rozdawania statystyk. Nie opiszę jak to zrobić bez tego bajeru, gdyż to mija się z celem (tzn. nie lubię 200 razy klikać 2, po wpisaniu /reset)///////// Znajdź: new inteligencja[65]; new zdrowie[60]; new wytrzymalosc[60]; new kondycja[60]; Dodaj ZA: new grawitacja[60]; Znajdź: format(kondycja, charsmax(kondycja), "Kondycja: r%i y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1)); Dodaj ZA: format(grawitacja, charsmax(grawitacja), "Grawitacja: r%i y(Zmniejsza grawitacje)", PobierzGrawitacje(id, 1, 1, 1)); Znajdź: format(allwytrzymalosc, charsmax(allwytrzymalosc), "Dodaj wszystko w wytrzymalosc"); Dodaj ZA: format(allgrawitacja, charsmax(allgrawitacja), "Dodaj wszystko w grawitacje"); Znajdź: format(wytrzymalosca, charsmax(wytrzymalosca), "Dodaj 10 punktow w wytrzymalosc"); Dodaj ZA: format(grawitacjaa, charsmax(grawitacjaa), "Dodaj 10 punktow w grawitacje"); Znajdź: menu_additem(menu, kondycja); Dodaj ZA: menu_additem(menu, grawitacja); Znajdź: menu_additem(menu, kondycjaa); Dodaj ZA: menu_additem(menu, grawitacjaa); Znajdź: menu_additem(menu, allkondycja); Dodaj ZA: menu_additem(menu, allgrawitacja); Znajdź i USUŃ: new limit_poziomu = get_pcvar_num(cvar_limit_poziomu); Znajdź: new limit_int, limit_zdr, limit_kon, limit_wyt; // *TU USUŃ ŚREDNIK* // Usuń w wyróżnionej linijce na końcu średnik (;) i wstaw przecinek zamiast niego (,) Dodaj ZA: limit_gra; Znajdź: limit_int = limit_poziomu/2; limit_zdr = limit_poziomu/2; limit_kon = limit_poziomu/2; limit_wyt = limit_poziomu/2; Teraz zaczęła się trudna rzecz. Weź kalkulator, wpisz maksymalny level na twoim CoDzie, odejmij od tego 1, pomnóż przez 2, a wynik podziel przez tyle, ile chcesz mieć statystyk. Jeżeli zwiększysz bądź zmniejszysz level na swoim CoDie, musisz ponownie wykonać to działanie, ponownie zmienić wartości w limitach i ponownie skompilować plik, komplilując sobie życie. Jeżeli Ci ta rzecz nie wyszła, to przeczytaj "Po pierwsze". Zamień NA limit_int = twój_wynik; limit_zdr = twój_wynik; limit_kon = twój_wynik; limit_wyt = twój_wynik; limit_gra = twój_wynik; Znajdź: 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"); } Dodaj ZA: case 4: { if(grawitacja_gracza[id] < limit_gra) { grawitacja_gracza[id]++; punkty_gracza[id]--; } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom grawitacji osiagniety"); } Znajdź: 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"); } Dodaj ZA: case 9: { if(grawitacja_gracza[id] < limit_gra) { if(punkty_gracza[id] < 10) { client_print(id, print_chat, "[COD:MW] Masz za malo punktow do rozdania"); } else { if(grawitacja_gracza[id] + 10 <= limit_kon) { grawitacja_gracza[id] += 10; punkty_gracza[id] -= 10; } else { new punktydododania; punktydododania = limit_gra - grawitacja_gracza[id]; grawitacja_gracza[id] += punktydododania; punkty_gracza[id] -= punktydododania; } } } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom grawitacji osiagniety"); } Znajdź: 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"); } Dodaj ZA: case 14: { if(grawitacja_gracza[id] < limit_gra) { if(punkty_gracza[id] > limit_gra - grawitacja_gracza[id]) { punkty_gracza[id] = punkty_gracza[id] + grawitacja_gracza[id] - limit_gra; grawitacja_gracza[id] = limit_gra; } else { grawitacja_gracza[id] = grawitacja_gracza[id] + punkty_gracza[id]; punkty_gracza[id] = 0; } } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom grawitacji osiagniety"); } Zamień w tej funkcji (public PrzydzielPunkty_Handler(id, menu, item)) wszystkie numery CASE tak by wzrastały od 0 (case 0, case 1, case 2, itd.). ///////////Koniec punktów dotyczących szybkiego rozdawania statystyk.///////// Znajdź: punkty_gracza[id] = (poziom_gracza[id]-1)*2; inteligencja_gracza[id] = 0; zdrowie_gracza[id] = 0; kondycja_gracza[id] = 0; wytrzymalosc_gracza[id] = 0; Dodaj ZA: grawitacja_gracza[id] = 0; Znajdź: format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]); Dodaj ZA #%i w tej samej linijce: #%i Dodaj ZA kondycja_gracza[id]: , grawitacja_gracza[id] Znajdź: new danegracza[6][32]; Zwiększ o 1 liczbę w pierwszym nawiasie kwadratowym ([6] na [7]) Znajdź: parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31); Dodaj ZA danegracza[5], 31 w tej samej linii: , danegracza[6], 31); Znajdź: kondycja_gracza[id] = str_to_num(danegracza[5]); Dodaj ZA: grawitacja_gracza[id] = str_to_num(danegracza[6]); Znajdź: punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; Dodaj ZA kondycja_gracza[id] w tej samej linii: -grawitacja_gracza[id] Znajdź: punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; Dodaj ZA kondycja_gracza[id] w tej samej linii: -grawitacja_gracza[id] Znajdź: punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; Dodaj ZA kondycja_gracza[id] w tej samej linii: -grawitacja_gracza[id] Znajdź: 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."); Dodaj ZA: client_print(id, print_chat, "[COD:MW] Grawitacja dzieki pordanikowi kisiel96. Odwiedz AMXX.pl"); Znajdź: public UstawBonusowaWytrzymalosc(id, wartosc) bonusowa_wytrzymalosc_gracza[id] = wartosc; Dodaj ZA: public UstawBonusowaGrawitacje(id, wartosc) bonusowa_grawitacja_gracza[id] = wartosc; Znajdź: public PrzydzielWytrzymalosc(id, wartosc) { new max_statystyka = get_pcvar_num(cvar_limit_poziomu); wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-wytrzymalosc_gracza[id]); punkty_gracza[id] -= wartosc; wytrzymalosc_gracza[id] += wartosc; } Dodaj ZA: public PrzydzielGrawitacje(id, wartosc) { new max_statystyka = get_pcvar_num(cvar_limit_poziomu); wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-grawitacja_gracza[id]); punkty_gracza[id] -= wartosc; grawitacja_gracza[id] += wartosc; } Znajdź: public PobierzWytrzymalosc(id, wytrzymalosc_zdobyta, wytrzymalosc_klasy, wytrzymalosc_bonusowa) { new wytrzymalosc; if(wytrzymalosc_zdobyta) wytrzymalosc += wytrzymalosc_gracza[id]; if(wytrzymalosc_bonusowa) wytrzymalosc += bonusowa_wytrzymalosc_gracza[id]; if(wytrzymalosc_klasy) wytrzymalosc += wytrzymalosc_klas[klasa_gracza[id]]; return wytrzymalosc; } Dodaj ZA: public PobierzGrawitacje(id, grawitacja_zdobyta, grawitacja_klasy, grawitacja_bonusowa) { new grawitacja; if(grawitacja_zdobyta) grawitacja += grawitacja_gracza[id]; if(grawitacja_bonusowa) grawitacja += bonusowa_grawitacja_gracza[id]; if(grawitacja_klasy) grawitacja += grawitacja_klas[klasa_gracza[id]]; return grawitacja; } Znajdź: public PobierzWytrzymaloscKlasy(klasa) { if(klasa <= ilosc_klas) return wytrzymalosc_klas[klasa]; return -1; } Dodaj ZA: public PobierzGrawitacjeKlasy(klasa) { if(klasa <= ilosc_klas) return grawitacja_klas[klasa]; return -1; } Znajdź: public ZarejestrujKlase(plugin, params) { if(params != 7) return PLUGIN_CONTINUE; Zwiększ o 1 liczbę w if(params != 7) (if(params != 8)) Znajdź: 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); Dodaj ZA: grawitacja_klas[ilosc_klas] = get_param(8); Znajdź: 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]); Dodaj ZA: wartosc_grawitacji_gracza[id] = float(PobierzGrawitacje(id, 1, 1, 1))/800 floatclamp(wartosc_grawitacji_gracza[id], 0.5, 1.0) // *TUTAJ MOŻESZ ZMIENIĆ MINIMALNĄ WARTOŚĆ GRAWITACJI JAKĄ MOŻE MIEĆ GRACZ. BY TO ZROBIĆ ZMIEŃ 1. LICZBĘ. PODAJ JĄ W TAKI SPOSÓB: NP. 0.6 * // set_user_gravity(id, get_user_gravity(id)-wartosc_grawitacji_gracza[id]); Zapisz, skompiluj i zamknij QTM_CodMod.sma Owórz codmoc.inc Znajdź: native cod_set_user_bonus_stamina(id, wartosc); /*------------------------------ Ustawia dodatkowe punkty statystyki wytrzymalosc ------------------------------*/ Dodaj ZA: native cod_get_user_gravity(id, grawitacja_zdobyta=1, grawitacja_klasy=1, grawitacja_bonusowa=1); /*------------------------------ Zwraca punkty statystyki grawitacja ------------------------------*/ native cod_set_user_bonus_gravity(id, wartosc); /*------------------------------ Ustawia dodatkowe punkty statystyki grawitacja ------------------------------*/ Znajdź: native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci); /*------------------------------ Rejestruje nowa klase oraz zwraca jej numer ------------------------------*/ Dodaj ZA punkty_wytrzymalosci w tej samej linii: , punkty_grawitacji Zapisz i zamknij codmoc.inc Otwórz klasę do edycji.sma Znajdź: new const wytrzymalosc = 20; Dodaj ZA: new const grawitacja = wpisz_tu_ile_klasa_ma_mieć_punktów_bazowych_grawitacji; Znajdź: cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); Dodaj ZA wytrzymalosc w tej samej linii: , grawitacja Zapisz, skompiluj, zamknij klasę. Na zakończenie: poradnik razem z tym zdaniem ma 17060 znaków :D