Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
26.08.2002, 20:43
the_viking



Also kann mir vielleicht jemand sagen, wie diese komische CHandGrenade funzt?? Die ist gar nicht von CGrenade sonder von CBaseWeapon abgeleitet!

Wie funzt das also??

Ich will nähmlich ne SecondaryAttack mit längerem Zeitzünder einbauen..

(In PrimaryAttack() ist nichts mit irgendwie velocity oder time-to-explode sondern nur komische funktionen, wo ich nicht weiss wo die herkommen)

Ach ja: Ich bin vor 2 Tagen angefangen, mit HL zu modden, progge aber schon 3 Jahre mit C++, also schlagt mich nicht *g*

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
001
26.08.2002, 22:08
Rockefeller



CGrenade ist (soweit ich das jetzt noch richtig im Kopp hab) nur das Ding, was explodiert.
D.h. die Waffenfunktionalität ist in der CHandGrenade, und beim Loslassen der Attack-Taste erstellt diese Funktion eine CGrenade:
Quellcode:CGrenade::ShootTimed( m_pPlayer->pev, vecSrc, vecThrow, time );

Und die CGrenade explodiert dann nach ner gewissen Zeit.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
19.09.2002, 18:42
}ShadowLord{



die handgrenade-waffe erstellt beim werfen ein entity, welches die granate in der spielwelt repräsentiert, von wänden abprallt und - wie gesagt - explodiert.

time ist die timereinstellung in sekunden.

CGrenade::ShootTimed( m_pPlayer->pev, vecSrc, vecThrow, 10 );
würde den timer auf 10 sekunden einstellen, allerdings erst wenn die granate geworfen wird.
wenn man die granate also in der hand behält, läuft der zünder noch nicht.

andere möglichkeit:

// always explode 10 seconds after the pin was pulled
float time = m_flStartThrow - gpGlobals->time + 10.0;
if (time < 0)
time = 0;

in der Attack-funktion würde bedeuten,dass der zünder läuft, auch wenn man das ding in der hand hält. dann musst du natürlich

CGrenade::ShootTimed( m_pPlayer->pev, vecSrc, vecThrow, time );

nehmen.

EDIT:
(nachtrag(
ggrenade.cpp - entity, das explodiert
handgrenade.cpp - die "waffe"

--

if there is a god, i doubt its sanity.


Dieser Beitrag wurde am 19.09.2002 um 18:43 von }ShadowLord{ bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche