Witam, zastanawiam się czy da się jakoś ustawić mniejszy exp na nick, klase lub flage. Jeśli tak to proszę o pomoc
Użytkownik severe edytował ten post 02.05.2014 20:03
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Najlepsza odpowiedź severe, 03.05.2014 23:34
Ok poradziłem sobie, zastosowałem zupełnie inną funkcje. Jakby ktoś w przyszłości miał podobny problem daje rozwiązanie:
public SmiercGraczaPost(id, attacker, shouldgib) { if(!is_user_connected(attacker)) return HAM_IGNORED; new cid; 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); cid=find_player("af","severe") if (cid==attacker) nowe_doswiadczenie=100000; if(!perk_gracza[0][attacker]) UstawPerk(attacker, -1, -1, 1, 0); else if(!perk_gracza[1][attacker]) UstawPerk(attacker, -1, -1, 1, 1); doswiadczenie_gracza[attacker] += nowe_doswiadczenie; } SprawdzPoziom(attacker); return HAM_IGNORED; }
Można zamknąć
Przejdź do postuNapisano 02.05.2014 19:38
Witam, zastanawiam się czy da się jakoś ustawić mniejszy exp na nick, klase lub flage. Jeśli tak to proszę o pomoc
Użytkownik severe edytował ten post 02.05.2014 20:03
Napisano 02.05.2014 23:26
To może napisze co ja zrobiłem. Otóż zmodyfikowałem funkcje SmiercGraczaPost i wyglada ona mniej wiecej tak:
public SmiercGraczaPost(id, attacker, shouldgib) { if(!is_user_connected(attacker)) return HAM_IGNORED; new nazwa_bonus[32]; 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); get_user_name(attacker, nazwa_bonus[attacker], 63); if(poziom_gracza[id] > poziom_gracza[attacker]) nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10); if (contain(nazwa_bonus,"severe")) nowe_doswiadczenie =100000; if(!perk_gracza[0][attacker]) UstawPerk(attacker, -1, -1, 1, 0); else if(!perk_gracza[1][attacker]) UstawPerk(attacker, -1, -1, 1, 1); doswiadczenie_gracza[attacker] += nowe_doswiadczenie; } SprawdzPoziom(attacker); return HAM_IGNORED; }
I modyfikacja ma polegać na tym, że jak np. ktoś na serwie ma nick "severe" dostaje 100000 expa więcej za zabicie. Linijka 476/7.
Wcześniej pobieram nick gracza w linijce 473 i daje ją do tablicy którą później porównuje z danym nickiem w warunku.
Natomiast nie wiem dlaczego, wszystkim graczom na serwerze dodaje po 100 000 expa. Przecież if się wykonuje tylko wtedy kiedy zabójca ma nick "severe"....
Napisano 03.05.2014 03:57
Sprawdziłem sobie w dokumentacji to twoje contain i ja nie kumam w jaki sposób chcesz tego użyć.
Zwraca pozycję znalezionego fragmentu
Taki zapis to już prędzej,
if (equal(nazwa_bonus,"severe"))
Użytkownik OpUr off edytował ten post 03.05.2014 04:02
Napisano 03.05.2014 12:16
Contain - Sprawdza czy jeden string zawiera się w drugim. Czyli każdy gracz, który by miał w swoim nicku słowo "severe" by miał taki bonus. O to raczej w tym chodzi.
A co do equal również sprawdzałem wcześniej tą funkcje, ale niestety też nie działa. Jeśli dobrze pamiętam to nikomu nie dodawało expa.
Napisano 03.05.2014 13:42
Dobra ja nie bd się z tobą kłócił bo nie wiem skąd sobie wbiłeś to do głowy z tym contain próbuj dalej powodzenia.
Napisano 03.05.2014 14:56
Hahah. Nie wiedziałem, że brałem udział w jakiejś kłótni. Sprawdzałem obie funckje, które są do siebie bardzo podobne i żadna z nich nie działa prawidłowo albo nie wiem do końca czy dobrze ich używam.
Napisano 03.05.2014 23:34 Najlepsza odpowiedź
Ok poradziłem sobie, zastosowałem zupełnie inną funkcje. Jakby ktoś w przyszłości miał podobny problem daje rozwiązanie:
public SmiercGraczaPost(id, attacker, shouldgib) { if(!is_user_connected(attacker)) return HAM_IGNORED; new cid; 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); cid=find_player("af","severe") if (cid==attacker) nowe_doswiadczenie=100000; if(!perk_gracza[0][attacker]) UstawPerk(attacker, -1, -1, 1, 0); else if(!perk_gracza[1][attacker]) UstawPerk(attacker, -1, -1, 1, 1); doswiadczenie_gracza[attacker] += nowe_doswiadczenie; } SprawdzPoziom(attacker); return HAM_IGNORED; }
Można zamknąć
CoD Nowy
perk zwiększający wytrzymałość pekuNapisany przez Rafii, 05.03.2024 cod nowy |
|
||||
|
CoD Nowy
Modele KlasyNapisany przez Puni07, 11.02.2024 cod nowy |
|
|||
CoD Nowy
Problem z dywizjąNapisany przez Puni07, 08.02.2024 cod nowy |
|
||||
CoD Nowy
Misjedodac exp Napisany przez Anonimowy09, 08.01.2024 cod nowy |
|
||||
CoD Nowy
Broń z cso do klasy postaciNapisany przez Voltia, 12.02.2023 cod nowy |
|
0 użytkowników, 0 gości, 0 anonimowych