User:Raven: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 6: | Line 6: | ||
//================================================= | //================================================= | ||
// Authorizer: This Trigger can replace | // Authorizer: This Trigger can replace | ||
// KeyMover (as base I use KeyMover | // KeyMover (as base I use KeyMover avidible | ||
// http://chimeric.beyondunreal.com/tutorials/tut11.html). | // form http://chimeric.beyondunreal.com/tutorials/tut11.html). | ||
//================================================= | //================================================= | ||
// by Raven | // by Raven |
Revision as of 03:42, 20 March 2008
This is very old script, I've created for Skaarj Evasion TC (RIP). As a base was used KeyMover tutorial from Chimeric. You can use it in your map and it works online. As a key can be used everything, but I suggest to use only inventory based keys.
<uscript> //================================================= // 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 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) { key = Pawn(Other).FindInventoryType(KeyClass);
if (key != none && Event != ) 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."
}
</uscript>