Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
09.02.2002, 21:29
RirA



Also ich will mit einer Waffe (nehmen wir mal an die Pistole) den Zug (nehmen wir an einen wie in subtransit) wenn ich ihn treffe langsamer machen bzw. ganz stoppen. Ich hab leider nicht die geringste Idee wie das gehn soll, kann jemand helfen?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
09.02.2002, 23:16
Shark



vielleicht func_breakable vorm zug tun, und wenn wer draufballert das das func_breakable einen multi manager triggert....(der dann ein entity instand setzt das den zug stoppt)..ich weiß nich wie man den zug an sich stoppt aber das triggern sollte so klappen

--

Biber Bau Clan
Meine Seite

zum Seitenanfang zum Seitenende Profil || Suche
002
09.02.2002, 23:19
RirA



also das ist nicht so was ich mir vorstelle, ich hab jetzt das:
//RirA+
int CFuncTrain :: TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType )
{
if (pev->health < 1)
{
pev->speed = 0;
}
return CFuncTrain::TakeDamage( pevInflictor, pevAttacker, flDamage, bitsDamageType );
}
//RirA-

und

void CFuncTrain :: Spawn( void )
{
Precache();

pev->takedamage = DAMAGE_YES;//RirA+
pev->health = 1;
pev->flags |= FL_MONSTER;//RirA-

Also ich will, dass wenn der Zug Schaden nimmt, er stehen bleibt... Geht aber nicht so.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
10.02.2002, 11:56
RirA



Also ich hab fast alles, aber ich schaffe es einfach nicht den Zug in der PreThink langsamer zu machen...
Sowas wie pev->speed geht alles nicht...
Wer weiß wie das geht?

--

zum Seitenanfang zum Seitenende Profil || Suche
004
10.02.2002, 12:34
McMapper



hm kling etz dumm aber pev ist doch meistens envars irgendwas ... ich schau mir immer die an und gucke was für einträge da drinn sind ...

--

zum Seitenanfang zum Seitenende Profil || Suche
005
10.02.2002, 14:21
Another1



also in der waffe würd ich einfach das hier machen:
[pseudocode]
void CYourWeapon::PrimaryAttack()
{
...
NormaleFireBulletsDamitDieWaffeAuchNormaleSachenAbschießenKann();
...
TraceNachVorne();
if(tr.pEnt && FStrEq(STRING(tr.pEnt->v.classname),"func_train"))
{
// TrainSpeedHalbieren
tr.pEnt->v.velocity = tr.pEnt->v.velocity * 0.5;
}

}
[/pseudocode]

das sollte eigentlich wunderbar klappen ...

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
006
10.02.2002, 16:12
RirA



Also ich habe es jetzt in der PreThink soweit:
TraceResult trainTrace;

UTIL_TraceLine( pev->origin, pev->origin, ignore_monsters, ENT(pev), &trainTrace );
CFuncTrackTrain *pTrain = CBaseEntity::Instance( trainTrace.pHit );

if ( trainTrace.pHit )
pTrain = CBaseEntity::Instance( trainTrace.pHit );
// <--DAS SOLL DER TRAIN SEIN

Aber das geht nicht...

--


Dieser Beitrag wurde am 10.02.2002 um 16:12 von RirA bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
10.02.2002, 17:09
Another1



... ??
lesen rira!
du sollst das nich in die train think packen, sondern in die Schuss-funktion der Waffe, der Trace soll dann vorwärts gehen, wie ein schuss, und dann guckst du ob der Trace was getroffen hat, wenn ja, obs nen train war, und wenn ja dann machst du
traceForward.pHit->v.velocity = traceForward.pHit->v.velocity/2;

.. mmmkay? =)

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
008
10.02.2002, 20:40
[RMen]OneStone



Das ist ja scheisse mit dem Trace bei der Waffe, dann muss das ganze
ja in jede Waffe gecodet werden. Das 2. von Rira ist glaub ich richtig.
Vielleicht ist es nicht pev->speed was geändert werden muss?
Guck doch einfach mal an der Stelle wo der Zug beschleunigt.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
009
10.02.2002, 21:00
Andy_



Naja, kann man bestimmt auch irgendwo in der weapons.cpp, oder wo sonst der primary attack verarbeitet wird. Jedoch sollte man auch aufpassen, da es z.B. bei der Hornet-Gun, oder Granaten nicht funktioniert.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
010
10.02.2002, 22:34
Another1



hörte sich für mich so an als wenn er eben nur ne bestimmte waffe zum stoppen coden wollte, und die geschwindigkeit ändert man über velocity, wie man eigentlich aus dem bissle code was ich da geposted habe sehen sollte =)

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
011
10.02.2002, 22:40
Retro



Zitat:
Das ist ja scheisse mit dem Trace bei der Waffe
Du bezeichnest A1's code als scheisse?! =O

Also bei mir funktioniert TakeDamage ganz gut um etwas auszulösen... beim func_tracktrain sowie beim func_train. Aber ich glaub ich habe das nicht mit pev->speed gemacht... hm, kann mal nachschaun wenn du willst?

--

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
012
10.02.2002, 23:05
Another1



.. pev->velocity .. red ich irgendwie gegen ne wand oder sowas? *donk*

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
013
10.02.2002, 23:10
Retro



.. pev-> was?

>=D

--

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
014
10.02.2002, 23:33
anothergb02



na RirA es gibt außerdem noch ne funktion die bei jedem Schuss ausgeführt wird !!!! CBaseWeapon::Fire oder so und ne bullet message blabla
du wirst das schon schaffen, ich drücke dir ganze fest die Daumen.

--

Being in john Malkovich
.....

zum Seitenanfang zum Seitenende Profil || Suche
015
11.02.2002, 02:01
RirA



Ihr versteht alle mein Problem nicht, ich weiß schon wie ich den Zug stoppe(wie es A1 gesagt hat), aber "Instance( trainTrace.pHit );" klappt nicht...

--

zum Seitenanfang zum Seitenende Profil || Suche
016
11.02.2002, 04:22
Another1



ja, weil dein trace ja auch totaler stuss is, schau mal hin:

UTIL_TraceLine( pev->origin, pev->origin, ignore_monsters, ENT(pev), &trainTrace );

.. ehh? du machst also nen trace von punkt A zu punkt A? irgendwie ergibt das kein sinn ... 'ausgezeichnet!'
oso

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
017
11.02.2002, 13:13
RirA



Ok, danke an alle (besonders a1) jetzt hab ich es.

...Und die Geschwindigkeit ändert man mit "pev->speed".

--

zum Seitenanfang zum Seitenende Profil || Suche
018
11.02.2002, 13:52
Retro



ähhäh, pev-> was? *g*

--

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
11.02.2002, 14:24
RirA



hehe :-]

--

zum Seitenanfang zum Seitenende Profil || Suche
020
11.02.2002, 15:42
RirA



Ich habe ein weiteres Problem :-( :
In der PreThink habe ich diesen Code, welcher den Zug anhält, wenn ich auf ihn zeige:
if (m_StopTrain == 1)
{//STOP TRAIN HERE!!!

TraceResult trainTrace;//this is where the player points @:
UTIL_TraceLine(pev->origin + pev->view_ofs,pev->origin + pev->view_ofs + gpGlobals->v_forward * 8192,dont_ignore_monsters, NULL, &trainTrace );

CBaseEntity *pTrain = CBaseEntity::Instance( trainTrace.pHit );

pTrain->pev->velocity * 0.5;
m_StopTrain = 2;
}

Und obwohl ich die Variable m_StopTrain ja dann auf 2 ändere, hält der sch*** Zug später immernoch an, wenn ich auf ihn zeige... Why the hell?

--

zum Seitenanfang zum Seitenende Profil || Suche
021
11.02.2002, 16:16
RirA



hat sich erledigt ... :]

--

zum Seitenanfang zum Seitenende Profil || Suche