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



Wenn ich mit meiner selbstgebauten "Waffe" auf eine Wand haue dann spielt es immer nur eine Animation ab, obwohl ich eigentlich zwei habe!

Auszug aus hand.ccp (waffencode)

[...]
else
{
// hit
fDidHit = TRUE;

CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit);

switch( ((m_iSwing++) % 1) + 1 )
{
case 0:
SendWeaponAnim( HAND_ATTACK2HIT ); break;
case 1:
SendWeaponAnim( HAND_ATTACK1HIT ); break;
}

// player "shoot" animation
m_pPlayer->SetAnimation( PLAYER_ATTACK1 );

ClearMultiDamage( );
if ( (m_flNextPrimaryAttack + 1 < gpGlobals->time) || g_pGameRules->IsMultiplayer() )
{
// first swing does full damage
pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgHand, gpGlobals->v_forward, &tr, DMG_CLUB );
}
else
{
// subsequent swings do half
pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgHand / 2, gpGlobals->v_forward, &tr, DMG_CLUB );
}
ApplyMultiDamage( m_pPlayer->pev, m_pPlayer->pev );

m_flNextPrimaryAttack = gpGlobals->time + 0.1;
[...]

Auszug aus .qc Datei:

// sequences: all sequences are in $cd
$sequence blow1 "deploy" fps 24
$sequence deploy "blow1" fps 24
$sequence attack1hit "attack1" fps 30
$sequence attack1miss "attack1miss" fps 35
$sequence attack2miss "attack2miss" fps 35
$sequence attack2hit "attack2" fps 30

?????

--

CTHD CLAN IS MAIZBROD!!!!!!!!

zum Seitenanfang zum Seitenende Profil || Suche
001
17.06.2001, 10:50
[RMen]OneStone



Also das liegt wohl daran, dass du folgendes geschrieben hast:
Quellcode:m_pPlayer->SetAnimation( PLAYER_ATTACK1 );

Was hälst du von folgendem:
Quellcode:switch(RANDOM_LONG(0, 1))
{
case 0:
  m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
  break:
case 1:
   m_pPlayer->SetAnimation( PLAYER_ATTACK2 );
}

Greetz

--

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

zum Seitenanfang zum Seitenende Profil || Suche
002
17.06.2001, 12:12
Crouching Tiger



Aber bei der Crowbar funktioniert es ja auch ohne dieses ATTACK2????

--

CTHD CLAN IS MAIZBROD!!!!!!!!

zum Seitenanfang zum Seitenende Profil || Suche
003
18.06.2001, 14:24
[RMen]OneStone



Keine Ahnung warum...
Liegt wahrscheinlich am Model,
auf jeden Fall sollte es so funktionieren.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
004
23.06.2001, 12:02
Crouching Tiger



Das mit der PLAYER_ATTACK2 kann gar nicht funktionieren, weil:
1. Das ist für das player model und nicht für die v_ models
2. und PLAYER_ATTACK2 ist gar nicht definiert

Aber:

Ich habe es jetzt so gemacht und es funktioniert auch so:

[...]

CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit);

switch( (m_iSwing++) % 2)
{
case 0:
SendWeaponAnim( HAND_ATTACK2HIT ); break;
case 1:
SendWeaponAnim( HAND_ATTACK1HIT ); break;
}

// player "shoot" animation
m_pPlayer->SetAnimation( PLAYER_ATTACK1 );

[...]

Jawoll!

--

CTHD CLAN IS MAIZBROD!!!!!!!!

zum Seitenanfang zum Seitenende Profil || Suche
005
23.06.2001, 15:25
TheTinySteini



Jo, denn mit deinem ursprünglichen Code hat er immer die zweite Animation abgespielt, weil du das so programmiert hast!
m_iSwing++ % 1 ist nämlich IMMER null, denn der Rest von einer ganzen Zahl geteilt durch 1 ist immer null. Und + 1 ist es also immer 1, damit wurde nur die zweite anim abgespielt. Logisch, oder?

--

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

zum Seitenanfang zum Seitenende Profil || Suche