Name : KB_CustomKismetActions
Size: 25Kb
Here are 4 new kismet actions i have coded mainly for my own use.. Others may find them usefull so i have
posted them here with a download link and usage instructions for others to look at..
I'll explain the uses for each in detail
GetSeatPawn ( Actions-->Vehicles-->Get Seat Pawn)

Usage :
Given a Vehicle Reference (in an Object) and Seat position ( in a Int) it will return the pawn reference that is in the seat.
Uses:
Mainly for use with scripted sequences on bots.
Connections: (mostly self explanatory but will list anyway)
Inputs
Vehicle/Vehicle Factory (Object, Input)) - The reference to your vehicle
Seat Pawn (Object, Output) - This should contain the reference to the pawn you specified when finished
Total Number Of Seats (Int, Output, Optional) - This returns the total number of seats the Vehicle has
Seat Index (Int, Input, Optional, In main options (default 0) - Visual reference so you can see you have overridden the default value
Outputs
Out - Works exactly the same as other kismet actions
Example use:
(1) Spawn a Darkwalker... then spawn two bots and place the returned spawned references for each pawn in a separate object
(2) Use a EnterVehicle node to place one bot in driver seat (0) and one in gunner seat (1)
(3) Using a FireAt node will work for the driver but NOT the gunner
Why doesn't the gunner FireAt work? ..
Well... the gunner is a UTWeaponPawn.. when you issued the EnterVehicle on gunner.. the engine created a
UTWeaponPawn with the old bots controller and attached that to the gunner seat.. your old reference is useless
as it points to the pawn you spawned and NOT the pawn in the gunners seat
If you use this node to get the new UTWeaponPawn reference and link that to the FireAt node it works
GetObjectListEntry ( Actions-->ObjectList-->Get ObjectList Entry)

Usage :
Given an ObjectList and Index Number ( in a Int) it will return whatever is in the slot specified by Index Number.
Uses:
Used for getting information out of an ObjectList.. Not included in retail versions of UT3.
Connections: (mostly self explanatory but will list anyway)
Inputs
ObjectListVar (ObjectList, Input)) - The reference to your ObjectList
Index Number (Int, Input, In main options (default -1) - This should contain the Index number of the information you want to returned
Index Number Notes
Default of -1 returns a random entry from the objectlist
NOTE: ObjectList are an array of Object so internally the first entry is always 0 .. e.g. Objectlist bla has 2 entries.. so it has bla[0] + bla[1]
You specify the index directly.. A ModifyObjectList returns ListEntryCount as an Int.. you can work out the slot numbers
by taking away 1 from ListEntryCount
Index Content (Object, Output) - This returns the info stored in the specified slot
Total Entries (Int, Output, Optional) - Returns the total number of entries in List (same format as ModifyObjectList output ListEntryCount)
Outputs
Out - Works exactly the same as other kismet actions
Success (Optional) - A result was returned ( i.e Valid Objectlist + Index Number)
Failed (Optional) - One of the following was not correct ( no ObjectList, empty ObjectList, or index number not valid)
Example use:
For a kismet random powerup spawner
(1) Create a new Objectlist and add directly to it 4 powerups
(2) Connect your powerup ObjectList to this node, leave Index at -1 then connect new object to index content
(3) Every time it's fired you get a random powerup that you can use with an Actor factory (to spawn it where you need)
GetVector ( Actions-->Actor-->Get Vector)

Usage :
Given an Object containing an in level actor.. it will return the position vector.
Uses:
Mainly for SpawnProjectile
Connections: (mostly self explanatory but will list anyway)
Inputs
Target (Object, Input)) - The Actor you wish to get the vector for
Location (Vector, Output) - The actors location
Outputs
Out - Works exactly the same as other kismet actions
Example use:
For SpawnProjectile in kismet
(1) Get the vector of two separate actors
(2) Plug them into the SpawnProjectile and send some deemers flying
GetPawnHealth ( Actions-->Pawn-->Get Pawn Health/Armor)

Usage :
Given a pawn reference it will get the amount of health, armor (separately) or all of them combined.
Uses:
Mainly coded for myself to check damage amounts done by weaponfire
Connections: (mostly self explanatory but will list anyway)
Inputs
Target (Object, Input)) - The Pawn you wish to get the information from
Health (Int, Output) - How much health the pawn has
Armor (Float, Output) - The combined total of all armor (Shieldbelt/Vest/ThighPads/Helmet)
Combined Health/Armor (Float, Output)- The health and Armor added together
ShieldBeltArmor (Float, Output, Optional) - How much Shieldbelt the pawn has
VestArmor (Float, Output, Optional) - How much Vest the pawn has
ThighPadArmor (Float, Output, Optional) - How much Thighpad the pawn has
HelmetArmor (Float, Output, Optional) - How much Helmet the pawn has
Outputs
Out - Works exactly the same as other kismet actions
How to update from previous versions
Make sure you dont have UnrealEd or UT3 running, replace the old KB_CustomKismetActions.u with the new one from the downloaded zip file, restart UnrealED, the new actions should show up.
Disclaimer
There is Zero references for coding custom Kismet nodes (Thanks Epic!! .. cough.. UT3 UDN .. cough.. ) so these have been a product of some guesswork and a lot of reading epics sparse code ( i.e. mostly native). I've tested these a lot for errors offline only.. How they work in multiplay i have no idea..
If would recommend you don't use them on a published map until i know they are multiplayer and generally safe!
Version History
16/01/08 - initial release
20/01/08 - added GetVector + GetPawnHealth
Download
Temporarily Removed
If you spot anything wrong with the code, want a look at the source .uc's or want more info on what a certain function does, feel free to ask
@ Mods .. If this belongs in the Full Releases section then please move it
Size: 25Kb
Here are 4 new kismet actions i have coded mainly for my own use.. Others may find them usefull so i have
posted them here with a download link and usage instructions for others to look at..
I'll explain the uses for each in detail
GetSeatPawn ( Actions-->Vehicles-->Get Seat Pawn)

