Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 28th, 2012  |  syntax: C++  |  size: 1.42 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. RageHookReturn OnCBaseDoor__Touch(void *&pDoor, void*&pOther)
  2. {
  3.         // dbg("OnCBaseDoor__Touch 1");
  4.         CKzDoor*kDoor = KzDoor(pDoor);
  5.         if( !kDoor->IsBhopBlock() )
  6.         {
  7.                 // dbg("OnCBaseDoor__Touch !IsBhopBlock");
  8.                 return RageHookIgnored;
  9.         }
  10.  
  11.         if( !IsPlayer(pOther) )
  12.         {
  13.                 // dbg("OnCBaseDoor__Touch !IsPlayer");
  14.                 return RageHookSupercede;
  15.         }
  16.  
  17.         CKzPlayer*kPlayer = KzPlayer(pOther);
  18.         if( !kPlayer->IsAlive() )
  19.         {
  20.                 // dbg("OnCBaseDoor__Touch !IsAlive");
  21.                 return RageHookSupercede;
  22.         }
  23.  
  24.         edict_t*eDoor = kDoor->GetEdict();
  25.         edict_t*ePlayer = kPlayer->GetEdict();
  26.         entvars_t*pevPlayer = &ePlayer->v;
  27.  
  28.         if( pevPlayer->groundentity != eDoor )
  29.         {
  30.                 // dbg("OnCBaseDoor__Touch !groundent");
  31.                 return RageHookSupercede;
  32.         }
  33.  
  34.         int index = kPlayer->GetIndex();  
  35.  
  36.         float flTouchedTime = gpGlobals->time - kDoor->GetTouchedTime( index );
  37.         if( flTouchedTime > kDoor->GetMaxStandOnTime() )
  38.         {
  39.                 if( flTouchedTime > kDoor->GetMovementTime() )
  40.                 {
  41.                         // dbg("OnCBaseDoor__Touch > MovementTime");
  42.                         kDoor->SetTouchedTime( index );
  43.                         return RageHookSupercede;
  44.                 }
  45.                
  46.                 int index = kPlayer->GetIndex();
  47.                 kPlayer->TeleportPlayer(KzOrigin[index]);
  48.  
  49.                 // dbg("OnCBaseDoor__Touch TELEPORTED");
  50.                 return RageHookSupercede;
  51.         }
  52.         if( kPlayer->GetLastTouchedBhopBlock() != eDoor )
  53.         {
  54.                 kPlayer->SetLastTouchedBhopBlock( eDoor );
  55.                 kDoor->SetTouchedTime( index );
  56.         }
  57.  
  58.         // dbg("OnCBaseDoor__Touch 2");
  59.         return RageHookSupercede;
  60. }