Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
21.08.2001, 18:48
The_Overmind



Hi ho
Ich bräuchte mal ein wenig Hilfe mit dem Hud.
Ich hab nun eine neue Hud Funktion gemacht, die ne Traceline in die Blickrichtung "abfeuert", die End-Koordinaten sowie die Player Koordinaten dazu benutzt die Länge der Traceline zu ermitteln, die Länge in Meter umrechnet und dann im Hud ausgiebt.
Das alles is 100% Client-Seitig.

Alles funktioniert wunderbar, nur komischerweise wird die Traceline nach unten anstatt in Blickrichtung abgefeuert. Ich habe keine Ahnung wieso das passiert. Die Vectoren usw. sind eigentlich alle richtg, trotzdem wird die Traceline nach unten abgefeuert.

Hier mal die Funktion mit der ich die Entfernung usw. bestimme:
Quellcode:
float CHudDis::GetDistance( void )
{
float m_flXDifference, m_flYDifference, m_flZDifference;
float m_flFDistance, m_flFinalDistance;

cl_entity_t *player;

player = gEngfuncs.GetLocalPlayer();

if ( !player )
{
gEngfuncs.Con_Printf( "nix GetLocalPlayer!\n" );
}

vec3_t vecSrc = player->origin;
vec3_t vecDest;
vec3_t up, right, forward;

AngleVectors( player->angles, forward, right, up );

VectorMA( vecSrc, 8192, forward, vecDest );

pmtrace_t tr;

gEngfuncs.pEventAPI->EV_PlayerTrace( vecSrc, vecDest, PM_STUDIO_BOX, -1, &tr );

if ( vecSrc.x > tr.endpos.x )
m_flXDifference = vecSrc.x - tr.endpos.x;
else
m_flXDifference = tr.endpos.x - vecSrc.x;

if ( vecSrc.y > tr.endpos.y )
m_flYDifference = vecSrc.y - tr.endpos.y;
else
m_flYDifference = tr.endpos.y - vecSrc.y;

if ( vecSrc.z > tr.endpos.z )
m_flZDifference = vecSrc.z - tr.endpos.z;
else
m_flZDifference = tr.endpos.z - vecSrc.z;

m_flFDistance = sqrt( ( m_flXDifference * m_flXDifference ) + ( m_flYDifference * m_flYDifference) );
m_flFinalDistance = sqrt( ( m_flFDistance * m_flFDistance ) + ( m_flZDifference * m_flZDifference ) );

m_flFinalDistance /= 40;

return m_flFinalDistance;
}

Wäre nett wenn mir dabei mal jemand helfen könnte :))

Thx schonmal im Vorraus
MfG
[-XHP-]The Overmind

--

zum Seitenanfang zum Seitenende Profil || Suche
001
21.08.2001, 19:08
Polymorph



Hm.. also ich seh da so eigentlich nicht so direkt nen Fehler, die Winkel Sachen sind auch OK, ich hab jetzt keinen Bock das nachzugucken. Nur muss man vorher doch z.b. die PM States pushen etc. hier der kram direkt aus EV_HLDM_FireBullets:

Quellcode:
gEngfuncs.pEventAPI->EV_SetUpPlayerPrediction( false, true );

// Store off the old count
gEngfuncs.pEventAPI->EV_PushPMStates();

// Now add in all of the players.
gEngfuncs.pEventAPI->EV_SetSolidPlayers ( idx - 1 );
gEngfuncs.pEventAPI->EV_SetTraceHull( 2 );

Dann packst du hier den TraceLine code rein.

Quellcode:
gEngfuncs.pEventAPI->EV_PopPMStates ();

Könnte sein, das es das ist...

--

----------------------------------------
[url="mailto:polymorph@gdnmail.net"]Polymorph[/url]
Lead Programmer of Paroxysm - Alien Encounters

zum Seitenanfang zum Seitenende Profil || Suche
002
21.08.2001, 19:49
TheTinySteini



Hm, ja entweder der Code von Polymorph hilft dir, oder, wenn es immer noch nicht geht, dann folgendes:
player->angles enthält nicht unbedingt die richtigen Winkel, hab ich gehört. Mach mal ein extern vec3_t v_angles; vor deine Funktion und probier's dann mit der Variable v_angles.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
003
21.08.2001, 20:32
The_Overmind



So funktioniert nun
danke nochmal :))

--

zum Seitenanfang zum Seitenende Profil || Suche
004
21.08.2001, 20:57
Diablo_bth



woher hast du nur das

Zitat:

"nix GetLocalPlayer!\n"

*tststs* :)

--

zum Seitenanfang zum Seitenende Profil || Suche
005
21.08.2001, 21:08
The_Overmind



Blah! :)
Hatte grad dein Tutorial noch offen als ich an der TraceLine gearbeitet hab.
Aber ich werd das noch umändern damit du nicht zu sehr genötigt wirst bzw. mich auf Kopierrecht verklagen kannst =)

--

zum Seitenanfang zum Seitenende Profil || Suche
006
21.08.2001, 21:33
Diablo_bth



*gg* *Geschäft widder*

also sagen wir 30 Euro-Cents pro Abrufer?

--

zum Seitenanfang zum Seitenende Profil || Suche
007
21.08.2001, 22:12
The_Overmind



Zuuu Späääät!
Schon geändert ;))

--

zum Seitenanfang zum Seitenende Profil || Suche