Всем привет. Делаю сборку CS:S nosteam. Гуглил на просторах интернета скрипт, который сможет изменять ник и клан тэг в файле rev.ini. Нашёл, пришлось, правда, доделать ввод клантэга. Проблема в следующем: как заставить установщик по дефолту сохранять клантэг и ник в UTF-8 и убрать чекбокс "сохранить в UTF-8". Может кто подсказать решение проблемы? Скрипт прилагаю ниже. Заранее спасибо!
Код:
#ifndef UNICODE
#error Unicode version of Inno Setup is required to compile this script
#endif
var
RevEmuPage: TInputQueryWizardPage;
ConvertCheckBox: TCheckBox;
procedure SetNickname(Nickname: String; Filename: String; IsConvert: Boolean);
var
arrAnsi, arrUtf8: TArrayOfString;
i: Integer;
begin
if IsConvert then
begin
LoadStringsFromFile(Filename, arrAnsi);
SetArrayLength(arrUtf8, 1);
for i := 0 to GetArrayLength(arrAnsi)-1 do
begin
if Pos(LowerCase('PlayerName='), LowerCase(arrAnsi[i])) = 0 then
SaveStringToFile(Filename, arrAnsi[i] + #13#10, i <> 0)
else begin
arrUtf8[0] := Copy(arrAnsi[i], 0, Length('PlayerName=')) + Nickname + #10;
SaveStringsToUTF8File(Filename, arrUtf8, i <> 0);
end;
end;
end else SetIniString('steamclient', 'PlayerName', Nickname, Filename);
end;
procedure SetClantag(Clantag: String; Filename: String; IsConvert: Boolean);
var
arrAnsi, arrUtf8: TArrayOfString;
i: Integer;
begin
if IsConvert then
begin
LoadStringsFromFile(Filename, arrAnsi);
SetArrayLength(arrUtf8, 1);
for i := 0 to GetArrayLength(arrAnsi)-1 do
begin
if Pos(LowerCase('Clantag='), LowerCase(arrAnsi[i])) = 0 then
SaveStringToFile(Filename, arrAnsi[i] + #13#10, i <> 0)
else begin
arrUtf8[0] := Copy(arrAnsi[i], 0, Length('Clantag=')) + Clantag + #10;
SaveStringsToUTF8File(Filename, arrUtf8, i <> 0);
end;
end;
end else SetIniString('steamclient', 'Clantag', Clantag, Filename);
end;
procedure NicknameOnChange (Sender: TObject);
begin
WizardForm.NextButton.Enabled := RevEmuPage.Values[0] <> '';
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
RevEmuPage := CreateInputQueryPage(wpInfoAfter, 'Игровая информация', '', 'Пожалуйста, введите введите свой ник и Clan-tag и нажмите Далее.');
with RevEmuPage do
begin
Add('Ник:', False);
Edits[0].OnChange := @NicknameOnChange;
Add('Клан-тэг:', False);
end;
ConvertCheckBox := TCheckBox.Create(WizardForm);
with ConvertCheckBox do
begin
Parent := RevEmuPage.Surface;
SetBounds(RevEmuPage.Edits[0].Left, RevEmuPage.Edits[0].Top + ScaleY(100), ScaleX(200), ScaleY(17));
Caption := 'Сохранить в UTF-8';
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = RevEmuPage.ID then WizardForm.NextButton.Enabled := RevEmuPage.Values[0] <> '';
if CurPageID = wpFinished then SetNickname(RevEmuPage.Values[0], ExpandConstant('{app}\rev.ini'), ConvertCheckBox.Checked);
if CurPageID = wpFinished then SetClantag(RevEmuPage.Values[0], ExpandConstant('{app}\rev.ini'), ConvertCheckBox.Checked);
end;