Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
25.03.2002, 11:02
Mexil



Hi,
ich muss irgendwie fuer jeden Frame herrausbekommen, was der Player grad macht, also laufen/gehen/stehen/springen/ducken sonst was.... wie macht man das? Geht das evtl. sogar Clientseitig das herrauszubekommen? Und wie geht das Serverseitig?

THX

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
001
25.03.2002, 11:32
Gnomo



Es kann sein, dass ich Mist rede, aber ich glaube das steht in der Player.cpp in der Prethink Funktion.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
25.03.2002, 12:09
Nicemice
Moderator


Hi,

Ich bin auch auf der Suche im Code hab aber bisher nur das gefunden:
Quellcode:
if ( m_pPlayer->pev->flags & FL_DUCKING )
{
// Spieler duckt sich
}

Clientseitig müßte man das auch irgendwie herausbekommen können...

--

www.d3opencoop.com - A Doom3 Cooperative Mod

zum Seitenanfang zum Seitenende Profil || Suche
003
25.03.2002, 12:19
NewbZ



Also ich habe keinen Plan was ihr meint :(

--

zum Seitenanfang zum Seitenende Profil || Suche
004
25.03.2002, 12:39
Mexil



Ja, dass hab ich in der PreThink eben auch selber gefunden... aber ich glaub da gibt es irgendeine Variabel die den Wert beinhaltet!!

Hab mal in ein par Tuts was ueber eine pev->iuser3 Variabel gelesen und das schien irgendwie in einem Zusammenhang mit der Bewegung zu stehen, war aber leider nicht genauer erklaert, jemand eine Ahnung was das ist?

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
005
25.03.2002, 14:23
NewbZ



Ich würde ja gerne versuchen zu Helfen aber
Ich weis immer nochnet was ihr machen wollt :(

--


Dieser Beitrag wurde am 25.03.2002 um 14:24 von NewbZ bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
25.03.2002, 14:51
[RMen]OneStone



pev->flags auf folgendes überprüfen:

#define FL_FLY (1<<0) // Changes the SV_Movestep() behavior to not need to be on ground
#define FL_SWIM (1<<1) // Changes the SV_Movestep() behavior to not need to be on ground (but stay in water)
#define FL_CONVEYOR (1<<2)
#define FL_CLIENT (1<<3)
#define FL_INWATER (1<<4)
#define FL_MONSTER (1<<5)
#define FL_GODMODE (1<<6)
#define FL_NOTARGET (1<<7)
#define FL_SKIPLOCALHOST (1<<8) // Don't send entity to local host, it's predicting this entity itself
#define FL_ONGROUND (1<<9) // At rest / on the ground
#define FL_PARTIALGROUND (1<<10) // not all corners are valid
#define FL_WATERJUMP (1<<11) // player jumping out of water
#define FL_FROZEN (1<<12) // Player is frozen for 3rd person camera
#define FL_FAKECLIENT (1<<13) // JAC: fake client, simulated server side; don't send network messages to them
#define FL_DUCKING (1<<14) // Player flag -- Player is fully crouched
#define FL_FLOAT (1<<15) // Apply floating force to this entity when in water
#define FL_GRAPHED (1<<16) // worldgraph has this ent listed as something that blocks a connection

Alles klar? :)

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
007
25.03.2002, 15:09
NewbZ



:(
Ich würde ja auch mal gerne wissen was ihr meint aber keiner klärt mich auf
:(

--

zum Seitenanfang zum Seitenende Profil || Suche
008
25.03.2002, 15:39
Retro



Omg Newbz hör mit der sch[...] auf...

1.) Es ist nicht deine Frage
2.) Man kanns sich auch mal durchlesen, dann weiss man worums geht
3.) Mit deinem exesiven gespamme erreichst du garnichts.

Zur eigentlichen Frage: Serverside ist das zwar sehr schön, aber clientside hab ich das ganze Zeugs noch nie gesehen :\

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
009
25.03.2002, 15:58
NewbZ



Sorry aber man darf doch wohl mal fragen
so wie ich es verstanden habe wollte ihr etwas mit dem Jump oder dem duck etc. herausfinden
Aso ich gleube ich weis ihr meint
und es kann nicht clientseitig gemacht werden
serverseitig only
Nun ich gucke mal ein wenig herum und suche

