Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
23.06.2001, 13:50
McMapper



nun in einem tut v TTT hab ich das gefunden

UTIL_MakeVectors(pev->v_angle);
UTIL_TraceLine(pev->origin + pev->view_ofs,pev->origin + pev->view_ofs + gpGlobals->v_forward
* 1300,dont_ignore_monsters, edict(), &tr );
so damit macht man das :
// trace straight ahead 1300 units and check if it hits a player
letzters kommt dann noch später ... nun ich will aber dass das GANZE sichtfeld des players gecheckt wird deshalb brauche ich vektoren oder so was. DENN ich raffe nix von vektoren. :D ja wäre wie immer sehr dankbar !

--

zum Seitenanfang zum Seitenende Profil || Suche
001
23.06.2001, 15:20
TheTinySteini



Nee, dafür brauchste nicht direkt Vektoren, du musst in so einem Fall durch alle Spieler durchloopen und gucken, ob sie sichtbar sind. Es könnte auch sein, dass es eine Funktion gibt, die schon alle Entitys zurückliefert, die sichtbar sind, aber da bin ich mir nicht so ganz sicher.
Also mit Pseudocode sähe das dann so aus:
for( int i = 0; i < gpGlobals->maxplayers; i++ )
{
CBasePlayer *pPlayer = UTIL_GetPlayerByIndex( i );
if( pPlayer )
{
if( SpielerSichtbar )
{
... dann tue hier etwas
}
}
}

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
002
23.06.2001, 16:20
Creeper



irgendwas mit FVisible
damit werden die sichtbaren Entities aufgelistet oder abgefragt!

--

Head Coder:Sudden-Impact

Listen to CKY you fuCKYrs http://www.ckymusic.com

zum Seitenanfang zum Seitenende Profil || Suche
003
23.06.2001, 17:57
McMapper



hmm ja danke scho mal ..

--

zum Seitenanfang zum Seitenende Profil || Suche
004
25.06.2001, 16:30
apfelkorn



mh... ich glaube sein Problem liegt darin, das ganze zu verstehen... Am einfachsten ist es so:

Du gehst alle Spieler erstmal durch und legst jeden anderen, nicht-ego-spieler in einen 2. Pointer ab. Du kannst dann vom Pointer die Position abfragen (pev->origin) und diese Position dann in

UTIL_TraceLine(pPlayerEgo->pev->origin, pPlayerLoopen->pev->origin, ignore_monsters, edict(), &tr );

einsetzen. Dann kannst du mit dem TraceResult (tr) schauen, ob der Spieler, der gesucht wird, durch eine Wand verdeckt wird. Jetzt kannst du auch ganz einfach mit der Winkelangabe (wird glaube ich auch mit tr zurückgeliefert, sonst musst du das mit einer trigonometrischen Funktion/Satz berechnen) schauen, ob der gesuchte Spieler noch innerhalb der Sichtweite liegt, also Winkel_zum_gesuchten_Spieler - pPlayer->pev->fov (?) / 2.

Bei pPlayer->fov bin ich mir jetzt nicht ganz sicher, könnte sein, dass es ein CBasePlayer-Element oder ein CBaseEntity-Element ist.

--

zum Seitenanfang zum Seitenende Profil || Suche