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



Also 1. habe ich ein include Prob, dass ich sehr komisch finde:

Zuerst, meint VC, dass die Funktion GetLocalPlayer ein
'GetLocalPlayer' : nichtdeklarierter Bezeichner
sein, obwohl in diese .cpp der Header hud.h eingebunden ist, der
wieder cl_dll.h eingebunden wird, und in cl_dll.h wird wiederum
../engine/cdll_int.h eingebunden. Cdll_int.h enthält aber GetLocalPlayer().
Also : Wie kann das sein ?

2 habe ich auch ein Prob mit den pm_shared :

Hier sagt VC :

'PM_BurnStamina' : Neudefinition; unterschiedliche Basistypen

Wie kann das sein ?

bool PM_Stamina(int iStamina) ist eine Funktion, die einmal in PM_Move aufgerufen wird.

Thx !

--

zum Seitenanfang zum Seitenende Profil || Suche
001
14.09.2001, 19:05
anothergb02



du solltest die pm sachen am besten ueberhaupt nicht ändern ! Da die meisten sachen die da uebermittelt oder berechnet ... werden fest in der engine definiert sind, die du nicht mehr verändern kannst -> wenn du da irgend was wichtiges veränderst dann kratzt der immer ab !

--

Being in john Malkovich
.....


Dieser Beitrag wurde am 14.09.2001 um 19:09 von anothergb02 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
14.09.2001, 20:13
thinktank



Hmm , aber ich will ein Stamina-System einbauen und das muss halt da integriert werden :( .

--

zum Seitenanfang zum Seitenende Profil || Suche
003
14.09.2001, 20:43
Retro



Das von gb02 war nur nen Ratschalg... Wenn du alles ordentlich codest, und auf die Sachen acht gibts, kannst du überall drine rumfummeln!

Bei den PM sachen musst du aber meist immer beide DLLs (cl.dll & mp.dll) kompilieren.

Ach ja, mein Stamina-System ist vollkommen in der CBasePlayer und natürlich im Client verteilt...

In der CBasePlayer werden die Sprünge etc.. ja auch aufgerufen. Wie es mit dem laufen steht weis ich nicht so ganz?

--

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
004
14.09.2001, 21:37
thinktank



So wollte ich es ja auch vorher machen, hat auch prima funktioniert, aber dann kam halt das Prob, dass die CBasePlayer::Jump() nicht wirklich den Player springen lässt, sondern nur die Animation etc. einstellt. Dann hab ich halt gesucht und PM_Move gefunden. Generell versuche ich alles mit Sachen, die "näher" an der Engine sind zu vermeiden. Kannst du bitte posten welche Funktionen etc. den Sprung veranlassen ?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
14.09.2001, 22:06
Retro



Das weis ich auch nicht, wie gesagt:
Bei mir ist alles in der CBasePlayer und dort ist es CBasePlayer::Jump()

Wie weit es von der Engine "weg" ist, spielt garkeine Rolle, dort findet ja keine Zeitverzögerung statt. Und schließlich wird auch wirklich immer die Jump-Animation geladen wenn man springt, also ist die CBasePlayer::Jump genau das richtige dafür.

Aber wie gesagt, aus der CBasePlayer kriegstes nicht raus, ob sich der Spieler bewegt (IMHO). Aber ich lasse auch nur etwas fürs springen abziehen.

--

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
006
14.09.2001, 23:00
Archangel



zu 1:
es muss heißen gEngfuncs.GetLocalPlayer();, da GetLocalPlayer keine globale funktion is..

--

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

zum Seitenanfang zum Seitenende Profil || Suche
007
14.09.2001, 23:22
Killing Me Softly



Zitat:
Retro postete
Aber wie gesagt, aus der CBasePlayer kriegstes nicht raus, ob sich der Spieler bewegt (IMHO).

pev->velocity.Length() gibt an, wie schnell sich der Spieler bewegt. Bei dem vorliegenden Problem würde ich allerdings noch überprüfen, ob sich der Spieler auf dem Boden befindet oder gerade im Begriff ist, von 30 Metern Höhe auf den Boden zu klatschen.

Quellcode:
if ( FBitSet ( pev->flags, FL_ONGROUND ) )
   ....


Eine andere Möglichkeit herauszufinden, ob sich der Spieler bewegt (oder besser: versucht sich zu bewegen) wäre, die Tasten abzufragen.

Quellcode:
if (pev->button & IN_FORWARD || pev->button & IN_BACK ||
   pev->button & IN_MOVELEFT || pev->button & IN_MOVERIGHT)
...

Der Fall, das der Spieler vergeblich versucht, durch eine massive Wand zu laufen, wird hierbei natürlich nicht abgefangen.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
008
14.09.2001, 23:23
thinktank



stimmt @Archangle, war ein blöder Fehler :)
Aber das mit dem Jump funktioniert soweit bis du verhindern willst, dass er springt, wenn kein Stamina nicht mehr da ist .......

--

zum Seitenanfang zum Seitenende Profil || Suche
009
14.09.2001, 23:31
Retro



Das ist in der pm_shared.c drinne!

