Forum

ASSIST, AMERICA'S ARMY COMMUNITY - RELIVE THE GLORY DAYS OF AMERICA'S ARMY 2.5

Author Topic: Need a pascal programming expert  (Read 7981 times)

0 Members and 1 Guest are viewing this topic.

Offline ELiZ

Re: Need a pascal programming expert
« Reply #15 on: Saturday, April 11, 2015, 00:06:53 AM »
I think i almost got it. now just need to find a way to verify if the offsets are actually the byte opcodes

Code: [Select]
pFunction inative:0X70 int:112 offset:0X0 Fullname: Function Core.Object.Concat_StrStr
pFunction inative:0X71 int:113 offset:0X1 Fullname: Function Core.Object.GotoState
pFunction inative:0X72 int:114 offset:0X2 Fullname: Function Core.Object.EqualEqual_ObjectObject
pFunction inative:0X73 int:115 offset:0X3 Fullname: Function Core.Object.Less_StrStr
pFunction inative:0X74 int:116 offset:0X4 Fullname: Function Core.Object.Greater_StrStr
pFunction inative:0X75 int:117 offset:0X5 Fullname: Function Core.Object.Enable
pFunction inative:0X76 int:118 offset:0X6 Fullname: Function Core.Object.Disable
pFunction inative:0X77 int:119 offset:0X7 Fullname: Function Core.Object.NotEqual_ObjectObject
pFunction inative:0X78 int:120 offset:0X8 Fullname: Function Core.Object.LessEqual_StrStr
pFunction inative:0X79 int:121 offset:0X9 Fullname: Function Core.Object.GreaterEqual_StrStr
pFunction inative:0X7a int:122 offset:0Xa Fullname: Function Core.Object.EqualEqual_StrStr
pFunction inative:0X7b int:123 offset:0Xb Fullname: Function Core.Object.NotEqual_StrStr
pFunction inative:0X7c int:124 offset:0Xc Fullname: Function Core.Object.ComplementEqual_StrStr
pFunction inative:0X7d int:125 offset:0Xd Fullname: Function Core.Object.Len
pFunction inative:0X7e int:126 offset:0Xe Fullname: Function Core.Object.InStr
pFunction inative:0X7f int:127 offset:0Xf Fullname: Function Core.Object.Mid
pFunction inative:0X80 int:128 offset:0X10 Fullname: Function Core.Object.Left
pFunction inative:0X81 int:129 offset:0X11 Fullname: Function Core.Object.Not_PreBool
..... (more)

No idea what the value you call Index is, it's the iNative that is the bytecode

You are still missing some information needed if you want to decompile:
Code: [Select]
        NativeFunctions(28).iNative = 237 : NativeFunctions(28).type = "Function" : NativeFunctions(28).Name = "Asc" : NativeFunctions(28).Precedence = 0 ' From Core.u
        NativeFunctions(29).iNative = 236 : NativeFunctions(29).type = "Function" : NativeFunctions(29).Name = "Chr" : NativeFunctions(29).Precedence = 0 ' From Core.u
        NativeFunctions(30).iNative = 235 : NativeFunctions(30).type = "Function" : NativeFunctions(30).Name = "Caps" : NativeFunctions(30).Precedence = 0 ' From Core.u
        NativeFunctions(31).iNative = 234 : NativeFunctions(31).type = "Function" : NativeFunctions(31).Name = "Right" : NativeFunctions(31).Precedence = 0 ' From Core.u
        NativeFunctions(32).iNative = 128 : NativeFunctions(32).type = "Function" : NativeFunctions(32).Name = "Left" : NativeFunctions(32).Precedence = 0 ' From Core.u
        NativeFunctions(33).iNative = 127 : NativeFunctions(33).type = "Function" : NativeFunctions(33).Name = "Mid" : NativeFunctions(33).Precedence = 0 ' From Core.u
        NativeFunctions(34).iNative = 126 : NativeFunctions(34).type = "Function" : NativeFunctions(34).Name = "InStr" : NativeFunctions(34).Precedence = 0 ' From Core.u
        NativeFunctions(35).iNative = 125 : NativeFunctions(35).type = "Function" : NativeFunctions(35).Name = "Len" : NativeFunctions(35).Precedence = 0 ' From Core.u
        NativeFunctions(36).iNative = 324 : NativeFunctions(36).type = "Operator" : NativeFunctions(36).Name = "-=" : NativeFunctions(36).Precedence = 45 ' From Core.u
        NativeFunctions(37).iNative = 323 : NativeFunctions(37).type = "Operator" : NativeFunctions(37).Name = "@=" : NativeFunctions(37).Precedence = 44 ' From Core.u
        NativeFunctions(38).iNative = 322 : NativeFunctions(38).type = "Operator" : NativeFunctions(38).Name = "$=" : NativeFunctions(38).Precedence = 44 ' From Core.u
        NativeFunctions(39).iNative = 124 : NativeFunctions(39).type = "Operator" : NativeFunctions(39).Name = "~=" : NativeFunctions(39).Precedence = 24 ' From Core.u
        NativeFunctions(40).iNative = 123 : NativeFunctions(40).type = "Operator" : NativeFunctions(40).Name = "!=" : NativeFunctions(40).Precedence = 26 ' From Core.u
        NativeFunctions(41).iNative = 122 : NativeFunctions(41).type = "Operator" : NativeFunctions(41).Name = "==" : NativeFunctions(41).Precedence = 24 ' From Core.u
        NativeFunctions(42).iNative = 121 : NativeFunctions(42).type = "Operator" : NativeFunctions(42).Name = ">=" : NativeFunctions(42).Precedence = 24 ' From Core.u
        NativeFunctions(43).iNative = 120 : NativeFunctions(43).type = "Operator" : NativeFunctions(43).Name = "<=" : NativeFunctions(43).Precedence = 24 ' From Core.u
        NativeFunctions(44).iNative = 116 : NativeFunctions(44).type = "Operator" : NativeFunctions(44).Name = ">" : NativeFunctions(44).Precedence = 24 ' From Core.u
        NativeFunctions(45).iNative = 115 : NativeFunctions(45).type = "Operator" : NativeFunctions(45).Name = "<" : NativeFunctions(45).Precedence = 24 ' From Core.u
