FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   Problem with Registry in ciu 2035 or above (https://fileforums.com/showthread.php?t=99244)

gatosky1620 30-05-2017 18:21

Problem with Registry in ciu 2035 or above
 
1 Attachment(s)
Im creating my own Assassin creed 3 v1.06 conversion, but i have this problem when add the registry.iss file.

http://i.imgur.com/zkKLJt2.png

KaktoR 30-05-2017 22:22

Yes, same error i have run into weeks above.

I don't have any solution for that.

I have compared with AC Rogue registry.iss and the only difference is the game name.

So it has something to do with the name of the game - strange.

http://fileforums.com/showpost.php?p...postcount=1258

mikey26 30-05-2017 22:39

Hi Mate
pull the reg keys and layout from this script i gave them to revo a long time ago.
And those where working fine.

http://fileforums.com/showthread.php?t=93761

peterf1999 30-05-2017 23:12

[Registry]
Root: HKLM; SubKey: SOFTWARE\Ubisoft\{code:GetAppName}\1.01; Flags: uninsdeletekeyifempty

[CustomMessages]
en.AppName=Assassin%1s Creed(R) III

[Code]
function GetAppName(Param: string): string;
begin
Result:=FmtMessage(ExpandConstant('{cm:AppName}'),[chr(39)]) ;
end;

Cheers ;)

KaktoR 31-05-2017 00:48

1 Attachment(s)
Have not tested yet, but this should work?

Code:

#define AC3Registry

...

#ifdef AC3Registry
function GetAppName(Param: string): string;
  begin
    Result:=FmtMessage(ExpandConstant('{cm:AppName}'),[chr(39)]) ;
end;

#else

function GetAppName(Default:String):String;
begin
  if not (GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt')) = '') and (GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, '') = '') then
    Result := GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt'))
  else
    Result:=GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, GetOrigAppName(''))
end;

#endif

Will test it further on weekend. But i am sure i have forgot something important.

And a question: Can i use #ifdef for this on [CustomMessages] too? If yes, it is neccessary at all?

Edit: Ok, it seems to work. I have just switched #define to ON. But as i said, will test it with registry.iss on weekend.

Edit 2: Here is the full code i am using for the fast test
Code:

#define AC3Registry
Code:

[CustomMessages]
#ifdef AC3Registry
eng.AppName=Assassin%1s Creed(R) III
#endif

Code:

#ifdef AC3Registry
function GetAppName(Param: string): string;
  begin
    Result:=FmtMessage(ExpandConstant('{cm:AppName}'),[chr(39)]) ;
end;

#else

function GetAppName(Default:String):String;
begin
  if not (GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt')) = '') and (GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, '') = '') then
    Result := GetIniString('Messages', 'ApplicationName', '', ExpandConstant('{tmp}\' + ActLang + '.txt'))
  else
    Result:=GetValStr('InstallOptions', 'ApplicationName' + ActLangShort, GetOrigAppName(''))
end;
#endif


gatosky1620 31-05-2017 19:16

but the exactly problem is that i want use the 2040 version, so anyone have a language changer only for AC3 1.06

KaktoR 01-06-2017 00:49

It's not possible without the source code.

gatosky1620 01-06-2017 16:39

Quote:

Originally Posted by KaktoR (Post 459378)
It's not possible without the source code.

so how somebody knows how create a bat file to add the reg entries with the folder location, the system language, and the windows architecture without edit first the bat file?

Cesar82 02-06-2017 19:33

Error fix
 
Quote:

Originally Posted by gatosky1620 (Post 459315)
Im creating my own Assassin creed 3 v1.06 conversion, but i have this problem when add the registry.iss file.

http://i.imgur.com/zkKLJt2.png

Possible Solution. Work for me...

insert this line in script
Code:

#define FileLine StringChange(FileLine, "'", "''")
in this code part...
Code:

#sub DeleteRegistryValue
  #if Pos("Root:",FileLine) > 0 & Pos("SubKey:",FileLine) > 0 & Pos("ValueName:",FileLine) > 0
    #define FileLine StringChange(FileLine, ": ", ":")
    #define FileLine StringChange(FileLine, "; ", ";")
    #define FileLine StringChange(FileLine, """", "")
    #define FileLine StringChange(FileLine, "'", "''")
    #define RootKey Copy(FileLine, Pos("Root:",FileLine) + 5, Len(FileLine))

This function contain error, and if insert a key and not value not remove from registry. In Registry.iss from Arsassin's Creed 3 the first eight lines not remove from windows registry on uninstall game (Firsts Lines: Assassin's Creed(R) III not contain value.. only root and key).

To fix error undelet keys from registry replace original "sub DeleteRegistryValue" for this part in script
Code:

#sub DeleteRegistryValue
  #if Pos("Root:", FileLine) > 0 & Pos("SubKey:", FileLine) > 0
    #define FileLine StringChange(FileLine, ": ", ":")
    #define FileLine StringChange(FileLine, "; ", ";")
    #define FileLine StringChange(FileLine, """", "")
    #define FileLine StringChange(FileLine, "'", "''")
    #define RootKey Copy(FileLine, Pos("Root:",FileLine) + 5, Len(FileLine))
    #define RootKey Copy(RootKey, 0, Pos(";",RootKey)-1)
    #define SubKeyName Copy(FileLine, Pos("SubKey:",FileLine) + 7, Len(FileLine))
    #define SubKeyName Copy(SubKeyName, 0, Pos(";",SubKeyName)-1)
    #if Pos("ValueName:", FileLine) > 0
      #define ValueName Copy(FileLine, Pos("ValueName:",FileLine) + 10, Len(FileLine))
      #define ValueName Copy(ValueName, 0, Pos(";",ValueName)-1)
    #else
      #define ValueName ""
    #endif
    if not (not IsWin64 and (Pos('64', '{#RootKey}') > 0)) then begin
      RegDeleteValue({#RootKey}, '{#SubKeyName}', '{#ValueName}');
      CurrentRegKey := '{#SubKeyName}' + '\' + '{#ValueName}';
      repeat
        CurrentRegKey := ExtractFilePath(CurrentRegKey);
        SetLength(CurrentRegKey, Length(CurrentRegKey) - 1);
        RegDeleteKeyIfEmpty({#RootKey},CurrentRegKey);
      until RegKeyExists({#RootKey},CurrentRegKey);
    end;

  #endif
#endsub


mikey26 03-06-2017 07:53

If some knows how Yener/Bamse encrypted the 2040 script i am happy to help make the changes for those who have the 2040 beta 5 script.but i will not release the actually script.
but it need to be encrypted like the last release by Bamse.

KaktoR 03-06-2017 08:25

Didn't BAMsE gave you the source compiler?

mikey26 03-06-2017 14:13

no he did not mate i just have the 2.0.4.0 beta5 iss file so i could add different compressions.i am not good with inno.so if someone can help make compiler and it must not be able to be unpacked with inno unpacker.

KaktoR 04-06-2017 05:04

I would say ask altef_4, i guess it's his source code (compiler) anyway.

And he is the only person around here i know of knowing such things about protection.


All times are GMT -7. The time now is 04:38.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com