Jump to content

The next Step


dreadylein

Recommended Posts

  • Replies 98
  • Created
  • Last Reply

Top Posters In This Topic

Scraped straight from UE Explorer's Native Tables (NativesTableList_UDK-2011-08.NTL):

 

!	81
==	F2
!=	F3
&&	82
^^	83
||	84
*=	85
*=	C6
/=	86
+=	87
-=	88
++	89
--	8A
++	8B
--	8C
~	8D
-	8F
*	90
/	91
%	FD
+	92
-	93
<<	94
>>	95
>>>	C4
<	96
>	97
<=	98
>=	99
==	9A
!=	9B
&	9C
^	9D
|	9E
*=	9F
/=	A0
+=	A1
-=	A2
++	A3
--	A4
++	A5
--	A6
Rand	A7
Min	F9
Max	FA
Clamp	FB
-	A9
**	AA
*	AB
/	AC
%	AD
+	AE
-	AF
<	B0
>	B1
<=	B2
>=	B3
==	B4
~=	D2
!=	B5
*=	B6
/=	B7
+=	B8
-=	B9
Abs	BA
Sin	BB
Cos	BC
Tan	BD
Atan	BE
Exp	BF
Loge	C0
Sqrt	C1
Square	C2
FRand	C3
FMin	F4
FMax	F5
FClamp	F6
Lerp	F7
Round	C7
-	D3
*	D4
*	D5
*	28
/	D6
+	D7
-	D8
<<	13
>>	14
==	D9
!=	DA
Dot	DB
Cross	DC
*=	DD
*=	29
/=	DE
+=	DF
-=	E0
VSize	E1
VSizeSq	E4
Normal	E2
VRand	FC
MirrorVectorByNormal	2C
ProjectOnTo	DC
IsZero	DD
==	8E
!=	CB
*	1F
*	20
/	21
*=	22
/=	23
+	3C
-	3D
+=	3E
-=	3F
GetAxes	E5
GetUnAxes	E6
RotRand	40
$	70
@	A8
<	73
>	74
<=	78
>=	79
==	7A
!=	7B
~=	7C
$=	42
@=	43
-=	44
Len	7D
InStr	7E
Mid	7F
Left	80
Right	EA
Caps	EB
Locs	EE
Chr	EC
Asc	ED
Repl	C9
==	72
!=	77
ClassIsChildOf	02
IsA	C5
==	FE
!=	FF
+	0E
-	0F
LogInternal	E7
WarnInternal	E8
GotoState	71
IsInState	19
GetStateName	1C
Enable	75
Disable	76
SaveConfig	18
Sleep	00
FinishAnim	05
SetCollision	06
SetCollisionSize	1B
Move	0A
SetLocation	0B
SetRotation	2B
MoveSmooth	81
AutonomousPhysics	83
SetBase	2A
SetOwner	10
SetPhysics	82
Trace	15
FastTrace	24
Destroy	17
SetTimer	18
MakeNoise	00
PlayerCanSeeMe	14
GetURLMap	23
AllActors	30
DynamicActors	39
ChildActors	31
BasedActors	32
TouchingActors	33
TraceActors	35
VisibleActors	37
VisibleCollidingActors	38
CollidingActors	41
LineOfSightTo	02
CanSee	15
CanSeeByPoints	19
PickTarget	13
MoveTo	F4
MoveToward	F6
FinishRotation	FC
FindPathTo	06
FindPathToward	05
FindRandomDest	0D
PointReachable	09
ActorReachable	08
PickWallAdjust	0E
WaitForLanding	0F
UpdateURL	22
FindStairRotation	0C
IsSeatControllerReplicationViewer	E7

 

Here's a direct link:

 

http://dl.dropbox.com/u/32777109/Games/XCOM%202012/output.txt

 

^ then you can just hit F3 in your browser and search that way.

 

Hope that helps :D

 

UPDATE: Fixed zero paddings.

Edited by Daemonjax
Link to comment
Share on other sites

Of course! :D

 

The files already showed me however, that it aint as easy as I thought... -.-

 

I followed your example and studied on... in XCOMGAME.upk i found the class XGTacticalGameCoreNativeBase, in which I found line 62: const BASE_NUM_ROCKETS = 1;

 

-> I wanted to have my heavies start with 2 rockets(and later do the same for grenades ^_^)

 

So I used that online converter, got 1=0x3f800000 and went on to search for "80 3F" in BASE_NUM_ROCKETS.Const which I had already unpacked... I can´t even find a single "80" or "3F" in that file though... what am I doing wrong? :wacko:

 

EDIT:

Can I just change the "1" on the right to "2"?

I noticed that for Critwound_Will_Penalty the "15" also shows up on the right instead of appearing as "70 41".

Edited by Caiman
Link to comment
Share on other sites

Well, first of all, I'm not sure how you got 1 = 0x3f800000... 1 is 0x1. I'm honestly a bit bewildered about this.

 

Second, unfortunately, there's special bytecodes for constant 0 and 1 in UnrealScript. You're looking for 0x25 for 0, 0x26 for 1. So you'd need to search for 0x26.

 

The reason this is a problem is because if you want to change it to 2, you're going to need to change it from 26 to 2C 02, because any constant other than 0 or 1 has to be preceeded by 2C (or a different code, for different types). And as we just learned a few minutes ago, you can't change the lengths of functions. Changing 26 to 2C 02 would add one byte to the function's length, causing the altered script to be rejected.

 

This specific change is going to have to wait until we know how to alter the object lengths in the UPK files.

Edited by kanet32
Link to comment
Share on other sites

Thanks a lot for that insight, kanet.

I just tried altering it on the right from 1 to 4 and nothing changed(no crash no nothing, at least on a save).

 

@dreadylein: Exactly. :laugh:

 

EDIT:

Interestingly enough, the 1 on the right on that rocket constant corresponds with a 31 in hex(in that file).

Edited by Caiman
Link to comment
Share on other sites

Ahh, yeah, definitely the float thing. Just double-checked. Yeah, for converting integer values to hex, use Google. A constant will only be stored as a float value if it's got a fractional component to it, otherwise it'll be stored as an integer.

 

And, what do you mean, changing it from 1 to 4? You mean, in the decompiled source that UE Explorer shows?

Link to comment
Share on other sites

Second, unfortunately, there's special bytecodes for constant 0 and 1 in UnrealScript. You're looking for 0x25 for 0, 0x26 for 1. So you'd need to search for 0x26.

 

The reason this is a problem is because if you want to change it to 2, you're going to need to change it from 26 to 2C 02, because any constant other than 0 or 1 has to be preceeded by 2C (or a different code, for different types). And as we just learned a few minutes ago, you can't change the lengths of functions. Changing 26 to 2C 02 would add one byte to the function's length, causing the altered script to be rejected.

 

Good info... When you change the length of a function, when does it fail? When the game launches? Is it a catastrophic failure, or is it something more subtle? If it's on repacking, I can (maybe) easily get around that.

 

Also, where did you get that information regarding special bytecodes for constants? It would be useful to be able to compute the bytecode for any constant.

 

EDIT: So, anyone know why some bytecodes are missing from the file I scraped? Off the top of me head, 0x06 and 0x07 aren't in there (actually 0x06 is there, but it's SetCollision in the file. But that's not correct afaik).

EDIT2: There may be a problem with how I formatted the output... 0x60 came up twice. Looking into it.

EDIT3: Yeah, I padded the zeros incorrectly. ;) Fixed. Now FindPathTo 0x06 comes up twice. heh... so does 0x00. I double checked the ntl file, and that's how it is in there.

Edited by Daemonjax
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...