Nowa statystyka obrażenia

Nowa statystyka obrażenia która przy 100 punktach zwiększy nasze obrażenia o 30 %(można to zmienić)

znajdujemy

kondycja_gracza[33]

pod tym dopisujemy

new obrazenia_gracza[33]

w public Obrazenia dodajemy przed SetHamParamFloat

damage += (damage * (float(obrazenia_gracza[idattacker])*0.003))

0.003 to mnożnik dając tam np. 0.004 przy 100 punktach obrażenia będą większe o 40% itp.

powinno to wyglądać tak

damage += (damage * (float(obrazenia_gracza[idattacker])*0.003))
	
	SetHamParamFloat(4, damage*(1.0-redukcja_obrazen_gracza[this]));
	
	return HAM_IGNORED;

w public UsunUmiejetnosci(id) dodajemy

obrazenia_gracza[id] = 0;

w public PrzydzielPunkty(id)
pod

format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));

dodajemy

new szobrazenia[60];
	format(szobrazenia,charsmax(szobrazenia), "Obrazenia: \r%i \y(Wieksze obrazenia)", obrazenia_gracza[id]);

w tej samej funkcji
pod

menu_additem(menu, kondycja);

dodajemy

menu_additem(menu,szobrazenia);

w funkcji public PrzydzielPunkty_Handler(id, menu, item)
pod

case 3: 
		{	
			if(kondycja_gracza[id] < limit_poziomu/2)
			{
				kondycja_gracza[id]++;
				punkty_gracza[id]--;
			}
			else
			client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
		}

dodajemy

	case 4: 
		{	
			if(obrazenia_gracza[id] < limit_poziomu/2)
			{
				obrazenia_gracza[id]++;
				punkty_gracza[id]--;
			}
			else
			client_print(id, print_chat, "[COD:MW] Maxymalny poziom obrazen osiagniety");
		}

w funkcji

public ResetujPunkty(id)

dodajemy

obrazenia_gracza[id] = 0;

teraz musimy zmodyfikować zapis i wczytywanie
w public ZapiszDane(id)
zmieniamy tylko jedna linijke

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]);

na

format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id],obrazenia_gracza[id]);

w public WczytajDane(id, klasa)
zamieniamy

new danegracza[6][32];
	
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31);

na

new danegracza[7][32];
	
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31,danegracza[6], 31);

do tego pod

kondycja_gracza[id] = str_to_num(danegracza[5]);

dodajemy

obrazenia_gracza[id] = str_to_num(danegracza[6]);

i zamieniamy linijke

punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];

na

punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-obrazenia_gracza[id];

w funkcji public SprawdzPoziom(id)
zamieniamy dwa razy (powtarza się po prostu trzeba edytować obydwa 😉 )

punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];

na

punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-obrazenia_gracza[id];

teraz modyfikujemy aby statystykę było widać w hud
w funkcji public PokazInformacje(id)

ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nInteligencja : %i^nZycie : %i^nWytrzymalosc : %i^nKondycja : %i", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], inteligencja_gracza[target], zdrowie_gracza[target], wytrzymalosc_gracza[target], kondycja_gracza[target]);

na

ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nInteligencja : %i^nZycie : %i^nWytrzymalosc : %i^nKondycja : %i^nObrazenia : %i", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], inteligencja_gracza[target], zdrowie_gracza[target], wytrzymalosc_gracza[target], kondycja_gracza[target],obrazenia_gracza[target]);

lub jeśli chcemy mieć w formacie

Obrażenia: Procent

zamiast

Obrazenia: Punkty

używamy

ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nInteligencja : %i^nZycie : %i^nWytrzymalosc : %i^nKondycja : %i^nObrazenia : +%0.2f%%", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], inteligencja_gracza[target], zdrowie_gracza[target], wytrzymalosc_gracza[target], kondycja_gracza[target],float(obrazenia_gracza[target])*0.3);

i to wszystko kompilujemy i wrzucamy na serwer 🙂