« Last Edit: Saturday, April 11, 2015, 00:09:30 AM by ELiZ »

Offline -{DG}-_Shadow

Re: Need a pascal programming expert
« Reply #16 on: Saturday, April 11, 2015, 04:04:35 AM »
Thanks ELIZ,

Code: [Select]
pFunction inative:0X97 int:151 offset:0X27 type:nffOperator Precedence:0X18 Fullname: Function Core.Object.Greater_IntInt
pFunction inative:0X98 int:152 offset:0X28 type:nffOperator Precedence:0X18 Fullname: Function Core.Object.LessEqual_IntInt

I have gather the additional information. however, i think 0x27 = true and 0x28 is false, However, i can not extract that from this information. or can i?

Why do you need the  Precedence??

Offline ELiZ

Re: Need a pascal programming expert
« Reply #17 on: Saturday, April 11, 2015, 04:12:03 AM »
i think 0x27 = true and 0x28 is false, However, i can not extract that from this information. or can i?
I don't undertstand, what do you get the 27 and 28 from?

Why do you need the  Precedence??
I'm not 100% sure, I've been told that is influences what order to do multiple operations, like that mathematical rules state that multiplications are made before additions, it influences where to add parenthesis.

Offline -{DG}-_Shadow

Re: Need a pascal programming expert
« Reply #18 on: Saturday, April 11, 2015, 05:06:49 AM »
If you open agp.agp_weapon.fire in utpt. you will see at line 0x0133 badjust=true

If you then analyze raw object of agp.agp_weapon.fire and go to 0x138 you will see the 0x27, which with my best guess compared to  true.

Offline Possessed

  • bWpnRecoil == False;
  • Administrator
  • Epic Poster
  • *
  • Posts: 3,620
  • You suffer, but why?!
    • View Profile
  • AA: Possessed
Re: Need a pascal programming expert
« Reply #19 on: Saturday, April 11, 2015, 05:40:01 AM »
oh lord , i've read somehere the meanings of the offsets, i will look for it.
These things I have spoken unto you, that in me ye might have peace. In the world ye shall have tribulation: but be of good cheer; I have overcome the world.
John 16:33


Offline -{DG}-_Shadow

Re: Need a pascal programming expert
« Reply #20 on: Saturday, April 11, 2015, 05:50:40 AM »
Haha i can also tell you,

the point of agp_weapon,fire is that it called the function ServerFire( !bAdjust,bRapid,bBreatheBonus); If you want to get a breathbonus or no adjustment you need to change those variables. which is what one of these offsets do

Offline Possessed

  • bWpnRecoil == False;
  • Administrator
  • Epic Poster
  • *
  • Posts: 3,620
  • You suffer, but why?!
    • View Profile
  • AA: Possessed
Re: Need a pascal programming expert
« Reply #21 on: Saturday, April 11, 2015, 06:27:36 AM »
I was talking about False,True, etc :D I did a quick search but did not found the post, it was explaining the offsets for "(", True, False, operators etc.
These things I have spoken unto you, that in me ye might have peace. In the world ye shall have tribulation: but be of good cheer; I have overcome the world.
John 16:33


Offline ELiZ

Re: Need a pascal programming expert
« Reply #22 on: Saturday, April 11, 2015, 07:29:07 AM »
If you open agp.agp_weapon.fire in utpt. you will see at line 0x0133 badjust=true

If you then analyze raw object of agp.agp_weapon.fire and go to 0x138 you will see the 0x27, which with my best guess compared to  true.

Sure, 28 is the bytecode for False, and 27 is True.
Thought you were much further along than that, you have miles and miles to go.


Take a look on page 27 in this wonderful document:
https://www.dropbox.com/s/qeggl1x261xu0ce/UT_Package_File_Format.pdf?dl=0

The document was found here:
http://www.acordero.org/download/ut_package_file_format_pdf.zip

But I'm having trouble downloading it again, that is why I linked to the dropbox instead


 

Download Assist

×

Download Game Client

Important: Battletracker no longer exists. However, old Battletracker accounts may still work. You can create a new 25Assist account here

Download Server Manager