Quellcode:
(...)
{
pmove->punchangle[0] = -5;

for (i =0; i < 2; i++)
{
pmove->velocity[ i ] = pmove->forward[ i ] * PLAYER_LONGJUMP_SPEED * 1.6;
}

pmove->velocity[2] = sqrt(1.8 * 620 * 45.0); //jump, with item_longjump }
else
{
pmove->velocity[2] = sqrt(1.8 * 620 * 45.0); //jump, without item_longjump
}
}
else
{
pmove->velocity[2] = sqrt(1.8 * 620 * 45.0);
}
(...)

Aber vorsicht, die Werte die ich dort habe sind nicht original!
Wenn man den Player jetzt das Springen verbieten will, muss man für die Zahlen Variablen einstezen...

Denke ich mal,oder gibt das Problme weils die pm_shared.c ist? =\

-> Zeile 2555

--

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 */


Dieser Beitrag wurde am 14.09.2001 um 23:32 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
14.09.2001, 23:44
thinktank



Ich hab ehrlich gesagt keine Ahnung warum die Probleme auftreten :).
Vor allem PM_BurnStamina mag er ned , aber PM_CanBurnStamina und PM_AddStamina schon .

--

zum Seitenanfang zum Seitenende Profil || Suche
011
15.09.2001, 13:02
thinktank



Ich hab halt die ganzen Funktionen auch in der CBasePlayer, um die Stamina aufzufrischen.

Thx

--

zum Seitenanfang zum Seitenende Profil || Suche
012
15.09.2001, 17:11
Retro



Ja gut, das ist dort ja auch machbar...

Aber wie willst du es bitteschön anstellen, das der Player nicht mehr so hoch hüpfen kann, wenn er weniger Stamina hat?
Ich denke schon das du dazu die pm_shared.c brauchst, weil das der einzige Ort ist, wo die "Sprunghöhe" berechnet wird (siehe meinen vorherigen Post).

--

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
013
15.09.2001, 17:41
Killing Me Softly



Zitat:
Retro postete
Aber wie willst du es bitteschön anstellen, das der Player nicht mehr so hoch hüpfen kann, wenn er weniger Stamina hat?

z.B. indem man pev->gravity hochsetzt.

Nur um eine Sache klarzustellen: es macht durchaus Sinn, das Ganze in der pm_shared.c zu lösen.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
014
15.09.2001, 18:13
Retro



Tzz... hastes auf mich abgesehen KMS? ;)

Nee, das mit pev->gravity finde ich eigentlich ganz schlecht *lieber duck*

Wenn der Player dann mit wenige Stamina ne kleine Ecke runterfällt, dann hat er gleich Scaden... *g*
Wie gesagt, ich würd das mit Variablen in der pm_shared.c machen, und der restliche Teil (Hauptteil) dann in der player.cpp

--

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
015
15.09.2001, 18:52
thinktank



Jetzt hab ichs mit Variablen gemacht, ABER es geht immer noch nicht ...... folgender Fehler :

error C2061: Syntaxfehler : Bezeichner 'bCanJump'

(bCanJump ist so deklariert : bool bCanJump)

Wo ist der Fehler ?

Thx

--

zum Seitenanfang zum Seitenende Profil || Suche
016
15.09.2001, 18:59
Retro



...Syntaxfehler... also nicht bCanJump

--

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
017
15.09.2001, 19:25
thinktank



Sorry, was meinst du damit ?

--

zum Seitenanfang zum Seitenende Profil || Suche
018
15.09.2001, 19:32
Retro



Hmm, ich denke da an nem typischen Sytaxfehler, sowas wie nen fehlendes ";" oder ne ")"...

Danach würde ich mal ausschau halten, denn an ner Variable ansich kann nicht alt so viel verkehrt sein.

--

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
019
15.09.2001, 19:36
thinktank



nein kanns ned sein, weil wenn ichs auskommentiere, dann verschwinden die Fehler. (Ich hab die Deklarationszeile genauestens überprüft :) ).

--

zum Seitenanfang zum Seitenende Profil || Suche
020
15.09.2001, 21:16
Archangel



paste mal die beiden zeilen über und unter der deklarationszeile (die natürlich auch)

--

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

zum Seitenanfang zum Seitenende Profil || Suche
021
15.09.2001, 21:29
thinktank



Hier die beiden benachbarten Zeilen :

static int pm_shared_initialized = 0;
bool bCanJump;
#pragma warning( disable : 4305 )

Hier alle Fehler :

--------------------Konfiguration: cl_dll - Win32 Debug--------------------
error C2061: Syntaxfehler : Bezeichner 'bCanJump'
error C2059: Syntaxfehler : ';'
error C2065: 'bCanJump' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

Thx !

--

zum Seitenanfang zum Seitenende Profil || Suche
022
15.09.2001, 21:47
Archangel



ahhh habs!
die datei is ja ne *.c datei, und C kennt keinen bool
also nimm einfach n int und statt true 1/false 0

--

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

zum Seitenanfang zum Seitenende Profil || Suche
023
16.09.2001, 14:49
thinktank



Thx ! Das war es ! Irgendwas in der Art habe ich auch schon gedacht, aber
hätte nie geglaubt, dass es so ein einfacher Fehler sein könnte :).

Danke Archangle (ohh pardon Archangel :) (das kommt vom vielen Hl-Coden *g*))!

Cu

--

zum Seitenanfang zum Seitenende Profil || Suche