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.
|
Jak sprawzić czy dany gracz jest widzialny ?
#1
Napisano 19.07.2012 17:08
fm_is_visible też nie
tzn.
Chce zrobić coś takiego że w client_prethink sprawdza czy gracz jest widziany przez kogoś
a dokładniej czy patrzy na niego.. ?
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#2
Napisano 20.07.2012 07:50
//czekaj, jezeli chcesz sprawdzic czy patrzy na niego, uzyj get_user_aiming(id, target, body); //target == id na ktorego patrzysz
#3
Napisano 20.07.2012 15:37
A mi chodzi o to czy na ekranie jest gracz
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#4
Napisano 20.07.2012 16:53
/* SDK function - checks if an origin is in an entity's view cone * Set use3d to 1 to do the calculation in 3D. Otherwise it will be in 2D. */
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#5
Napisano 22.07.2012 01:39
#6
Napisano 02.08.2012 17:25
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#7
Napisano 02.08.2012 19:17
new Float:Iorigin[3], Float:Torigin[3], Float:Rorigin[3];
entity_get_vector(id, EV_VEC_origin, Iorigin);
entity_get_vector(target, EV_VEC_origin, Torigin);
trace_line(id, Iorigin, Torigin, Rorigin);
if(get_distance_f(Torigin, Rorigin) < 30.0) {
// id widzi target
}
Ogólnie gdybyś od razu napisał dokładnie o co Ci chodzi, to odpowiedź miałbyś dużo szybciej.
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#8
Napisano 04.08.2012 16:18
/** * Description: Unsure, I assume it is whether or not the other entity is visible to this entity. * Forward params: function(this, idOther); * Return type: Integer (boolean). * Execute params: ExecuteHam(Ham_FVisible, this, idOther); */ Ham_FVisible,
w bullet_damage jest chyba zwykly traceline ktory sprawdza czy nic nie ma miedzy graczami
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
#9
Napisano 04.08.2012 16:21
W bullet damage jest http://amxx.pl/dokum...-is-ent-visibleQ' timestamp='1344093499' post='440663']
w bullet_damage jest chyba zwykly traceline ktory sprawdza czy nic nie ma miedzy graczami
Chyba ktoś to już wyżej podał
#10
Napisano 04.08.2012 16:23
Funkcja wyszukuje graczy w zasięgu 700 unitów jest to kod z diablo więc kilka przeróbek by bylo potrzebnych
public flash_boom(ent){ emit_sound( 0, CHAN_AUTO, "weapons/flashbang-1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM ) //new id=pev(ent,pev_owner) new Float:forigin[3], origin[3] pev(ent,pev_origin,forigin) FVecIVec(forigin,origin) new entlist[513] new numfound = find_sphere_class(0,"player",700.0,entlist,512,forigin) for (new i=0; i < numfound; i++) { new pid=entlist[i] new wynik new Float:fAngle; if(fm_is_ent_visibles(pid, ent, fAngle) && fAngle <= 45.0)wynik=1 else wynik=0 if(player_class[pid]==Flasher) continue if(wynik) Display_Fade(pid,5600,5600,0,255,255,255,230) else Display_Fade(pid,5600,5600,0,255,255,255,160) } remove_entity(ent) }
a tutaj stock fm_is_ent_visibles czyli troche przerobiona wersja z fm_util
stock bool:fm_is_ent_visibles(index, ent, &Float:fAngle, brush=0, ignoremonsters = 0){ new Float:start[3], Float:view_ofs[3] pev(index, pev_origin, start) pev(index, pev_view_ofs, view_ofs) xs_vec_add(start, view_ofs, start); new Float:point[3]; if(brush) fm_get_brush_entity_origins(ent, point); else pev(ent, pev_origin, point); new solid = pev(ent, pev_solid); set_pev(ent, pev_solid, SOLID_NOT); engfunc(EngFunc_TraceLine, start, point, ignoremonsters, index, 0) set_pev(ent, pev_solid, solid); //Angle start[0] = point[0] - start[0]; start[1] = point[1] - start[1]; start[2] = point[2] - start[2]; xs_vec_normalize(start, start); new Float:view[3]; pev(index, pev_v_angle, view); angle_vector(view, ANGLEVECTOR_FORWARD, view); fAngle = xs_vec_angle(view, start); //is visible? new Float:fraction get_tr2(0, TR_flFraction, fraction) if (fraction == 1.0) return true return false }
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
#11
Napisano 10.08.2012 18:24
/** * Description: Unsure, I assume it is whether or not the other entity is visible to this entity. * Forward params: function(this, idOther); * Return type: Integer (boolean). * Execute params: ExecuteHam(Ham_FVisible, this, idOther); */ Ham_FVisible,
w bullet_damage jest chyba zwykly traceline ktory sprawdza czy nic nie ma miedzy graczami
ExecuteHam(Ham_FVisible, this, idOther);
this = ?
idOther = ?
this to kto a id other to kogo ?
Edit ://
if(fm_is_ent_visibles(pid, ent, fAngle) && fAngle <= 45.0)wynik=1
pid to kto a ent to kogo ?
co to jest fAngle ?
tam po tym jest && fAngle < =45.0
To jest o kąt widzenia ? czyli 45 stopni w lewo i 45 stopni w prawo ?
Użytkownik PaTrIcKx edytował ten post 10.08.2012 18:27
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#12
Napisano 11.08.2012 13:22
pid to ten kto patrzy
fAngle to referencja więc ma być puste i jest to kąt
this to jest gracz dla którego wykonujesz funkcje
idOther to drugi gracz/ent
ten kawalek z ham'a sprawdza czy this ma na swoim ekranie idOther
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
#13
Napisano 11.08.2012 14:16
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#14
Napisano 11.08.2012 14:32
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych