UE3:InventoryManager (UT3)

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 14:40, 23 May 2008 by 127.0.0.1 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
UT3 Object >> Actor >> InventoryManager
Package: 
Engine

InventoryManager Base class to manage Pawn's inventory This provides a simple interface to control and interact with the Pawn's inventory, such as weapons, items and ammunition. Copyright 1998-2007 Epic Games, Inc. All Rights Reserved.

Properties

bMustHoldWeapon

Type: bool

if true, don't allow player to put down weapon without switching to another one

InventoryChain

Type: Inventory

First inventory item in inventory linked list

LastAttemptedSwitchToWeapon

Type: Weapon


PendingFire

Type: array<int>

Holds the current "Fire" status for both firing modes

PendingWeapon

Type: Weapon

Player will switch to PendingWeapon, once the current weapon has been put down.

Fixme: laurent -- PendingWeapon should be made protected, because too many bugs result by setting this variable directly. It's only safe to read it, but to change it, SetCurrentWeapon() should be used.

Default values

Property Value
bHidden True
bOnlyDirtyReplication True
bOnlyRelevantToOwner True
bReplicateInstigator True
bReplicateMovement False
CollisionType COLLIDE_CustomDefault
NetPriority 1.4
RemoteRole ROLE_SimulatedProxy
TickGroup TG_DuringAsyncWork

Functions

Iterator functions

InventoryActors

native final iterator function InventoryActors (class<InventoryBaseClass, out Inventory Inv)

returns all Inventory Actors of class BaseClass

Parameters:

  • BaseClass - Inventory actors returned are of, or childs of, this base class.

Output: Inv Inventory actors returned.

Note: this iterator bails if it encounters more than 100 items, since temporary loops in linked list may sometimes be created on network clients while link pointers are being replicated. For performance reasons you shouldn't have that many inventory items anyway.

Exec functions

DumpWeaponStats

exec simulated function DumpWeaponStats ()

Dump debug stats in log of all weapons in inventory.

Events

Destroyed

event Destroyed ()

Overrides: Actor.Destroyed

Event called when inventory manager is destroyed, called from Pawn.Destroyed()

DiscardInventory

simulated event DiscardInventory ()

Discard full inventory, generally because the owner died

FindInventoryType

simulated event Inventory FindInventoryType (class<InventoryDesiredClass, optional bool bAllowSubclass)

returns the inventory item of the requested class if it exists in this inventory manager.

Parameters:

  • DesiredClass - class of inventory item we're trying to find.
  • bAllowSubclass - whether subclasses of the desired class are acceptable

Returns:

Inventory actor if found, None otherwise.

PostBeginPlay

event PostBeginPlay ()

Overrides: Actor.PostBeginPlay


Other instance functions

AddInventory

simulated function bool AddInventory (Inventory NewItem, optional bool bDoNotActivate)

Adds an existing inventory item to the list. Returns true to indicate it was added, false if it was already in the list.

Parameters:

  • NewItem - Item to add to inventory manager.

Returns:

true if item was added, false otherwise.

CancelWeaponChange

simulated function bool CancelWeaponChange ()

Prevents player from being without a weapon.

ChangedWeapon

simulated function ChangedWeapon ()

ChangedWeapon is called when the current weapon is finished being deactivated

ClientSyncWeapon

reliable client function ClientSyncWeapon (Weapon NewWeapon)

If the server detects that the client's weapon is out of sync, it will use this function to realign them. Network: LocalPlayer

Parameters:

  • NewWeapon - The weapon the server wishes to force the client to

ClientWeaponSet

simulated function ClientWeaponSet (Weapon NewWeapon, bool bOptionalSet)

Weapon just given to a player, check if player should switch to this weapon Network: LocalPlayer Called from Weapon.ClientWeaponSet()

CreateInventory

simulated function Inventory CreateInventory (class<InventoryNewInventoryItemClass, optional bool bDoNotActivate)

Spawns a new Inventory actor of NewInventoryItemClass type, and adds it to the Inventory Manager.

