[Setup] Product=EavyDarkmatchIII Version=300 Archive=EavyDarkmatchIII.umod SrcPath=. MasterPath=.. Requires=UnrealTournament400Requirement Group=SetupGroup Group=umodINIGroup Group=DarkMatchPlusGroup Group=umodIncludeFilesGroup [UnrealTournament400Requirement] Product=UnrealTournament Version=400 [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=670,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=537,Flags=3) [umodINIGroup] AddIni=UnrealTournament.ini,Engine.GameEngine.ServerPackages=EavyDarkmatchIII [DarkMatchPlusGroup] File=(Src=System\EavyDarkmatchIII.int,Size=502) File=(Src=System\EavyDarkmatchIII.u,Size=25939) [umodIncludeFilesGroup] File=(Src=Help\EavyDarkmatchIII.txt,Size=4674) File=(Src=Help\EavyLogo.bmp,Size=8402) [Setup] LocalProduct=EavyDarkmatchIII ReadMe=Help\EavyDarkmatchIII.txt SetupWindowTitle=DarkMatchPlus AutoplayWindowTitle=EavyDarkmatchIII Options ProductURL=http://unreal.eavy.de/ VersionURL=http://unreal.eavy.de/ Developer=Stefan Daniel Schwarz DeveloperURL=http://unreal.eavy.de/ Logo=Help\EavyLogo.bmp [UnrealTournament400Requirement] LocalProduct=UnrealTournament ProductURL=http://www.unrealtournament.com/ VersionURL=http://unreal.epicgames.com/ Developer=Epic Games, Inc. DeveloperURL=http://www.epicgames.com/ ; EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz [Public] Object=(Name=EavyDarkmatchIII.EavyExtraKeyBindings,Class=Class,MetaClass=UTMenu.UTExtraKeyBindings) Object=(Name=EavyDarkmatchIII.EavyDarkmatchMutator,Class=Class,MetaClass=Engine.Mutator,Description="EavyDarkmatchIII,DarkMatchPlus") Object=(Name=EavyDarkmatchIII.EavyMutatorMenuItem,Class=Class,MetaClass=UMenu.UMenuModMenuItem) ;Object=(Name=BotPack.TDarkMatch,Class=Class,MetaClass=Botpack.TournamentGameInfo) Áƒ*žEÇ@S]`hË\ÀjŒ�†Ô­�RTß›€SÇNoneEavyDarkmatchIIISystemSetFontCreateControlSetTextCoreUWindowEngine DeActivatedFindInventoryType SkyZoneInfoFeigningDeathBeginCreated UnrealShareUnrealIEavyToggleLightMutate BeginState EndStateTick SpotlightEavyDisabledLightEavySpecialLit PlayerPawn TriggerLightEavyPlayerLightEavyColoredLightEavyLightSaturation EavyLightHueEavyLightRadius WarpZoneInfo ZoneInfo EavyFogZone EavySkyZone LevelInfoLightEavyDarkmatchSpawnnotify PreBeginPlayPostBeginPlayEavyDarkmatchSearchlightBotEavyDarkmatchMutatorPickupMessageEavyLightBrightnessEavyMutatorConfigWindowEavyMutatorConfigClient MenuCaption MenuHelp WindowTitle Spectator ActivateGiveTo PressureZone ScoreKill VacuumZone ClientClass CloudZoneExecute KillingFieldNotify Activated LabelListExpireMessageDistanceLightning ModifyPlayerQueenTeleportLight M_Activated M_Selected NitrogenZoneTarZoneM_DeactivatedUMenu TorchFlameToggleZoneInfoTriggerLightRad SightLight ChargeLight SlimeZone WaterZone LavaZoneFlashLightBeamOverHeatLight AliasNamesEavyExtraKeyBindingsUTMenu SectionNameEavyMutatorMenuItem WeaponLightTeleporterZone HitLocation HitNormal StartTraceKiller Location bIsCrouching DeltaTimeaPawnStruct PointRegionGameAZoneStaticSaveConfigHasFlag SpawnNotifyPlayerReplicationInfoVectorTeamRegionLightBrightness MutateStringAmbientBrightness bLensFlare bSpecialLit bChecked bFogZonebActiveOwnerRoot SelectedItem Flashlight EndTrace SearchLight ViewRotation bHeldItemSender bIsPlayer StrPropertySNewHitLocation bGameEnded ScriptTextDeActivateSoundActivateSoundYLightSaturationStructPropertyObjectPropertyFloatProperty BoolPropertybCoronaZXOtherControlOffset BytePropertyCStateUMenuModMenuItemUWindowDialogClientWindowUWindowFramedWindowUWindowRootWindowWinTopSetSize CenterWidth CenterPos CreateWindow InitializedUWindowWindowUWindowDialogControlUWindowCheckboxUWindowPulldownMenuItemUWindowPulldownMenuWinLeft WinWidth WinHeightAlign MenuItem LightRadiusUTExtraKeyBindings IntProperty AmbientGlow LightHue VolumeFogBotpack GameInfo FunctionMutatorEavyCrouchingToggleEavySpecialLightbActorShadowsActor InventoryLevelObjectEavyRealisticLightssEavyAmbientBrightnessPawnEavyLensFlareClass TextBufferPackageEavyActivateLightVolumeBrightnessEavyFlashLightEƒ”H@+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ |_Ô‘”ÕƒC,¬’ÔûRª!íìÛ¡FoÀîŒx˜‰Œx˜‰†àÀñ†àÀñ†àÀñ†àÀñŒx˜‰Œx˜‰Œx˜‰Œx˜‰Œx˜‰Œx˜‰†àÀñ‘.ê;ûŒx˜‰†àÀñ‘.ê;ûŒx˜‰†àÀñ‘.ê;ûŒx˜‰†àÀñ‘.ê;ûŒx˜‰Œx˜‰Œx˜‰†àÀñŠÓÓÓÌG;)ÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿ68Œx˜‰Ìu­ˆK�_ˆK�_ƒœÔ�XƒœÔ�XƒœÔ�XˆK�_ˆK�_ˆK�_ƒœÔ�XˆK�_ˆK�_ˆK�_ˆK�_ˆK�_ˆK�_ˆK�_†àÀñˆK�_ˆK�_¬’ÔûRª!íìÛˆK�_ˆK�_†àÀñ†àÀñ¡FoÀî†àÀñ³ýúL]†àÀñ‘.ê;û†àÀñ†àÀñ†àÀñ†àÀñ†àÀñˆK�_ˆK�_†àÀñ†àÀñ†àÀñ†àÀñˆK�_†àÀñˆK�_ˆK�_ˆK�_†àÀñˆK�_ˆK�_ˆK�_ˆK�_ˆK�_ˆK�_ˆK�_Š-ú§Ž @ , D E H ˆ'ˆ†  €†…… …… ………0@@€†@$—@%@2@@@€¡!€@ @Q——6@,—+@/@P—&@)—-@#@@1@¥FE&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ83à}ò/¥Œ”móƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�X“¹ ƒœÔ�XƒœÔ�XƒœÔ�X“¹ ƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�X“¹ ƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�XƒœÔ�X“¹ Š"Ó#ÓÓÓ¯LR.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ24¶Ze¯üM»ï¹o û¹o ûŠ952]EavyDarkmatchIIIµMO/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿO5><(µÚãÌ~‰|_Ô‘…|.XÚ‰|_Ô‘‰|_Ô‘…|.XÚ‰|_Ô‘‰|_Ô‘…|.XÚ‰|_Ô‘‰|_Ô‘…|.XÚ‰|_Ô‘‰|_Ô‘…|.XÚ‰|_Ô‘‰|_Ô‘…|.XÚ‰|_Ô‘‰Œx˜‰…|.XÚ‰Œx˜‰…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰|_Ô‘…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰|_Ô‘…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰|_Ô‘…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰|_Ô‘…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰|_Ô‘…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰|_Ô‘…|.XÚ…|.XÚ…|.XÚ…|.XÚ‰Œx˜‰Š*@€7€–€†Ó'�-%a 3-%' ØD që Tw*a.w*a˜aÏ ÿÿÿÿÿÿÿÿÿÿDÚAUs 6˜aÍa ˆ˜!˜ œ-w*·²0Ÿ#*-2a ˆ˜!˜ œ#w*··²²ŸŸ-½'*q! 4q!  ÄNUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=-ØòPÄ’…iŽVŠW]EavyDarkmatchIII?](De)Activate LightT]Mutate EavyDarkmatchIIIÃ: BÁæÃ =„ a/!3w  * a  œäw*-Ñ' 5 --- -Ù-$!#$©-š: ¢®%$©Fš: ¢®&$ª©yš: ¢®,$P©©š: ¢®,$ -��-4 à €ËC"H:¤’|"EavyDarkmatchIII�‚-�¾À-¼.!  �w*-��-�¢Ë"! ÛB? vy r* .†˜c„r*�-Üaaw*a µ¾À-¼a¡w*až=,ÿ 6-ö‚a/!.¡-Î-'6.‚a/!*.³-á-'6-(¼‚- r¢Ô*ª„„�-�-a! žž¼ž=,ÿ„„�-�-a! �$w*�$ å ´.),$× œÕ?'9 ´a'$ œ'a ØÔ9 ´?,@Ðw*a  œ;-ŸC®ô¬áØ œ?,È`A@;w*ŸŸ�1ww*�� ÝÆ8w*a.w*a-�( »>97>d8»96-žž ±<>lÈ  ÿÿÿÿÿÿÿÿÿÿÊ((:äÊ-& -&'/a0 ƒá7�--à]a/!%>„„„„„„„„„„a/!Ra/!Na/!Aa/!Sa/!Ca/!Ma/!a/!Ja/!a/!La/!YZq‚-/-½†�=,ZÏ‚‚-+w6© «* 6© «a/! †�=,Zé‚‚‚-6w6© «*6© «-Ò—:¤%X–:�,€…�=,j�=,ÿ––:°,€…°=,¨°=,ÿÔ–:¤,€…¤=,æ¤=,ÿZ�$°$¤$-ç(Z�-*-è(-Ù(ààa/!!«„�-(a/!$.“É$àÊ„„„„„„„„„„„„a/! a/!:a/!<a/!Qa/!Fa/!6a/!Oa/!Ga/!Za/!Ka/!8a/! a/!Pà.“É$10 a'//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyDarkmatchSpawnnotify expands SpawnNotify config; var(EavyDarkmatchIII) globalconfig bool EavyAmbientBrightness; var(EavyDarkmatchIII) globalconfig bool EavyFogZone; var(EavyDarkmatchIII) globalconfig bool EavyLensFlare; var(EavyDarkmatchIII) globalconfig bool EavySkyZone; var(EavyDarkmatchIII) globalconfig bool EavySpecialLit; var(EavyDarkmatchIII) globalconfig bool EavyDisabledLight; var bool Initialized; simulated function PostBeginPlay() { local Actor A; Super.PostBeginPlay(); if (Initialized) return; Initialized = True; ForEach AllActors(class'Actor', A) { if ( !EavyDisabledLight ) ; else if ( A.IsA('Light') ) { if ( A.IsA('FlashLightBeam') || A.IsA('ChargeLight') || A.IsA('DistanceLightning') || A.IsA('OverHeatLight') || A.IsA('QueenTeleportLight') || A.IsA('SightLight') || A.IsA('Spotlight') || A.IsA('TorchFlame') || A.IsA('TriggerLight') || A.IsA('TriggerLightRad') || A.IsA('WeaponLight') ) ; else if ( EavySpecialLit && A.bSpecialLit ) A.LightBrightness /= 2; else if ( EavySkyZone && A.Region.Zone != None && A.Region.Zone.IsA('SkyZoneInfo') ) A.LightBrightness /= 2; else if ( EavyFogZone && A.Region.Zone != None && A.Region.Zone.bFogZone && (A.VolumeFog > 0) ) { if (A.LightBrightness < 128) A.LightBrightness *= 2; else A.LightBrightness = 255; if (A.VolumeBrightness < 128) A.VolumeBrightness *= 2; else A.VolumeBrightness = 255; if (A.VolumeFog < 128) A.VolumeFog *= 2; else A.VolumeFog = 255; } else { A.LightBrightness = 0; A.VolumeBrightness = 0; A.VolumeFog = 0; A.bActorShadows = False; if ( !EavyLensFlare ) { A.bCorona = False; A.bLensFlare = False; } } } else if ( A.IsA('ZoneInfo') ) { if ( !EavyAmbientBrightness || A.IsA('LevelInfo') ) ZoneInfo(A).AmbientBrightness = 0; else if ( A.IsA('SkyZoneInfo') || A.IsA('CloudZone') || A.IsA('KillingField') || A.IsA('LavaZone') || A.IsA('NitrogenZone') || A.IsA('PressureZone') || A.IsA('SlimeZone') || A.IsA('TarZone') || A.IsA('TeleporterZone') || A.IsA('ToggleZoneInfo') || A.IsA('VacuumZone') || A.IsA('WarpZoneInfo') || A.IsA('WaterZone') ) ; else ZoneInfo(A).AmbientBrightness = 0; } } } W1//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyDarkmatchSearchlight extends SearchLight config; var(EavyDarkmatchIII) globalconfig bool EavyCrouchingToggle; var(EavyDarkmatchIII) globalconfig bool EavySpecialLight; var(EavyDarkmatchIII) globalconfig byte EavyLightBrightness; var(EavyDarkmatchIII) globalconfig byte EavyLightHue; var(EavyDarkmatchIII) globalconfig byte EavyLightSaturation; var(EavyDarkmatchIII) globalconfig byte EavyLightRadius; var bool EavyPlayerLight; var bool EavyRealisticLight; var FlashLightBeam s,ss; var Vector HitNormal,HitLocation,EndTrace,StartTrace,X,Y,Z,NewHitLocation; state Activated { function endstate() { if (s!=None) s.Destroy(); if (ss!=None) ss.Destroy(); bActive = false; } function Tick( float DeltaTime ) { local Pawn aPawn; local bool bIsCrouching; if (s == None) Return; aPawn = Pawn(Owner); if ( aPawn == None || !aPawn.bIsPlayer ) { s.Destroy(); if (ss!=None) ss.Destroy(); return; } if ( Level.Game.bGameEnded ) { s.Destroy(); if (ss!=None) ss.Destroy(); aPawn.AmbientGlow = 255; return; } if ( EavyCrouchingToggle ) { if ( aPawn.IsA('PlayerPawn') && PlayerPawn(aPawn).bIsCrouching ) bIsCrouching = true; else if ( aPawn.IsA('Bot') && Bot(aPawn).bIsCrouching ) bIsCrouching = true; else bIsCrouching = false; } if ( EavyPlayerLight && (aPawn.PlayerReplicationInfo.HasFlag == None) ) { if ( !bActive || bIsCrouching || aPawn.IsInState('FeigningDeath') ) aPawn.AmbientGlow = aPawn.Default.AmbientGlow; else aPawn.AmbientGlow = 255; } if ( !bActive || bIsCrouching || aPawn.IsInState('FeigningDeath') ) { s.LightBrightness = 0; if (ss!=None) ss.LightBrightness = 0; return; } GetAxes(aPawn.ViewRotation,X,Y,Z); EndTrace = aPawn.Location + 10000* Vector(aPawn.ViewRotation); Trace(HitLocation,HitNormal,EndTrace,aPawn.Location, True); s.SetLocation(HitLocation-vector(aPawn.ViewRotation)*64); if (ss!=None) ss.SetLocation(s.Location); if (EavyRealisticLight) { s.LightRadius = fmin(Vsize(HitLocation-aPawn.Location)/200,14) + 2.0; if (ss!=None) ss.LightRadius = s.LightRadius; } s.LightBrightness = EavyLightBrightness; if (ss!=None) ss.LightBrightness = s.LightBrightness; } function BeginState() { Owner.PlaySound(ActivateSound); s = Spawn(class'FlashLightBeam', Owner, '', Owner.Location); if (s!=None) { s.LightHue = EavyLightHue; s.LightSaturation = EavyLightSaturation; s.LightRadius = EavyLightRadius; if ( EavySpecialLight ) { ss = Spawn(class'FlashLightBeam', Owner, '', Owner.Location); if (ss!=None) { ss.LightHue = s.LightHue; ss.LightSaturation = s.LightSaturation; ss.LightRadius = s.LightRadius; ss.bSpecialLit = true; } else GoToState('DeActivated'); } } else GoToState('DeActivated'); } Begin: } state DeActivated { Begin: if (s!=None) s.Destroy(); if (ss!=None) ss.Destroy(); Owner.PlaySound(DeActivateSound); } n!//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyDarkmatchMutator expands Mutator config; var(EavyDarkmatchIII) globalconfig bool EavyActivateLight; var(EavyDarkmatchIII) globalconfig bool EavyColoredLight; var(EavyDarkmatchIII) globalconfig bool EavyFlashLight; var(EavyDarkmatchIII) globalconfig bool EavyPlayerLight; var(EavyDarkmatchIII) globalconfig bool EavyRealisticLight; var(EavyDarkmatchIII) globalconfig bool EavyToggleLight; var bool Initialized; event PreBeginPlay() { if ( !Initialized ) Spawn(class'EavyDarkmatchSpawnnotify'); Initialized = True; } function ModifyPlayer(Pawn Other) { local EavyDarkmatchSearchlight s; Super.ModifyPlayer(Other); if ( Other.IsA('Spectator') || Other.FindInventoryType(class'EavyDarkmatchSearchlight') != None ) return; s = Spawn(class'EavyDarkmatchSearchlight',,, Location); if ( s != None ) { s.bHeldItem = True; s.GiveTo(Other); s.EavyRealisticLight = EavyRealisticLight; s.EavyPlayerLight = EavyPlayerLight; if ( EavyFlashLight ) { s.EavyLightHue = 33; s.EavyLightRadius = 7; } if ( EavyColoredLight ) { if ( Other.PlayerReplicationInfo.Team == 0 ) s.EavyLightHue = 0; else if ( Other.PlayerReplicationInfo.Team == 1 ) s.EavyLightHue = 170; else if ( Other.PlayerReplicationInfo.Team == 2 ) s.EavyLightHue = 80; else if ( Other.PlayerReplicationInfo.Team == 3 ) s.EavyLightHue = 32; } s.bActive = !EavyActivateLight; s.Activate(); Other.SelectedItem = s; } } function ScoreKill(Pawn Killer, Pawn Other) { Super.ScoreKill(Killer, Other); if ( EavyPlayerLight ) Other.AmbientGlow = Other.Default.AmbientGlow; } function Mutate(string MutateString, PlayerPawn Sender) { local EavyDarkmatchSearchlight s; if ( MutateString ~= "EavyDarkmatchIII" ) { if ( EavyToggleLight && !Level.Game.bGameEnded ) { s = EavyDarkmatchSearchlight(Sender.FindInventoryType(class'EavyDarkmatchSearchlight')); if ( s != None ) s.bActive = !s.bActive; } } else Super.Mutate(MutateString, Sender); } u//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyMutatorMenuItem expands UMenuModMenuItem; function Execute() { MenuItem.Owner.Root.CreateWindow(class'EavyMutatorConfigWindow', 10, 10, 150, 100); } §ISXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2J¿–®0§‰üÍ·È;aG°ßÕ¶mê¹o ûIŠ0]&EavyDarkmatchIII1]DarkMatchPlusÇýBÇ �D¬­?,, ‘D¯­? ,, .… …? ?? €?Activate Light%›$-Ž -¡,.… …? ?? €?Colored Light%›$-Ž -¡, .… …? ?? €? Flash Light % ›$ -Ž -¡,.… …? ?? €?Player Light%›$-Ž -¡,.… …? ?? €?Realistic Light%›$-Ž -¡,.… …? ?? €?Toggle Light%›$-Ž -¡, .… …? ?? €? Crouching Toggle % ›$ -Ž - s//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyMutatorConfigWindow expands UWindowFramedWindow; function Created() { Super.Created(); SetSize(142, 172); WinLeft = Int((Root.WinWidth - WinWidth) / 2); WinTop = Int((Root.WinHeight - WinHeight) / 2); } YF//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyMutatorConfigClient expands UWindowDialogClientWindow; var UWindowCheckBox EavyActivateLight; var UWindowCheckBox EavyColoredLight; var UWindowCheckBox EavyFlashLight; var UWindowCheckBox EavyPlayerLight; var UWindowCheckBox EavyRealisticLight; var UWindowCheckBox EavyToggleLight; var UWindowCheckBox EavyCrouchingToggle; function Created() { local int ControlOffset; local int CenterWidth, CenterPos; Super.Created(); CenterWidth = (WinWidth/4)*3; CenterPos = (WinWidth - CenterWidth)/2; ControlOffset = 10; EavyActivateLight = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyActivateLight.SetText("Activate Light"); EavyActivateLight.SetFont(F_Normal); EavyActivateLight.Align = TA_Left; EavyActivateLight.bChecked = class'EavyDarkmatchMutator'.default.EavyActivateLight; ControlOffset += 20; EavyColoredLight = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyColoredLight.SetText("Colored Light"); EavyColoredLight.SetFont(F_Normal); EavyColoredLight.Align = TA_Left; EavyColoredLight.bChecked = class'EavyDarkmatchMutator'.default.EavyColoredLight; ControlOffset += 20; EavyFlashLight = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyFlashLight.SetText("Flash Light"); EavyFlashLight.SetFont(F_Normal); EavyFlashLight.Align = TA_Left; EavyFlashLight.bChecked = class'EavyDarkmatchMutator'.default.EavyFlashLight; ControlOffset += 20; EavyPlayerLight = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyPlayerLight.SetText("Player Light"); EavyPlayerLight.SetFont(F_Normal); EavyPlayerLight.Align = TA_Left; EavyPlayerLight.bChecked = class'EavyDarkmatchMutator'.default.EavyPlayerLight; ControlOffset += 20; EavyRealisticLight = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyRealisticLight.SetText("Realistic Light"); EavyRealisticLight.SetFont(F_Normal); EavyRealisticLight.Align = TA_Left; EavyRealisticLight.bChecked = class'EavyDarkmatchMutator'.default.EavyRealisticLight; ControlOffset += 20; EavyToggleLight = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyToggleLight.SetText("Toggle Light"); EavyToggleLight.SetFont(F_Normal); EavyToggleLight.Align = TA_Left; EavyToggleLight.bChecked = class'EavyDarkmatchMutator'.default.EavyToggleLight; ControlOffset += 20; EavyCrouchingToggle = UWindowCheckbox(CreateControl(class'UWindowCheckbox', CenterPos, ControlOffset, CenterWidth, 1)); EavyCrouchingToggle.SetText("Crouching Toggle"); EavyCrouchingToggle.SetFont(F_Normal); EavyCrouchingToggle.Align = TA_Left; EavyCrouchingToggle.bChecked = class'EavyDarkmatchSearchlight'.default.EavyCrouchingToggle; } function Notify(UWindowDialogControl C, byte E) { switch(E) { case DE_Change: switch(C) { case EavyActivateLight: class'EavyDarkmatchMutator'.default.EavyActivateLight = EavyActivateLight.bChecked; class'EavyDarkmatchMutator'.static.StaticSaveConfig(); break; case EavyColoredLight: class'EavyDarkmatchMutator'.default.EavyColoredLight = EavyColoredLight.bChecked; class'EavyDarkmatchMutator'.static.StaticSaveConfig(); break; case EavyFlashLight: class'EavyDarkmatchMutator'.default.EavyFlashLight = EavyFlashLight.bChecked; class'EavyDarkmatchMutator'.static.StaticSaveConfig(); break; case EavyPlayerLight: class'EavyDarkmatchMutator'.default.EavyPlayerLight = EavyPlayerLight.bChecked; class'EavyDarkmatchMutator'.static.StaticSaveConfig(); break; case EavyRealisticLight: class'EavyDarkmatchMutator'.default.EavyRealisticLight = EavyRealisticLight.bChecked; class'EavyDarkmatchMutator'.static.StaticSaveConfig(); break; case EavyToggleLight: class'EavyDarkmatchMutator'.default.EavyToggleLight = EavyToggleLight.bChecked; class'EavyDarkmatchMutator'.static.StaticSaveConfig(); break; case EavyCrouchingToggle: class'EavyDarkmatchSearchlight'.default.EavyCrouchingToggle = EavyCrouchingToggle.bChecked; class'EavyDarkmatchSearchlight'.static.StaticSaveConfig(); break; } } } F//EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz class EavyExtraKeyBindings expands UTExtraKeyBindings; ÕK8=C ª7 ¥$8 L --Ž ™¥ … --Ž ™¥ ¾  - -Ž ™¥ ÷ --Ž ™¥ 0 --Ž ™¥ i --Ž ™¥ ¢  - -Ž ™¥ ÿÿ ÿÿ —.—Æ¡\ÆÞC,C×?D¬¯¶­­?,Ð?D¬¯¶ÅÅ?, å;š<æâ¶Ö 4 A ACÈB BB@ÿÿÿÿwB@üÿÿÿb@ÿÿÿÿ~B@ùÿÿÿR@þÿÿÿ@@þÿÿÿz@þÿÿÿM@þÿÿÿK@üÿÿÿ`Mûÿÿÿt@þÿÿÿrSýÿÿÿo@ÿÿÿÿk@ÿÿÿÿx@ÿÿÿÿ!@ÿÿÿÿs@þÿÿÿJ@üÿÿÿacöÿÿÿlKýÿÿÿwröÿÿÿh@þÿÿÿASêÿÿÿhJýÿÿÿ_MîÿÿÿvSýÿÿÿmSýÿÿÿj@ùÿÿÿz@ÿÿÿÿKúÿÿÿk@þÿÿÿSSýÿÿÿo@ÿÿÿÿjBI@ÚÿÿÿVcýÿÿÿdKØÿÿÿg@ÿÿÿÿqJýÿÿÿn@ÿÿÿÿ$LóÿÿÿfSïÿÿÿm@üÿÿÿXSýÿÿÿDUàÿÿÿ>SýÿÿÿI@Æÿÿÿ*Júÿÿÿ}@üÿÿÿWKóÿÿÿxSýÿÿÿn@þÿÿÿl@üÿÿÿYBprìÿÿÿ7MÖÿÿÿDMýÿÿÿsKýÿÿÿy@þÿÿÿUKÔÿÿÿeBVBrìÿÿÿB@¿ÿÿÿkLóÿÿÿgrÑÿÿÿróÿÿÿ@üÿÿÿcSíÿÿÿqrÛÿÿÿ(rìÿÿÿ@¾ÿÿÿ|KîÿÿÿGMßÿÿÿ`KîÿÿÿFLóÿÿÿZMîÿÿÿ~Míÿÿÿurìÿÿÿ'KïÿÿÿirËÿÿÿ=róÿÿÿ^LóÿÿÿeUàÿÿÿ MýÿÿÿrrÏÿÿÿrÏÿÿÿMúÿÿÿ@rÏÿÿÿróÿÿÿ[@üÿÿÿdKúÿÿÿyMÍÿÿÿ`K¸ÿÿÿw@þÿÿÿL@þÿÿÿArÙÿÿÿ;KÙÿÿÿiMýÿÿÿvMýÿÿÿNŒEf s4”+n@5Ì)_ n:ŒB MDŒ| ZDŒAb gDŒ>B tD¸KR AE¸K\ MEŒ>Q YE¸K] fEŒ5t rEŒ5E EŒ5 LFŒ5 YFŒ5 fFŒ5C sFŒ5{ @G£ MG‹A` ZG‹ fGŒ@B rGŒCQ G‹C LH•[ XH‹{ eH‹ qH‹t }H‹ II‹E UI‹{ aI‹ mIŒ@ yIä@p FJ£ RJ•{_J‹_ mJ‹3_ yJ•\ EK‹3} RK•H ^K‹3 kK‹3# wK•OCL‹3 QL•P ]L‹3 jL£ vL£- CM‹u PM¥&I \M¯.AeVµ/M fX‹3" sd£OF dŒOT LeŒC^ Ye�Ó'.fe¿Ø gTf�ÚDT{gÄUdOk�ÃB\smãAa Os�ËK[s�ÛDv fu�ÝDC\�»79_€¿±>6X��Ê3(dN‚š3E4l'r�šE4b1^¸šE4y!@êšJE4@y‹§X`y��Ç5Q Y’š4E4~j�š5E4dFh¢š=E4QLé�Õ5=l]ë•C Ið•] Vð�Æ4^cð�åJ;JAò========================================================================= |EavyDarkmatchIII: "DarkMatchPlus" Stefan Daniel Schwarz | ========================================================================= * PLAY DARKMATCH ON ANY LEVEL WITH ANY GAMETYPE AND THE OTHER MUTATORS! * Please note that while DarkMatch should work with any UT version, only the current version 413 is actively supported, so make sure to upgrade if you haven't done so yet. Only clients who use the mod can connect to a server that is running it, but auto-download is supported, so this isn't a problem. You must download and install the mod yourself to be able to use the extra key binding controls, it won't be available when the mod is auto-downloaded, and the controls customization only works with v413+. Introduction ------------ Do you enjoy playing in the dark? Don't forget to bring your flashlight! Epic didn't bring Unreal DarkMatch to Unreal Tournament so I did it myself - and as one of my beta testers, CliffyB, said: "Hey, that mutator owns!" ;) "DARKMATCH LIVES! Eavy has resurrected one of my favorite gametypes for Unreal1. Darkmatch was largely thrown into Unreal1 as an afterthought, something experimental, but this UT mod is now the real deal. It's like Hide and Go Seek in the Dark... with Guns!" -- Cliff Bleszinski, Lead Designer, Epic Games Inc. "Anyone who's interested in a new/old way to play Unreal/UT should check out this: Eavy's DarkMatch is a REALLY cool way to run around in the dark hoping you'll kill someone :) Remember, not being seen is as important as seeing!" -- Alan Willard, Level Designer, Epic Games Inc. Changes since last version -------------------------- * Fixed compatibility with the current UT Patch 413 so it works with any version now. * Added extra key bindings to UT's Controls so you can set a key to (de-) activate your light at the Preferences screen. * Removed additional gametypes, they became redundant, simply use the Mutator from now on. Mod configuration menu options ------------------------------ Activate Light Manual instead of automatic activation. If it's on, you'll spawn with the light turned on. If it's off, you'll spawn with the light turned off. This setting is disabled by default. Colored Light Light color equals team color. If it's on, your light color is the same as your team color. If it's off, your light color is the default color. It's enabled by default but only works with team games. Flash Light Use flashlight instead of searchlight. If it's on, your light will be smaller than usual. If it's off, your light will be the standard one. Default is disabled since it's not useful for the big levels. Player Light Glow while light is active. If it's on, you will pulse while your light is activated. If it's off, you will not pulse, being hidden in the dark. Default is enabled since it makes toggling the light useful. Realistic Light Recalculate light radius each tick. If it's on, your light size will be bigger if it's far away. If it's off, your light size will always be the same size. Default is disabled since it can have a performance impact. Toggle Light 'Mutate EavyDarkmatchIII' activates/deactivates light. If it's on, you can toggle your light with the mutate command. If it's off, you cannot toggle your light with the command. Default is on so you should bind the command to a key. Crouching Toggle If this option is turned on, your light will be turned off while you are crouching. It's off by default. Turning it on is recommended for newbie servers so they don't have to mess with the keyboard setup... Bot visibility not influenced ----------------------------- I thought about this one for a while. I eventually decided not to change the player visibility when it's dark. That means that bots will see you without having to rely on their light. This is an obvious disadvantage for the human players but they have an advantage of their own. Bots won't turn off their lights, human players can (when the server allows it which it does by default), so to balance this I decided not to recalculate visibility based on player brightness/ darkness. So you can't hide from the bots but it's fair since the bots can't hide from you, either, otherwise it would be too easy to just turn off your light and wait for some bots to come along and get fragged... Please contact me at -------------------- mailto:EavyDarkmatchIII@unreal.eavy.de Eavy's UT Mods: http://unreal.eavy.de/ <<< "Stefan Daniel 'Eavy' Schwarz" >>> BMÒ 6(WRœÞïÿÞçïÿ!ÿÿÿB1ÿJ91ÿ9ÿRBBÿBÿZJJÿRÿkZZÿcÿ„ssÿ{ÿ”ŒŒÿŒÿœ””ÿ”ÿ¥œÿ¥¥ÿ­¥¥ÿ¥¥ÿ­ÿ½µµÿ½ÿÎÆÆÿÎÞÞÞÿÞÞÞÿÞçÿçççÿçïÿïïïÿïÿ÷÷÷ÿ÷ÿÿÿ!!ÿ))ÿ11ÿ99ÿJJÿRRÿZZÿkkÿssÿ{{ÿŒŒÿœœÿ¥¥ÿ­­ÿµµÿ½½ÿÆÆÿÎÎÿÖÖÿÞÞÿççÿïïÿ÷ÿ÷ÿ÷÷ÿ)ÿÿ1ÿÿ9ÿÿJÿÿsÿÿŒÿÿ”ÿÿœÿÿ¥ÿÿ­ÿÿÖÿÿÞÿÿçÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWA941(-!.(.((..((..((..((..((..((AAWV"F"SCWKFM++W'=W &##'WWA941(-!.(.((..((..((..((..((..((AAWV"F"SCWKFM++W'=W &##'WWB2(-(-(.(-(-(-((--((--((--((--((--((;;W FAWQFS-W(-(-(-1BFWOFS5W+ F++W'+:W#!W W>(-(-(-1BFWOFS5W+ F++W'+:W#!WWB-(-(0HLWF"F5WQFS-W+:W!WWB-(-(0HLWF"F5WQFS-W+:W!WW-(.(-;PWTFO3WFI-W$ :W#WW-(.(-;PWTFO3WFI-W$ :W#WW-(.(-;PWTFO3WFI-W$ :W#WW2(-(-=TWKF"/W+LF+-W W+:W WW2(-(-=TWKF"/W+LF+-W W+:W WWC(-(-7XWFK++WUF"FN-W W'jWTF"P+FI.W$/W #W# WWW-(-(->jWTF"P+FI.W$/W #W# WWW-(-(.9jWKF+LF"F+.W 3W+!W WWW-(-(.9jWKF+LF"F+.W 3W+!W WWW-(-(.9jWKF+LF"F+.W 3W+!W WWWC(-(-(.ChWFGFN.W 5W'W W&WWC(-(-(.ChWFGFN.W 5W'W W&W WA-(-(-(!>dWOF+,W'7WW#W+W WA-(-(-(!>dWOF+,W'7WW#W+W WC(-(-(.(-17;=@A@A@A@H9WF"FS-W;W+WWW WC(-(-(.(-17;=@A@A@A@H9WF"FS-W;W+WWWW3(-(-(-(.(.(-(-(-((--((--((--((--((--((;;9WT FI-W$$;W W#WWW3(-(-(-(.(.(-(-(-((--((--((--((--((--((;;9WT FI-W$$;W W#WWW3(-(-(-(.(.(-(-(-((--((--((--((--((--((;;9WT FI-W$$;W W#WWWC(-(-(-(-(-(.(-(..((--((..((--((..((--;;;WKF+-W ?WW WWWC(-(-(-(-(-(.(-(..((--((..((--((..((--;;;WKF+-W ?WW WWW8(-(-(-(-(-(--((--((--((--((--((--;;=WFN-W AW'W W&W8(-(-(-(-(-(--((--((--((--((--((--;;=WFN-W AW'W W&WD;62.(-(-(--((--((--((--((--((--AA=WRFK/W CWW  WWD;62.(-(-(--((--((--((--((--((--AA=WRFK/W CWW  WWD;62.(-(-(--((--((--((--((--((--AA=WRFK/W CWW  WSystem\Manifest.ini2System\Manifest.int2System\EavyDarkmatchIII.intKöSystem\EavyDarkmatchIII.uASeHelp\EavyDarkmatchIII.txt”lBHelp\EavyLogo.bmpÖ~Ò £Å㟨Ÿ• �J