Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RageHookReturn OnCBaseDoor__Touch(void *&pDoor, void*&pOther)
- {
- // dbg("OnCBaseDoor__Touch 1");
- CKzDoor*kDoor = KzDoor(pDoor);
- if( !kDoor->IsBhopBlock() )
- {
- // dbg("OnCBaseDoor__Touch !IsBhopBlock");
- return RageHookIgnored;
- }
- if( !IsPlayer(pOther) )
- {
- // dbg("OnCBaseDoor__Touch !IsPlayer");
- return RageHookSupercede;
- }
- CKzPlayer*kPlayer = KzPlayer(pOther);
- if( !kPlayer->IsAlive() )
- {
- // dbg("OnCBaseDoor__Touch !IsAlive");
- return RageHookSupercede;
- }
- edict_t*eDoor = kDoor->GetEdict();
- edict_t*ePlayer = kPlayer->GetEdict();
- entvars_t*pevPlayer = &ePlayer->v;
- if( pevPlayer->groundentity != eDoor )
- {
- // dbg("OnCBaseDoor__Touch !groundent");
- return RageHookSupercede;
- }
- int index = kPlayer->GetIndex();
- float flTouchedTime = gpGlobals->time - kDoor->GetTouchedTime( index );
- if( flTouchedTime > kDoor->GetMaxStandOnTime() )
- {
- if( flTouchedTime > kDoor->GetMovementTime() )
- {
- // dbg("OnCBaseDoor__Touch > MovementTime");
- kDoor->SetTouchedTime( index );
- return RageHookSupercede;
- }
- int index = kPlayer->GetIndex();
- kPlayer->TeleportPlayer(KzOrigin[index]);
- // dbg("OnCBaseDoor__Touch TELEPORTED");
- return RageHookSupercede;
- }
- if( kPlayer->GetLastTouchedBhopBlock() != eDoor )
- {
- kPlayer->SetLastTouchedBhopBlock( eDoor );
- kDoor->SetTouchedTime( index );
- }
- // dbg("OnCBaseDoor__Touch 2");
- return RageHookSupercede;
- }
Advertisement
Add Comment
Please, Sign In to add comment