Dana ramka sprites
zasepa
07.06.2016
Witam
Mam pewien problem. Aktualnie wyświetlam sprite'sa .spr nad głową gracza. Wszystko działa dobrze.
Pytanie brzmi jak wyświetlić daną ramkę sprite nad głową gracza?
Ważne aby ten sprites był widoczny tylko dla gracza(id)
Aktualnie używam:
Proszę o pomoc
stock Create_Spr_head_Ranga(id, ent, vOffset, iSprite, life) { message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id); write_byte(TE_PLAYERATTACHMENT); write_byte(ent); write_coord(vOffset); write_short(iSprite); write_short(life); message_end(); }
Robiin
07.06.2016
https://amxx.pl/topi...nad-głową-enta/
id to id, nie rozumiem w czym problem. Jak ustawisz na 0 to powinni wszyscy mieć, jeżeli o to Ci chodzi.
zasepa
08.06.2016
Chodzi o to że chcę zrobić spritera z kilkoma ramkami.
Podobnie jak posiada ten plugin: https://amxx.pl/topi...4-sprite-timer/
Zawiera w 1 spriterze 10 ramek. W każdej kolejna cyfra. Do odliczania czasu
Byłby on dobry ALE ALE tego spritera będą widzieć wszyscy!
A ja chcę aby tylko osoba(id) widziała tego spritera na graczu(ent) oraz abym mógł ustawić którą ramkę ma zobaczyć.
Mam nadzieje ze teraz dobrze wyjaśniłem
Proszę o pomoc
Linux'
10.06.2016
Przed wyswietleniem spritesa, dodajesz sprawdzanie czy gracz posiada okreslony warunek.
zasepa
10.06.2016
Przed wyswietleniem spritesa, dodajesz sprawdzanie czy gracz posiada okreslony warunek.
...Mi chodzi jak wyświetlić dana ramkę spritesa. Bo sprites może zawierać animacje a więc kilka ramek w sobie. I czy właśnie da się wyświetlić dana ramkę i w jaki sposób?
Bo po co mam tworzyć 10 osobnych spritesów, skoro mogę utworzyć 1 sprites z 10 ramkami.
Jest taka możliwość?
Pozdrawiam
Linux'
13.06.2016
Chyba już rozumiem. Wydaje mi sie, że jako tako metody takiej nie znajdziesz chociaż glowy sobie uciąć nie dam. Natomiast mozesz ustawic render modelu u wszystkich graczy którzy nie posiadają określonego warunku na 0 co sprawi, że nie będą widzieć bytu.
zasepa
14.06.2016
Natomiast mozesz ustawic render modelu u wszystkich graczy którzy nie posiadają określonego warunku na 0 co sprawi, że nie będą widzieć bytu.
To mi odpowiada. Lecz nie bardzo wiem jak to zrobić. Za pewne to będzie pętla przelatujaca przez graczy i ustawiajaca im ten model na 0 hmm ale w jaki sposób?
Pozdrawiam
Linux'
14.06.2016
Po stworzeniu bytu, ustawiasz mu render na 0 a wiec:
set_rendering(ent, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 0);
Nastepnie rejestrujesz
register_forward(FM_AddToFullPack, "AddToFullPack", 1);
i dodajesz
public AddToFullPack(es_handle, e, ent, host, hostflags, player, pSet) { if(!is_user_connected(host) || !pev_valid(ent)) return FMRES_IGNORED; if(warunek_spelniony) set_es(es_handle, ES_RenderAmt, 255.0); // 255 pelna widocznosc return FMRES_IGNORED; }
Podejrzewam tylko, ze takie dzialanie moze miec i swoje bledy. Widziec bedziesz wszystkie stworzone byty w pelnej widocznosci ale i to mozna naprawic. Po stworzeniu enta dodajesz jego id do zmiennej globalnej a nastepnie w AddToFullPack sprawdzasz czy ent to id stworzonej zmiennej.
zasepa
14.06.2016
niezły pomysł z tym. Nie wiedziałem że tak można
Hmm rozumiem że
set_es(es_handle, ES_RenderAmt, 255.0); // 255 pelna widocznosc
ustawi widoczność tego enta graczowi "host"??
Oraz czy wykonanie tego:
public AddToFullPack(es_handle, e, ent, host, hostflags, player, pSet) { if(!is_user_connected(host) || !pev_valid(ent)) return FMRES_IGNORED; if(warunek_spelniony) set_es(es_handle, ES_RenderAmt, 255.0); // 255 pelna widocznosc return FMRES_IGNORED; }
będzie wtedy gdy byt zostanie utworzony?
Czy jak?
Bo byty będą tworzone podczas gry.
Bardzo dziękuje za pomoc
Edited by zasepa, 14.06.2016 22:59.
Linux'
15.06.2016
Tak, "host" to id osoby obserwujacej byt. AddToFullPack wykonywany jest za kazdym razem (cos jak FM_Think). Mozesz poczytac o nim wiecej np na alliedmod.
zasepa
15.06.2016
Bardzo dziękuje za pomoc.
Jeszcze nie testowałem, ale w najbliższych dniach po testuje i dam znać czy działa.