Mutators

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Psycho_Leech

Hug meh
Sep 17, 2001
779
0
0
38
In the darkness
www.geocities.com
How do I create a mutator that can be added to the mutator list in order to replace certain weapons and add other stuff, or would I be better off just relying on people to use W.O.R.M or summon shoverifle.shoverifle?
:redeemer:
 

FunnyG

New Member
This is the code I'm using for the gun I'm making:

//=============================================================================
// Bean Gun Mutator :- replaces BioRifle with BeanGun.
//=============================================================================

class BeanMutator extends Mutator;

function bool AlwaysKeep(Actor Other)
{
if(Other.IsA('BeanGun') || Other.IsA('BeanAmmo'))
return true;
return Super.AlwaysKeep(Other);
}

function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{

if ( Other.IsA('ut_biorifle') )
{
ReplaceWith(Other, "BeanGun.BeanGun");
return false;
}

if ( Other.IsA('BioAmmo'))
{
ReplaceWith(Other,"BeanGun.BeanAmmo");
return false;
}

return true;
}

defaultproperties
{
}

Th 'AlwaysKeep' function makes sure the gun isn't replaced by another weapons mutator, the 'CheckReplacement' function replaces the biorifle and it's ammo with my gun and it's ammo. Just change 'ut_biorifle' and 'BioAmmo' to the gun and ammo you want to replace.
 

FunnyG

New Member
You'll need to make an int file as well, use notepad to add;

[public]

Object=(Name=BeanGun.BeanMutator,Class=Class,MetaClass=Engine.Mutator,Description="BeanGun, replaces biorifle & ammo with Niall's Bean Gun and it's ammo.")

Change 'BeanGun.BeanMutator' to 'name_of_your_package.name_of_the_mutator', and save the file as thename of your package.int .
 

Kangus

Zombie on your pwn!
Jan 29, 2001
978
0
16
Illinois, USA
www.planetunreal.com
add this code (mostly taken from DeathMatchPlus) to your mutator, modifying as necessary:

function ModifyPlayer(Pawn Other)
{
GiveWeapon(other, "Botpack.Enforcer");

if ( NextMutator != None )
NextMutator.ModifyPlayer(Other);
}

function GiveWeapon(Pawn PlayerPawn, string aClassName )
{
local class<Weapon> WeaponClass;
local Weapon NewWeapon;

WeaponClass = class<Weapon>(DynamicLoadObject(aClassName, class'Class'));

if( PlayerPawn.FindInventoryType(WeaponClass) != None )
return;
newWeapon = Spawn(WeaponClass);
if( newWeapon != None )
{
newWeapon.RespawnTime = 0.0;
newWeapon.GiveTo(PlayerPawn);
newWeapon.bHeldItem = true;
newWeapon.GiveAmmo(PlayerPawn);
newWeapon.SetSwitchPriority(PlayerPawn);
newWeapon.WeaponSet(PlayerPawn);
newWeapon.AmbientGlow = 0;
if ( PlayerPawn.IsA('PlayerPawn') )
newWeapon.SetHand(PlayerPawn(PlayerPawn).Handedness);
else
newWeapon.GotoState('Idle');
PlayerPawn.Weapon.GotoState('DownWeapon');
PlayerPawn.PendingWeapon = None;
PlayerPawn.Weapon = newWeapon;
}
}
 

Wormbo

Administrator
Staff member
Jun 4, 2001
5,913
36
48
Germany
www.koehler-homepage.de
You could optionally use:

defaultproperties
{
DefaultWeapon=class'YourPackage.YourWeaponClass'
}

This uses less code but replaces the Impact Hammer.
(Shouldn't be a problem during testing.)
 

Papapishu

我是康
Jun 18, 2001
2,043
0
0
42
void
www.vovoid.com
Ofcourse a mutator like the beangun (hillarious btw :p :p ) replaces all weapons like (in this case) the biorifle so when you pick it up you get it instead of the biorifle...