Code: Select all
foreach AllActors(class 'Actor', A, 'BOATRIDE-LOCKIN')
declaration of AllActors
Code: Select all
native(304) final iterator function AllActors ( class<actor> BaseClass, out actor Actor, optional name MatchTag );
Code: Select all
foreach AllActors(class 'Actor', A, 'BOATRIDE-LOCKIN')
Code: Select all
native(304) final iterator function AllActors ( class<actor> BaseClass, out actor Actor, optional name MatchTag );
Code: Select all
var name ThatBadTag;
ThatBadTag='Some-Hypens-Trash';
/*
SetPropertyText...
ConsoleCommand...
*/
foreach AllActors(..,.., ThatBadTag )
...
Code: Select all
class TheStart expands Mutator config;
var config float stDelay;
var config bool bStartGames;
var String Map;
var bool bFirstTime, bCheckedMap;
var name Badie;
....
event Timer()
{
local Pawn P;
local StatLog SL;
local Actor A;
...
SetPropertyText("Badie","Ugly-Tag");
log (Badie);
foreach AllActors (class 'Actor',A,Badie)
{
log ("Found badie, yo...");
}
...
Can I rebuild UCC with UCC? ^^Higor wrote:It's the script compiler. The compiler would need to be rebuilt
Just did it with UCC2_2 - same error.Chamberly wrote:Did you try UCC2?
Code: Select all
var name FooTag;
// ...
foreach AllActors(class'Foo', FooActor, FooTag) {
// ...
}
// ...
defaultproperties
{
FooTag="Tag-With-Hyphens"
}
Wormbo wrote:While name values may contain all kinds of awkward characters, name literals may not. That simple.
It's a parser thing. Well, actually a tokenizer thing. The UnrealScript compiler never was great in terms of consistency. The defaultproperties block is not even UnrealScript code, but T3D content, so allowing strings as name values there doesn't tell anything about name literals in UnrealScript. (There's no separate name literal in T3D files.)Barbie wrote:Wormbo wrote:While name values may contain all kinds of awkward characters, name literals may not. That simple.
Whow, thanks - that made me really head shaking. A data type is a data type is a ... oh wait. Not this one.
(Let's compare it to data type byte: it can contain numbers between 0 and 255, but you are allowed to assign values from 0 to 99 literally only?)
Is there any reasonable reason for this behaviour? Except less work for the programmer of the parser code?
Code: Select all
log(0123456789abcedfx);
log(123456789abcedfx);
log(0123456789abcedf);
log(123456789abcedf);
log(0123456789abcedf.x);
log(123456789abcedf.x);
log(0123456789abced.f);
log(123456789abced.f);
log(0123456789abced.fx);
log(123456789abced.fx);
log(012e3);
log(12e3);
log(1.2e+3);
log(1.2d3);
log(1.2a3);
log(1.2x3);