Witam.
Mam pewien problem z hudem, ponieważ chciałbym aby wyświetlał się on podczas gry, czyli jak jesteśmy żywi, oraz jak umrzemy, czyli żebyśmy widzieli nick, rangę etc. innych osób. Pierwsza część działa, natomiast hud, który ma być wyświetlany po śmierci niestety nie działa. Wyskakują mi błędy w kompilacji i nie wiem jak je naprawić.
Jakby ktoś mógł jeszcze tylko dodać ścieżki do sprite'ów, tzn. jeżeli ktoś ma range silver 1 w hudzie, to nad jego głową jest sprite silver1, itd. Wystarczy mi sprite dla jednej rangi, zresztą sobie poradzę.
Będę bardzo wdzięczny za wszelką pomoc!
Plugin w załączniku.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
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.
|

Problem z hudem i sprite'ami
#1
Napisano 07.06.2017 18:59
SNAX, PASHA, TAZ, NEO & BYALI
Na nich się wzoruję.
#2
Napisano 07.06.2017 19:30
Wywal to i sprawdź
public client_PreThink(id) { if(!is_user_alive(id)) { set_hudmessage(0, 64, 128, 0.01, 0.22) ShowSyncHudMsg(id, sync, "^n| Forum: Frag-Armia.pl |^n| Nick: %s |^n| Ranga: %s |^n| Zabojstwa: %d |^n| K/D ratio: %0.2f% |^n| VIP: %s |", name , rangi[ranga[id]][1], stats[0], kdratio[id], get_user_flags(id) & VIP_FLAG ? "Tak" : "Nie") } }
#3
Napisano 07.06.2017 20:22
Hud się wyświetla, ale co to ma za sens, skoro po przejściu na innego gracza mam cały czas swój. Powinno być tak, że przechodząc na innego gracza, widzimy jego rangę, nick, k/d ratio etc.
SNAX, PASHA, TAZ, NEO & BYALI
Na nich się wzoruję.
#4
Napisano 08.06.2017 06:16
1. Gracz obserwujący żyje {chyba oksymoron

2. Gracz obserwujący nie żyje ( wtedy widzi statystyki osoby obserwowanej - identyfikator pev(id, pev_iuser2) ) - to też, z tego co widzę posiadasz, lecz w błędnej formule.
W funkcji wyświetlającej hud musisz sprawdzić, czy gracz jest żywy i w zależności od tego, wyświetlać mu statystyki własne lub innego gracza.
Jednak cały problem tkwi w zmiennej 'id'. Zauważ, że sprytnie zmieniasz ją na początku funkcji na wspomnianą pev(id, pev_iuser2), lecz jak widzisz, pod koniec funkcji używasz tego samego, zmienionego 'id' do wyświetlania HUD'u. Wniosek? Gdy ty nie żyjesz i obserwujesz gracza, to napis zamiast Tobie, wyświetla się podwójnie temu właśnie graczowi

Odseparuj zmienną 'id' do obliczeń, a może raczej ją sklonuj i modyfikuj, podczas gdy oryginalną zastosuj do wyświetlania HUD'a.
#5
Napisano 08.06.2017 21:14
_McHappy, napisałeś to takim profesjonalnym językiem, że mnie (jako osobie nie tak bardzo zaawansowanej) jest cholernie trudno to zrozumieć
Jakbyś mógł pokazać mi, jak wykonać te czynności na podstawie mojego sma, byłbym Ci bardzo wdzięczny!
Ps. Oczywiście punkt reputacji przyznałem, ponieważ rozwiązanie napisałeś, ale ja sam nie wiem jak się do niego ustosunkować :c
SNAX, PASHA, TAZ, NEO & BYALI
Na nich się wzoruję.
#6
Napisano 14.06.2017 11:44
Trzymaj dodałem ci sprite i naprawiłem hud. Tylko zmień scieżki do sprite bo dałem przykładowe. I jak coś to nie testowałem ale raczej powinno być okej.
Załączone pliki
#7
Napisano 14.06.2017 11:47
Ciało funkcji rank():
public rank(param[]) { static id, stats[8], body[8], iTarget; id = param[0]; //id obserwatora iTarget = ( is_user_alive(id) ? id : pev(id, pev_iuser2) ); //obserwator żyje? TAK: obliczenia dla obserwatora (czyli gracza). NIE: obliczenia dla obserwowanego gracza if(!iTarget) //jeżeli gracz nie obserwuje nikogo (free cam itp) - dajemy spokój return PLUGIN_CONTINUE; get_user_stats(iTarget, stats, body) static Float:kdratio[33] kdratio[iTarget] = float(stats[0]) / float(stats[1]) if((kdratio[iTarget] >= liczby[ranga[iTarget]]) && (stats[0] >= rangi[ranga[iTarget]][0]) && ranga[iTarget] < limit) ranga[iTarget]++ else if(kdratio[iTarget] < liczby[ranga[iTarget]] || stats[0] < rangi[ranga[iTarget]][0]) { if(ranga[iTarget] > limit_min) ranga[iTarget]-- } static name[33] get_user_name(iTarget,name,32) cvar = get_cvar_num("rangi_kolor") switch(cvar) { case 0: { set_hudmessage(255, 255, 255, 0.01, 0.22) ShowSyncHudMsg(id, sync, "[Nick: %s]^n[Ranga: %s]^n[Zabojstwa: %d/%d]^n[K/d ratio %0.2f%]", name , rangi[ranga[iTarget]][1], stats[0], rangi[ranga[iTarget]][0], kdratio[iTarget]) } case 1: { set_hudmessage(255, 0, 0, 0.01, 0.22) ShowSyncHudMsg(id, sync, "[Nick: %s]^n[Ranga: %s]^n[Zabojstwa: %d/%d]^n[K/d ratio %0.2f%]", name , rangi[ranga[iTarget]][1], stats[0], rangi[ranga[iTarget]][0], kdratio[iTarget]) } case 2: { set_hudmessage(0, 255, 0, 0.01, 0.22) ShowSyncHudMsg(id, sync, "[Nick: %s]^n[Ranga: %s]^n[Zabojstwa: %d/%d]^n[K/d ratio %0.2f%]", name , rangi[ranga[iTarget]][1], stats[0], rangi[ranga[iTarget]][0], kdratio[iTarget]) } case 3: { set_hudmessage(0, 64, 128, 0.01, 0.22) ShowSyncHudMsg(id, sync, "^n| Forum: Frag-Armia.pl |^n| Nick: %s |^n| Ranga: %s |^n| Zabojstwa: %d |^n| K/D ratio: %0.2f% |^n| VIP: %s |", name , rangi[ranga[iTarget]][1], stats[0], kdratio[iTarget], get_user_flags(iTarget) & VIP_FLAG ? "Tak" : "Nie") } } return PLUGIN_CONTINUE; }
Poanalizuj, potestuj, popytaj etcetera...
Użytkownik _McHappy edytował ten post 14.06.2017 11:49
#8
Napisano 14.06.2017 13:24
@Yellon nadal rangi się tzw. buguja (zmieniają się)
#9
Napisano 14.06.2017 15:05
Ale to już temat na odrębny wątek.
#10
Napisano 14.06.2017 18:19
No ja skopiowałem to z tych twoich rang nawet nie zwracałem na to uwagi tylko zająłem się hudem i sprite
A tak ogólnie to jak one ci się dokładnie zmieniają ?
Sprawdz może to bd działać.
Załączone pliki
Użytkownik Yellon edytował ten post 14.06.2017 18:44
#11
Napisano 14.06.2017 18:57
To że plugin jest w cholerę nieoptymalny swoją drogą, ale nie działa m.in. dlatego że po 1. get_user_stats z tego co mi wiadomo nie zmienia na bieżąco fragów w rankingu, tylko co rundę jak nie lepiej (sam nie wiem dokładnie, raz próbowałem zmieniać wczytywać co zabójstwo i lipa). Druga sprawa to sprawdzanie czy awansował - nie klej się kupy, przeanalizuj dokładnie:
@edit i **** w pizde strzelił, napisałem już chyba można to nazwać referatem pod [.code] co tutaj jest źle, a było po prostu o czym pisać, to mi się usunęło, poprawcie to w końcu
To co napisałem wyżej to tylko garstka błędów w tym pluginie, ale one pierwsze rzucają mi się w oczy.
@edit2 nawet ta wersja z while nie zadziała, to else działa tak: nie możesz awansować? spadek
if((kdratio[target] >= liczby[ranga[target]]) && (stats[0] >= rangi[ranga[target]][0]) && ranga[target] < limit) ranga[target]++ else if(kdratio[target] < liczby[ranga[target]] || stats[0] < rangi[ranga[target]][0]) { if(ranga[target] > limit_min) ranga[target]-- }
#12
Napisano 15.06.2017 22:57
Oke jakoś to ogarnę. Wszyscy dostają po plusie i można zamknąć temat
SNAX, PASHA, TAZ, NEO & BYALI
Na nich się wzoruję.
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych