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




Ich mappe jetzt schon seit 3 jahren HL und habe schon bei vielen mods mitgearbeitet, aber das mit dem env_blood, hab ich immer noch net begriffen, wie geht daaaaaaaaasssssss, bei mir funzt das einfach net, help me

--

zum Seitenanfang zum Seitenende Profil || Suche
001
03.01.2002, 18:26
Retro



Da stehts! :)
Quellcode:// Blood effects
class CBlood : public CPointEntity
{
public:
void Spawn( void );
void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
void KeyValue( KeyValueData *pkvd );

inline int Color( void ) { return pev->impulse; }
inline float BloodAmount( void ) { return pev->dmg; }

inline void SetColor( int color ) { pev->impulse = color; }
inline void SetBloodAmount( float amount ) { pev->dmg = amount; }

Vector Direction( void );
Vector BloodPosition( CBaseEntity *pActivator );

private:
};

LINK_ENTITY_TO_CLASS( env_blood, CBlood );



#define SF_BLOOD_RANDOM 0x0001
#define SF_BLOOD_STREAM 0x0002
#define SF_BLOOD_PLAYER 0x0004
#define SF_BLOOD_DECAL 0x0008

void CBlood::Spawn( void )
{
pev->solid = SOLID_NOT;
pev->movetype = MOVETYPE_NONE;
pev->effects = 0;
pev->frame = 0;
SetMovedir( pev );
}


void CBlood::KeyValue( KeyValueData *pkvd )
{
if (FStrEq(pkvd->szKeyName, "color"))
{
int color = atoi(pkvd->szValue);
switch( color )
{
case 1:
SetColor( BLOOD_COLOR_YELLOW );
break;
default:
SetColor( BLOOD_COLOR_RED );
break;
}

pkvd->fHandled = TRUE;
}
else if (FStrEq(pkvd->szKeyName, "amount"))
{
SetBloodAmount( atof(pkvd->szValue) );
pkvd->fHandled = TRUE;
}
else
CPointEntity::KeyValue( pkvd );
}


Vector CBlood::Direction( void )
{
if ( pev->spawnflags & SF_BLOOD_RANDOM )
return UTIL_RandomBloodVector();

return pev->movedir;
}


Vector CBlood::BloodPosition( CBaseEntity *pActivator )
{
if ( pev->spawnflags & SF_BLOOD_PLAYER )
{
edict_t *pPlayer;

if ( pActivator && pActivator->IsPlayer() )
{
pPlayer = pActivator->edict();
}
else
pPlayer = g_engfuncs.pfnPEntityOfEntIndex( 1 );
if ( pPlayer )
return (pPlayer->v.origin + pPlayer->v.view_ofs) + Vector( RANDOM_FLOAT(-10,10), RANDOM_FLOAT(-10,10), RANDOM_FLOAT(-10,10) );
}

return pev->origin;
}


void CBlood::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{
if ( pev->spawnflags & SF_BLOOD_STREAM )
UTIL_BloodStream( BloodPosition(pActivator), Direction(), (Color() == BLOOD_COLOR_RED) ? 70 : Color(), BloodAmount() );
else
UTIL_BloodDrips( BloodPosition(pActivator), Direction(), Color(), BloodAmount() );

if ( pev->spawnflags & SF_BLOOD_DECAL )
{
Vector forward = Direction();
Vector start = BloodPosition( pActivator );
TraceResult tr;

UTIL_TraceLine( start, start + forward * BloodAmount() * 2, ignore_monsters, NULL, &tr );
if ( tr.flFraction != 1.0 )
UTIL_BloodDecalTrace( &tr, Color() );
}
}

--

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
002
03.01.2002, 19:01
BloodyHarry



Lol @Retro, ich glaube nicht das HumanGrunt den Source haben wollte :D
Aber soweit ich weiss, funktioniert das nicht richtig...

--

--< BloodyHarry >--

zum Seitenanfang zum Seitenende Profil || Suche
003
03.01.2002, 19:08
Retro



-hrhr- Aber da kann man doch erkennen was es macht! :)

Einmal diesen Bluteffekt der entsteht wenn man nen Soldaten/Monster trifft, und BloodSteam ist der Effekt von OpposingForce wenn man mit der M42 jemanden trifft..

--

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
04.01.2002, 00:24
DavidR.



Was funktioniert denn da nicht? du musst es triggern und dann kommt da blut!

achja die fgd hat nen fehler, ich poste grad mal den aussschnitt (wie er sein soll!)

@PointClass base(Targetname, Angles) size(-16 -16 -16, 16 16 16) color(255 0 0) = env_blood : "Blood Effects"
[
color(choices) : "Blood Color" : 2 =
[
0 : "White & Black (Hornets)"
1 : "Yellow (Alien)"
2 : "Red (Human)"
]
amount(string) : "Amount of blood (damage to simulate)" : "100"
spawnflags(flags) =
[
1: "Random Direction" : 0
2: "Blood Stream" : 0
4: "On Player" : 0
8: "Spray decals" : 0
]
]

So, ich lad später auf meine hp mal die gefixte fgd (mit neuen funktionen und test_effect) hoch, dort stimmt dann alles!

öffne jetzt die half-life.fgd suche nach env_blood und ersetzte die optionen mit diesen hier, dann MUSS es gehen (wenn nicht weiß ich auch nict, was du falsch gemacht hast!)

--

--< Spirit of Half-life

zum Seitenanfang zum Seitenende Profil || Suche
005
04.01.2002, 16:06




hallo, ich bin net blöde ich weiss das man das triggern muss, aber es kommt nix, das ich auch 100 mal trigger, da fliegt weder blut noch kommen bludecals an den wänden.
Und nein ich wollte net den source code, weil ich net coden kann.

--

zum Seitenanfang zum Seitenende Profil || Suche
006
04.01.2002, 16:56
DavidR.



So, die FGD kann man unter

http://www.8ung.at/halflife/halflife.zip

downloaden! unter http://www.8ung.at/halflife/ findet man meine Seite, aber Achtung! noch laang nicht fertig! (ich schaffs irgendwie nichtmehr bilder upzuloaden und/oder sie anzeigen zu lassen .. naja hab schon wieder keinen bock, ich lass die hp erstnochmal etwas anstauben!)

@HumanGrunt:

Bist du sicher, das du bei BloodColor den richtigen wert eingestellt hast?
also
0 ist schwarz weiß
1 ist gelb
2 ist rot

ich hatte das glaub ich auch mal, wart ich geh mal in wc und guck worans liegen könnte... hmm... stell "bloodcolor" mal auf "2" und "damage to simulate" auf "100" lass bei den flags "Random Direcory" mal aus und "spray decals" an!
Das muss doch gehen, lad aber erst die fgd runter, dort stimmen dann die blutfarben!

wenns nicht geht, dann:
???????!!!!!!!!! hä??? huu????? ähmmm.... joo!!!!

EDIT:
achtung lamer server! (schreibt man lamer so?)
Vielleich ist dein Sprite auch kaputt!
Soviel ich weiß hatten wir das schonmal ich guck grad mal im Forum!

hmm... stell mal in der autoexec.cfg das um:

violence_hblood 1
violence_hgibs 1
violence_ablood 1
violence_agibs 1

oder hol dir nen Blutpatch auf bloodpatches.com

--

--< Spirit of Half-life


Dieser Beitrag wurde am 04.01.2002 um 17:01 von DavidR. bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
06.01.2002, 15:42




äm sehr nett, habs mir gesaugt, aber ich arbeite leider mit wc2.1 kann mir das ma einer übersetzten

--

zum Seitenanfang zum Seitenende Profil || Suche