Usage :
Given a Vehicle Reference (in an Object) and Seat position ( in a Int) it will return the pawn reference that is in the seat.
Uses:
Mainly for use with scripted sequences on bots.
Connections: (mostly self explanatory but will list anyway)
Inputs
Vehicle/Vehicle Factory (Object, Input)) - The reference to your vehicle
Seat Pawn (Object, Output) - This should contain the reference to the pawn you specified when finished
Total Number Of Seats (Int, Output, Optional) - This returns the total number of seats the Vehicle has
Seat Index (Int, Input, Optional, In main options (default 0) - Visual reference so you can see you have overridden the default value
Outputs
Out - Works exactly the same as other kismet actions
Example use:
(1) Spawn a Darkwalker... then spawn two bots and place the returned spawned references for each pawn in a separate object
(2) Use a EnterVehicle node to place one bot in driver seat (0) and one in gunner seat (1)
(3) Using a FireAt node will work for the driver but NOT the gunner
Why doesn't the gunner FireAt work? ..
Well... the gunner is a UTWeaponPawn.. when you issued the EnterVehicle on gunner.. the engine created a
UTWeaponPawn with the old bots controller and attached that to the gunner seat.. your old reference is useless
as it points to the pawn you spawned and NOT the pawn in the gunners seat
If you use this node to get the new UTWeaponPawn reference and link that to the FireAt node it works
GetObjectListEntry ( Actions-->ObjectList-->Get ObjectList Entry)

Usage :
Given an ObjectList and Index Number ( in a Int) it will return whatever is in the slot specified by Index Number.
Uses:
Used for getting information out of an ObjectList.. Not included in retail versions of UT3.
Connections: (mostly self explanatory but will list anyway)
Inputs
ObjectListVar (ObjectList, Input)) - The reference to your ObjectList
Index Number (Int, Input, In main options (default -1) - This should contain the Index number of the information you want to returned
Index Number Notes
Default of -1 returns a random entry from the objectlist
NOTE: ObjectList are an array of Object so internally the first entry is always 0 .. e.g. Objectlist bla has 2 entries.. so it has bla[0] + bla[1]
You specify the index directly.. A ModifyObjectList returns ListEntryCount as an Int.. you can work out the slot numbers
by taking away 1 from ListEntryCount
Index Content (Object, Output) - This returns the info stored in the specified slot
Total Entries (Int, Output, Optional) - Returns the total number of entries in List (same format as ModifyObjectList output ListEntryCount)
Outputs
Out - Works exactly the same as other kismet actions
Success (Optional) - A result was returned ( i.e Valid Objectlist + Index Number)
Failed (Optional) - One of the following was not correct ( no ObjectList, empty ObjectList, or index number not valid)
Example use:
For a kismet random powerup spawner
(1) Create a new Objectlist and add directly to it 4 powerups
(2) Connect your powerup ObjectList to this node, leave Index at -1 then connect new object to index content
(3) Every time it's fired you get a random powerup that you can use with an Actor factory (to spawn it where you need)
GetVector ( Actions-->Actor-->Get Vector)

Usage :
Given an Object containing an in level actor.. it will return the position vector.
Uses:
Mainly for SpawnProjectile
Connections: (mostly self explanatory but will list anyway)
Inputs
Target (Object, Input)) - The Actor you wish to get the vector for
Location (Vector, Output) - The actors location
Outputs
Out - Works exactly the same as other kismet actions
Example use:
For SpawnProjectile in kismet
(1) Get the vector of two separate actors
(2) Plug them into the SpawnProjectile and send some deemers flying

GetPawnHealth ( Actions-->Pawn-->Get Pawn Health/Armor)

Usage :
Given a pawn reference it will get the amount of health, armor (separately) or all of them combined.
Uses:
Mainly coded for myself to check damage amounts done by weaponfire
Connections: (mostly self explanatory but will list anyway)
Inputs
Target (Object, Input)) - The Pawn you wish to get the information from
Health (Int, Output) - How much health the pawn has
Armor (Float, Output) - The combined total of all armor (Shieldbelt/Vest/ThighPads/Helmet)
Combined Health/Armor (Float, Output)- The health and Armor added together
ShieldBeltArmor (Float, Output, Optional) - How much Shieldbelt the pawn has
VestArmor (Float, Output, Optional) - How much Vest the pawn has
ThighPadArmor (Float, Output, Optional) - How much Thighpad the pawn has
HelmetArmor (Float, Output, Optional) - How much Helmet the pawn has
Outputs
Out - Works exactly the same as other kismet actions
How to update from previous versions
Make sure you dont have UnrealEd or UT3 running, replace the old KB_CustomKismetActions.u with the new one from the downloaded zip file, restart UnrealED, the new actions should show up.
Disclaimer
There is Zero references for coding custom Kismet nodes (Thanks Epic!! .. cough.. UT3 UDN .. cough.. ) so these have been a product of some guesswork and a lot of reading epics sparse code ( i.e. mostly native). I've tested these a lot for errors offline only.. How they work in multiplay i have no idea..
If would recommend you don't use them on a published map until i know they are multiplayer and generally safe!
Version History
16/01/08 - initial release
20/01/08 - added GetVector + GetPawnHealth
Download
Temporarily Removed
If you spot anything wrong with the code, want a look at the source .uc's or want more info on what a certain function does, feel free to ask
@ Mods .. If this belongs in the Full Releases section then please move it
Comment