[Setup] Product=Bloodtrails Version=100 Archive=Bloodtrails.umod SrcPath=. MasterPath=.. Requires=Unreal Tournament Demo348Requirement Group=SetupGroup Group=BloodTrailsGroup [Unreal Tournament Demo348Requirement] Product=Unreal Tournament Demo Version=348 [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=454,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=523,Flags=3) [BloodTrailsGroup] File=(Src=System\Bloodtrails.u,Size=4227) File=(Src=System\Bloodtrails.int,Size=154) File=(Src=Help\Bloodtrails.txt,Size=1021) [Setup] LocalProduct=Bloodtrails ReadMe=Help\Bloodtrails.txt SetupWindowTitle=Bloodtrails AutoplayWindowTitle=Bloodtrails Options ProductURL=http://www.planetunreal.com/mutation VersionURL=http://www.planetunreal.com/mutation Developer=JbP DeveloperURL=http://www.planetunreal.com/mutation [Unreal Tournament Demo348Requirement] LocalProduct=Unreal Tournament Demo ProductURL=http://www.unrealtournament.com VersionURL=http://unreal.epicgames.com Developer=Epic Games DeveloperURL=http://www.epicgames.com Įƒ*žD1@IwČ®j܇Ó«c˜Qī 1NoneMutatorTakeDamage Bloodtrails BloodJobSystemRegisterDamageMutatorCoreEngineModifyPlayerPostBeginPlayTimerObject TextBuffer FunctionStructPackageClassVectorRotatorActorLevelObjectProperty LevelInfoNamePropertyBoolPropertyPitchStructProperty DamageType IntPropertyPawn LocationMutator Momentum HitLocationOtheractualDamageNextDamageMutatorVictiminstigatedByGameBotpack BloodSplat GameInfoi WoundedPawnTimeRemainingJobsSplatRotationbInitialised „€„€€„ €Œ€€Œ €„TU!//============================================================================= // Bloodtrails. //============================================================================= class Bloodtrails expands Mutator; struct BloodJob { var Pawn WoundedPawn; var int TimeRemaining; }; var BloodJob Jobs[32]; var rotator splatRotation; var bool bInitialised; // Various administrative tasks... // PostBeginPlay is called twice on actors that exist prior to the start of the game; // this leads to a recursion error. Checking to see if it has been called already avoids // this problem. function PostBeginPlay() { if (bInitialised) return; SplatRotation.Pitch = 16384; Level.Game.RegisterDamageMutator( Self ); // make sure this is how it works SetTimer(1.0, True); bInitialised = True; } function MutatorTakeDamage( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { local int i; if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType ); for ( i = 0; i < 32; i++ ) { if ( Jobs[i].WoundedPawn == Victim ) { Jobs[i].TimeRemaining += ActualDamage * 0.5; return; // not pretty.. } } for ( i = 0; i < 32; i++ ) { if ( Jobs[i].WoundedPawn == None ) { Jobs[i].WoundedPawn = Victim; Jobs[i].TimeRemaining = ActualDamage * 0.5; return; // not pretty.. } } } function Timer() { local int i; for ( i = 0; i < 32; i++ ) { if ( Jobs[i].WoundedPawn != None ) { Spawn( class'BloodSplat', , , Jobs[i].WoundedPawn.Location, SplatRotation ); Jobs[i].TimeRemaining--; if ( Jobs[i].TimeRemaining <= 0 ) Jobs[i].WoundedPawn = None; } } } // When the player restarts, the carcass will stop bleeding. function ModifyPlayer( pawn Other ) { local int i; for ( i = 0; i < 32; i++ ) { if ( Jobs[i].WoundedPawn == Other ) { Jobs[i].WoundedPawn = None; break; } } Super.ModifyPlayer( Other ); }  WÆY%L–, Br6 6*L„  ›*öż8w‹*‹$ %‘–, ‡r6”6D«?? „?%ū–, ńr6*66D«?? „˜ ƒ’’’’’’’’’’’’’’’’’’BąW@ƒ1¹ņp„oœƒ1¹ņpŽ Ē¢ŹĪĘŖ!…™ E#—%•–, ‹w6*a ž 6 – ¦6‹˜6%6*„ — |G -  6” @•˜a€?'- ' ž’’’ž’’’’’’’ ’’’’ž’’’’’’’’’’’’’’’ż’’’$ū’’’ż’’’ž’’’ū’’’ž’’’*’’’’’’’’’’’’ń’’’ł’’’ł’’’ł’’’ ņ’’’'ł’’’ ’’’’ ż’’’’’’’(ć’’’)ˆ.V †+ c Š,o †+ | †+ H†- TŠ%`†# mŠ"y’0 Fˆ/Rˆ!_‘ lˆ xœEŠ&Wš4`!d‰ND1‰›pR2ƒ$yB5‰™ q{6‰— Kl8[Public] Object=(Name=BloodTrails.BloodTrails,Class=Class,MetaClass=Engine.Mutator,Description="BloodTrails, Injured players leave a trail of blood..") ** Bloodtrails - a UT demo mutator ** Author: JbP ** Email: jbp@planetunreal.com ** Date: 21 October 1999 (happy birthday mum) ** Requirements: UT demo 348 ** Server-side: Yes. ** Installation: Double-click the UMOD file to start the installation. The correct install directory is x:\tournamentdemo\. Once installed, start a practice match, click the mutators button, and double-click "Bloodtrails" from the list on the left. Then start the game. ** Description: Bloodtrails is yet another gore mutator -- when a player is injured, they bleed for a short period of time. This makes it much harder to run and hide :). It adds a further element to one-on-one games in particular. Bloodtrails utilises code that is only present in the final version of the UT demo (version 348). That version is therefore necessary. ** Legal: The mutator accompanying this document is (c) copyright JbP 1999. Financial gain from distribution of the package is prohibited unless authorised by the author. That said, enjoy :)System\Manifest.iniQSystem\Manifest.intQ System\Bloodtrails.u\ƒSystem\Bloodtrails.intßšHelp\Bloodtrails.txtyż£ÅćŸv5Ēł9'