Jump to content

Recommended Posts

Posted

I wish to make a compile of Classic Interlude Client - generally it is modified client of Grand Crusade with protocol 110. I am able to compile a new Interface based on Grand Crusade Client Compiler archive and even it works, but... I found that UE Explorer 1.4.5  able to decompile just Interface.u package. For Instance Core.u and Engine.u I can't decompile with. it thrwong message that "This package has unknown signature".:
image.png.69fee092655fc8b12f0bf95a9b35df2b.png

I also installed UT Package Tool v2.0 beta 5 - and I able to decompile package.... but the source code that it produce Compile can't  recognize:
 

Compiler_Interface-Grand_Crusade\Core\Classes\Object.uc(25) : Error, Unrecognized type 'Vector'
Compile aborted due to errors.
Failure - 1 error(s), 0 warning(s)

 

More over, I found that UE Explorer source code that produce UT Package Tool are sligtly different, for instanse :
 

function openDialogNumpad (INT64 Adena)
{
  Class'UICommonAPI'.DialogSetID(200001);
  Class'UICommonAPI'.DialogSetEditType("number");
  Class'UICommonAPI'.DialogSetParamInt64(Adena);
  Class'UICommonAPI'.DialogSetDefaultOK();
  Class'UICommonAPI'.DialogShow(1,6,GetSystemString(3138),string(self));
}

function HandleDialogCancel ()
{
}

