![]() |
|
|
|
|
#1 |
|
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: |
|
|
|
|
|
|
#2 |
|
Registered User
Join Date: Sep. 5th, 2001
Location: Edinburgh, Scotland
Posts: 15
|
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. |
|
|
|
|
|
#3 |
|
Registered User
Join Date: Sep. 5th, 2001
Location: Edinburgh, Scotland
Posts: 15
|
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 . |
|
|
|
|
|
#4 |
|
Thanks, I haven't tried it yet, but how do I add a weapon to a player's inventory to start with?
|
|
|
|
|
|
|
#5 |
|
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; } } |
|
|
|
|
|
|
#6 |
|
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.) |
|
|
|
|
|
|
#7 |
|
Ofcourse a mutator like the beangun (hillarious btw
) replaces all weapons like (in this case) the biorifle so when you pick it up you get it instead of the biorifle...
|
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|