Parameters:

  • NewInventoryItemClass - Class of inventory item to spawn and add.

Returns:

Inventory actor, None if couldn't be spawned.

DrawHud

simulated function DrawHud (HUD H)

Hook called from HUD actor. Gives access to HUD and Canvas

Parameters:

  • H - HUD

GetBestWeapon

simulated function Weapon GetBestWeapon (optional bool bForceADifferentWeapon)

returns the best weapon for this Pawn in loadout

GetWeaponRatingFor

simulated function float GetWeaponRatingFor (Weapon W)

Returns a weight reflecting the desire to use the given weapon, used for AI and player best weapon selection.

Parameters:

  • Weapon - W

Returns:

Weapon rating (range -1.f to 1.f)

HandlePickupQuery

function bool HandlePickupQuery (class<InventoryItemClass, Actor Pickup)

Handle Pickup. Can Pawn pickup this item?

Parameters:

  • ItemClass - Class of Inventory our Owner is trying to pick up
  • Pickup - the Actor containing that item (this may be a PickupFactory or it may be a DroppedPickup)

Returns:

whether or not the Pickup actor should give its item to Other

IsActiveWeapon

simulated function bool IsActiveWeapon (Weapon ThisWeapon)

returns true if ThisWeapon is the Pawn's active weapon.

Parameters:

  • ThisWeapon - weapon to test if it's the Pawn's active weapon.

Returns:

true if ThisWeapon is the Pawn's current weapon

ModifyDamage

function int ModifyDamage (int Damage, Controller instigatedBy, Object.Vector HitLocation, Object.Vector Momentum, class<DamageTypeDamageType)

Damage modifier. Is Pawn carrying items that can modify taken damage? Called from GameInfo.ReduceDamage()

NextWeapon

simulated function NextWeapon ()

Switches to Next weapon Network: Client

OwnerEvent

simulated function OwnerEvent (name EventName)

Used to inform inventory when owner event occurs (for example jumping or weapon change)

Parameters:

  • EventName - Name of event to forward to inventory items.

PrevWeapon

simulated function PrevWeapon ()

Switches to Previous weapon Network: Client

RemoveFromInventory

simulated function RemoveFromInventory (Inventory ItemToRemove)

Attempts to remove an item from the inventory list if it exists.

Parameters:

  • Item - Item to remove from inventory

ServerSetCurrentWeapon

reliable server function ServerSetCurrentWeapon (Weapon DesiredWeapon)

ServerSetCurrentWeapon begins the Putdown sequence on the server. This function makes the assumption that if TryPutDown succeeded on the client, it will succeed on the server. This function shouldn't be called from anywhere except SetCurrentWeapon

Network: Dedicated Server

SetCurrentWeapon

reliable client function SetCurrentWeapon (Weapon DesiredWeapon)

Set DesiredWeapon as Current (Active) Weapon. Network: LocalPlayer

Parameters:

  • DesiredWeapon - Desired weapon to assign to player

SetPendingWeapon

simulated function SetPendingWeapon (Weapon DesiredWeapon)

Set the pending weapon for switching. This shouldn't be called outside of SetCurrentWeapon()

SetupFor

function SetupFor (Pawn P)

Setup Inventory for Pawn P. Override this to change inventory assignment (from a pawn to another) Network: Server only

StartFire

simulated function StartFire (byte FireModeNum)

Pawn desires to fire. By default it fires the Active Weapon if it exists. Called from PlayerController::StartFire() -> Pawn::StartFire() Network: Local Player

Parameters:

  • FireModeNum - Fire mode number.

StopFire

simulated function StopFire (byte FireModeNum)

Pawn stops firing. i.e. player releases fire button, this may not stop weapon firing right away. (for example press button once for a burst fire) Network: Local Player

Parameters:

  • FireModeNum - Fire mode number.

SwitchToBestWeapon

simulated function SwitchToBestWeapon (optional bool bForceADifferentWeapon)

Switch to best weapon available in loadout Network: LocalPlayer