function HandleDialogOK ()
{
  local INT64 inputNum;
  local int Id;

  if (  !Class'UICommonAPI'.DialogIsOwnedBy(string(self)) )
  {
    return;
  }
  Id = Class'UICommonAPI'.DialogGetID();
  if ( Id == 200001 )
  {
}

 

UE Explorer:

 

function openDialogNumpad(INT64 Adena)
{
    Class'UICommonAPI'.static.DialogSetID(200001);
    Class'UICommonAPI'.static.DialogSetEditType("number");
    Class'UICommonAPI'.static.DialogSetParamInt64(Adena);
    Class'UICommonAPI'.static.DialogSetDefaultOK();
    Class'UICommonAPI'.static.DialogShow(1, 6, GetSystemString(3138), string(self));
    return;
}

function HandleDialogCancel()
{
    return;
}

function HandleDialogOK()
{
    local INT64 inputNum;
    local int Id;

    // End:0x19
    if(!Class'UICommonAPI'.static.DialogIsOwnedBy(string(self)))
    {
        return;
    }
    Id = Class'UICommonAPI'.static.DialogGetID();
    // End:0x87
    if(Id == 200001)
    {
        inputNum = (Class'UICommonAPI'.static.DialogGetString());
        CallGFxFunction("AdenaDistributionWnd", "HandleDialogOK", (inputNum));
    }
    return;
}

 

 

It seems like compiler requires to have return, cause otherwise it throws:
 

Compiler_Interface-Grand_Crusade\Interface\Classes\AdenaDistributionWnd.uc(96) : Error, Unexpected end of file at end of Class
Compile aborted due to errors.
Failure - 1 error(s), 0 warning(s)

 

After considering compilers and content of UE Explorer and UT Package Tooll I found that it seems like they noth rely on UCC . I also found documentation how to use it :

UCC-wiki

 

BatchExport

  • Package: Editor
  • Syntax: batchexport package.ext classname export_ext [path]
  • Availability: Unreal v226* onwards, UT v436 onwards, Unreal II, UT2003, UT2004.

Exports resources from Unreal packages in bulk.

  • package.ext: Package whose objects you wish to export. Extension and directory are optional: (e.g. Botpack.u, ..\Maps\CTF-Face.unr or just CTF-Face)
  • classname: The type of objects to export from the package. It can be one of class, texture, sound, music, level, model, polys or textbuffer.
  • export_ext: Extension used for the exported files. The accepted file extensions per class are as follows:
  • class: uc, h.
  • texture: bmp, pcx.
  • sound: wav.
  • music: s3m, xm, it or any other tracker format.
  • level, model and polys: t3d. level exports the complete map with all actors and brushes; model exports all the brushes used in a map (with the red builder being Brush.t3d while the other brushes being Model##.t3d); and polys exports polygons (?) to files named Polys#.t3d.
  • textbuffer: txt. Exports all kinds of text sources in the package. Script code is exported as ScriptCode.txt for each class, so the files will instantly overwrite each other. Maps have an additional text buffer with camera settings for UnrealEd.
  • path: Path to export files to, like C:\MyPath.

 

but when I tried to execute it:

 

\Compiler_Interface-Grand_Crusade\System>UCC.exe batchexport Interface.u class uc Classes\
=======================================
ucc.exe: UnrealOS execution environment
Copyright 2001 Epic Games Inc
=======================================

Commandlet batchexport not found

 

 

So, please help me to found proper decompiler. Many thanks!

 

Posted

You can't extract that with UE Explorer because you haven't decompressed the files. 

https://prnt.sc/VwM8ISeUppuP

 

However, you won't get 'clean' source files with utpt nor ue explorer, you can maybe make some sort of frankenstein on your current compiler's engine.u by using the scripts extracted from ue explorer as reference, manually adding missing scripts/parts of the .uc scripts that don't exist in your current compiler, etc.

The reason why you get an error when using batchexport, is because your compiler is probably missing some file.
usually your .ini should look sorta like this:

EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=Fire

and batchexport should work fine. However, this will probably also not give you the result that you expect.

 

Whichever way you use to decompile those files, you'll have to do some manual work, shouldn't take more than a couple of hours, or maybe a few minutes depending on what you're trying to do.

Posted
13 hours ago, 911reg said:

You can't extract that with UE Explorer because you haven't decompressed the files. 

https://prnt.sc/VwM8ISeUppuP

 

However, you won't get 'clean' source files with utpt nor ue explorer, you can maybe make some sort of frankenstein on your current compiler's engine.u by using the scripts extracted from ue explorer as reference, manually adding missing scripts/parts of the .uc scripts that don't exist in your current compiler, etc.

The reason why you get an error when using batchexport, is because your compiler is probably missing some file.
usually your .ini should look sorta like this:

EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=Fire

and batchexport should work fine. However, this will probably also not give you the result that you expect.

 

Whichever way you use to decompile those files, you'll have to do some manual work, shouldn't take more than a couple of hours, or maybe a few minutes depending on what you're trying to do.

 

I wish to decompile all package to create not only interface, but other packages compiler. I have found for instance that my version of Core.u contains additional class named HelloWorldCommandlet , that original Grand Crusade provided but Client Compiler, so I wish to revise existing package and able to modify them if needed.

 

16 hours ago, 911reg said:

You can't extract that with UE Explorer because you haven't decompressed the files. 

https://prnt.sc/VwM8ISeUppuP

 

However, you won't get 'clean' source files with utpt nor ue explorer, you can maybe make some sort of frankenstein on your current compiler's engine.u by using the scripts extracted from ue explorer as reference, manually adding missing scripts/parts of the .uc scripts that don't exist in your current compiler, etc.

The reason why you get an error when using batchexport, is because your compiler is probably missing some file.
usually your .ini should look sorta like this:

EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=Fire

and batchexport should work fine. However, this will probably also not give you the result that you expect.

 

Whichever way you use to decompile those files, you'll have to do some manual work, shouldn't take more than a couple of hours, or maybe a few minutes depending on what you're trying to do.

 

 

My l2.ini :
 

[Engine.Engine]
EditorEngine=Editor.EditorEngine

[Core.System]
Paths=../System/*.u

[Editor.EditorEngine]
CacheSizeMegs=32

EditPackages=Core
EditPackages=Engine
EditPackages=Fire
EditPackages=Editor
EditPackages=NWindow
EditPackages=Interface

 

I have unpacked Core.u, Engine.u and now can properly vuew them throw the UE Explorer, but batchexport are still printing:
 

\Compiler_Interface-Grand_Crusade\System> ./UCC.exe batchexport Editor.u class ./Classes

=======================================
ucc.exe: UnrealOS execution environment
Copyright 2001 Epic Games Inc
=======================================

Commandlet batchexport not found

 

 

Maybe some wrong syntax on windows pc?

 

16 hours ago, 911reg said:

You can't extract that with UE Explorer because you haven't decompressed the files. 

https://prnt.sc/VwM8ISeUppuP

 

However, you won't get 'clean' source files with utpt nor ue explorer, you can maybe make some sort of frankenstein on your current compiler's engine.u by using the scripts extracted from ue explorer as reference, manually adding missing scripts/parts of the .uc scripts that don't exist in your current compiler, etc.

The reason why you get an error when using batchexport, is because your compiler is probably missing some file.
usually your .ini should look sorta like this:

EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=Fire

and batchexport should work fine. However, this will probably also not give you the result that you expect.

 

Whichever way you use to decompile those files, you'll have to do some manual work, shouldn't take more than a couple of hours, or maybe a few minutes depending on what you're trying to do.

 

 

My l2.ini :
 

[Engine.Engine]
EditorEngine=Editor.EditorEngine

[Core.System]
Paths=../System/*.u

[Editor.EditorEngine]
CacheSizeMegs=32

EditPackages=Core
EditPackages=Engine
EditPackages=Fire
EditPackages=Editor
EditPackages=NWindow
EditPackages=Interface

 

I have unpacked Core.u, Engine.u and now can properly vuew them throw the UE Explorer, but batchexport are still printing:
 

\Compiler_Interface-Grand_Crusade\System> ./UCC.exe batchexport Editor.u class ./Classes

=======================================
ucc.exe: UnrealOS execution environment
Copyright 2001 Epic Games Inc
=======================================

Commandlet batchexport not found

 

The help command of UCC:

Compiler_Interface-Grand_Crusade\System> ./UCC help
=======================================
ucc.exe: UnrealOS execution environment
Copyright 2001 Epic Games Inc
=======================================

Usage:
   ucc <command> <parameters>

Commands for "ucc":
   ucc help <command>        Get help on a command
   ucc mastermd5 [*.ext {*.ext ...} ] Generate the master MD5 table
   ucc server                Network game server

 

Maybe some wrong syntax on windows pc?

 

Posted

Could also be the case that you're missing editor.int in your compiler's folder.
 

[Public]
Object=(Name=Editor.BatchExportCommandlet,Class=Class,MetaClass=Core.Commandlet)
Object=(Name=Editor.BatchDecompileCommandlet,Class=Class,MetaClass=Core.Commandlet)

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...