I'm a doctor, not a mechanic
Difference between revisions of "UE1:Authorizer"
From Unreal Wiki, The Unreal Engine Documentation Site
(Thanks Raven!) |
(→Source Code) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | __TOC__ | |
− | + | ==About== | |
+ | This is very old script I've created to Skaarj Evasion TC (RIP). As a base was used KeyMover tutorial from [http://chimeric.beyondunreal.com/tutorials/tut11.html Chimeric]. | ||
+ | ==Properties== | ||
+ | ===Visible=== | ||
+ | ; class<inventory> KeyClass : key class to search in players inventory | ||
+ | ; bool bDestroyKey : should key be deleted from inventory | ||
+ | ; bool bCheckKeyOnceOnly : if true and key was found, this class starts acting like standard trigger | ||
+ | ; bool bShowSuccessMessage : if true will show message when key was found | ||
+ | ; bool bShowFailtureMessage : if true will show message when key can not be found | ||
+ | ; localized String SuccessMessage : message visible when player has a key | ||
+ | ; localized String FailtureMessage : message visible when player don't have a key | ||
+ | |||
+ | ===Hidden=== | ||
+ | ; bool bWasOpened : true if key was found and bCheckKeyOnceOnly is set to true | ||
+ | |||
+ | ==Source Code== | ||
+ | {{Infobox class | ||
+ | | class = Authorizer | ||
+ | | custom = yes | ||
+ | | parent1 = Triggers | ||
+ | | parent2 = Actor | ||
+ | }} | ||
<uscript> | <uscript> | ||
//================================================= | //================================================= | ||
Line 10: | Line 31: | ||
//================================================= | //================================================= | ||
// by Raven | // by Raven | ||
− | // http://turniej.unreal.pl | + | // http://turniej.unreal.pl/rp |
− | / | + | |
// for The Chosen One SP mod | // for The Chosen One SP mod | ||
//================================================= | //================================================= | ||
− | class Authorizer extends | + | class Authorizer extends Trigger; |
− | + | var() class<inventory> KeyClass; | |
− | + | var() bool bDestroyKey; | |
− | var() class | + | var() bool bCheckKeyOnceOnly; |
− | var() bool | + | var() bool bShowSuccessMessage; |
− | var() bool | + | var() bool bShowFailtureMessage; |
− | var() bool | + | |
− | var() bool | + | |
var() localized String SuccessMessage; | var() localized String SuccessMessage; | ||
var() localized String FailtureMessage; | var() localized String FailtureMessage; | ||
− | var bool | + | var bool bWasOpened; |
− | + | ||
replication | replication | ||
{ | { | ||
// Variables the server should send to the client. | // Variables the server should send to the client. | ||
− | reliable if( Role==ROLE_Authority ) | + | reliable if( Role==ROLE_Authority ) |
+ | bWasOpened; | ||
} | } | ||
function Touch( actor Other ) | 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( PlayerPawn(Other) != none ) | |
− | + | { | |
− | + | if( bShowSuccessMessage && bWasOpened ) | |
− | + | PlayerPawn(Other).ClientMessage(SuccessMessage); | |
− | + | if( bShowFailtureMessage && !bWasOpened ) | |
− | + | PlayerPawn(Other).ClientMessage(FailtureMessage); | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
defaultproperties | defaultproperties | ||
{ | { | ||
− | + | bShowFailtureMessage=True | |
SuccessMessage="Access granded." | SuccessMessage="Access granded." | ||
FailtureMessage="You need a key to open this door." | FailtureMessage="You need a key to open this door." | ||
− | |||
} | } | ||
− | |||
− | + | </uscript> | |
− | + |
Latest revision as of 01:30, 5 August 2010
About[edit]
This is very old script I've created to Skaarj Evasion TC (RIP). As a base was used KeyMover tutorial from Chimeric.
Properties[edit]
Visible[edit]
- class<inventory> KeyClass
- key class to search in players inventory
- bool bDestroyKey
- should key be deleted from inventory
- bool bCheckKeyOnceOnly
- if true and key was found, this class starts acting like standard trigger
- bool bShowSuccessMessage
- if true will show message when key was found
- bool bShowFailtureMessage
- if true will show message when key can not be found
- localized String SuccessMessage
- message visible when player has a key
- localized String FailtureMessage
- message visible when player don't have a key
Hidden[edit]
- bool bWasOpened
- true if key was found and bCheckKeyOnceOnly is set to true
Source Code[edit]
//================================================= // Authorizer: This Trigger can replace // KeyMover (as base I use KeyMover avidible // form http://chimeric.beyondunreal.com/tutorials/tut11.html). //================================================= // by Raven // http://turniej.unreal.pl/rp // for The Chosen One SP mod //================================================= class Authorizer extends Trigger; var() class<inventory> KeyClass< SEMI > 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( PlayerPawn(Other) != none ) { if( bShowSuccessMessage && bWasOpened ) 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." }