home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / Engine / Classes / LineOfSightTrigger.uc < prev    next >
Text File  |  2003-06-23  |  2KB  |  48 lines

  1. //=============================================================================
  2. // LineOfSightTrigger
  3. // triggers its event when player looks at it from close enough
  4. // ONLY WORKS IN SINGLE PLAYER (or for the local client on a listen server)
  5. // You could implement a multiplayer version using a tick function and PlayerCanSeeMe(),
  6. // but that would have more performance cost
  7. //=============================================================================
  8. class LineOfSightTrigger extends Triggers
  9.     native;
  10.  
  11. var() float MaxViewDist;    // maximum distance player can be from this trigger to trigger it
  12. var   float OldTickTime;
  13. var() bool  bEnabled;
  14. var      bool  bTriggered;        
  15. var() name    SeenActorTag;    // tag of actor which triggers this trigger when seen
  16. var      actor SeenActor;
  17. var() int MaxViewAngle;        // how directly a player must be looking at SeenActor center (in degrees)
  18. var float RequiredViewDir;    // how directly player must be looking at SeenActor - 1.0 = straight on, 0.75 = barely on screen
  19.  
  20. function PostBeginPlay()
  21. {
  22.     Super.PostBeginPlay();
  23.  
  24.     RequiredViewDir = cos(MaxViewAngle * PI/180);
  25.     if ( SeenActorTag != '' )
  26.         ForEach AllActors(class'Actor',SeenActor,SeenActorTag)
  27.             break;
  28. }
  29.  
  30. event PlayerSeesMe(PlayerController P)
  31. {
  32.     TriggerEvent(Event,self,P.Pawn);
  33.     bTriggered = true;
  34. }
  35.  
  36. function Trigger( actor Other, Pawn EventInstigator )
  37. {
  38.     bEnabled = true;
  39. }
  40.  
  41. defaultproperties
  42. {
  43.     MaxViewDist=+3000.0
  44.     bEnabled=true
  45.     bCollideActors=false
  46.     MaxViewAngle=15
  47. }
  48.