-
Content Count
247 -
Joined
-
Last visited
Posts posted by ventura69
-
-
Добрый день, уважаемые.
Кто может подсказать, как к этому примеру прикрутить проверку выбора элемента? Весь мозг сломал уже...
Всем спасибо, вопрос решил сам.
-
А если ктото случайно галку жмакнет и не заметит, а потом будет голову ломать почему моды не встали.
Значит следующий раз будет внимательнее следить за тем, что его руки творят! Всегда считал, что прежде, чем что-то делать, надо думать :-)
-
На самом деле я восстановление все же добавил в инсталлятор. Только прописал делать бекап (если он выбран) по завершении всей работы инсталлятора. То есть, если пользователь все же по глупости навыбирает моды для установки при выборе бекапа, эти моды инсталлятор засунет ему на комп, но после все равно сделает бекап. Применимо к моему инсталлятору этот вариант посчитал наиболее удачным.Именно такой тебе не нужен. Пункт "Восстановить резервную копию файлов" при установке ни к чему. @ventura69 делал этот скрипт для отдельной от установщика программы (типо расширенного деинсталлятора).
Может, тебе просто нужен код бекапа?
-
Умеет.
Без сторонних библиотек можно редактировать те же конфиги XVM... они хоть и имеют расширение XC, а внутри все тот же json.
Но я тебя сразу отговорю... лучше работай с заменой файлов ибо у пользователей полно проблем с ОС... и часто необходимо сперва все dll системы восстанавливать...
Лично я только в конфиге миникарты делаю подмену false на true... и то, чтобы не жалко было функцию зря писать.
Спасибо огромное: подтвердили мои догадки (слаб я в Паскале), я тем же путем пришел к подмене false/true... Вот только не устраивает меня это решение (кривое и излишне сложное получается). Пытаюсь в Делфи найти решение... Вот вас бы (сильных в Делфи) объединить в единый проект... Полироид так и задвинул проект по настройке своего мода... А у меня один детский лепет получается пока...
ЗЫ: Я вижу в этой теме народ стал потихоньку вылазить за рамки Inno Setup и плавно вливаться в Delphi и ObjPascal, вопросики стали появляться, dll-ки.... как там писал К.Маркс - наблюдается переход количественных изменений в качественные. :)))))))))
Качество на самом деле давно зашкалило за количество... Может откроете темку на ту же тему (приношу извинения за тавтологию) по Делфи? :-)
-
Может и проще. Музыку вообще в одну строчку можно добавить (играет и играет себе фоном, без всяких кнопок вкл/выкл), но тогда я вообще мало что смыслил в Inno. Это все пробы и изучение программы. Я ведь только учусь :-)
А за код спасибо. Можно и пригодится куда-нибудь.
-
@ventura69, лови накатал, процедура заменяет текст в файле, указывается номер строки и столбца, нумерация с нуля.
Спасибо огромнейшее! Будет чем в отпуске заняться: пищу для ума дали на все три недели :-)
А на счет кодировки - это мелочи. Мне принцип бы понять...
-
Кинь пример файла, я должен видеть как записано.
Вот примерный вариант:
И еще вариант интересует: есть файлик, в котором записано что-то (условно возьмем battleLoading.xc). В нем надо:
"showChances": true
переписать на
"showChances": false
Но это уже для общего развития.
-
PS: Зачем столбцы-то? Откуда вообще в текстовом файле у вас столбцы???
Вот есть... Специфика работы. Градуировочная таблица называется и пишется в .txt У меня есть текстовый документ, в котором 101 строка и 5 столбцов. Идут столбики цифр. Условно: надо заменить цифру 0.000256, расположенную во втором столбце двадцать третьей строки на 0.000375.
-
@ventura69, это деинсталлятор такой? (если да - то файл unins001.exe не должен будет создаваться в папке с игрой, вместо него будет этот заранее запакованный деинсталлятор в инсталлятор, который будет извлекаться при установке) надеюсь, ты понял, что я имею ввиду);
'Исправить бы мелкие косметические недоработки (не полностью вместились изображения):'
И сделать бы следующее: раз этот расширенный деинсталлятор предназначен для твоей сборки, то хорошо было бы сделать перед запуском программы проверку, на наличие установленной твоей сборки по реестру.. если установленная сборка не найдена - месджбокс и прекращение работы.
Могу наваять пример, если надо..
По поводу unins001.exe. Естественно, он не создается. Пограмуля только перетасовывает папки res_mods и чистит ненужные файлы из кэш и папки с апдейтами. Окно инсталлятора пропускается (ставить то нечего :-) )
По поводу невлезшей картинки согласен. Проглядел (больше на бумажку с размерами пялился, чем на реальное отображение).
А почему деинсталлятор только для моей сборки? Эта програмуля подойдет любому (я так думаю) у кого стоит какой-то мод-пак и хочется потестить другой.
На счет примера: буду очень признателен. Мне легче разбираться с кодом на примерах. Я тогда понимаю алгоритм работы и логику кода. А идея такова: есть готовый файл (текстовый) в который в определенное место (строка и столбец) надо вписать определенный текст (цифирь). Это уже себе жизнь на работе облегчаю (завсклад - [ооочень нехорошее слово], склад ведет абы как. Вот и появилась идея реализовать для этой [еще одно ооочень нехорошее слово] прогу, чтобы он мне нервы не трепал).
-
Уважаемые, вот такая штукенция получилась с вашей помощью... Критику готов слушать, толь не пинайте шибко - все же я новичек в этом деле...
Вывел все операции с клиентом в отдельную прогу.
-
Уважаемые, очередной дурацкий вопрос.
Код:
procedure SaveToFile(str:string);
var
f:TextFile;
FileDir:String;
begin
FileDir:='c:\file.txt';
AssignFile(f,FileDir);
if not FileExists(FileDir) then
begin
Rewrite(f);
CloseFile(f);
end;
Append(f);
Writeln(f,str);
Flush(f);
CloseFile(f);
end;Это запись в файл (код из Делфи, давно делал). Сработает ли такой вариант в Inno (проверить, по техническим причинам, к сожалению не могу, потому и спрашиваю)? И самое главное: как записать текст в определенную строку и столбец?
-
Lemon96!
Нуждаюсь в помощи , был бы очень благодарен если бы ты уделил мне ну совсем немного своего времени.
Есть у меня скрипт ,от прицела , правда беда в том, что сам прицел уехал.
Не мог бы помочь в исправлении ?
А прицел выложить здесь можете? Уехал вправо в нижний угол? В большинстве случаев есть у меня одна лечилка, помогает :-)
Не мог бы помочь в исправлении ?
Принимайте. Все Ваши прицелы с необходимыми скриптами.
И скрины:
-
Через CurPageID меняется любой текст, только нужные страницы подставляй :-)
Странно это все как-то!
-
Хм, стало интересно, сам попробовал: через дизайнер, InitializeWizard, изменение языкового пакета - ноль, это просто не влияет.. Интересно, почему?)
А вот через процедуру CurPageChanged - получилось:
procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpReady then begin WizardForm.ReadyLabel.Caption:='123'; end; end;
Ого! Самому стало интересно. Сейчас полезу остальные заблоченые надписи пробовать менять :-)
-
Ну так, получилось или нет?
Неа. Я даже нашел в папке инно дефолтный лист со всеми текстами. Изменил там. Перезапустил... Эффект нулевой. Вот прямо просится Делфи обратно в руки... :-)
-
Вот так:
А вот доктор дулитл! Это было первое, что я сделал :-)
-
Уважаемые, не риторический вопрос: как изменить текст в ReadyLabel на странице ReadyPage? Он даже на вкладке редактора форм затонирован и не подлежит изменению...
-
Играйся с функцией:
function ShouldSkipPage(PageID: Integer): Boolean;
Хм... А почему? Я склонялся к
function NextButtonClick(CurPageID: Integer): Boolean;
Если отмечен чекбокс на восстановление сборки, то имитируем нажатие кнопки Некст и перескакиваем в конец инсталлятора.
-
Kotyarko_O, спасибо за код! Все гуд. Немного для себя подправил (отключил вывод ошибки). Теперь можно и дальше думать: как при бэкапе перескочить через окно с установкой модов. А то любителей с шаловливыми ручками хватает :-)
-
Когда же вы поймёте, что после каждого патча нужно выкачивать новый клиент? Вот так и рождается вайн о плохой работе клиента.
Темны и непонятны Ваши речи, уважаемый...
Я существо старое, дремучее (45 лет мне) и далекое от сленга, потому не соизволите изъясниться понятнее? "Выкачивать", "вайн"... По отдельности все буковки понятны, а суть фразы ускользнула от меня, Можно попросить попонятнее для новичка объяснить?
Клиент я скачал еще при версии 0.9.0, обновил один раз до 0.9.1. Папка апдейта у меня была 12 Гб.
-
хм.. может и мне стоит.. хорошая идея, подумаю :)
За код спасибо. Поковыряю. Я пробовал сварганить такое, но, видимо, запутался в лексике.
Идея не просто хорошая, а очень хорошая! :-) У себя, на свежем ноуте (2 месяца ему) очистил 12 Гб ненужного хлама обновлений от кВГ. В папке апдейт.
Да! И самое главное: свою почту скиньте мне в личку. Перешлю письмо с комментариями и картинками, как воспользоваться нашим файлообменником. :-)
-
@ventura69, скинь весь свой код бекапа.. поиграюсь, есть пара идей..
Да пожалуйста :-)
Здесь пока не все - кое какие идеи еще не дописал. Но, по мелочи. Кстати, надо вписать еще удаление файлов обновлений в очистку кэш.
-
Это неправильная конструкция..
Попробуй так:
if DirExists('{app}\res_mods_old') then begin Действие, если папка присутствует end else Действие во всех остальных случаях end;
Пробовал такое - не захотело работать, это раз. Во вторых: так толком и не придумал, что делать, если папки этой нет. Надо просто пропустить действие удаления. Как?
-
Уважаемые, кто может подсказать: в чем дефект конструкции? Перепробовал кучу вариантов, но результат один и тот же: не работает.
function BackupCheck_5(): Boolean;
begin
If LoadRadioButton.Checked then //проверяем, отмечен ли чекбокс
begin
if DirExists ('{app}\res_mods_old') = True then //проверяем наличие файла res_mods_old. Если он присутствует, то выполняем действия ниже
begin
DelTree(ExpandConstant('{app}\res_mods'), True, True, True); //удаляем папку res_mods
RenameFile(ExpandConstant('{app}\res_mods_old'), ExpandConstant('{app}\res_mods')); //переименовываем res_mods_old в res_mods
end;
end;
end;А в таком варианте все гуд. Но здесь и ломаться нечему - банальная перетасовка папок:
function BackupCheck_5(): Boolean;
begin
If LoadRadioButton.Checked then
begin
DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
RenameFile(ExpandConstant('{app}\res_mods_old'), ExpandConstant('{app}\res_mods'));
end;
end;Это я пытался защиту от "дурака" сделать, но что-то не клеится.
Создание инсталляторов для модпаков на базе Inno Setup
in Modding General Discussion
Posted
Уважаемые, бился неделю над озвучкой компонента (у меня Анси).
Для желающих выкладываю код озвучки компонента под Анси. Все визуальные отличия: вместо значка ноты - надпись "прослушать". Все работает на ура.
Автор кода, как и для Юникода, все тот же: Shegorat (земной ему поклон с кисточкой и огромная благодарность!)
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
ComponentsListTVStyle=true
[Files]
Source: sounds\*; flags: dontcopy;
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Components]
Name: sound; Description: Звук выстрела; Types: full;
Name: sound\snd1; Description: "Тихий"; Flags: exclusive;
Name: sound\snd2; Description: "Громкий"; Flags: exclusive;