diff --git a/releases/3.2.0/source/dlls/player.cpp b/releases/3.2.0/source/dlls/player.cpp index eb86308..a06d686 100644 --- a/releases/3.2.0/source/dlls/player.cpp +++ b/releases/3.2.0/source/dlls/player.cpp @@ -2934,7 +2934,7 @@ void CBasePlayer::PostThink() // EMIT_SOUND(ENT(pev), CHAN_BODY, "player/pl_wade1.wav", 1, ATTN_NORM); } // skulks, lerks, fades and jetpackers don't take falling damage - else if ((m_flFallVelocity > PLAYER_MAX_SAFE_FALL_SPEED) && (this->pev->iuser3 != AVH_USER3_ALIEN_PLAYER1) && (this->pev->iuser3 != AVH_USER3_ALIEN_PLAYER3) && (this->pev->iuser3 != AVH_USER3_ALIEN_PLAYER4) && (!GetHasUpgrade(this->pev->iuser4, MASK_UPGRADE_7) || !(this->pev->iuser3 == AVH_USER3_MARINE_PLAYER)) ) + else if ((m_flFallVelocity > PLAYER_MAX_SAFE_FALL_SPEED) && (this->pev->iuser3 != AVH_USER3_ALIEN_PLAYER1) && (this->pev->iuser3 != AVH_USER3_ALIEN_PLAYER3) && (this->pev->iuser3 != AVH_USER3_ALIEN_PLAYER4) && (this->pev->iuser3 != AVH_USER3_ALIEN_EMBRYO) && (!GetHasUpgrade(this->pev->iuser4, MASK_UPGRADE_7) || !(this->pev->iuser3 == AVH_USER3_MARINE_PLAYER)) ) {// after this point, we start doing damage float flFallDamage = g_pGameRules->FlPlayerFallDamage( this ); diff --git a/releases/3.2.0/source/mod/AvHEntities.cpp b/releases/3.2.0/source/mod/AvHEntities.cpp index cf7bd88..67398ae 100644 --- a/releases/3.2.0/source/mod/AvHEntities.cpp +++ b/releases/3.2.0/source/mod/AvHEntities.cpp @@ -1700,7 +1700,7 @@ void AvHWebStrand::Setup(const Vector& inPointOne, const Vector& inPointTwo) this->SetScrollRate( 0 ); this->SetFrame(0); //this->SetBrightness( 64 ); - this->SetBrightness( 8 ); + this->SetBrightness( 12 ); this->pev->classname = MAKE_STRING(kesTeamWebStrand); this->pev->rendermode = kRenderNormal; diff --git a/releases/3.2.0/source/mod/AvHPlayer.cpp b/releases/3.2.0/source/mod/AvHPlayer.cpp index 6d231fe..137a43c 100644 --- a/releases/3.2.0/source/mod/AvHPlayer.cpp +++ b/releases/3.2.0/source/mod/AvHPlayer.cpp @@ -1144,9 +1144,20 @@ bool AvHPlayer::ExecuteAlienMorphMessage(AvHMessageID inMessageID, bool inInstan { int a = 0; } - - this->Evolve(inMessageID, inInstantaneous); - theMessageExecuted = true; + TraceResult tr; + Vector vecStart, vecEnd; + VectorCopy(this->pev->origin, vecStart); + VectorCopy(this->pev->origin, vecEnd); + vecEnd[2]-=100; + UTIL_TraceLine(vecStart, vecEnd, ignore_monsters, dont_ignore_glass, NULL, &tr); + + if ( tr.vecPlaneNormal[2] > 0.7 ) { + this->Evolve(inMessageID, inInstantaneous); + theMessageExecuted = true; + } + else { + this->SendMessage(kSurfaceTooSteep); + } } else { diff --git a/releases/3.2.0/source/mod/AvHTitles.h b/releases/3.2.0/source/mod/AvHTitles.h index a37bdf6..791d088 100644 --- a/releases/3.2.0/source/mod/AvHTitles.h +++ b/releases/3.2.0/source/mod/AvHTitles.h @@ -81,6 +81,7 @@ #define kMustGestateUp "MustGestateUp" #define kMustGestateOnGround "MustGestateOnGround" #define kNotWhileDigesting "NotWhileDigesting" +#define kSurfaceTooSteep "SurfaceTooSteep" #define kNoReadyRoomWhileDigested "NoReadyRoomWhileDigested" #define kNeedMoreRoomToGestate "NeedMoreRoomToGestate" #define kNeedOneHiveToGestate "NeedOneHiveToGestate"