Tribes Vengeance
UnrealScript changes
Fully qualified names
You will have to use fully qualified names (package.class
) to refer to classes in external packages.
New macros
#define NAME [1|0] #if <expression> //... if code #else //... else code #endif
The expression is evaluated to true (1) or false (0).
The macro line can contain a single line comment, that should be ignored.
For example:
#define THIS 1 #define THAT 0 #if (THIS && THAT) // only if this and that are true DoStuff(); #endif
The following operators are allowed in the experssion: && (and), ! (not), || (or)
These macros can not be used in the defaultproperties section.
Unknown:
- are these defines global to the system, or only to the current class and subclasses
- when is it parsed, on the spot or pre-compile
Script latent functions
New latent functions can be defined in UnrealScript.
Variable descriptions
var(Display) bool bVolumetricShadowCast "If true, lights with bCastsVolumetricShadows=true will cast volumetric shadows from this actor"; #
The string after the variable declaration contains a description about this variable. These are referred to as Editor Tooltips, as they are used inside of the Editor when click the ? beside a variable in Properties.
El Muerte: Just found out this is part of the stock engine.
Mychaeel: Indeed, this syntax compiles in UT2004... too bad there's no "?" button to click on to display this tooltip. I remember an idea like that having been mentioned on Epic's 2002 Mod Summit.
New variable modifiers
var() editdisplay(displayActorLabel) editcombotype(enumTeamInfo) TeamInfo team "The team that the base belongs to";
Interfaces
interface IInterestedActorDestroyed native;
class SoundEffectsSubsystem extends IGEffectsSystem.EffectsSubsystem implements Engine.IInterestedActorDestroyed config(SoundEffects) native;
Unknown:
- Multiple implements allowed?
- Only native code?
Importing
import class Engine.Actor; import class Engine.Pawn; import class Engine.LevelInfo; import enum AlertnessLevels from Rook; import enum ACT_ErrorCodes from ActionBase;
Unknown:
- what does this do? import declarations from these classes (maybe working implementation of the #import macro)
Constructors
overloaded native function Construct(); overloaded native function Construct( actor Owner, optional name Tag, optional vector Location, optional rotator Rotation);
Function overloading
Used by the contructors.
Unknown: is this limited to constructors?
dec 26, 2004- dont think it is, its implicit in regular function calls.
Constructors
Seems like constructors can only use functions, not variable declarations.
Grabbing an instance of Level
Has anyone been able to do this from within a hud, or some sub class trickery?
Despite the nerfing of "client-side scripting" seems like a lot could be done if we
could just an instance of the damn object.
Interactions
I haven't really looked into how these are used so far, but I'm very interested
if any can explain how they are used in T:V.
IGEffectsSystem
Whats the story here.
New iterators
native final iterator function AllProperties ( class FromClass, class TerminatingSuperClass, out Name PropName, optional out string PropType ); native final iterator function AllEditableProperties ( class FromClass, class TerminatingSuperClass, out Name PropName, optional out string PropType );
Includes properties for super classes up to but not including "TerminatingSuperClass"
'None' returns all properties including those in class "Object"
Tribes Vengeance Resources
- irc.dynamix.com #tvscripters
- irc.dynamix.com #tvmappers
- www.house-of-style.com (3 tribes scripting forums)
- www.tribalwar.com (scripting/modifying forum and tribes talk, beware general discussion)
Related Topics
El Muerte: Yes, it's a mess, but it's a start
Pachacutec: hardly, nice work! i can't find constructors in other unreal documentation, just this page. that tells me we got the cooler set up! seems like all unreal has is a very rigid "defaultproperties" box where can they set instance variables.
Category Game
Category To Do – Convert to common page layout. See UT2003 for the layout.