Authorizer - trigger na klucze Zobacz pojedynczy post
Opis
Jest to zwykły trigger na klucze. W celu otwarcia go, gracz musi mieć odpowiedni klucz. Klasa klucza musi być podklasą Inventory.
Zmienne
Widoczne
class KeyClass: klasa klucza (najlepiej z inventory)
bool bDestroyKey: jeśli wartość zmiennej będzie równa true, to klucz zostanie zniszczony zaraz po wejściu gracza na trigger
bool bCheckKeyOnceOnly: jeśli wartość zmiennej będzie równa true, to trigger stanie się normalny zaraz po znalezieniu klucza
bool bShowSuccessMessage: jeśli wartość zmiennej będzie równa true, to trigger będzie pokazywał informacje o znalezieniu klucza
bool bShowFailtureMessage: jeśli wartość zmiennej będzie równa true, to trigger będzie pokazywał informacje o braku klucza
localized String SuccessMessage: wiadomość o znalezieniu klucza
localized String FailtureMessage: wiadomość o braku klucza
Ukryte
bool bWasOpened: przyjmuje wartość true tylko jeśli klucz został znaleziony i zmienna bCheckKeyOnceOnly ma także wartość true
Unreal Script: | //================================================= // Authorizer: This Trigger can replace // KeyMover (as base I use KeyMover avidible //================================================= // by Raven // for The Chosen One SP mod //================================================= class Authorizer extends Trigger; var() class< Inventory > KeyClass; var() bool bDestroyKey; var() bool bCheckKeyOnceOnly; var() bool bShowSuccessMessage; var() bool bShowFailtureMessage; var() localized String SuccessMessage; var() localized String FailtureMessage; var bool bWasOpened; replication { // Variables the server should send to the client. reliable if( Role==ROLE_Authority ) bWasOpened; } function Touch( actor Other ) { local Inventory key; local actor A; if (Other.IsA('Pawn') && KeyClass != none && !bWasOpened) { key = Pawn(Other).FindInventoryType(KeyClass); if (key != none && Event != '' && !bCheckKeyOnceOnly) foreach AllActors( class 'Actor', A, Event ) A.Trigger( Other, Other.Instigator ); if(bDestroyKey) if(!bWasOpened) Pawn(Other).DeleteInventory(key); if(bCheckKeyOnceOnly) bWasOpened=true; } if(bWasOpened && Event != '') foreach AllActors( class 'Actor', A, Event ) A.Trigger( Other, Other.Instigator ); if(bShowSuccessMessage && PlayerPawn(Other) != none) PlayerPawn(Other).ClientMessage(SuccessMessage); if(bShowFailtureMessage && !bWasOpened) PlayerPawn(Other).ClientMessage(FailtureMessage); } defaultproperties { bShowFailtureMessage=True SuccessMessage="Access granded." FailtureMessage="You need a key to open this door." }
|
|