61 komentarzy o “Nowa statystyka obrażenia

  1. coś takiego
    if(poziom_gracza[id] >= 100){
    format(szobrazenia,charsmax(szobrazenia), „Obrazenia: \r%i \y(Wieksze obrazenia)”, obrazenia_gracza[id]);
    }

  2. dupa w public PrzydzielPunkty(id) dodałem

    to

    if(poziom_gracza[id] >= 100){
    format(szobrazenia,charsmax(szobrazenia), „Obrazenia: \r%i \y(Wieksze obrazenia)”, obrazenia_gracza[id]);
    }

    zamiast tego

    format(szobrazenia,charsmax(szobrazenia), „Obrazenia: \r%i \y(Wieksze obrazenia)”, obrazenia_gracza[id]);

    i nie działa

  3. Dark ja mam błąd przy kompilacji:
    Welcome to the AMX Mod X 1.8.1-300 Compiler.
    Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

    QTM_CodMod.sma(237) : error 017: undefined symbol „damage”
    QTM_CodMod.sma(237) : error 017: undefined symbol „damage”
    QTM_CodMod.sma(239) : warning 217: loose indentation
    QTM_CodMod.sma(239) : error 017: undefined symbol „damage”
    QTM_CodMod.sma(239) : error 017: undefined symbol „this”
    QTM_CodMod.sma(239) : error 029: invalid expression, assumed zero
    QTM_CodMod.sma(239) : fatal error 107: too many error messages on one line

    Compilation aborted.
    6 Errors.

    Poradzisz coś na to ?

  4. a ja mam taki bład przy compilacji

    //// QTM_CodMod.sma
    // F:\compiler\QTM_CodMod.sma(866) : error 040: duplicate „case” label (value 5)
    //
    // 1 Error.
    // Could not locate output file compiled\QTM_CodMod.amx (compile failed).
    //
    // Compilation Time: 0,72 sec

  5. Trochę odkopie temat ale mam w chuj głupi bug po dodaniu tej statystyki a mianowicie jak zmieniam z klasy która ma wyższy lvl na mniejsza to dodaje mi jakieś nie stworzone rzeczy w kondycje po kilka tysi przy nowym lvl mam punkty na minusie tyle ile mi dodało do kondycji , nie mam pojęcia jak to naprawić może jakieś pomysły ?

  6. Misiek a jak to zrobiłeś bo ja mam ten sam problem że po zmianie mapy albo klasy wywala mi 50000lvl i -300000% expa ;/

  7. Mam pewien problem, otóż dodaje wszystko tak jak być powinno, krok po kroku wklejam i podmieniam linijki kodu i ? error przy kompilacji.

    QTM_CodMod.sma(72) : error 020: invalid symbol name „”
    QTM_CodMod.sma(389) : error 017: undefined symbol „obrazenia_gracza”
    QTM_CodMod.sma(389) : error 029: invalid expression, assumed zero
    QTM_CodMod.sma(389) : error 029: invalid expression, assumed zero
    QTM_CodMod.sma(389) : fatal error 107: too many error messages on one line

    Compilation aborted.
    5 Errors.
    Done.

    Plugin działa ale nie ma statystyki obrażeń.

    Pomysły ?

  8. Jeśli pod kondycja_gracza[33] dodaje new obrazenia_gracza[33] wychodzi

    QTM_CodMod.sma(74) : error 020: invalid symbol name „”
    QTM_CodMod.sma(326) : error 017: undefined symbol „gracz_ma_tarcze”
    QTM_CodMod.sma(326) : warning 215: expression has no effect
    QTM_CodMod.sma(326) : error 001: expected token: „;”, but found „]”
    QTM_CodMod.sma(326) : error 029: invalid expression, assumed zero
    QTM_CodMod.sma(326) : fatal error 107: too many error messages on one line

    1. Nie znasz jeszcze moich zdolności 😀
      Dzięki za edycję, dziwi mnie fakt, że jak robiłem tak jak Ty to błędy były takie jak napisałem @Up …. .

  9. Wyskakuje mi taki bład przy kompilacji

    Welcome to the AMX Mod X 1.8.1-300 Compiler.
    Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

    QTM_CodMod.sma(717) : warning 217: loose indentation
    QTM_CodMod.sma(718) : warning 217: loose indentation
    QTM_CodMod.sma(915) : warning 217: loose indentation
    QTM_CodMod.sma(915) : error 014: invalid statement; not in switch
    QTM_CodMod.sma(915) : warning 215: expression has no effect
    QTM_CodMod.sma(915) : error 001: expected token: „;”, but found „:”
    QTM_CodMod.sma(915) : error 029: invalid expression, assumed zero
    QTM_CodMod.sma(915) : fatal error 107: too many error messages on one line

    Compilation aborted.
    4 Errors.

    O co chodzi co źle zrobiłem?

  10. Jak jeszcze, zobaczysz ten temat ;/ to ja mam problem wiesz wszystko dobrze dodalem wszystko ok ale jak awansuje na nastepny lv to raz mam 2 punkty raz 5 raz 90 raz 40 o co chodz!? prosze pomusz

  11. Dziękować ci tylko za udostępnienie tego <3
    Tylko mam pytanie jak dodać tą statystykę do klasy ?
    Co trzeba w tej klase (sma) dopisać i co trzeba dopisać w codmod.inc , żeby skompilować ?

  12. na razie w hudzie pokazuje ile [target] ma dodanych punktow w ta statystyke. moglbys to zmienic by pokazywalo od razu ile dodatkowych procent obrazen zadaje?
    np: Obrazenia: +40%

  13. Witam, a podałbyś plik .inc lub co trzeba do niego dopisać, aby można było pod to dorobić klasy? 🙂

  14. ponawiam swoja prosbe:

    na razie w hudzie pokazuje ile [target] ma dodanych punktow w ta statystyke. moglbys to zmienic by pokazywalo od razu ile dodatkowych procent obrazen zadaje?
    np: Obrazenia: +40%

  15. Wybacz że robię odkop ale sam używam nowego cod moda i u mnie kod od zapisu i odczytu jest całkowicie inny.

    Dziękuje oraz Pozdrawiam 🙂

  16. a ja zrobiłem prawie wszystko ok ale wyskakują takie błędy

    silnik.sma(454) : error 017: undefined symbol „obrazenia_gracza”
    silnik.sma(454) : error 029: invalid expression, assumed zero
    silnik.sma(454) : error 029: invalid expression, assumed zero
    silnik.sma(454) : fatal error 107: too many error messages on one line

    nie wiem o co chodzi dodalem nowe statystki do tego silnika i chyba dzialaja tylko te obrazenia ma problem moglbys zrobic aby przy 50 pkt bylo 50 % wieksze obr
    lub jak ladujesz w obrazenia na serwerze np dasz 2/50 to 2 ci daje 1% da sie tak ?

Dodaj komentarz