Core.Object | +--Engine.Actor | +--Engine.Triggers | +--UnrealShare.TranslatorEvent
string
AltMessage
Hint
String
M_NewMessage
M_TransMessage
Message
sound
NewMessageSound
float
ReTriggerDelay
Translator
Trans
bHitOnce,
bHitDelay
bool
bTriggerAltMessage
bTriggerOnly
void
Timer()
Touch(Actor Other)
Trigger(Actor Other, Pawn EventInstigator)
UnTouch(Actor Other)
UnTrigger(Actor Other, Pawn EventInstigator)
00001 //============================================================================= 00002 // TranslatorEvent. 00003 //============================================================================= 00004 class TranslatorEvent extends Triggers; 00005 00006 #exec AUDIO IMPORT FILE="Sounds\Pickups\TransA3.WAV" NAME="TransA3" GROUP="Pickups" 00007 #exec Texture Import File=Textures\Message.pcx Name=S_Message Mips=Off Flags=2 00008 00009 // Human readable triggering message. 00010 var() localized string Message; 00011 var() localized string AltMessage; 00012 var() localized string Hint; 00013 var() bool bTriggerOnly; 00014 var() sound NewMessageSound; 00015 var() bool bTriggerAltMessage; 00016 var bool bHitOnce, bHitDelay; 00017 var() float ReTriggerDelay; //minimum time before trigger can be triggered again 00018 var float TriggerTime; 00019 00020 var Translator Trans; 00021 00022 var() localized String M_NewMessage; 00023 var() localized String M_TransMessage; 00024 00025 function Trigger( actor Other, pawn EventInstigator ) 00026 { 00027 local Actor Targets; 00028 local string Temp; 00029 00030 if (bTriggerAltMessage) 00031 { 00032 Temp = Message; 00033 Message = AltMessage; 00034 AltMessage = Temp; 00035 bHitOnce = False; 00036 foreach TouchingActors(class'Actor', Targets) 00037 if (Targets == Other) Touch(Other); 00038 } 00039 else Touch(Other); 00040 } 00041 00042 function UnTrigger( actor Other, pawn EventInstigator ) 00043 { 00044 UnTouch(Other); 00045 } 00046 00047 00048 function Timer() 00049 { 00050 bHitDelay=False; 00051 } 00052 00053 function Touch( actor Other ) 00054 { 00055 local inventory Inv; 00056 00057 if (PlayerPawn(Other)==None || bHitDelay) Return; 00058 00059 if (Hint=="" && Message=="") Return; 00060 00061 if ( ReTriggerDelay > 0 ) 00062 { 00063 if ( Level.TimeSeconds - TriggerTime < ReTriggerDelay ) 00064 return; 00065 TriggerTime = Level.TimeSeconds; 00066 } 00067 00068 for( Inv=Other.Inventory; Inv!=None; Inv=Inv.Inventory ) 00069 if (Translator(Inv)!=None) 00070 { 00071 Translator(Inv).Hint = Hint; 00072 Translator(Inv).bShowHint = False; 00073 if (Message=="") Return; 00074 Trans = Translator(Inv); 00075 if (!bHitOnce) Translator(Inv).bNewMessage = true; 00076 else Translator(Inv).bNotNewMessage = true; 00077 Translator(Inv).NewMessage = Message; 00078 if (!bHitOnce) Pawn(Other).ClientMessage(M_NewMessage); 00079 else Pawn(Other).ClientMessage(M_TransMessage); 00080 bHitOnce = True; 00081 SetTimer(0.3,False); 00082 bHitDelay = True; 00083 PlaySound(NewMessageSound, SLOT_Misc); 00084 Break; 00085 } 00086 00087 } 00088 00089 function UnTouch( actor Other ) 00090 { 00091 if (Trans!=None) { 00092 Trans.bNewMessage = False; 00093 Trans.bNotNewMessage = False; 00094 if( Trans.IsInState('Activated')) Trans.GoToState('Deactivated'); 00095 } 00096 bHitDelay=False; 00097 } 00098 00099 defaultproperties 00100 { 00101 NewMessageSound=Sound'UnrealShare.Pickups.TransA3' 00102 ReTriggerDelay=0.250000 00103 M_NewMessage="New Translator Message" 00104 M_TransMessage="Translator Message" 00105 Texture=Texture'UnrealShare.S_Message' 00106 }