Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
10.04.2002, 21:23
Karandaras



hätte ne Frage, wie kann ich ne Traceline vom player in richtung der Kamera "schießen"?

--

This was strike 2 Freeza. I'll give you 1 more chance to hit me with everything you have got and when it's strike 3, GAME OVER, you're out.

zum Seitenanfang zum Seitenende Profil || Suche
001
10.04.2002, 23:20
Another1



UTIL_MakeVectors(pPlayer->v_angle);
Vector vecStart = pPlayer->pev->origin+pPlayer->pev->view_ofs;
Vector vecEnd = vecStart + gpGlobals->v_forward*weite;

UTIL_TraceLine(vecStart,vecEnd,...,&tr);

[EDIT]
sorry ... falsch verstanden, wenn du in richtung der virtuellen Kamera meinst, im 3rd person mode, dann musst du einfach
Vector dirToCam = cameraOrigin - (pPlayer->pev->origin+pPlayer->pev->view_ofs);
benutzen, das is die richtung zur camera relativ vom player aus dann.

--

Another1

...relaxing..atm =)
... und Schweiz suckt!


Dieser Beitrag wurde am 10.04.2002 um 23:21 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
11.04.2002, 14:55
Karandaras



thx @ another1

ich bräuchte aber den befehl für die client seite, ich will die 3rd Person cam ähnlich wie bei jedi knight machen, es reicht mir also auch schon wenn ich ne trace line nach hinten schießen kann

Danke im vorraus

--

This was strike 2 Freeza. I'll give you 1 more chance to hit me with everything you have got and when it's strike 3, GAME OVER, you're out.

zum Seitenanfang zum Seitenende Profil || Suche
003
11.04.2002, 15:09
Archangel



versteh ich das richtig: du willst die kamera höchstens MAXDIST units vom player entfernt haben, oder näher, wenn eine wand im weg ist ?

das dürfte so gehen:

#include "pmtrace.h"
#include "pm_defs.h"

[...]
float dist;
vec3_t viewangles, forward;
vec3_t localorg;
pmtrace_t tr;

gEngfuncs.GetViewAngles((float *)viewangles);
AngleVectors(viewangles, forward, NULL, NULL);

localorg = gEngfuncs.GetLocalPlayer()->origin;

tr = *gEngfuncs.PM_TraceLine(localorg, localorg + (-forward) * MAXDIST /* durch deinen maxdist wert ersetzen */, PM_TRACELINE_ANYVISIBLE, 2, PM_STUDIO_IGNORE /* models ignorieren */);

dist = (localorg - tr.endpos).Length();

das schreibst du in die CAM_Think() (?), und am ende sowas wie:
cam[DIST] = dist; // ka ob das so stimmt

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005


Dieser Beitrag wurde am 11.04.2002 um 15:09 von Archangel bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
11.04.2002, 19:28
thinktank



In der CAM_Think gibts schon ne Variable, die dist heißt. Also muss man ganz einfach die dist vorm Updaten der dist ändern. Deine Lösung ist ein bischen einfacher als meine , wusste gar nicht, dass man die Länge von Vectors so einfach bestimmen kann =).

--


Dieser Beitrag wurde am 11.04.2002 um 19:29 von thinktank bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche