I know where its doing that change in the inventory i know where to block it but i just dont know what if statement i must use to filter monsters, to make it easier for you i have bolded the key section where it needs to be filtered, technically all i am looking for is something like:
If (Actor != Monster)
{
if ( NextMutator != None )
return NextMutator.GetInventoryClassOverride(InventoryClassName);
return InventoryClassName;
}
Code: Select all
//==============================================================================
// SwapTool for Unreal Tournament 2004
// Version 1.1
// 2/3/2005
// Author - Matt Miller a.k.a. T-Bone
//==============================================================================
class MutSwapTool1A extends Mutator
config(SwapToolV111A);
var config int bSwapWeapon[17];
var config string WeaponClassName[17];
var class<Weapon> WeaponClass[17];
var string WeaponAmmoName[12];
var config int bSwapVehicle[17];
var config string VehicleClassName[9];
var class<SVehicle> VehicleClass[9];
var class<Weapon> StandardWeaponClass[18];
var string StandardWeaponAmmoName[12];
var class<Weapon> DummyWeaponClass;
var string DummyWeaponClassName;
var class<SVehicle> BPVehicleClass[3];
var class<Weapon> CustomWeaponClassFix[2];
var string CustomAmmoClassFix[2];
// Add third party weapon/vehicle packages to Server Packages list
event PreBeginPlay()
{
local array<string> ServerPackageNames;
local string CurPackage;
local bool bNonRepeat;
local int i, j;
Super.PreBeginPlay();
for (i=0; i<17; i++)
{
if ( InStr(WeaponClassName[i], ".") != -1 && bool(bSwapWeapon[i]) )
{
CurPackage = Left(WeaponClassName[i], InStr(WeaponClassName[i], ".") );
if (CurPackage != "XWeapons" && CurPackage != "UTClassic" && CurPackage != "Onslaught" && CurPackage != "OnslaughtFull")
{
bNonRepeat = True;
for (j=0; j < ServerPackageNames.Length; j++)
{
if (CurPackage == ServerPackageNames[j])
{
bNonRepeat = False;
break;
}
}
if (bNonRepeat)
ServerPackageNames[ServerPackageNames.Length] = CurPackage;
}
}
}
for (i=0; i<9; i++)
{
if ( InStr(VehicleClassName[i], ".") != -1 && bool(bSwapVehicle[i]) )
{
CurPackage = Left(VehicleClassName[i], InStr(VehicleClassName[i], ".") );
if (CurPackage != "Onslaught" && CurPackage != "OnslaughtFull" && CurPackage != "OnslaughtBP")
{
bNonRepeat = True;
for (j=0; j < ServerPackageNames.Length; j++)
{
if (CurPackage == ServerPackageNames[j])
{
bNonRepeat = False;
break;
}
}
if (bNonRepeat)
ServerPackageNames[ServerPackageNames.Length] = CurPackage;
}
}
}
for (i=0; i < ServerPackageNames.Length; i++)
{
AddToPackageMap(ServerPackageNames[i]);
}
}
function PostBeginPlay()
{
local int i;
Super.PostBeginPlay();
// Load Weapons
for (i=0; i < 17; i++)
{
if (WeaponClassName[i] ~= "none" || !bool(bSwapWeapon[i]) )
WeaponClass[i] = None;
else
WeaponClass[i] = class<Weapon>(DynamicLoadObject(WeaponClassName[i],class'Class'));
}
// Get Ammo Class Names
for (i=2; i < 14; i++)
{
if ( (WeaponClass[i] != None) && (WeaponClass[i].default.FireModeClass[0] != None)
&& (WeaponClass[i].default.FireModeClass[0].default.AmmoClass != None)
&& (WeaponClass[i].default.FireModeClass[0].default.AmmoClass.default.PickupClass != None) )
WeaponAmmoName[i-2] = string(WeaponClass[i].default.FireModeClass[0].default.AmmoClass.default.PickupClass);
else if ( WeaponClass[i] == CustomWeaponClassFix[0] )
WeaponAmmoName[i-2] = CustomAmmoClassFix[0];
else if ( WeaponClass[i] == CustomWeaponClassFix[1] )
WeaponAmmoName[i-2] = CustomAmmoClassFix[1];
else
WeaponAmmoName[i-2] = "none";
}
// Load Vehicles
for (i=0; i < 9; i++)
{
if (VehicleClassName[i] ~= "none" || !bool(bSwapVehicle[i]) )
VehicleClass[i] = None;
else
VehicleClass[i] = class<SVehicle>(DynamicLoadObject(VehicleClassName[i],class'Class'));
}
// Load BPVehicles
BPVehicleClass[0] = class<SVehicle>(DynamicLoadObject("OnslaughtBP.ONSDualAttackCraft",class'Class',True));
BPVehicleClass[1] = class<SVehicle>(DynamicLoadObject("OnslaughtBP.ONSArtillery",class'Class',True));
BPVehicleClass[2] = class<SVehicle>(DynamicLoadObject("OnslaughtBP.ONSShockTank",class'Class',True));
SetTimer(0.1,False);
}
function Timer()
{
local ONSVehicleFactory Factory;
foreach AllActors(class'ONSVehicleFactory', Factory)
{
switch (Factory.VehicleClass)
{
// Replace Manta
case Class'Onslaught.ONSHoverBike':
if (bool(bSwapVehicle[0]))
{
if (VehicleClass[0] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[0];
}
break;
// Replace Scorpion
case Class'Onslaught.ONSRV':
if (bool(bSwapVehicle[1]))
{
if (VehicleClass[1] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[1];
}
break;
// Replace Hellbender
case Class'Onslaught.ONSPRV':
if (bool(bSwapVehicle[2]))
{
if (VehicleClass[2] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[2];
}
break;
// Replace Raptor
case Class'Onslaught.ONSAttackCraft':
if (bool(bSwapVehicle[3]))
{
if (VehicleClass[3] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[3];
}
break;
// Replace Goliath
case Class'Onslaught.ONSHoverTank':
if (bool(bSwapVehicle[4]))
{
if (VehicleClass[4] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[4];
}
break;
// Replace Leviathan
case Class'OnslaughtFull.ONSMobileAssaultStation':
if (bool(bSwapVehicle[5]))
{
if (VehicleClass[5] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[5];
}
break;
// Replace Cicada
case BPVehicleClass[0]:
if (bool(bSwapVehicle[6]))
{
if (VehicleClass[6] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[6];
}
break;
// Replace SPMA
case BPVehicleClass[1]:
if (bool(bSwapVehicle[7]))
{
if (VehicleClass[7] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[7];
}
break;
// Replace Paladin
case BPVehicleClass[2]:
if (bool(bSwapVehicle[8]))
{
if (VehicleClass[8] == None)
{
Factory.Deactivate();
Factory.bNeverActivate = True;
}
else
Factory.VehicleClass = VehicleClass[8];
}
break;
}
}
}
function string GetInventoryClassOverride(string InventoryClassName)
{
local int i;
// Replace default weapons in LMS
for (i=0; i < 3; i++)
{
if ( InventoryClassName == string(StandardWeaponClass[i]) )
{
if (bool(bSwapWeapon[i]))
{
if ( WeaponClass[i] != None )
InventoryClassName = WeaponClassName[i];
else
InventoryClassName = DummyWeaponClassName;
}
if ( i == 17 )
{
InventoryClassName = WeaponClassName[5];
}
break;
}
}
if ( NextMutator != None )
return NextMutator.GetInventoryClassOverride(InventoryClassName);
return InventoryClassName;
}
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
local WeaponLocker L;
local int i, j;
bSuperRelevant = 0;
// Swap out default weapon pickups with our weapon pickups
if ( Other.IsA('xWeaponBase') )
{
for (i=2; i < 17; i++)
{
if ( xWeaponBase(Other).WeaponType == StandardWeaponClass[i] )
{
if (bool(bSwapWeapon[i]))
{
if ( WeaponClass[i] != None )
{
xWeaponBase(Other).WeaponType = WeaponClass[i];
return True;
}
else
{
xWeaponBase(Other).WeaponType = DummyWeaponClass;
xWeaponBase(Other).bHidden = True;
if (xWeaponBase(Other).myEmitter != None)
xWeaponBase(Other).myEmitter.Destroy();
}
}
break;
}
}
}
// Swap out default ammo pickups with our ammo pickups
// AmbientGlow mess is just my way of tagging ammo that has already been replaced
else if ( Other.IsA('Ammo') && Other.AmbientGlow != 117 )
{
for (i=0; i < 12; i++)
{
if (string(Other.Class) == StandardWeaponAmmoName[i])
{
if (bool(bSwapWeapon[i+2]) && WeaponAmmoName[i] != StandardWeaponAmmoName[i])
{
if (WeaponAmmoName[i] != "none")
ReplaceWith(Other, WeaponAmmoName[i]);
return False;
}
break;
}
}
}
// Swap out default weapons inside lockers with our weapons
else if (WeaponLocker(Other) != None)
{
L = WeaponLocker(Other);
for (j = 0; j < L.Weapons.Length; j++)
{
for (i=0; i < 17; i++)
{
if ( L.Weapons[j].WeaponClass == StandardWeaponClass[i] )
{
if (bool(bSwapWeapon[i]))
{
if (WeaponClass[i] != None)
L.Weapons[j].WeaponClass = WeaponClass[i];
else
L.Weapons[j].WeaponClass = DummyWeaponClass;
}
break;
}
}
}
}
return True;
}
function bool ReplaceWith(actor Other, string aClassName)
{
local Actor A;
local class<Actor> aClass;
if ( aClassName == "" )
return true;
aClass = class<Actor>(DynamicLoadObject(aClassName, class'Class'));
if ( class<Ammo>(aClass) != None )
class<Ammo>(aClass).Default.AmbientGlow = 117; // Tag replacement ammo
if ( aClass != None )
A = Spawn(aClass,Other.Owner,Other.tag,Other.Location, Other.Rotation);
if ( Other.IsA('Pickup') )
{
if ( Pickup(Other).MyMarker != None )
{
Pickup(Other).MyMarker.markedItem = Pickup(A);
if ( Pickup(A) != None )
{
Pickup(A).MyMarker = Pickup(Other).MyMarker;
A.SetLocation(A.Location
+ (A.CollisionHeight - Other.CollisionHeight) * vect(0,0,1));
}
Pickup(Other).MyMarker = None;
}
else if ( A.IsA('Pickup') )
Pickup(A).Respawntime = 0.0;
}
class<Ammo>(aClass).Default.AmbientGlow = 128;
if ( A != None )
{
A.event = Other.event;
A.tag = Other.tag;
return true;
}
return false;
}
defaultproperties
{
CustomWeaponClassFix(0)=Class'ChaosUT.Claw'
CustomWeaponClassFix(1)=Class'ChaosUT.CGL'
StandardWeaponClass(0)=Class'XWeapons.Translauncher'
StandardWeaponClass(1)=Class'XWeapons.ShieldGun'
StandardWeaponClass(2)=Class'XWeapons.AssaultRifle'
StandardWeaponClass(3)=Class'XWeapons.BioRifle'
StandardWeaponClass(4)=Class'XWeapons.ShockRifle'
StandardWeaponClass(5)=Class'XWeapons.LinkGun'
StandardWeaponClass(6)=Class'XWeapons.Minigun'
StandardWeaponClass(7)=Class'XWeapons.FlakCannon'
StandardWeaponClass(8)=Class'XWeapons.RocketLauncher'
StandardWeaponClass(9)=Class'XWeapons.SniperRifle'
StandardWeaponClass(10)=Class'UTClassic.ClassicSniperRifle'
StandardWeaponClass(11)=Class'Onslaught.ONSMineLayer'
StandardWeaponClass(12)=Class'Onslaught.ONSGrenadeLauncher'
StandardWeaponClass(13)=Class'Onslaught.ONSAVRiL'
StandardWeaponClass(14)=Class'OnslaughtFull.ONSPainter'
StandardWeaponClass(15)=Class'XWeapons.Painter'
StandardWeaponClass(16)=Class'XWeapons.Redeemer'
StandardWeaponClass(17)=Class'UT2004RPG.RPGLinkGun'
CustomAmmoClassFix(0)="ChaosUT.ClawProxyAmmoPickup"
CustomAmmoClassFix(1)="ChaosUT.CGLStandardAmmoPickup"
StandardWeaponAmmoName(0)="XWeapons.AssaultAmmoPickup"
StandardWeaponAmmoName(1)="XWeapons.BioAmmoPickup"
StandardWeaponAmmoName(2)="XWeapons.ShockAmmoPickup"
StandardWeaponAmmoName(3)="XWeapons.LinkAmmoPickup"
StandardWeaponAmmoName(4)="XWeapons.MinigunAmmoPickup"
StandardWeaponAmmoName(5)="XWeapons.FlakAmmoPickup"
StandardWeaponAmmoName(6)="XWeapons.RocketAmmoPickup"
StandardWeaponAmmoName(7)="XWeapons.SniperAmmoPickup"
StandardWeaponAmmoName(8)="UTClassic.ClassicSniperAmmoPickup"
StandardWeaponAmmoName(9)="Onslaught.ONSMineAmmoPickup"
StandardWeaponAmmoName(10)="Onslaught.ONSGrenadeAmmoPickup"
StandardWeaponAmmoName(11)="Onslaught.ONSAVRiLAmmoPickup"
DummyWeaponClass=Class'SwapToolV111A.STDummyW1A'
DummyWeaponClassName="SwapToolV111A.STDummyW1A"
ConfigMenuClassName="SwapToolV111A.SwapToolConfig1A"
GroupName="SwapTool1A"
FriendlyName="SwapTool1A"
Description="Swap out default weapons and vehicles with those of your choosing.||version 1A based on V1.1"
}
Thats kinda it, sorry if this is as easy as i think it is, i just dont know what to replace if (actor != monster) with...
Thanks in advance!