Files
UT2k4-Mod-UT2341/Sources/Classes/Mut_UT2341Replacement.uc
cclecle fa6404868c - correct readme
- make minigun work also on Netplay
- fix mutator
2022-12-10 13:32:31 +00:00

374 lines
9.5 KiB
Ucode

class Mut_UT2341Replacement extends Mutator;
var config bool bReplaceAssaultRifle;
var config bool bReplaceBioRifle;
var config bool bReplaceONSMineLayer;
var config bool bReplaceShockRifle;
var config bool bReplaceLinkGun;
var config bool bReplaceMinigun;
var config bool bReplaceFlakCannon;
var config bool bReplaceONSGrenadeLauncer;
var config bool bReplaceRocketLauncher;
var config bool bReplaceSniperRifle;
var config bool bReplaceClassicSniperRifle;
var config bool bReplaceRedeemer;
var config bool bReplacePainter;
var config bool bReplaceStartWeapons;
function PostBeginPlay()
{
//local xPickupBase P;
Super.PostBeginPlay();
//Apparently CheckReplacement doesn't work on the client side
/*
foreach AllActors (class'xPickupBase', P)
{
P.bHidden = True;
P.myEmitter.bHidden = True;
P.SetDrawType(DT_None);
P.SetStaticMesh(None);
}
*/
}
function string GetInventoryClassOverride(string InventoryClassName)
{
switch(InventoryClassName)
{
case "XWeapons.AssaultRifle":
if(bReplaceAssaultRifle)
return "UT2341WeaponsReducedv1a.UT2341Ripper";
break;
case "XWeapons.BioRifle":
if(bReplaceBioRifle)
return "UT2341WeaponsReducedv1a.UT2341BioRifle";
break;
case "XWeapons.ONSMineLayer":
if(bReplaceONSMineLayer)
return "UT2341WeaponsReducedv1a.UT2341Ripper";
break;
case "XWeapons.ShockRifle":
if(bReplaceShockRifle)
return "UT2341WeaponsReducedv1a.UT2341ShockRifle";
break;
case "XWeapons.LinkGun":
if(bReplaceLinkGun)
return "UT2341WeaponsReducedv1a.UT2341PulseGun";
break;
case "XWeapons.Minigun":
if(bReplaceMinigun)
return "UT2341WeaponsReducedv1a.UT2341Minigun";
break;
case "XWeapons.FlakCannon":
if(bReplaceFlakCannon)
return "UT2341WeaponsReducedv1a.UT2341FlakCannon";
break;
case "XWeapons.ONSGrenadeLauncher":
if(bReplaceONSGrenadeLauncer)
return "UT2341WeaponsReducedv1a.UT2341Ripper";
break;
case "XWeapons.RocketLauncher":
if(bReplaceRocketLauncher)
return "UT2341WeaponsReducedv1a.UT2341RocketLauncher";
break;
case "XWeapons.SniperRifle":
if(bReplaceSniperRifle)
return "UT2341WeaponsReducedv1a.UT2341SniperRifle";
break;
case "XWeapons.ClassicSniperRifle":
if(bReplaceClassicSniperRifle)
return "UT2341WeaponsReducedv1a.UT2341SniperRifle";
break;
case "XWeapons.Redeemer":
if(bReplaceRedeemer)
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
break;
case "XWeapons.Painter":
if(bReplacePainter)
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
break;
case "XWeapons.ONSPainter":
if(bReplacePainter)
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
break;
}
if ( NextMutator != None )
return NextMutator.GetInventoryClassOverride(InventoryClassName);
return InventoryClassName;
}
function bool CheckReplacement( Actor Other, out byte bSuperRelevant )
{
local int i;
local WeaponLocker L;
local PhysicsVolume PV;
bSuperRelevant = 0;
/*
PV = PhysicsVolume(Other);
if ( PV != None )
{
PV.bAlwaysRelevant = true;
PV.RemoteRole = ROLE_DumbProxy;
return true;
}
*/
if (xPawn(Other) != None)
{
if(bReplaceStartWeapons)
{
xPawn(Other).RequiredEquipment[0] = "UT2341WeaponsReducedv1a.UT2341Enforcer";
xPawn(Other).RequiredEquipment[1] = "UT2341WeaponsReducedv1a.UT2341Hammer";
if (xLastManStandingGame(Level.Game) != None)
xPawn(Other).RequiredEquipment[2] = "UT2341WeaponsReducedv1a.UT2341Ripper";
return true;
}
}
if (xPickupBase(Other) != None)
{
Other.bHidden = True;
Other.SetDrawType(DT_None);
Other.SetStaticMesh(None);
if ( xWeaponBase(Other) != None )
{
switch(xWeaponBase(Other).WeaponType)
{
case class'AssaultRifle':
if(bReplaceAssaultRifle)
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
break;
case class'BioRifle':
if(bReplaceBioRifle)
xWeaponBase(Other).WeaponType = class'UT2341BioRifle';
break;
case class'ONSMineLayer':
if(bReplaceONSMineLayer)
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
break;
case class'ShockRifle':
if(bReplaceShockRifle)
xWeaponBase(Other).WeaponType = class'UT2341ShockRifle';
break;
case class'LinkGun':
if(bReplaceLinkGun)
xWeaponBase(Other).WeaponType = class'UT2341PulseGun';
break;
case class'Minigun':
if(bReplaceMinigun)
xWeaponBase(Other).WeaponType = class'UT2341Minigun';
break;
case class'FlakCannon':
if(bReplaceFlakCannon)
xWeaponBase(Other).WeaponType = class'UT2341FlakCannon';
break;
case class'ONSGrenadeLauncher':
if(bReplaceONSGrenadeLauncer)
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
break;
case class'RocketLauncher':
if(bReplaceRocketLauncher)
xWeaponBase(Other).WeaponType = class'UT2341RocketLauncher';
break;
case class'SniperRifle':
if(bReplaceSniperRifle)
xWeaponBase(Other).WeaponType = class'UT2341SniperRifle';
break;
case class'ClassicSniperRifle':
if(bReplaceClassicSniperRifle)
xWeaponBase(Other).WeaponType = class'UT2341SniperRifle';
break;
case class'Redeemer':
if(bReplaceRedeemer)
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
break;
case class'Painter':
if(bReplacePainter)
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
break;
case class'ONSPainter':
if(bReplacePainter)
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
break;
}
}
return true;
}
if (Pickup(Other) != None)
{
if ( WeaponLocker(Other) != None )
{
L = WeaponLocker(Other);
for (i = 0; i < L.Weapons.Length; i++)
{
switch(L.Weapons[i].WeaponClass)
{
case class'BioRifle':
if(bReplaceAssaultRifle)
L.Weapons[i].WeaponClass = class'UT2341BioRifle';
break;
case class'AssaultRifle':
if(bReplaceBioRifle)
L.Weapons[i].WeaponClass = class'UT2341Ripper';
break;
case class'ONSMineLayer':
if(bReplaceONSMineLayer)
L.Weapons[i].WeaponClass = class'UT2341Ripper';
break;
case class'ShockRifle':
if(bReplaceShockRifle)
L.Weapons[i].WeaponClass = class'UT2341ShockRifle';
break;
case class'LinkGun':
if(bReplaceLinkGun)
L.Weapons[i].WeaponClass = class'UT2341PulseGun';
break;
case class'Minigun':
if(bReplaceMinigun)
L.Weapons[i].WeaponClass = class'UT2341Minigun';
break;
case class'FlakCannon':
if(bReplaceFlakCannon)
L.Weapons[i].WeaponClass = class'UT2341FlakCannon';
break;
case class'RocketLauncher':
if(bReplaceRocketLauncher)
L.Weapons[i].WeaponClass = class'UT2341RocketLauncher';
break;
case class'SniperRifle':
if(bReplaceSniperRifle)
L.Weapons[i].WeaponClass = class'UT2341SniperRifle';
break;
case class'ClassicSniperRifle':
if(bReplaceClassicSniperRifle)
L.Weapons[i].WeaponClass = class'UT2341SniperRifle';
break;
}
}
return true;
}
if (UTAmmoPickup(Other) != None)
{
switch(UTAmmoPickup(Other).Class)
{
case class'AssaultAmmoPickup':
if(bReplaceAssaultRifle)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
break;
case class'BioAmmoPickup':
if(bReplaceBioRifle)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341BioAmmoPickup");
break;
case class'ONSMineAmmoPickup':
if(bReplaceONSMineLayer)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
break;
case class'ShockAmmoPickup':
if(bReplaceShockRifle)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341ShockRifleAmmoPickup");
break;
case class'LinkAmmoPickup':
if(bReplaceLinkGun)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341PulseAmmoPickup");
break;
case class'MinigunAmmoPickup':
if(bReplaceMinigun)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341MinigunAmmoPickup");
break;
case class'FlakAmmoPickup':
if(bReplaceFlakCannon)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341FlakAmmoPickup");
break;
case class'ONSGrenadeAmmoPickup':
if(bReplaceONSGrenadeLauncer)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
break;
case class'RocketAmmoPickup':
if(bReplaceRocketLauncher)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RocketAmmoPickup");
break;
case class'SniperAmmoPickup':
if(bReplaceSniperRifle)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341SniperAmmoPickup");
break;
case class'ClassicSniperAmmoPickup':
if(bReplaceClassicSniperRifle)
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341SniperAmmoPickup");
break;
}
return true;
}
}
return true;
}
defaultproperties
{
GroupName = "Arena"
FriendlyName = "Unreal Tournament 2341"
Description = "Replaces the standard weapons with UT99 equivalents."
bNetTemporary = True
bAlwaysRelevant = True
RemoteRole = ROLE_SimulatedProxy
bReplaceAssaultRifle = True
bReplaceBioRifle = True
bReplaceONSMineLayer = True
bReplaceShockRifle = True
bReplaceLinkGun = True
bReplaceMinigun = True
bReplaceFlakCannon = True
bReplaceONSGrenadeLauncer = True
bReplaceRocketLauncher = True
bReplaceSniperRifle = True
bReplaceClassicSniperRifle = True
bReplaceRedeemer = True
bReplacePainter = True
bReplaceStartWeapons = True
bAddToServerpackages = True
}