There is no spoon
- 1 UnrealScript changes
- 1.1 Fully qualified names
- 1.2 New macros
- 1.3 Script latent functions
- 1.4 Variable descriptions
- 1.5 New variable modifiers
- 1.6 Interfaces
- 1.7 Importing
- 1.8 Constructors
- 1.9 Function overloading
- 1.10 Constructors
- 1.11 Grabbing an instance of Level
- 1.12 Interactions
- 1.13 IGEffectsSystem
- 1.14 New iterators
- 1.15 Tribes Vengeance Resources
- 2 Related Topics
Fully qualified names
You will have to use fully qualified names (
package.class) to refer to classes in external packages.
#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.
#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.
- 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.
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";
interface IInterestedActorDestroyed native;
class SoundEffectsSubsystem extends IGEffectsSystem.EffectsSubsystem implements Engine.IInterestedActorDestroyed config(SoundEffects) native;
- Multiple implements allowed?
- Only native code?
import class Engine.Actor; import class Engine.Pawn; import class Engine.LevelInfo; import enum AlertnessLevels from Rook; import enum ACT_ErrorCodes from ActionBase;
- what does this do? import declarations from these classes (maybe working implementation of the #import macro)
overloaded native function Construct(); overloaded native function Construct( actor Owner, optional name Tag, optional vector Location, optional rotator Rotation);
Used by the contructors.
Unknown: is this limited to constructors?
dec 26, 2004- dont think it is, its implicit in regular function calls.
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.
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.
Whats the story here.
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)
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.