[Setup] Product=InvisibleSpawn Version=100 Archive=InvisibleSpawn.umod SrcPath=. MasterPath=.. Requires=UnrealTournament400Requirement Group=SetupGroup Group=umodINIGroup Group=InvisibleSpawnGroup Group=umodIncludeFilesGroup [UnrealTournament400Requirement] Product=UnrealTournament Version=400 [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=629,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=468,Flags=3) [umodINIGroup] Ini=System\UnrealTournament.ini,InvisibleSpawn.InvisibleSpawn.InvisTime=20 [InvisibleSpawnGroup] File=(Src=System\invisiblespawn.int,Size=256) File=(Src=System\InvisibleSpawn.u,Size=4983) [umodIncludeFilesGroup] File=(Src=System\InvisibleSpawn.txt,Size=978) [Setup] LocalProduct=InvisibleSpawn ReadMe=System\InvisibleSpawn.txt SetupWindowTitle=InvisibleSpawn Setup AutoplayWindowTitle=InvisibleSpawn Options ProductURL=None VersionURL=None Developer=William 'Ntruder' Chenoweth DeveloperURL=None [UnrealTournament400Requirement] LocalProduct=UnrealTournament ProductURL=http://www.unrealtournament.com/ VersionURL=http://unreal.epicgames.com/ Developer=Epic Games, Inc. DeveloperURL=http://www.epicgames.com/ [Public] Object=(Name=InvisibleSpawn.InvisibleSpawn,Class=Class,MetaClass=Engine.Mutator,Description="Invisible Spawn,Players are invisible when spawned.") Object=(Name=InvisibleSpawn.InvisibleSpawnMenuItem,Class=Class,MetaClass=UMenu.UMenuModMenuItem) *DI@^.``L9}qINoneInvisibleSpawnCoreSystemUWindowModifyPlayerCreatedEngineCreateControl SetHelpTextSetNumericOnlyInvisibleSpawnConfigClientInvisibleSpawnConfigWindow ClientClass MenuCaptionSetMaxLengthExecuteUMenu MenuHelpSetText WindowTitle ActivateGiveTo GetValueNotify SetValueInvisibleSpawnMenuItemOwner RespawnTimeOtherObjectPropertyFloatPropertyBoolProperty bHeldItem NextMutatorInvCChargeStaticSaveConfigE IntProperty FunctionUWindowEditControlUWindowPulldownMenuItemUWindowDialogClientWindowUWindowFramedWindowUWindowRootWindowUWindowDialogControlUWindowWindowUWindowPulldownMenuSetSizeCreateWindow ScriptTextAlignWinLeftEditBoxWidth WinHeight WinWidthWinTopRootPawnMutator InventoryClassUMenuModMenuItem MenuItemBotpackUT_invisibilityBytePropertyPackage TextBufferObject InvisTime(쟈1pj@j@j@j@j@1p@ 2?Mo o ]InvisibleSpawn Config  /T~(쟅t(쟅ttttttt(sclass InvisibleSpawnMenuItem expands UMenuModMenuItem; function Execute() { MenuItem.Owner.Root.CreateWindow(class'InvisibleSpawnConfigWindow', 10, 10, 150, 100); } ^class InvisibleSpawnConfigWindow expands UWindowFramedWindow; function Created() { Super.Created(); SetSize(140, 50); WinLeft = (Root.WinWidth - WinWidth) / 2; WinTop = (Root.WinHeight - WinHeight) / 2; } ^class InvisibleSpawnConfigClient expands UWindowDialogClientWindow; var UWindowEditControl InvisTime; function Created() { Super.Created(); InvisTime = UWindowEditControl(CreateControl(class'UWindowEditControl', 10, 10, 120, 1)); InvisTime.SetText("Invisible Time"); InvisTime.SetHelpText("Time a freshly spawned player is invisible"); InvisTime.SetNumericOnly(True); InvisTime.SetMaxLength(3); InvisTime.EditBoxWidth = 25; InvisTime.Align = TA_Left; InvisTime.SetValue(string(class'InvisibleSpawn'.default.InvisTime)); // You could of course add heaps of controls in here. // See the UMenu and UTMenu for a billion examples. } function Notify(UWindowDialogControl C, byte E) { switch(E) { case DE_Change: switch(C) { case InvisTime: class'InvisibleSpawn'.default.InvisTime = int(InvisTime.GetValue()); break; } class'InvisibleSpawn'.static.StaticSaveConfig(); break; } } ZX CHB?,?, {class InvisibleSpawn expands Mutator; var globalconfig int InvisTime; function ModifyPlayer(Pawn Other) { // called by GameInfo.RestartPlayer() local Inventory Inv; inv = Spawn(class'UT_Invisibility'); if( inv != None ) { inv.charge = InvisTime; inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Other); inv.Activate(); } if ( NextMutator != None ) NextMutator.ModifyPlayer(Other); } .  A AB?Invisible Time2 Time a freshly spawned player is invisible ',A$S   W R$ = J@  U   2ل7ͷ;aGV撒o ]InvisibleSpawn Options]$#Set the options for InvisibleSpawn a uw*-' w*  S<  A ACB EEE?0?*?>???=?G?)?@?-?E?F;?,?.?/98)"?+)(%6:?1?< !))2)&)7D5)3?D?(A)EB?CHi#vKCH NZ Dg Sk'~$K44~X44iV44i"Sh144F{2JA:UK=s`>vSAFIC---------------------- About InvisibleSpawn ---------------------- This is just a simple Mutator that makes respawning players invisible for a configurable time. It is intended for multiplayer games because the bots seem to be able to see you when you're invisible most of the time anyway. On certain levels, "Faceless Worlds" in particular, I have respawned with my head practically on its way to the ground already from sniper fire (btw - "Facless Worlds" is one of my favorite levels). In other instances on smaller boards there are a few individuals who, once properly armed and juiced with life/armor, are really good at circling the respawning positions and picking off unarmored and poorly-armed players. Hopefully this Mutator will balance the gameplay a little more. Enjoy... - William 'Ntruder' Chenoweth (ntruder@home.com) ------------------ Revision History ------------------ 1.0 - First version, includes UWindows support.System\Manifest.iniSystem\Manifest.intSystem\invisiblespawn.intSystem\InvisibleSpawn.uwSystem\InvisibleSpawn.txtJ@