--


Dieser Beitrag wurde am 25.03.2002 um 16:00 von NewbZ bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
25.03.2002, 16:19
Retro



Mkay, ist doch schon besser als das gespame! ;)

Er will herausfinden was der Player grade macht, ob er grade springt, läuft, klettert, kriecht, fliegt etc... alle möglichen Zustände die OneStone gepostet hat ;)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
011
25.03.2002, 16:21
NewbZ



Ja aber wann?
Wenn er in einem Trigger geht oder so was?

Sucht ihr z.b. du walk funktion

/*
=====================
PM_WalkMove

Only used by players. Moves along the ground when player is a MOVETYPE_WALK.
======================
*/
void PM_WalkMove ()
{
int clip;
int oldonground;
int i;

vec3_t wishvel;
float spd;
float fmove, smove;
vec3_t wishdir;
float wishspeed;

vec3_t dest, start;
vec3_t original, originalvel;
vec3_t down, downvel;
float downdist, updist;

pmtrace_t trace;

...

Falls ihr des net meint dann bitte net mehr versuchen zu erklären ich verstehe so oder so net ^_^

Ich glaube ich verstehe er will z.b. machen das man neben immer stehen hat was man gerade macht
das wenn man sich duckt das dann neben steht das man sich duckt ist doch so oder?
Von daher dürfte es eigendlich nicht besonderst schwer sein es zu machen
Ihrgendiwe etwas wie
ALERT(at_console, "animation %d; ", SetAnimation);

--


Dieser Beitrag wurde am 25.03.2002 um 17:04 von NewbZ bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
25.03.2002, 21:29
Mexil



*loooooooooooool*

NEIN ich will nicht machen, dass angezeigt wird, welche Anim grad abgespielt wird oder ob ein Spieler grad steht oder springt... aber das ist das, wodrauf es herraus laeuft...

Zurueck zum Thema: Erstmal danke fuer die Antwort, aber wie ich denke mal ONGROUND != Move, oder? Und ist Jump == Fly?

Also immer noch, wie ueberpruefe ich, ob der Spieler sich nun bewegt oder ob er nur herumsteht? Zur Not ist Hardcorelowlevel angesagt:
Quellcode:
if(Origin - OldOrigin != 0)
//Bewegung
else
//er steht

Und das dann noch ein wenig ausweiten, dass das nicht jeden Frame getestet wird, sondern nur alle 0.2 Seks oder so, aber das muss doch anders gehen oder?

--


Move In!

VISIT US Move In!


Dieser Beitrag wurde am 25.03.2002 um 21:30 von Mexil bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
013
25.03.2002, 21:58
Killing Me Softly



mit if (pev->velocity.Length()) frägst du ab, ob sich der Player bewegt.
mit if ( FBitSet ( pev->flags, FL_ONGROUND ) ) kannst du abfragen, ob er sich auf dem Boden befindet (also selbstständig bewegt) oder gerade ne Klippe runterrasselt.
if (FBitSet(pev->flags,FL_DUCKING)) Spieler duckt sich
if (pev->button & IN_JUMP) Spieler springt (oder versucht es zumindest)

Ist es das, was du suchst?

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
014
25.03.2002, 22:01
Mexil



k, aber was ist wenn der Spieler auf dem Boden STEHT und sich nicht bewegt? Ich denke mal, dann ist FL_ONGROUND auch gesetzt oder?

Ansonsten ist es genau das was ich suche...

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
015
25.03.2002, 22:51
Killing Me Softly



stimmt; aber mit pev->velocity.Length() kannst du ermitteln, wie schnell der Spieler sich bewegt. Ist der Wert = 0, dann steht er nur dumm rum.

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
016
26.03.2002, 12:13
[GOD]ShadowLord



ich würd aber 5-20 toleranz einbauen,bei mir hatte er oft ne velocity von
1-2 auch wenn er stand.
int speed = m_pPlayer->pev->velocity.Length2D();
das geht besser.

--

they come in peace - and go in pieces

zum Seitenanfang zum Seitenende Profil || Suche