[Setup] Product=Team CTF Version=120 Archive=Team CTF.umod SrcPath=. MasterPath=.. Group=SetupGroup Group=TeamCTFGroup Group=umodIncludeFilesGroup [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=352,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=197,Flags=3) [TeamCTFGroup] File=(Src=System\TeamCTF.u,Size=6016) File=(Src=System\TeamCTF.int,Size=119) [umodIncludeFilesGroup] File=(Src=System\TeamCTF.txt,Size=1025) [Setup] LocalProduct=Team CTF ReadMe=System\TeamCTF.txt SetupWindowTitle=Team CTF AutoplayWindowTitle=Team CTF Options ProductURL=nnone VersionURL=nnone Developer=^Soul^ DeveloperURL=none *DF@P'>GĈP>biHFNoneGiveTo CTFMutatorModifyPlayerAddSecondary ReplaceWith blkt4MalcomCoreEngine blkt4RikerDefaultWeapon RawS4SlainRawS4KregoreRawS4ManwellRawS4SystemBlkt4Blkt4OthelloTeamCTF RawS4Bruce GiveWeapon RocketPackWeaponMyDefaultWeaponTeamGamePlusPreBeginPlay AddMutatorUT_EightballCheckReplacement RawS4Arkon GroundSpeed ReturnValueOtherNamePropertyObjectProperty GameInfoMutator MultiSkins NextMutatorbSuperRelevantM enforcer ShockRifle PulseGun minigun2 LevelInfoBotpackDeathMatchPlusLevelActor ThighPadsPawnarmor2TextureBoolPropertyByteProperty TextBufferClassPackageNameObject FunctionGameClassPropertyFloatProperty NewWeaponSecondaryWeaponbCanSpawnWeaponsA2Pads  ?e w*r0, ! ", ! ", !", ! a   0?), !", !", !", !a   )ff?, !", !a a    ?,.V -pa/!(Ia/!BotPack.MiniAmmo(l-a/!(' &;,*w*  6-'w*4 i Nt*//============================================================================= // CTFMutator. //============================================================================= class CTFMutator expands Mutator; var() Class DefaultWeapon, SecondaryWeapon; var bool bCanSpawnWeapons; function PreBeginPlay() { Super.PreBeginPlay(); bCanSpawnWeapons = False; } function AddMutator(Mutator M) { if (!Level.Game.IsA('TeamGamePlus')) { log(M@"Not allowed (This is not a team game)"); return; //only allow in Team Games } Super.AddMutator(M); } function Class MyDefaultWeapon() { bCanSpawnWeapons = True; if (DefaultWeapon != none) return DefaultWeapon; else return Level.Game.DefaultWeapon; } function ModifyPlayer(Pawn Other) { AddSecondary(Other); if (NextMutator != none) NextMutator.ModifyPlayer(Other); } function bool CheckReplacement(Actor Other, out byte bSuperRelevant) { if (Other.IsA('UT_EightBall')) return False; if (Other.IsA('RocketPack')) { ReplaceWith(Other,"BotPack.MiniAmmo"); return False; } if ((!bCanSpawnWeapons) && (Other.IsA('Weapon'))) return False; return True;; } function AddSecondary(Pawn Other) { local weapon NewWeapon; local Armor2 A2; local ThighPads Pads; if ((Other.Weapon != none) && (Other.Weapon.Class == DefaultWeapon)) { if ((Other.MultiSkins[3].Name == 'RawS4Kregore') || (Other.MultiSkins[3].Name == 'RawS4Slain') || (Other.MultiSkins[3].Name == 'RawS4') || (Other.MultiSkins[3].Name == 'blkt4Riker')) { Pads = Spawn(Class'ThighPads'); Pads.GiveTo(Other); SecondaryWeapon = Class'ShockRifle'; if (Other.GroundSpeed == Other.Default.GroundSpeed) Other.GroundSpeed *= 1.7; } if ((Other.MultiSkins[3].Name == 'RawS4ManWell') || (Other.MultiSkins[3].Name == 'RawS4Bruce') || (Other.MultiSkins[3].Name == 'blkt4Othello') || (Other.MultiSkins[3].Name == 'blkt4')) { A2 = Spawn(Class'Armor2'); A2.GiveTo(Other); SecondaryWeapon = Class'PulseGun'; if (Other.GroundSpeed == Other.Default.GroundSpeed) Other.GroundSpeed *= 1.3; } if ((Other.MultiSkins[3].Name == 'RawS4Arkon') || (Other.MultiSkins[3].Name == 'blkt4Malcom')) { A2 = Spawn(Class'Armor2'); Pads = Spawn(Class'ThighPads'); A2.GiveTo(Other); Pads.GiveTo(Other); SecondaryWeapon = Class'Minigun2'; if (Other.GroundSpeed == Other.Default.GroundSpeed) Other.GroundSpeed -= 25; } } DeathMatchPlus(Level.Game).GiveWeapon(Other,string(SecondaryWeapon)); } [-(  0/xйdd- dZ!dZ!dZ!dZ!kL?ddddZ!dZ!dZ!dZ!ddddZ!dZ!kL?ddd_ TJlllй_ R$W_ R$W  _Ra/!V Not allowed (This is not a team game)   ::9391:.9$9<"%95!;@9"9-9=92994999#9?">"0=""&96=9/==? =?99)9+9*979,98 _ ElBy DG T aC o {(HYUnn '\  i3u=he4*s ArJ#J$vbKfXS[Public] Object=(Name=TeamCTF.CTFMutator,Class=Class,MetaClass=Engine.Mutator,Description="Team CTF,Class based CTF.")These classes are based off face skins, each of these group of face skins is a class, each class has its own speed and weapons. Depending on what player you have choosen in the UWindow->options->Player Setup menu. - Light Class: ---------------- Faces: RawS4Kregore, RawS4Slain, RawS4 and blkt4Riker Weapons: Enforcer, and Shock Rifle 1.7x times the speed of a normal player Armor: Thigh pads - Medium Class: --------------- Faces: RawS4ManWell, RawS4Bruce, blkt4Othello and blkt4 Weapons: Enforcer, and Pulse Gun 1.3x the speed of a normal player Armor: Chest plate - Heavy Class: ---------------- Faces: RawS4Arkon and blkt4Malcom Weapons: Enforcer, and minigun Slightly lower than normal Armor: Chest plate & thigh pads Note: There are several reasons why I used this reverse engineered method, first, I only intend this to be for the UT demo, secondly I didn't want to force a player to have to d/l this mod as of now it only needs to be on the server, unless you want to use it in a practice game.System\Manifest.iniSystem\Manifest.intSystem\TeamCTF.uSystem\TeamCTF.int0wSystem\TeamCTF.txt㟨]m