Za duzo expa
maska1
19.11.2019
Witam mam serwer cod mod 45k lvl z tabelka expa i gdy powiedzmy ktos ma 40000 lvl wejdzie nowy gracz i zabije takiego gracza to dostaje ponad 40000lvl jak to zmienic?
Aexis
19.11.2019
Rozumiem że COD nowy ?
To jeżeli nie masz osobnych pluginów dających dodatkowy exp, to wystarczy odpowiednio zmienić cvary:
cod_killxp //Doswiadczenie za zabojstwo. cod_winxp //Doswiadczenie za wygrana. cod_damagexp //Doswiadczenie za 20 obrazen.
maska1
19.11.2019
No tak to wiem ale to nie chodzi o to powiedzmy jest gracz ktory ma 20000 my wchodzimy z 1LVL zabijamy go i dostajemy powiedzmy 22000 gdzie jest to nie mozliwe aby tyle sie uzbieralo z tych obrazen killa itd poprostu im wyzszy level gracz ma tym dostajemy wiecej tych tego expa nie wiem dlaczego
Aexis
19.11.2019
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; }
Znajdź taki fragment w sma silnika.
Chodzi tutaj głownie o ten fragment:
nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);
Doświadczenie które dostaje gracz, jeżeli zabija gracza z wyższym poziomem jest równe=
[(lvl gracza z wyższym lvl) - (lvl gracza z niższym lvl)] * (wartość cvara cod_killxp)/10
np. gracz z lvl 5000 został zabity przez gracza z lvl 10:
doświadczenie=(5000-10)*cod_killxp/10
Więc generalnie musisz sobie pokombinowac tak z tym algorytmem jak Ci odpowiada.
Jak bedziesz miał jakis problem pisz, spróbuję pomóć.
Edited by Aexis, 19.11.2019 21:58.
maska1
19.11.2019
dzięki a mozna to jakos usunac? zeby niezaleznie jaki poziom dawalo expa tylko za kille i obrazenia?
Aexis
19.11.2019
Jak zamienisz na coś takiego bedzie przyznawana tylko wartośc z cod_killxp:
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 += (doswiadczenie_za_zabojstwo); if(!perk_gracza[attacker]) UstawPerk(attacker, -1, -1, 1); doswiadczenie_gracza[attacker] += nowe_doswiadczenie; } SprawdzPoziom(attacker); return HAM_IGNORED; }
Natomiast doświadczenie za obrazenia nie zależy od różnicy lvl, nic nie musisz zmieniać
maska1
21.11.2019
Zmienilem na to ale nadal jest to samo w tabelce expa na 45k mam ponac 360000000 po zabiciu gracza 45k lvl dostaje 45k lvl cvary 3k za 20 obrazen 100k za killa i 100k za wygrana runde dziwne