Page 1 of 2 12 LastLast
Results 1 to 15 of 23
  1. #1
    bengaludo's Avatar
    Join Date
    May 2015
    Gender
    male
    Posts
    145
    Reputation
    19
    Thanks
    6,237

    Post Wizard setup - Blackshot SEA/Global BIGHEAD FREE

    Hello,

    If you want to change the source code and adapt to your needs, you can edit it!
    Language: Pascal / Delphi

    ************************************************** ***********

    Code:
    Program ProgramName;
    
    {$APPTYPE CONSOLE}
    
    uses
      Windows, SysUtils,
      Classes, Forms, IdHashMessageDigest ;
    
    Const
    FbossHashSEA     : String = 'FA856772CBADB14CAF4B17156AC81D43' ;
    FbossHashEU      : String = 'AFD618ADA214B598A950874F0DDDBD66' ;
    AllBodiesPath    : String = 'Data\Character\All\' ;
    AdamBodiesPath   : String = 'Data\Character\Adam\' ;
    CassieBodiesPath : String = 'Data\Character\Cassie\' ;
    ForceModelBase   : String = 'Data\Character\' ;
    KeiBodiesPath    : String = 'Data\Character\Kei\' ;
    ViolaBodiesPath  : String = 'Data\Character\Viola\' ;
    BIGHEAD          : String = '...Stub\BIGHEAD.nif' ;
    Bypass           : String = 'msssrs.flt' ;
    BSEU             : String = 'Data\_EU\Character' ;
    BSSEA            : String = 'data\_SG\Character' ;
    
    All_Bodies : Array [0..10] of String = (
               'A_C_K_body_vietnam_US.nif', 'A_C_K_body_vietnam_VT.nif',
               'Crimson_body.nif', 'Dragon_body_gold.nif',
               'Dragon_body_silver.nif', 'Fboss_body.nif',
               'Rudolph.nif', 'santa_body.nif',
               'santa_gm_body.nif', 'Vi_body_vietnam_US.nif',
               'Vi_body_vietnam_VT.nif' ) ;
    
    Adam_Bodies : Array [0..3] of String = (
               'Ad_body1.nif', 'Ad_body2.nif',
               'Ad_body3.nif', 'Ad_body4.nif' ) ;
    
    Cassie_Bodies : Array [0..3] of String = (
               'ca_body1.nif', 'ca_body2.nif',
               'ca_body3.nif', 'ca_body4.nif' ) ;
    
    Kei_Bodies : Array [0..3] of String = (
               'ke_body1.nif', 'ke_body2.nif',
               'ke_body3.nif', 'ke_body4.nif' ) ;
    
    Viola_Bodies : Array [0..3] of String = (
               'vi_body1.nif', 'vi_body2.nif',
               'vi_body3.nif', 'vi_body4.nif' ) ;
    
    ForceModel_Bodies : Array [0..19] of String = (
               'wehrmacht.nif', 'usa_2war.nif',
               'adam_renew.nif', 'cassie_renew.nif',
               'chinese_spy.nif', 'cowgirl.nif',
               'gangsta.nif', 'isabelle.nif',
               'kei_renew.nif', 'new_viola.nif',
               'nina.nif', 'ninja.nif',
               'paratrooper.nif', 'police.nif',
               'mantis.nif', 'sniper_rayne.nif',
               'swat.nif', 'UDT.nif',
               'Usarmy.nif', 'viola_renew.nif' ) ;
    
    ForceModel_Bodies_Path : Array [0..19] of String = (
               'forcemodel\2war_germany\', 'forcemodel\2war_usa\',
               'forcemodel\ADAM_RENEW\', 'forcemodel\CASSIE_RENEW\',
               'forcemodel\CHINESE_SPY\', 'forcemodel\Cowgirl\',
               'forcemodel\GANGSTA\', 'forcemodel\Isabelle\',
               'forcemodel\KEI_RENEW\', 'forcemodel\New_Viola\',
               'forcemodel\NINA\', 'forcemodel\NINJA\',
               'forcemodel\PARATROOPER\', 'forcemodel\POLICE\',
               'forcemodel\Sniper_Mantis\', 'forcemodel\Sniper_Rayne\',
               'forcemodel\SWAT\', 'forcemodel\UDT\',
               'forcemodel\USarmy\', 'forcemodel\VIOLA_RENEW\' ) ;
    
    function GetMD5HashFromFile (FileN : string) : string;
    var
       MD5Hash : TIdHashMessageDigest5;
       FileS : TFileStream;
     begin
     MD5Hash := TIdHashMessageDigest5.Create;
       FileS := TFileStream.Create(FileN, fmShareDenyWrite or fmOpenRead) ;
          try
            result := MD5Hash.AsHex(MD5Hash.hashValue(FileS)) ;
           finally
              FileS.Free;
                MD5Hash.Free;
          end;
    end;
    
    Function NewMD5BigHead (const BigHeadFile, CopyTo : String ;
    var NewMD5Hash : string) : Bool ;
    Const
      Max : WORD = $FFFF ;
    Var
      AddSize : integer;
      FileS : TMemoryStream;
    SL : TStringlist;
    begin
    Result := False ;
      Randomize;
        AddSize := Random(Max);
          FileS := TMemoryStream.Create;
            FileS.LoadFromFile(BigHeadFile);
            FileS.Size := FileS.Size + AddSize ;
            FileS.SaveToFile(CopyTo);
            If FileExists(CopyTo) Then
            begin
            NewMD5Hash := GetMD5HashFromFile(CopyTo) ;
            Result := True ;
            end;
    end;
    
    Procedure BypassName(Size: Cardinal ; Var Result : String) ;
    Var
    Value : String ;
    begin
     Randomize;
      Value    := '0123456789';
       repeat
       Result := Result + Value[Random(Length(Value)) + 1];
     until( Length ( Result ) = Size);
    end;
    
    Function CopyF (Source, New : String ) : LongBool ;
    begin
        Result := CopyFile (Pchar(Source), Pchar(New), False) ;
    end;
    
    Procedure Space ;
    begin
       writeln ('');
    end;
    
    Var
    i : Integer ;
    pas, fullpath, source, sourcebypass, asibypass, BGNewMD5 : string ;
    LogFile : TStringList ;
    CheckBSSEA : Bool = False ;
    begin
      BypassName(10,asibypass);
      LogFile := TStringList.Create ;
      fullpath := ExtractFilePath(Application.ExeName) ;
      source   := fullpath + 'Stub\BIGHEAD.nif' ;
      Space;
      writeln ('******************************************************************');
      writeln ('*** bengaludo Wizard setup - Blackshot SEA/Global BIGHEAD FREE ***');
      writeln ('******************************************************************');
      Space;
      writeln ('Checking folder...');
    
      If FileExists(fullpath+'System\blackshot_BE.exe') Then
      begin
      If FileExists(fullpath+'System\blackshot.exe') Then
      begin
      If FileExists(fullpath+'System\multiplay_sg.dll') Then
      begin
      CheckBSSEA := True ;
      LogFile.Add ('Client: BLACKSHOT SEA');
      writeln ('Client: BLACKSHOT SEA');
      end;
      If FileExists(fullpath+'System\multiplay_eu.dll') Then
      begin
      LogFile.Add ('Client: BLACKSHOT GLOBAL');
      writeln ('Client: BLACKSHOT GLOBAL');
      end;
      end;
      end
      else
      begin
      LogFile.Add('ERROR ::: Run this program in the game folder!') ;
      LogFile.SaveToFile(fullpath+'Result.txt');
      writeln ('ERROR ::: Run this program in the game folder!');
      readln;
      ExitProcess(0);
      end;
    
      Space;
      writeln ('Checking for BIGHEAD.nif...');
      If FileExists (fullpath+ 'Stub\BIGHEAD.nif') Then
      begin
      pas := 'Stub\BIGHEAD.nif' ;
      writeln ('The BIGHEAD.nif has been found! @' + pas + '') ;
      writeln ('BIGHEAD.nif Current MD5: @'+GetMD5HashFromFile(source));
      LogFile.Add('BIGHEAD.nif Current MD5: @'+GetMD5HashFromFile(source)) ;
    
      {Changing MD5...}
    
      NewMD5BigHead(source,fullpath+'Stub\BIGHEAD.nif', BGNewMD5) ;
      writeln ('BIGHEAD.nif new MD5    : @'+BGNewMD5) ;
      LogFile.Add('BIGHEAD.nif new MD5    : @'+BGNewMD5) ;
    
      Space;
      LogFile.Add('The BIGHEAD.nif has been found! @' + pas + '') ;
      LogFile.Add('');
      end
      else
      begin
      writeln ('Error!!!  Stub\BIGHEAD.nif was not found!') ;
      LogFile.Add('Error!!!  Stub\BIGHEAD.nif was not found!') ;
      LogFile.SaveToFile(fullpath+'Result.txt');
      readln;
      ExitProcess(0);
      end;
      Space;
      writeln ('Press ENTER to install, waiting...');
      readln;
      writeln (DateTimeToStr(Now)+' ::: Process started...');
      Space;
    
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AllBodiesPath ) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AllBodiesPath );
      LogFile.Add('') ;
      Space;
    
      {All Bodies *****************************}
    
      For i := 0 to Length(All_Bodies) -1 do
      begin
    
      {Backup GM BOdy}
      If All_Bodies[i] = 'Fboss_body.nif' Then
      begin
      If ( ( GetMD5HashFromFile(fullpath + AllBodiesPath + 'Fboss_body.nif') =  FbossHashSEA)
      or
      ( GetMD5HashFromFile(fullpath + AllBodiesPath + 'Fboss_body.nif') =  FbossHashEU) ) Then
      begin
      If CopyF(fullpath + AllBodiesPath + 'Fboss_body.nif', fullpath + AllBodiesPath + 'Fboss.xor') Then
      begin
      LogFile.Add('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: OK');
      Writeln ('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: ERROR') ;
      Writeln ('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: ERROR') ;
      end;
      end;
    
      end;
    
      If CopyF(source, fullpath + AllBodiesPath + All_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: OK')
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: ERROR')
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AdamBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AdamBodiesPath );
      LogFile.Add('') ;
      Space;
    
      Sleep(1200) ;
    
      {Adam Bodies *****************************}
    
      For i := 0 to Length(Adam_Bodies) -1 do
      begin
    
      If Not (Pchar(AnsiUpperCase(Adam_Bodies[i])) = AnsiUpperCase('Ad_body1.nif')) Then
      begin
    
    
      If CopyF(source, fullpath + AdamBodiesPath + Adam_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: ERROR')
      end;
      end
      else
      begin
      {Ad_body1.nif}
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+AdamBodiesPath+'Ad_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
    
      end;
    
    
    
    
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + CassieBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + CassieBodiesPath );
      LogFile.Add('') ;
      Space;
    
      Sleep(50) ;
    
      {Cassie Bodies *****************************}
    
      For i := 0 to Length(Cassie_Bodies) -1 do
      begin
    
      If Not (Pchar(AnsiUpperCase(Cassie_Bodies[i])) = AnsiUpperCase('ca_body1.nif')) Then
      begin
    
      If CopyF(source, fullpath + CassieBodiesPath + Cassie_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: ERROR') ;
      end;
      end
      else
      begin
      {ca_body1.nif}
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+CassieBodiesPath+'ca_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
    
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + ForceModelBase + 'forcemodel\') ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + ForceModelBase + 'forcemodel\' );
      LogFile.Add('') ;
      Space;
    
      Sleep(50) ;
    
      {Force Model Bodies *****************************}
    
      For i := 0 to Length(ForceModel_Bodies) -1 do
      begin
      If CopyF(source, fullpath + ForceModelBase + ForceModel_Bodies_Path[i] + ForceModel_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: OK');
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: ERROR');
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + KeiBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + KeiBodiesPath );
      Space;
      LogFile.Add('') ;
    
      Sleep(50) ;
    
      {Kei Bodies *****************************}
    
      For i := 0 to Length(Kei_Bodies) -1 do
      begin
      If CopyF(source, fullpath + KeiBodiesPath + Kei_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: ERROR')
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + ViolaBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + ViolaBodiesPath );
      Space;
      LogFile.Add('') ;
    
      Sleep(50) ;
    
      {Viola Bodies *****************************}
    
      For i := 0 to Length(Viola_Bodies) -1 do
      begin
      If Not ( Pchar ( AnsiUpperCase(Viola_Bodies[i])) = AnsiUpperCase('vi_body1.nif') ) Then
      begin
      If CopyF(source, fullpath + ViolaBodiesPath + Viola_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: ERROR') ;
      end;
      end
      else
      begin
    
      Sleep(50) ;
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+ViolaBodiesPath+'vi_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
      end;
    
      Sleep(50) ;
    
      {Copying flt/asi file ****************************************}
    
      If FileExists(fullpath+'system\'+Bypass) Then
      begin
      sourcebypass := fullpath+'system\'+asibypass+'.asi' ;
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> Trying to duplicate the file "'+Bypass+'"...') ;
      writeln ('>>> Trying to duplicate the file "'+Bypass+'"...') ;
      If CopyF(fullpath+'system\'+Bypass, sourcebypass) Then
      begin
      LogFile.Add('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
      writeln ('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
      end
      else
      begin
      LogFile.Add('>>> Error while trying to duplicate file "'+Bypass+'".') ;
      writeln ('>>> Error while trying to duplicate file "'+Bypass+'".') ;
      end;
      end
      else
      begin
      LogFile.Add('>>> File flt not found! ' + '...system\'+Bypass) ;
      writeln ('>>> File flt not found! ' + '...system\'+Bypass) ;
      end;
    
      {Rename another SG/EU Character folder}
      If CheckBSSEA Then
      begin
    
      If DirectoryExists(fullpath+BSSEA) Then
      begin
      Space;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_sg\Character has been found!') ;
      writeln ('>>> The folder ...data\_sg\Character has been found!') ;
    
      If MoveFile(Pchar(fullpath+BSSEA),Pchar(fullpath+'Data\_sg\1.Character')) Then
      begin
      LogFile.Add('>>> The folder has been renamed successfully for ...data\_sg\1.Character!') ;
      writeln ('>>> The folder has been renamed successfully for ...data\_sg\1.Character!') ;
      end
      else
      begin
      LogFile.Add('');
      LogFile.Add('>>> Error while trying to rename folder ...data\_sg\Character!') ;
      writeln ('>>> Error while trying to rename folder ...data\_sg\Character!') ;
      end;
    
      end
      else
      begin
      If Not DirectoryExists(fullpath+'data\_sg\1.Character') Then
      begin
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_sg\Character not found!') ;
      writeln ('>>> The folder ...data\_sg\Character not found!') ;
      end;
      end;
    
      end
      else
      begin
    
      If DirectoryExists(fullpath+BSEU) Then
      begin
      Space;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_eu\Character has been found!') ;
      writeln ('>>> The folder ...data\_eu\Character has been found!') ;
    
      If MoveFile(Pchar(fullpath+BSEU),Pchar(fullpath+'Data\_eu\1.Character')) Then
      begin
      LogFile.Add('>>> The folder has been renamed successfully for ...data\_eu\1.Character!') ;
      writeln ('>>> The folder has been renamed successfully for ...data\_eu\1.Character!') ;
      end
      else
      begin
      LogFile.Add('');
      LogFile.Add('>>> Error while trying to rename folder ...data\_eu\Character!') ;
      writeln ('>>> Error while trying to rename folder ...data\_eu\Character!') ;
      end;
    
      end
      else
      begin
      If Not DirectoryExists(fullpath+'data\_eu\1.Character') Then
      begin
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_eu\Character not found!') ;
      writeln ('>>> The folder ...data\_eu\Character not found!') ;
      end;
      end;
    
      end;
    
      Sleep(50) ;
    
      LogFile.Add('');
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Installation complete O.o');
      writeln (DateTimeToStr(Now)+' ::: Installation complete O.o');
      writeln (DateTimeToStr(Now)+' ::: Note: If you have any problem with this program let me see the log file in the forum.');
      Space;
      LogFile.SaveToFile(fullpath+'Result.txt');
      If FileExists(fullpath+'Result.txt') Then
      writeln (DateTimeToStr(Now)+' ::: The log file was been created! ...Result.txt')
      else
      writeln (DateTimeToStr(Now)+' ::: The program dont have permission for create the log file.');
      Space;
      writeln (DateTimeToStr(Now)+' ::: Close this program and run your game, Enjoy!!! ');
      Sleep(500) ;
      Space;
      writeln ('Press Enter key for exit...');
      LogFile.Free ;
      readln;
      Halt;
    end.
    You can download the compiled file here: https://www.mpgh.net/forum/showthread.php?t=1339722


    Last edited by Heroes; 02-16-2018 at 07:43 AM. Reason: Update

  2. The Following 4 Users Say Thank You to bengaludo For This Useful Post:

    cyberakuma1 (02-02-2018),DangeBlazer (02-03-2018),ferrari7275 (02-08-2018),Tangerina123 (05-04-2023)

  3. #2
    cyberakuma1's Avatar
    Join Date
    Oct 2012
    Gender
    male
    Posts
    38
    Reputation
    10
    Thanks
    7
    My Mood
    Inspired
    what a source code show

  4. #3
    m0n5t3r_'s Avatar
    Join Date
    Jan 2018
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    141
    My Mood
    Busy
    why got errors
    htt ps: //imgur.c o m/a/J 7AFl

  5. #4
    bengaludo's Avatar
    Join Date
    May 2015
    Gender
    male
    Posts
    145
    Reputation
    19
    Thanks
    6,237
    Quote Originally Posted by cyberakuma1 View Post
    what a source code show
    Thanks for the feedback

    Quote Originally Posted by m0n5t3r_ View Post
    why got errors
    htt ps: //imgur.c o m/a/J 7AFl
    Try

    uses
    Winapi.Windows, Winapi.Messages, System.Classes, Vcl.Forms,IdHashMessageDigest ;
    @Noobiesaregg
    4 Hours Ago

    bro, can u do the glass wall hack like ur new hack installer? because i dont know how to make nifs for all maps
    You can use this source code for this purpose by simply modifying it for all maps ...
    Last edited by bengaludo; 02-03-2018 at 06:54 AM.

  6. The Following 2 Users Say Thank You to bengaludo For This Useful Post:

    DangeBlazer (02-03-2018),Noobiesaregg (02-03-2018)

  7. #5
    DangeBlazer's Avatar
    Join Date
    Feb 2017
    Gender
    male
    Posts
    182
    Reputation
    10
    Thanks
    2,579
    My first hack made in Delphi, ha ha ha I manage to compile without error thank you very TOP

  8. #6
    m0n5t3r_'s Avatar
    Join Date
    Jan 2018
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    141
    My Mood
    Busy
    Quote Originally Posted by DangeBlazer View Post
    My first hack made in Delphi, ha ha ha I manage to compile without error thank you very TOP
    i made my own hack using delphi bighead and chams or chams only and i alr posted it at....

  9. #7
    Noobiesaregg's Avatar
    Join Date
    Dec 2017
    Gender
    male
    Location
    where i want to be
    Posts
    33
    Reputation
    10
    Thanks
    24
    My Mood
    Blah
    Quote Originally Posted by bengaludo View Post
    Thanks for the feedback



    Try

    uses
    Winapi.Windows, Winapi.Messages, System.Classes, Vcl.Forms,IdHashMessageDigest ;
    @Noobiesaregg


    You can use this source code for this purpose by simply modifying it for all maps ...
    thats gonna be a long code hahaha thanks btw!

  10. #8
    mohdzarith's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    104
    Reputation
    10
    Thanks
    285
    My Mood
    Angelic
    where i can get the Pascal or Delphi software? someone @m0n5t3r_ @DangeBlazer @bengaludo

    - - - Updated - - -
    @bengaludo how i can edit the bighead and change to bodyshot only in your source code i want to post it and put credit
    Last edited by mohdzarith; 02-04-2018 at 10:01 PM.

  11. #9
    Noobiesaregg's Avatar
    Join Date
    Dec 2017
    Gender
    male
    Location
    where i want to be
    Posts
    33
    Reputation
    10
    Thanks
    24
    My Mood
    Blah
    Quote Originally Posted by mohdzarith View Post
    where i can get the Pascal or Delphi software? someone @m0n5t3r_ @DangeBlazer @bengaludo

    - - - Updated - - -
    @bengaludo how i can edit the bighead and change to bodyshot only in your source code i want to post it and put credit
    https://www.mpgh.net/forum/showthread.php?t=1340447

  12. #10
    m0n5t3r_'s Avatar
    Join Date
    Jan 2018
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    141
    My Mood
    Busy
    Quote Originally Posted by mohdzarith View Post
    where i can get the Pascal or Delphi software? someone @m0n5t3r_ @DangeBlazer @bengaludo

    - - - Updated - - -
    @bengaludo how i can edit the bighead and change to bodyshot only in your source code i want to post it and put credit
    name of software is RAD Studio 10.2 tokyo

  13. #11
    bengaludo's Avatar
    Join Date
    May 2015
    Gender
    male
    Posts
    145
    Reputation
    19
    Thanks
    6,237
    Code:
    Program ProgramName;
    
    {$APPTYPE CONSOLE}
    
    uses
      Windows, SysUtils,
      Classes, Forms, IdHashMessageDigest ;
    
    Const
    FbossHashSEA     : String = 'FA856772CBADB14CAF4B17156AC81D43' ;
    FbossHashEU      : String = 'AFD618ADA214B598A950874F0DDDBD66' ;
    AllBodiesPath    : String = 'Data\Character\All\' ;
    AdamBodiesPath   : String = 'Data\Character\Adam\' ;
    CassieBodiesPath : String = 'Data\Character\Cassie\' ;
    ForceModelBase   : String = 'Data\Character\' ;
    KeiBodiesPath    : String = 'Data\Character\Kei\' ;
    ViolaBodiesPath  : String = 'Data\Character\Viola\' ;
    BIGHEAD          : String = '...Stub\BIGHEAD.nif' ;
    Bypass           : String = 'msssrs.flt' ;
    BSEU             : String = 'Data\_EU\Character' ;
    BSSEA            : String = 'data\_SG\Character' ;
    
    All_Bodies : Array [0..10] of String = (
               'A_C_K_body_vietnam_US.nif', 'A_C_K_body_vietnam_VT.nif',
               'Crimson_body.nif', 'Dragon_body_gold.nif',
               'Dragon_body_silver.nif', 'Fboss_body.nif',
               'Rudolph.nif', 'santa_body.nif',
               'santa_gm_body.nif', 'Vi_body_vietnam_US.nif',
               'Vi_body_vietnam_VT.nif' ) ;
    
    Adam_Bodies : Array [0..3] of String = (
               'Ad_body1.nif', 'Ad_body2.nif',
               'Ad_body3.nif', 'Ad_body4.nif' ) ;
    
    Cassie_Bodies : Array [0..3] of String = (
               'ca_body1.nif', 'ca_body2.nif',
               'ca_body3.nif', 'ca_body4.nif' ) ;
    
    Kei_Bodies : Array [0..3] of String = (
               'ke_body1.nif', 'ke_body2.nif',
               'ke_body3.nif', 'ke_body4.nif' ) ;
    
    Viola_Bodies : Array [0..3] of String = (
               'vi_body1.nif', 'vi_body2.nif',
               'vi_body3.nif', 'vi_body4.nif' ) ;
    
    ForceModel_Bodies : Array [0..19] of String = (
               'wehrmacht.nif', 'usa_2war.nif',
               'adam_renew.nif', 'cassie_renew.nif',
               'chinese_spy.nif', 'cowgirl.nif',
               'gangsta.nif', 'isabelle.nif',
               'kei_renew.nif', 'new_viola.nif',
               'nina.nif', 'ninja.nif',
               'paratrooper.nif', 'police.nif',
               'mantis.nif', 'sniper_rayne.nif',
               'swat.nif', 'UDT.nif',
               'Usarmy.nif', 'viola_renew.nif' ) ;
    
    ForceModel_Bodies_Path : Array [0..19] of String = (
               'forcemodel\2war_germany\', 'forcemodel\2war_usa\',
               'forcemodel\ADAM_RENEW\', 'forcemodel\CASSIE_RENEW\',
               'forcemodel\CHINESE_SPY\', 'forcemodel\Cowgirl\',
               'forcemodel\GANGSTA\', 'forcemodel\Isabelle\',
               'forcemodel\KEI_RENEW\', 'forcemodel\New_Viola\',
               'forcemodel\NINA\', 'forcemodel\NINJA\',
               'forcemodel\PARATROOPER\', 'forcemodel\POLICE\',
               'forcemodel\Sniper_Mantis\', 'forcemodel\Sniper_Rayne\',
               'forcemodel\SWAT\', 'forcemodel\UDT\',
               'forcemodel\USarmy\', 'forcemodel\VIOLA_RENEW\' ) ;
    
    function GetMD5HashFromFile (FileN : string) : string;
    var
       MD5Hash : TIdHashMessageDigest5;
       FileS : TFileStream;
     begin
     MD5Hash := TIdHashMessageDigest5.Create;
       FileS := TFileStream.Create(FileN, fmShareDenyWrite or fmOpenRead) ;
          try
            result := MD5Hash.AsHex(MD5Hash.hashValue(FileS)) ;
           finally
              FileS.Free;
                MD5Hash.Free;
          end;
    end;
    
    Function NewMD5BigHead (const BigHeadFile, CopyTo : String ;
    var NewMD5Hash : string) : Bool ;
    Const
      Max : WORD = $FFFF ;
    Var
      AddSize : integer;
      FileS : TMemoryStream;
    SL : TStringlist;
    begin
    Result := False ;
      Randomize;
        AddSize := Random(Max);
          FileS := TMemoryStream.Create;
            FileS.LoadFromFile(BigHeadFile);
            FileS.Size := FileS.Size + AddSize ;
            FileS.SaveToFile(CopyTo);
            If FileExists(CopyTo) Then
            begin
            NewMD5Hash := GetMD5HashFromFile(CopyTo) ;
            Result := True ;
            end;
    end;
    
    Procedure BypassName(Size: Cardinal ; Var Result : String) ;
    Var
    Value : String ;
    begin
     Randomize;
      Value    := '0123456789';
       repeat
       Result := Result + Value[Random(Length(Value)) + 1];
     until( Length ( Result ) = Size);
    end;
    
    Function CopyF (Source, New : String ) : LongBool ;
    begin
        Result := CopyFile (Pchar(Source), Pchar(New), False) ;
    end;
    
    Procedure Space ;
    begin
       writeln ('');
    end;
    
    Var
    i : Integer ;
    pas, fullpath, source, sourcebypass, asibypass, BGNewMD5 : string ;
    LogFile : TStringList ;
    CheckBSSEA : Bool = False ;
    begin
      BypassName(10,asibypass);
      LogFile := TStringList.Create ;
      fullpath := ExtractFilePath(Application.ExeName) ;
      source   := fullpath + 'Stub\BIGHEAD.nif' ;
      Space;
      writeln ('******************************************************************');
      writeln ('*** bengaludo Wizard setup - Blackshot SEA/Global BIGHEAD FREE ***');
      writeln ('******************************************************************');
      Space;
      writeln ('Checking folder...');
    
      If FileExists(fullpath+'System\blackshot_BE.exe') Then
      begin
      If FileExists(fullpath+'System\blackshot.exe') Then
      begin
      If FileExists(fullpath+'System\multiplay_sg.dll') Then
      begin
      CheckBSSEA := True ;
      LogFile.Add ('Client: BLACKSHOT SEA');
      writeln ('Client: BLACKSHOT SEA');
      end;
      If FileExists(fullpath+'System\multiplay_eu.dll') Then
      begin
      LogFile.Add ('Client: BLACKSHOT GLOBAL');
      writeln ('Client: BLACKSHOT GLOBAL');
      end;
      end;
      end
      else
      begin
      LogFile.Add('ERROR ::: Run this program in the game folder!') ;
      LogFile.SaveToFile(fullpath+'Result.txt');
      writeln ('ERROR ::: Run this program in the game folder!');
      readln;
      ExitProcess(0);
      end;
    
      Space;
      writeln ('Checking for BIGHEAD.nif...');
      If FileExists (fullpath+ 'Stub\BIGHEAD.nif') Then
      begin
      pas := 'Stub\BIGHEAD.nif' ;
      writeln ('The BIGHEAD.nif has been found! @' + pas + '') ;
      writeln ('BIGHEAD.nif Current MD5: @'+GetMD5HashFromFile(source));
      LogFile.Add('BIGHEAD.nif Current MD5: @'+GetMD5HashFromFile(source)) ;
    
      {Changing MD5...}
    
      NewMD5BigHead(source,fullpath+'Stub\BIGHEAD.nif', BGNewMD5) ;
      writeln ('BIGHEAD.nif new MD5    : @'+BGNewMD5) ;
      LogFile.Add('BIGHEAD.nif new MD5    : @'+BGNewMD5) ;
    
      Space;
      LogFile.Add('The BIGHEAD.nif has been found! @' + pas + '') ;
      LogFile.Add('');
      end
      else
      begin
      writeln ('Error!!!  Stub\BIGHEAD.nif was not found!') ;
      LogFile.Add('Error!!!  Stub\BIGHEAD.nif was not found!') ;
      LogFile.SaveToFile(fullpath+'Result.txt');
      readln;
      ExitProcess(0);
      end;
      Space;
      writeln ('Press ENTER to install, waiting...');
      readln;
      writeln (DateTimeToStr(Now)+' ::: Process started...');
      Space;
    
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AllBodiesPath ) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AllBodiesPath );
      LogFile.Add('') ;
      Space;
    
      {All Bodies *****************************}
    
      For i := 0 to Length(All_Bodies) -1 do
      begin
    
      {Backup GM BOdy}
      If All_Bodies[i] = 'Fboss_body.nif' Then
      begin
      If ( ( GetMD5HashFromFile(fullpath + AllBodiesPath + 'Fboss_body.nif') =  FbossHashSEA)
      or
      ( GetMD5HashFromFile(fullpath + AllBodiesPath + 'Fboss_body.nif') =  FbossHashEU) ) Then
      begin
      If CopyF(fullpath + AllBodiesPath + 'Fboss_body.nif', fullpath + AllBodiesPath + 'Fboss.xor') Then
      begin
      LogFile.Add('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: OK');
      Writeln ('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: ERROR') ;
      Writeln ('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: ERROR') ;
      end;
      end;
    
      end;
    
      If CopyF(source, fullpath + AllBodiesPath + All_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: OK')
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: ERROR')
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AdamBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AdamBodiesPath );
      LogFile.Add('') ;
      Space;
    
      Sleep(1200) ;
    
      {Adam Bodies *****************************}
    
      For i := 0 to Length(Adam_Bodies) -1 do
      begin
    
      If Not (Pchar(AnsiUpperCase(Adam_Bodies[i])) = AnsiUpperCase('Ad_body1.nif')) Then
      begin
    
    
      If CopyF(source, fullpath + AdamBodiesPath + Adam_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: ERROR')
      end;
      end
      else
      begin
      {Ad_body1.nif}
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+AdamBodiesPath+'Ad_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
    
      end;
    
    
    
    
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + CassieBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + CassieBodiesPath );
      LogFile.Add('') ;
      Space;
    
      Sleep(50) ;
    
      {Cassie Bodies *****************************}
    
      For i := 0 to Length(Cassie_Bodies) -1 do
      begin
    
      If Not (Pchar(AnsiUpperCase(Cassie_Bodies[i])) = AnsiUpperCase('ca_body1.nif')) Then
      begin
    
      If CopyF(source, fullpath + CassieBodiesPath + Cassie_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: ERROR') ;
      end;
      end
      else
      begin
      {ca_body1.nif}
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+CassieBodiesPath+'ca_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
    
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + ForceModelBase + 'forcemodel\') ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + ForceModelBase + 'forcemodel\' );
      LogFile.Add('') ;
      Space;
    
      Sleep(50) ;
    
      {Force Model Bodies *****************************}
    
      For i := 0 to Length(ForceModel_Bodies) -1 do
      begin
      If CopyF(source, fullpath + ForceModelBase + ForceModel_Bodies_Path[i] + ForceModel_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: OK');
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: ERROR');
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + KeiBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + KeiBodiesPath );
      Space;
      LogFile.Add('') ;
    
      Sleep(50) ;
    
      {Kei Bodies *****************************}
    
      For i := 0 to Length(Kei_Bodies) -1 do
      begin
      If CopyF(source, fullpath + KeiBodiesPath + Kei_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: ERROR')
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + ViolaBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + ViolaBodiesPath );
      Space;
      LogFile.Add('') ;
    
      Sleep(50) ;
    
      {Viola Bodies *****************************}
    
      For i := 0 to Length(Viola_Bodies) -1 do
      begin
      If Not ( Pchar ( AnsiUpperCase(Viola_Bodies[i])) = AnsiUpperCase('vi_body1.nif') ) Then
      begin
      If CopyF(source, fullpath + ViolaBodiesPath + Viola_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: ERROR') ;
      end;
      end
      else
      begin
    
      Sleep(50) ;
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+ViolaBodiesPath+'vi_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
      end;
    
      Sleep(50) ;
    
      {Copying flt/asi file ****************************************}
    
      If FileExists(fullpath+'system\'+Bypass) Then
      begin
      sourcebypass := fullpath+'system\'+asibypass+'.asi' ;
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> Trying to duplicate the file "'+Bypass+'"...') ;
      writeln ('>>> Trying to duplicate the file "'+Bypass+'"...') ;
      If CopyF(fullpath+'system\'+Bypass, sourcebypass) Then
      begin
      LogFile.Add('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
      writeln ('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
      end
      else
      begin
      LogFile.Add('>>> Error while trying to duplicate file "'+Bypass+'".') ;
      writeln ('>>> Error while trying to duplicate file "'+Bypass+'".') ;
      end;
      end
      else
      begin
      LogFile.Add('>>> File flt not found! ' + '...system\'+Bypass) ;
      writeln ('>>> File flt not found! ' + '...system\'+Bypass) ;
      end;
    
      {Rename another SG/EU Character folder}
      If CheckBSSEA Then
      begin
    
      If DirectoryExists(fullpath+BSSEA) Then
      begin
      Space;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_sg\Character has been found!') ;
      writeln ('>>> The folder ...data\_sg\Character has been found!') ;
    
      If MoveFile(Pchar(fullpath+BSSEA),Pchar(fullpath+'Data\_sg\1.Character')) Then
      begin
      LogFile.Add('>>> The folder has been renamed successfully for ...data\_sg\1.Character!') ;
      writeln ('>>> The folder has been renamed successfully for ...data\_sg\1.Character!') ;
      end
      else
      begin
      LogFile.Add('');
      LogFile.Add('>>> Error while trying to rename folder ...data\_sg\Character!') ;
      writeln ('>>> Error while trying to rename folder ...data\_sg\Character!') ;
      end;
    
      end
      else
      begin
      If Not DirectoryExists(fullpath+'data\_sg\1.Character') Then
      begin
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_sg\Character not found!') ;
      writeln ('>>> The folder ...data\_sg\Character not found!') ;
      end;
      end;
    
      end
      else
      begin
    
      If DirectoryExists(fullpath+BSEU) Then
      begin
      Space;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_eu\Character has been found!') ;
      writeln ('>>> The folder ...data\_eu\Character has been found!') ;
    
      If MoveFile(Pchar(fullpath+BSEU),Pchar(fullpath+'Data\_eu\1.Character')) Then
      begin
      LogFile.Add('>>> The folder has been renamed successfully for ...data\_eu\1.Character!') ;
      writeln ('>>> The folder has been renamed successfully for ...data\_eu\1.Character!') ;
      end
      else
      begin
      LogFile.Add('');
      LogFile.Add('>>> Error while trying to rename folder ...data\_eu\Character!') ;
      writeln ('>>> Error while trying to rename folder ...data\_eu\Character!') ;
      end;
    
      end
      else
      begin
      If Not DirectoryExists(fullpath+'data\_eu\1.Character') Then
      begin
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_eu\Character not found!') ;
      writeln ('>>> The folder ...data\_eu\Character not found!') ;
      end;
      end;
    
      end;
    
      Sleep(50) ;
    
      LogFile.Add('');
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Installation complete O.o');
      writeln (DateTimeToStr(Now)+' ::: Installation complete O.o');
      writeln (DateTimeToStr(Now)+' ::: Note: If you have any problem with this program let me see the log file in the forum.');
      Space;
      LogFile.SaveToFile(fullpath+'Result.txt');
      If FileExists(fullpath+'Result.txt') Then
      writeln (DateTimeToStr(Now)+' ::: The log file was been created! ...Result.txt')
      else
      writeln (DateTimeToStr(Now)+' ::: The program dont have permission for create the log file.');
      Space;
      writeln (DateTimeToStr(Now)+' ::: Close this program and run your game, Enjoy!!! ');
      Sleep(500) ;
      Space;
      writeln ('Press Enter key for exit...');
      LogFile.Free ;
      readln;
      Halt;
    end.
    @Heroes
    Please, update the thread with this new code [Updated for Lunar Patch]

    @m0n5t3r_
    @mohdzarith

    I made this source in the Delphi 7, but you can compile in recent IDE too, maybe need modifications in the source for working in RAD Studio...
    Last edited by bengaludo; 02-08-2018 at 05:04 PM.

  14. The Following User Says Thank You to bengaludo For This Useful Post:

    DangeBlazer (02-09-2018)

  15. #12
    mohdzarith's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    104
    Reputation
    10
    Thanks
    285
    My Mood
    Angelic
    Quote Originally Posted by bengaludo View Post
    Code:
    Program ProgramName;
    
    {$APPTYPE CONSOLE}
    
    uses
      Windows, SysUtils,
      Classes, Forms, IdHashMessageDigest ;
    
    Const
    FbossHashSEA     : String = 'FA856772CBADB14CAF4B17156AC81D43' ;
    FbossHashEU      : String = 'AFD618ADA214B598A950874F0DDDBD66' ;
    AllBodiesPath    : String = 'Data\Character\All\' ;
    AdamBodiesPath   : String = 'Data\Character\Adam\' ;
    CassieBodiesPath : String = 'Data\Character\Cassie\' ;
    ForceModelBase   : String = 'Data\Character\' ;
    KeiBodiesPath    : String = 'Data\Character\Kei\' ;
    ViolaBodiesPath  : String = 'Data\Character\Viola\' ;
    BIGHEAD          : String = '...Stub\BIGHEAD.nif' ;
    Bypass           : String = 'msssrs.flt' ;
    BSEU             : String = 'Data\_EU\Character' ;
    BSSEA            : String = 'data\_SG\Character' ;
    
    All_Bodies : Array [0..10] of String = (
               'A_C_K_body_vietnam_US.nif', 'A_C_K_body_vietnam_VT.nif',
               'Crimson_body.nif', 'Dragon_body_gold.nif',
               'Dragon_body_silver.nif', 'Fboss_body.nif',
               'Rudolph.nif', 'santa_body.nif',
               'santa_gm_body.nif', 'Vi_body_vietnam_US.nif',
               'Vi_body_vietnam_VT.nif' ) ;
    
    Adam_Bodies : Array [0..3] of String = (
               'Ad_body1.nif', 'Ad_body2.nif',
               'Ad_body3.nif', 'Ad_body4.nif' ) ;
    
    Cassie_Bodies : Array [0..3] of String = (
               'ca_body1.nif', 'ca_body2.nif',
               'ca_body3.nif', 'ca_body4.nif' ) ;
    
    Kei_Bodies : Array [0..3] of String = (
               'ke_body1.nif', 'ke_body2.nif',
               'ke_body3.nif', 'ke_body4.nif' ) ;
    
    Viola_Bodies : Array [0..3] of String = (
               'vi_body1.nif', 'vi_body2.nif',
               'vi_body3.nif', 'vi_body4.nif' ) ;
    
    ForceModel_Bodies : Array [0..19] of String = (
               'wehrmacht.nif', 'usa_2war.nif',
               'adam_renew.nif', 'cassie_renew.nif',
               'chinese_spy.nif', 'cowgirl.nif',
               'gangsta.nif', 'isabelle.nif',
               'kei_renew.nif', 'new_viola.nif',
               'nina.nif', 'ninja.nif',
               'paratrooper.nif', 'police.nif',
               'mantis.nif', 'sniper_rayne.nif',
               'swat.nif', 'UDT.nif',
               'Usarmy.nif', 'viola_renew.nif' ) ;
    
    ForceModel_Bodies_Path : Array [0..19] of String = (
               'forcemodel\2war_germany\', 'forcemodel\2war_usa\',
               'forcemodel\ADAM_RENEW\', 'forcemodel\CASSIE_RENEW\',
               'forcemodel\CHINESE_SPY\', 'forcemodel\Cowgirl\',
               'forcemodel\GANGSTA\', 'forcemodel\Isabelle\',
               'forcemodel\KEI_RENEW\', 'forcemodel\New_Viola\',
               'forcemodel\NINA\', 'forcemodel\NINJA\',
               'forcemodel\PARATROOPER\', 'forcemodel\POLICE\',
               'forcemodel\Sniper_Mantis\', 'forcemodel\Sniper_Rayne\',
               'forcemodel\SWAT\', 'forcemodel\UDT\',
               'forcemodel\USarmy\', 'forcemodel\VIOLA_RENEW\' ) ;
    
    function GetMD5HashFromFile (FileN : string) : string;
    var
       MD5Hash : TIdHashMessageDigest5;
       FileS : TFileStream;
     begin
     MD5Hash := TIdHashMessageDigest5.Create;
       FileS := TFileStream.Create(FileN, fmShareDenyWrite or fmOpenRead) ;
          try
            result := MD5Hash.AsHex(MD5Hash.hashValue(FileS)) ;
           finally
              FileS.Free;
                MD5Hash.Free;
          end;
    end;
    
    Function NewMD5BigHead (const BigHeadFile, CopyTo : String ;
    var NewMD5Hash : string) : Bool ;
    Const
      Max : WORD = $FFFF ;
    Var
      AddSize : integer;
      FileS : TMemoryStream;
    SL : TStringlist;
    begin
    Result := False ;
      Randomize;
        AddSize := Random(Max);
          FileS := TMemoryStream.Create;
            FileS.LoadFromFile(BigHeadFile);
            FileS.Size := FileS.Size + AddSize ;
            FileS.SaveToFile(CopyTo);
            If FileExists(CopyTo) Then
            begin
            NewMD5Hash := GetMD5HashFromFile(CopyTo) ;
            Result := True ;
            end;
    end;
    
    Procedure BypassName(Size: Cardinal ; Var Result : String) ;
    Var
    Value : String ;
    begin
     Randomize;
      Value    := '0123456789';
       repeat
       Result := Result + Value[Random(Length(Value)) + 1];
     until( Length ( Result ) = Size);
    end;
    
    Function CopyF (Source, New : String ) : LongBool ;
    begin
        Result := CopyFile (Pchar(Source), Pchar(New), False) ;
    end;
    
    Procedure Space ;
    begin
       writeln ('');
    end;
    
    Var
    i : Integer ;
    pas, fullpath, source, sourcebypass, asibypass, BGNewMD5 : string ;
    LogFile : TStringList ;
    CheckBSSEA : Bool = False ;
    begin
      BypassName(10,asibypass);
      LogFile := TStringList.Create ;
      fullpath := ExtractFilePath(Application.ExeName) ;
      source   := fullpath + 'Stub\BIGHEAD.nif' ;
      Space;
      writeln ('******************************************************************');
      writeln ('*** bengaludo Wizard setup - Blackshot SEA/Global BIGHEAD FREE ***');
      writeln ('******************************************************************');
      Space;
      writeln ('Checking folder...');
    
      If FileExists(fullpath+'System\blackshot_BE.exe') Then
      begin
      If FileExists(fullpath+'System\blackshot.exe') Then
      begin
      If FileExists(fullpath+'System\multiplay_sg.dll') Then
      begin
      CheckBSSEA := True ;
      LogFile.Add ('Client: BLACKSHOT SEA');
      writeln ('Client: BLACKSHOT SEA');
      end;
      If FileExists(fullpath+'System\multiplay_eu.dll') Then
      begin
      LogFile.Add ('Client: BLACKSHOT GLOBAL');
      writeln ('Client: BLACKSHOT GLOBAL');
      end;
      end;
      end
      else
      begin
      LogFile.Add('ERROR ::: Run this program in the game folder!') ;
      LogFile.SaveToFile(fullpath+'Result.txt');
      writeln ('ERROR ::: Run this program in the game folder!');
      readln;
      ExitProcess(0);
      end;
    
      Space;
      writeln ('Checking for BIGHEAD.nif...');
      If FileExists (fullpath+ 'Stub\BIGHEAD.nif') Then
      begin
      pas := 'Stub\BIGHEAD.nif' ;
      writeln ('The BIGHEAD.nif has been found! @' + pas + '') ;
      writeln ('BIGHEAD.nif Current MD5: @'+GetMD5HashFromFile(source));
      LogFile.Add('BIGHEAD.nif Current MD5: @'+GetMD5HashFromFile(source)) ;
    
      {Changing MD5...}
    
      NewMD5BigHead(source,fullpath+'Stub\BIGHEAD.nif', BGNewMD5) ;
      writeln ('BIGHEAD.nif new MD5    : @'+BGNewMD5) ;
      LogFile.Add('BIGHEAD.nif new MD5    : @'+BGNewMD5) ;
    
      Space;
      LogFile.Add('The BIGHEAD.nif has been found! @' + pas + '') ;
      LogFile.Add('');
      end
      else
      begin
      writeln ('Error!!!  Stub\BIGHEAD.nif was not found!') ;
      LogFile.Add('Error!!!  Stub\BIGHEAD.nif was not found!') ;
      LogFile.SaveToFile(fullpath+'Result.txt');
      readln;
      ExitProcess(0);
      end;
      Space;
      writeln ('Press ENTER to install, waiting...');
      readln;
      writeln (DateTimeToStr(Now)+' ::: Process started...');
      Space;
    
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AllBodiesPath ) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AllBodiesPath );
      LogFile.Add('') ;
      Space;
    
      {All Bodies *****************************}
    
      For i := 0 to Length(All_Bodies) -1 do
      begin
    
      {Backup GM BOdy}
      If All_Bodies[i] = 'Fboss_body.nif' Then
      begin
      If ( ( GetMD5HashFromFile(fullpath + AllBodiesPath + 'Fboss_body.nif') =  FbossHashSEA)
      or
      ( GetMD5HashFromFile(fullpath + AllBodiesPath + 'Fboss_body.nif') =  FbossHashEU) ) Then
      begin
      If CopyF(fullpath + AllBodiesPath + 'Fboss_body.nif', fullpath + AllBodiesPath + 'Fboss.xor') Then
      begin
      LogFile.Add('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: OK');
      Writeln ('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: ERROR') ;
      Writeln ('...Fboss_body.nif' + '   ---> ' + '@' + 'Fboss.xor' + ' ::: ERROR') ;
      end;
      end;
    
      end;
    
      If CopyF(source, fullpath + AllBodiesPath + All_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: OK')
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + All_Bodies[i] + ' ::: ERROR')
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AdamBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + AdamBodiesPath );
      LogFile.Add('') ;
      Space;
    
      Sleep(1200) ;
    
      {Adam Bodies *****************************}
    
      For i := 0 to Length(Adam_Bodies) -1 do
      begin
    
      If Not (Pchar(AnsiUpperCase(Adam_Bodies[i])) = AnsiUpperCase('Ad_body1.nif')) Then
      begin
    
    
      If CopyF(source, fullpath + AdamBodiesPath + Adam_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Adam_Bodies[i] + ' ::: ERROR')
      end;
      end
      else
      begin
      {Ad_body1.nif}
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+AdamBodiesPath+'Ad_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Adam_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
    
      end;
    
    
    
    
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + CassieBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + CassieBodiesPath );
      LogFile.Add('') ;
      Space;
    
      Sleep(50) ;
    
      {Cassie Bodies *****************************}
    
      For i := 0 to Length(Cassie_Bodies) -1 do
      begin
    
      If Not (Pchar(AnsiUpperCase(Cassie_Bodies[i])) = AnsiUpperCase('ca_body1.nif')) Then
      begin
    
      If CopyF(source, fullpath + CassieBodiesPath + Cassie_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Cassie_Bodies[i] + ' ::: ERROR') ;
      end;
      end
      else
      begin
      {ca_body1.nif}
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+CassieBodiesPath+'ca_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Cassie_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
    
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + ForceModelBase + 'forcemodel\') ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + fullpath + ForceModelBase + 'forcemodel\' );
      LogFile.Add('') ;
      Space;
    
      Sleep(50) ;
    
      {Force Model Bodies *****************************}
    
      For i := 0 to Length(ForceModel_Bodies) -1 do
      begin
      If CopyF(source, fullpath + ForceModelBase + ForceModel_Bodies_Path[i] + ForceModel_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: OK');
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@'+ ForceModel_Bodies[i] + ' ::: ERROR');
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + KeiBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + KeiBodiesPath );
      Space;
      LogFile.Add('') ;
    
      Sleep(50) ;
    
      {Kei Bodies *****************************}
    
      For i := 0 to Length(Kei_Bodies) -1 do
      begin
      If CopyF(source, fullpath + KeiBodiesPath + Kei_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Kei_Bodies[i] + ' ::: ERROR')
      end;
      end;
      LogFile.Add('') ;
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Replacing the files in ' + ViolaBodiesPath) ;
      writeln (DateTimeToStr(Now)+' ::: Replacing the files in ' + ViolaBodiesPath );
      Space;
      LogFile.Add('') ;
    
      Sleep(50) ;
    
      {Viola Bodies *****************************}
    
      For i := 0 to Length(Viola_Bodies) -1 do
      begin
      If Not ( Pchar ( AnsiUpperCase(Viola_Bodies[i])) = AnsiUpperCase('vi_body1.nif') ) Then
      begin
      If CopyF(source, fullpath + ViolaBodiesPath + Viola_Bodies[i] ) Then
      begin
      writeln (BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: OK') ;
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: OK') ;
      end
      else
      begin
      LogFile.Add(BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: ERROR') ;
      writeln (BIGHEAD + ' ---> ' + '@' + Viola_Bodies[i] + ' ::: ERROR') ;
      end;
      end
      else
      begin
    
      Sleep(50) ;
    
      {Installing GM Monster Body}
      If FileExists(fullpath+AllBodiesPath+'Fboss.xor') Then
      begin
    
      If CopyF(fullpath+AllBodiesPath+'Fboss.xor', fullpath+ViolaBodiesPath+'vi_body1.nif') Then
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: OK // WARNING: Do not edit this body!!!') ;
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: Error while trying to copy!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: Error while trying to copy!') ;
      end;
    
      end
      else
      begin
      LogFile.Add('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      writeln ('...Fboss.xor' + '        ---> ' + '@' + Viola_Bodies[i] + ' ::: FILE NOT FOUND!') ;
      end;
    
      end;
      end;
    
      Sleep(50) ;
    
      {Copying flt/asi file ****************************************}
    
      If FileExists(fullpath+'system\'+Bypass) Then
      begin
      sourcebypass := fullpath+'system\'+asibypass+'.asi' ;
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> Trying to duplicate the file "'+Bypass+'"...') ;
      writeln ('>>> Trying to duplicate the file "'+Bypass+'"...') ;
      If CopyF(fullpath+'system\'+Bypass, sourcebypass) Then
      begin
      LogFile.Add('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
      writeln ('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
      end
      else
      begin
      LogFile.Add('>>> Error while trying to duplicate file "'+Bypass+'".') ;
      writeln ('>>> Error while trying to duplicate file "'+Bypass+'".') ;
      end;
      end
      else
      begin
      LogFile.Add('>>> File flt not found! ' + '...system\'+Bypass) ;
      writeln ('>>> File flt not found! ' + '...system\'+Bypass) ;
      end;
    
      {Rename another SG/EU Character folder}
      If CheckBSSEA Then
      begin
    
      If DirectoryExists(fullpath+BSSEA) Then
      begin
      Space;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_sg\Character has been found!') ;
      writeln ('>>> The folder ...data\_sg\Character has been found!') ;
    
      If MoveFile(Pchar(fullpath+BSSEA),Pchar(fullpath+'Data\_sg\1.Character')) Then
      begin
      LogFile.Add('>>> The folder has been renamed successfully for ...data\_sg\1.Character!') ;
      writeln ('>>> The folder has been renamed successfully for ...data\_sg\1.Character!') ;
      end
      else
      begin
      LogFile.Add('');
      LogFile.Add('>>> Error while trying to rename folder ...data\_sg\Character!') ;
      writeln ('>>> Error while trying to rename folder ...data\_sg\Character!') ;
      end;
    
      end
      else
      begin
      If Not DirectoryExists(fullpath+'data\_sg\1.Character') Then
      begin
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_sg\Character not found!') ;
      writeln ('>>> The folder ...data\_sg\Character not found!') ;
      end;
      end;
    
      end
      else
      begin
    
      If DirectoryExists(fullpath+BSEU) Then
      begin
      Space;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_eu\Character has been found!') ;
      writeln ('>>> The folder ...data\_eu\Character has been found!') ;
    
      If MoveFile(Pchar(fullpath+BSEU),Pchar(fullpath+'Data\_eu\1.Character')) Then
      begin
      LogFile.Add('>>> The folder has been renamed successfully for ...data\_eu\1.Character!') ;
      writeln ('>>> The folder has been renamed successfully for ...data\_eu\1.Character!') ;
      end
      else
      begin
      LogFile.Add('');
      LogFile.Add('>>> Error while trying to rename folder ...data\_eu\Character!') ;
      writeln ('>>> Error while trying to rename folder ...data\_eu\Character!') ;
      end;
    
      end
      else
      begin
      If Not DirectoryExists(fullpath+'data\_eu\1.Character') Then
      begin
      Space ;
      LogFile.Add('');
      LogFile.Add('>>> The folder ...data\_eu\Character not found!') ;
      writeln ('>>> The folder ...data\_eu\Character not found!') ;
      end;
      end;
    
      end;
    
      Sleep(50) ;
    
      LogFile.Add('');
      Space;
      LogFile.Add(DateTimeToStr(Now)+' ::: Installation complete O.o');
      writeln (DateTimeToStr(Now)+' ::: Installation complete O.o');
      writeln (DateTimeToStr(Now)+' ::: Note: If you have any problem with this program let me see the log file in the forum.');
      Space;
      LogFile.SaveToFile(fullpath+'Result.txt');
      If FileExists(fullpath+'Result.txt') Then
      writeln (DateTimeToStr(Now)+' ::: The log file was been created! ...Result.txt')
      else
      writeln (DateTimeToStr(Now)+' ::: The program dont have permission for create the log file.');
      Space;
      writeln (DateTimeToStr(Now)+' ::: Close this program and run your game, Enjoy!!! ');
      Sleep(500) ;
      Space;
      writeln ('Press Enter key for exit...');
      LogFile.Free ;
      readln;
      Halt;
    end.
    @Heroes
    Please, update the thread with this new code [Updated for Lunar Patch]

    @m0n5t3r_
    @mohdzarith

    I made this source in the Delphi 7, but you can compile in recent IDE too, maybe need modifications in the source for working in RAD Studio...
    can you teach me how to compile it because me want make bodyshot only... i am newbie at here @bengaludo

  16. #13
    Noobiesaregg's Avatar
    Join Date
    Dec 2017
    Gender
    male
    Location
    where i want to be
    Posts
    33
    Reputation
    10
    Thanks
    24
    My Mood
    Blah
    Quote Originally Posted by mohdzarith View Post
    can you teach me how to compile it because me want make bodyshot only... i am newbie at here @bengaludo
    u r tagged but u say u newbie -

    - - - Updated - - -

    Quote Originally Posted by bengaludo View Post
    {Copying flt/asi file ****************************************}

    If FileExists(fullpath+'system\'+Bypass) Then
    begin
    sourcebypass := fullpath+'system\'+asibypass+'.asi' ;
    Space ;
    LogFile.Add('');
    LogFile.Add('>>> Trying to duplicate the file "'+Bypass+'"...') ;
    writeln ('>>> Trying to duplicate the file "'+Bypass+'"...') ;
    If CopyF(fullpath+'system\'+Bypass, sourcebypass) Then
    begin
    LogFile.Add('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
    writeln ('>>> The file "'+Bypass+'" has duplicate for ...System\' + asibypass + '.asi') ;
    end
    else
    begin
    LogFile.Add('>>> Error while trying to duplicate file "'+Bypass+'".') ;
    writeln ('>>> Error while trying to duplicate file "'+Bypass+'".') ;
    end;
    end
    else
    begin
    LogFile.Add('>>> File flt not found! ' + '...system\'+Bypass) ;
    writeln ('>>> File flt not found! ' + '...system\'+Bypass) ;
    end;
    can i ask is the msssrs.flt is already a bypass in \system? @bengaludo

  17. #14
    RuShi's Avatar
    Join Date
    Jan 2016
    Gender
    male
    Location
    File Not Found 404!
    Posts
    2,531
    Reputation
    210
    Thanks
    13,009
    My Mood
    Innocent
    /Updateeeeee.


    MPGH History:
    Member: 02/1/2016
    Contributor: 29/6/2016
    Minion: 25/8/2016
    Former Staff: 07/02/2017
    Minion: 21/9/2017

  18. The Following User Says Thank You to RuShi For This Useful Post:

    bengaludo (02-18-2018)

  19. #15
    icehawk981998's Avatar
    Join Date
    Jul 2016
    Gender
    male
    Posts
    101
    Reputation
    10
    Thanks
    110
    My Mood
    Devilish
    nice ... waiting for compiled version ....

Page 1 of 2 12 LastLast

Similar Threads

  1. [Info] [SEA/Global] BIGHEAD / Nutella without Abnormal action - Fix
    By bengaludo in forum Blackshot Discussion
    Replies: 18
    Last Post: 02-03-2018, 11:41 AM
  2. [Patched] Blackshot SEA & Global wall Hack
    By praveenrx1 in forum Blackshot Hacks & Cheats
    Replies: 75
    Last Post: 03-31-2016, 09:22 PM
  3. [Release] [NEW UPDATE] BLACKSHOT SEA&GLOBAL BIGHEAD 25.2.2016
    By Lucyfer in forum Blackshot Hacks & Cheats
    Replies: 212
    Last Post: 03-13-2016, 02:53 PM
  4. [New method] How to make Totalitem.bsv Bypass BlackShot SEA and Global - Working...
    By bengaludo in forum Blackshot Coding & Hacking Tutorials
    Replies: 75
    Last Post: 03-06-2016, 12:27 AM
  5. [Release] [New Method 18/2/2016]Blackshot Sea&Global Wallhack
    By Lucyfer in forum Blackshot Hacks & Cheats
    Replies: 59
    Last Post: 02-26-2016, 10:09 PM