https://unrealarchive.org/mutators/unre ... 91af9.html
This mutator lets players use cheat console commands without logging in as an admin. Made for practice matches so admins don't have to tell other players the admin password. Useful for clan practice servers.
Code: Select all
//EavyCheatMode: "Eavy Cheat Mode" Stefan Daniel Schwarz <eavy@eavy.net>
class EavyCheatMode expands Mutator;
function Mutate(string MutateString, PlayerPawn Sender)
{
Super.Mutate(MutateString, Sender);
if ( Level.Game.bGameEnded )
return;
if ( MutateString ~= "IAMTHEONE" )
{
IAmTheOne(Sender);
return;
}
if ( Level.bNoCheating )
return;
switch( Caps(MutateString) )
{
case "WALK":
Walk(Sender);
break;
case "GHOST":
Ghost(Sender);
break;
case "FLY":
Fly(Sender);
break;
case "ALLAMMO":
AllAmmo(Sender);
break;
case "AMPHIBIOUS":
Amphibious(Sender);
break;
case "GOD":
God(Sender);
break;
case "INVISIBLE":
Invisible(Sender);
break;
case "SETWEAPONSTAY":
SetWeaponStay(Sender);
break;
case "LOADED":
Loaded(Sender);
break;
}
}
function IAmTheOne(PlayerPawn PlayerPawn)
{
if ( !PlayerPawn.bAdmin && (Level.Netmode != NM_Standalone) )
return;
Level.bNoCheating = !Level.bNoCheating;
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> EavyCheatMode:"@!Level.bNoCheating, true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> EavyCheatMode:"@!Level.bNoCheating);
}
function Walk(PlayerPawn PlayerPawn)
{
PlayerPawn.StartWalk();
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Walk", true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Walk");
}
function Ghost(PlayerPawn PlayerPawn)
{
PlayerPawn.UnderWaterTime = -1.0;
PlayerPawn.SetCollision(false, false, false);
PlayerPawn.bCollideWorld = false;
PlayerPawn.GotoState('CheatFlying');
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Ghost", true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Ghost");
}
function Fly(PlayerPawn PlayerPawn)
{
PlayerPawn.UnderWaterTime = PlayerPawn.Default.UnderWaterTime;
PlayerPawn.SetCollision(true, true, true);
PlayerPawn.bCollideWorld = true;
PlayerPawn.GotoState('CheatFlying');
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Fly", true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Fly");
}
function AllAmmo(PlayerPawn PlayerPawn)
{
local Inventory Inv;
for ( Inv=PlayerPawn.Inventory; Inv!=None; Inv=Inv.Inventory )
if ( Ammo(Inv) != None )
{
Ammo(Inv).AmmoAmount = 999;
Ammo(Inv).MaxAmmo = 999;
}
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> AllAmmo", true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> AllAmmo");
}
function Amphibious(PlayerPawn PlayerPawn)
{
if ( PlayerPawn.UnderwaterTime == 999999.0 )
PlayerPawn.UnderWaterTime = PlayerPawn.Default.UnderWaterTime;
else
PlayerPawn.UnderwaterTime = 999999.0;
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Amphibious:"@( PlayerPawn.UnderwaterTime == 999999.0 ), true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Amphibious:"@( PlayerPawn.UnderwaterTime == 999999.0 ));
}
function God(PlayerPawn PlayerPawn)
{
if ( PlayerPawn.ReducedDamageType == 'All' )
PlayerPawn.ReducedDamageType = '';
else
PlayerPawn.ReducedDamageType = 'All';
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> God:"@( PlayerPawn.ReducedDamageType == 'All' ), true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> God:"@( PlayerPawn.ReducedDamageType == 'All' ));
}
function Invisible(PlayerPawn PlayerPawn)
{
PlayerPawn.bHidden = !PlayerPawn.bHidden;
if ( PlayerPawn.bHidden )
PlayerPawn.Visibility = 0;
else
PlayerPawn.Visibility = PlayerPawn.Default.Visibility;
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Invisible:"@PlayerPawn.bHidden, true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Invisible:"@PlayerPawn.bHidden);
}
function SetWeaponStay(PlayerPawn PlayerPawn)
{
local Weapon W;
Level.Game.bCoopWeaponMode = !Level.Game.bCoopWeaponMode;
ForEach AllActors(class'Weapon', W)
{
W.bWeaponStay = false;
W.SetWeaponStay();
}
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> SetWeaponStay:"@Level.Game.bCoopWeaponMode, true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> SetWeaponStay:"@Level.Game.bCoopWeaponMode);
}
function Loaded(PlayerPawn PlayerPawn)
{
local inventory Inv;
local weapon Weap;
local DeathMatchPlus DM;
DM = DeathMatchPlus(Level.Game);
if ( DM == None )
return;
DM.GiveWeapon(PlayerPawn, "Botpack.PulseGun");
DM.GiveWeapon(PlayerPawn, "Botpack.ShockRifle");
DM.GiveWeapon(PlayerPawn, "Botpack.UT_FlakCannon");
DM.GiveWeapon(PlayerPawn, "Botpack.UT_BioRifle");
DM.GiveWeapon(PlayerPawn, "Botpack.Minigun2");
DM.GiveWeapon(PlayerPawn, "Botpack.SniperRifle");
DM.GiveWeapon(PlayerPawn, "Botpack.Ripper");
DM.GiveWeapon(PlayerPawn, "Botpack.UT_Eightball");
for ( inv=inventory; inv!=None; inv=inv.inventory )
{
weap = Weapon(inv);
if ( (weap != None) && (weap.AmmoType != None) )
weap.AmmoType.AmmoAmount = weap.AmmoType.MaxAmmo;
}
inv = Spawn(class'Armor2');
if( inv != None )
{
inv.bHeldItem = true;
inv.RespawnTime = 0.0;
inv.GiveTo(PlayerPawn);
}
inv = Spawn(class'Thighpads');
if( inv != None )
{
inv.bHeldItem = true;
inv.RespawnTime = 0.0;
inv.GiveTo(PlayerPawn);
}
BroadcastMessage(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Loaded", true, 'CriticalEvent');
Log(PlayerPawn.PlayerReplicationInfo.PlayerName@"-> Loaded");
}
defaultproperties
{
}