Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
15.09.2001, 22:33
Retro



Moin, ich möchte meinen Player durch ne art stamina-system langsamer machen... Oder auch wenn er mit bestimmten Waffen feuert.

Nun gibt es ja pPlayer->maxspeed aber ich möchte ihn ja nicht "für immer" langsamer machen, sondern temporär.

Ich habe erstmal vor den Code in die CMeineWaffe::SecondaryAttack zu packen. Wenn diese nun aufgerufen wird, soll der Player nur noch ganz langsam laufen können. Das ist den die maxspeed pauschal runter, und dann wieder hochsetze geht auch nicht, da es verschiedeme Klassen mit verschiederner Geschwindigkeit gibt.
Am besten währe eine Funktion die der maximalen Geschwindigkei temporär verkleinert.

Ich rede von nem Effekt wei mein HWG in TFC, wenn der seine Kannone feuert, kann er ja auch noch langsamer gehen als sonst.

Ich hoffe da gibt es irgedwas, oder muss ich dafür in die pm_shared, oder sonst wohin?! =(

--

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 15.09.2001 um 22:34 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
16.09.2001, 00:43
EliteCounter



ich glaub bei TFC haben die das irgendwie mit auch mit MaxSpeed gemacht,gabs da nicht noch ne andere Funktion? Hab vergessen,aber da gabs auch noch was.
Naja ich würde es so machen,das wenn er schiest "maxspeed" gemacht wird, dann wenn er aufhört, der Standart wert wieder hergestellt wird.

--

www.codingplanet.de
www.itn-clan.de.vu

EliteCounter@gmx.de <---TUTORIALS SCHICKEN,WEGEN MEGA TUTORIAL PACKET!!!!(es können auch alte OpenSources sein, eben alls was ihr habt!!!!)

Was wäre wenn???

zum Seitenanfang zum Seitenende Profil || Suche
002
16.09.2001, 00:47
Retro



Zitat:
Das ist den die maxspeed pauschal runter, und dann wieder hochsetze geht auch nicht, da es verschiedeme Klassen mit verschiederner Geschwindigkeit gibt.
=(

Deswegen such ich nach einer anderen Möglichkeit.

--

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
003
16.09.2001, 02:42
Creeper



hm, kann man nicht auch pev->speed verstellen, oder in jedem Frame mit deinem Wert überschreiben ??

--

Head Coder:Sudden-Impact

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

zum Seitenanfang zum Seitenende Profil || Suche
004
16.09.2001, 11:08
Another1



mach das in CBasePlayer dazu:
Quellcode:
float m_flMaxSpeed;
float m_flReducedSpeed;
float m_flReduceTime;

so nu:
in CBasePlayer::Spawn() machst du, nachdem pev->maxspeed initialisiert wurde:
Quellcode:
m_flMaxSpeed = pev->maxspeed;

so in CBasePlayer::PreThink machst du dann das rein:
Quellcode:
pev->maxspeed = m_flReducedSpeed;
if((m_flReduceTime < gpGlobals->time) && (m_flMaxSpeed != pev->maxspeed))
{
   pev->maxspeed = m_flMaxSpeed;
}

so, wenn du nu deinen spieler langsamer haben willst, dann machst du das:
Quellcode:
[i]pPlayer[/i]->m_flReducedSpeed = 140; // verlangsame auf 140
[i]pPlayer[/i]->m_flReduceTime = gpGlobals->time + 5; // für 5 sekunden

mit diesem code kannst du ihn sofort wieder normalschnell laufen lassen:
Quellcode:
[i]pPlayer[/i]->m_flReduceTime = gpGlobals->time; // bis "jetzt" langsam laufen, also ab nächstem frame wieder schnell

wenn du sozusagen ohne zeitbegrenzung die geschwindigkeit regeln willst, machst du einfach m_flReduceTime = gpGlobals->time + 123456; oder so ähnlich, und machst dann m_flReduceTime = gpGlobals->time; wenn wieder normal gehen soll

so diesen code habe ich jetzt einfach so ausm kopf geschrieben, also nich 100% sicher das er funzt, aber so c.a 85% =)

--

Another1

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


Dieser Beitrag wurde am 16.09.2001 um 11:09 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
16.09.2001, 20:59
TheTinySteini



Ich glaube du musst auch noch gEngfuncs.SetClientMaxspeed() oder so aufrufen. Bin mir nicht ganz sicher, wie die Funktion heißt - bin mir noch nicht mal sicher, ob man sie überhaupt braucht =) aber ich glaube sie verhindert auch ein Verstellen mittels "sv_maxspeed xxx".

--

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

zum Seitenanfang zum Seitenende Profil || Suche
006
16.09.2001, 21:41
Another1



brauchst du nich, solange maxspeed darunter bleibt (also unter sv_maxspeed )
funzt das wunderbar, und auch noch clientpredicted, da pev->maxspeed in physics code benutzt wird =)

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche