marikcool
Житель форума
Дата регистрации : Jul 2011
Проживает : kz
Сообщений : 1522
Возраст: 39
Рейтинг
[кратко]
Пользователи:
-12.0 (2 )
Нарушения:
-3.7 (? )
Сообщения:
0.1 (Метки )
Регистрация:
8.4
Цитата:
Ku2zoff писал:
Товарищи, кто вставлял в свои моды код девятистороннего блендинга, скажите, плиз, как вы побороли отсутствие анимации прыжка у ног.
никак не бороли. копипаста рулит
C++ Source Code:
1 void CBasePlayer::SetAnimation(PLAYER_ANIM PlayerAnim)
3 float flSpeed = pev->velocity.Length2D();
4 if (pev->flags & FL_FROZEN)
7 PlayerAnim = PLAYER_IDLE;
10 m_IdealActivity = ACT_WALK;
12 if (PlayerAnim == PLAYER_IDLE || PlayerAnim == PLAYER_WALK)
14 if (pev->flags & FL_SWIM || m_Activity != ACT_HOP || m_Activity != ACT_LEAP)
15 m_IdealActivity = pev->waterlevel <= 1 ? ACT_WALK : flSpeed ? ACT_SWIM : ACT_HOVER;
17 m_IdealActivity = m_Activity;
20 else if (PlayerAnim != PLAYER_DIE)
22 if (m_Activity != ACT_SWIM && m_Activity != ACT_DIESIMPLE && m_Activity != ACT_HOVER)
24 if (PlayerAnim == PLAYER_JUMP) m_IdealActivity = ACT_HOP;
25 else if (PlayerAnim == PLAYER_ATTACK1) m_IdealActivity = ACT_RANGE_ATTACK1;
26 else if (PlayerAnim == PLAYER_ATTACK1_RIGHT) m_IdealActivity = ACT_RANGE_ATTACK2;
27 else if (PlayerAnim == PLAYER_RELOAD) m_IdealActivity = ACT_RELOAD;
29 else m_IdealActivity = m_Activity;
31 else m_IdealActivity = ACT_DIESIMPLE;
35 if (m_IdealActivity == ACT_HOP)
37 if (m_Activity == m_IdealActivity) return ;
38 if (m_Activity == ACT_RANGE_ATTACK1)
39 sprintf(szAnimation, "ref_shoot_%s" , m_szAnimExtention);
40 else if (m_Activity == ACT_RANGE_ATTACK2) sprintf(szAnimation, "ref_shoot2_%s" , m_szAnimExtention);
41 else if (m_Activity == ACT_RELOAD) sprintf(szAnimation, "ref_reload_%s" , m_szAnimExtention);
42 else sprintf(szAnimation, "ref_aim_%s" , m_szAnimExtention);
44 if ((iAnimDesired = LookupSequence(szAnimation)) == -1) iAnimDesired = 0;
46 if (pev->sequence != iAnimDesired || !m_fSequenceLoops) pev->frame = 0;
48 m_Activity = m_IdealActivity;
49 pev->gaitsequence = LookupActivity(m_Activity);
53 if (m_IdealActivity == ACT_RELOAD)
55 if (pev->flags & FL_DUCKING && pev->flags & FL_ONGROUND)
56 sprintf(szAnimation, "crouch_reload_%s" , m_szAnimExtention);
58 sprintf(szAnimation, "ref_reload_%s" , m_szAnimExtention);
60 if ((iAnimDesired = LookupSequence(szAnimation)) == -1) iAnimDesired = 0;
61 if (pev->sequence != iAnimDesired || !m_fSequenceLoops) pev->frame = 0;
63 m_Activity = m_IdealActivity;
65 else if (m_IdealActivity == ACT_WALK)
68 if ((m_Activity != ACT_RANGE_ATTACK1 && m_Activity != ACT_RANGE_ATTACK2 && m_Activity != ACT_RELOAD) || m_fSequenceFinished)
70 if (pev->flags & FL_DUCKING && pev->flags & FL_ONGROUND)
71 sprintf(szAnimation, "crouch_aim_%s" , m_szAnimExtention);
73 sprintf(szAnimation, "ref_aim_%s" , m_szAnimExtention);
75 if ((iAnimDesired = LookupSequence(szAnimation)) == -1)
78 m_Activity = m_IdealActivity;
79 pev->gaitsequence = LookupActivity(ACT_RUN);
82 iAnimDesired = pev->sequence;
85 else if (m_IdealActivity == ACT_DIESIMPLE)
87 if (!(pev->flags & FL_DUCKING))
89 switch (m_LastHitGroup)
91 case HITGROUP_GENERIC:
93 switch (RANDOM_LONG(0, 8))
95 case 0: iAnimDesired = LookupActivity(ACT_DIE_HEADSHOT); break ;
96 case 2: iAnimDesired = LookupActivity(ACT_DIE_BACKSHOT); break ;
97 case 4: iAnimDesired = LookupActivity(ACT_DIEBACKWARD); break ;
98 case 5: iAnimDesired = LookupActivity(ACT_DIEFORWARD); break ;
99 case 8: iAnimDesired = LookupActivity(ACT_DIE_HEADSHOT); break ;
100 case 6:iAnimDesired = LookupActivity(ACT_DIE_CHESTSHOT); break ;
102 case 7: iAnimDesired = LookupActivity(ACT_DIE_GUTSHOT); break ;
103 default : iAnimDesired = LookupActivity(ACT_DIESIMPLE); break ;
107 case HITGROUP_HEAD: iAnimDesired = LookupActivity(ACT_DIE_HEADSHOT); break ;
108 case HITGROUP_CHEST: iAnimDesired = LookupActivity(ACT_DIE_CHESTSHOT); break ;
109 case HITGROUP_STOMACH: iAnimDesired = LookupActivity(ACT_DIE_GUTSHOT); break ;
110 case HITGROUP_LEFTARM: iAnimDesired = LookupSequence("left" ); break ;
111 case HITGROUP_RIGHTARM: iAnimDesired = LookupSequence("right" ); break ;
112 default : iAnimDesired = LookupActivity(ACT_DIESIMPLE);
116 else iAnimDesired = LookupSequence("crouch_die" );
118 if (iAnimDesired == -1) iAnimDesired = 0;
120 m_Activity = m_IdealActivity;
121 if (pev->sequence != iAnimDesired)
123 pev->gaitsequence = NULL;
124 pev->sequence = iAnimDesired;
132 if (pev->flags & FL_DUCKING && pev->flags & FL_ONGROUND) sprintf(szAnimation, m_IdealActivity == ACT_RANGE_ATTACK1 ? "crouch_shoot_%s" : "crouch_shoot2_%s" , m_szAnimExtention);
133 else sprintf(szAnimation, m_IdealActivity == ACT_RANGE_ATTACK1 ? "ref_shoot_%s" : "ref_shoot2_%s" , m_szAnimExtention);
135 if ((iAnimDesired = LookupSequence(szAnimation)) == -1) iAnimDesired = 0;
137 pev->framerate = 1.5;
138 m_Activity = m_IdealActivity;
141 if (!(pev->flags & FL_ONGROUND))
143 if (flSpeed > 180) pev->gaitsequence = LookupActivity(ACT_LEAP);
144 else pev->gaitsequence = LookupActivity(ACT_HOP);
146 else if (pev->flags & FL_DUCKING)
148 if (!flSpeed) pev->gaitsequence = LookupActivity(ACT_CROUCHIDLE);
149 else pev->gaitsequence = LookupActivity(ACT_CROUCH);
151 else if (flSpeed > 180) pev->gaitsequence = LookupActivity(ACT_RUN);
152 else if (flSpeed > 0) pev->gaitsequence = LookupActivity(ACT_WALK);
153 else pev->gaitsequence = LookupActivity(ACT_IDLE);
154 if (pev->sequence == iAnimDesired) return ;
156 pev->sequence = iAnimDesired;
Сообщить модератору | IP: Записан
Сообщение: 92739