From cba7cd4c2f1cd512afed364054c8b5bd4095193e Mon Sep 17 00:00:00 2001 From: Night Owl Date: Sun, 2 Sep 2018 09:27:53 +0500 Subject: [PATCH] Add trigger_lockedmission implementation. --- dlls/triggers.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/dlls/triggers.cpp b/dlls/triggers.cpp index 1740e123..7276c9c0 100644 --- a/dlls/triggers.cpp +++ b/dlls/triggers.cpp @@ -27,6 +27,7 @@ #include "saverestore.h" #include "trains.h" // trigger_camera has train functionality #include "gamerules.h" +#include "shake.h" #define SF_TRIGGER_PUSH_START_OFF 2//spawnflag that makes trigger_push spawn turned OFF #define SF_TRIGGER_HURT_TARGETONCE 1// Only fire hurt target once @@ -2373,6 +2374,41 @@ void CTriggerKicker::Think() } } +class CTriggerLockedMission : public CBaseDelay +{ +public: + void Spawn(); + void Think(); +}; + +LINK_ENTITY_TO_CLASS( trigger_lockedmission, CTriggerLockedMission ) + +void CTriggerLockedMission::Spawn() +{ + pev->nextthink = 0; + pev->message = MAKE_STRING( "DYLOCKED" ); +} + +void CTriggerLockedMission::Think() +{ + CBasePlayer *pPlayer = 0; + while( true ) + { + pPlayer = (CBasePlayer*)UTIL_FindEntityByClassname( pPlayer, "player" ); + if( !pPlayer ) + break; + if( !FNullEnt( FIND_CLIENT_IN_PVS( pPlayer->edict() ) ) ) + { + pPlayer->EnableControl( FALSE ); + } + else + break; + } + UTIL_ScreenFadeAll( g_vecZero, 7.0f, 3.0f, 255, FFADE_OUT ); + UTIL_ShowMessageAll( STRING( pev->message ) ); + pev->nextthink = gpGlobals->time + 7.0f; +} + // this is a really bad idea. class CTriggerChangeTarget : public CBaseDelay {