Mr_KeyN 21 #195743 Posted June 25, 2014 Всем привет, кто подскажет что прописать что бы перед установкой модов очищался кэш игры ???? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #195762 Posted June 26, 2014 очищался кэш игры О чем это? Quote Share this post Link to post Short link Share on other sites
Yusha 8 #195769 Posted June 26, 2014 (edited) Всем привет, кто подскажет что прописать что бы перед установкой модов очищался кэш игры ???? [InstallDelete] //Очистка кеша Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\account_caches Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\battle_results Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\custom_data Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\dossier_cache Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\tutorial_cache Edited June 26, 2014 by Yusha Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #195790 Posted June 26, 2014 О чем это? Я так понял, что имеются ввиду настройки игры и т.д. Quote Share this post Link to post Short link Share on other sites
ventura69 34 #195792 Posted June 26, 2014 (edited) Я так понял, что имеются ввиду настройки игры и т.д. Обычно настройки игры просят оставить. Такой вот скрипт, если я правильно понял: Set fso = CreateObject("Scripting.FileSystemObject")Set WshShell = CreateObject("WScript.Shell") Set strFolder = fso.GetFolder(WshShell.ExpandEnvironmentStrings("%APPDATA%")) TempGameFolder = (strFolder & "\" & "Wargaming.net" & "\" & "WorldOfTanks") Set objFSO=Createobject("Scripting.Filesystemobject") Set objFolder=objFSO.GetFolder(TempGameFolder) Set objFiles=objFolder.Files For Each objFile In objFiles If objFile.Name <> "preferences.xml" Then objFSO.DeleteFile TempGameFolder & "\" & objFile.Name, True End if Next For Each objSubFolder In objFolder.SubFolders objFSO.DeleteFolder TempGameFolder & "\" & objSubFolder.Name Next MsgBox TempGameFolder & chr(13) & oFolder & chr(13) & TempSysFolder & chr(13) & chr(13) & chr(13) & " ----- ОЧИЩЕНО -----" Edited June 26, 2014 by ventura69 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #195793 Posted June 26, 2014 (edited) Обычно настройки игры просят оставить. Просто если это действительно настройки игры, то вариант, предложенный @Yusha, будет делать это автоматом. Я, как пользователь, не хочу, чтобы мои настройки сбивались. По-этому, лучше это осуществить чекбоксом (где-то на странице с бекапом). Edited June 26, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
ventura69 34 #195817 Posted June 26, 2014 (edited) Просто если это действительно настройки игры, то вариант, предложенный @Yusha, будет делать это автоматом. Я, как пользователь, не хочу, чтобы мои настройки сбивались. По-этому, лучше это осуществить чекбоксом (где-то на странице с бекапом). Тогда встречный вопрос. Опять туплю. Я всегда чистил кеш скриптом, который выложил. Сейчас попытался прикрутить от Yusha кусок кода. Создал блок, вставил такое: varQuick: TCheckBox; function MakeQuick: Boolean;beginIf Quick.Checked thenbegin //Очистка кешаType: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\account_cachesType: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\battle_resultsType: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\custom_dataType: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\dossier_cacheType: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\tutorial_cacheChecked := True;end else beginChecked := False;end;end; procedure InitializeWizard3;beginQuick := TCheckBox.Create(WizardForm);with Quick dobeginParent := WizardForm.SelectDirPage;Caption := Очистить кеш?';Left := ScaleX(0);// Left := WizardForm.DirEdit.Top + 100;Top := WizardForm.DirEdit.Top + 117;Width := ScaleX(300);Height := ScaleY(15);TabOrder := 0;Checked := False;end;end;Появилось окошко, в нем можно ставить галочку (до тех пор, пока не вписал реакцию на появившуюся галочку), но начало ругаться "Identifier expected" на строке 12, колонка 1. То есть на Type. Что ему не нравится, что я упустил? p.s. Вот чего не понимаю, так это подленьких минусов! К чему это? Форум создан для общения и помощи. На вопрос и просьбу о помощи какой-то придурок с раздутым самомнением ставит минус... И к чему это сделано? Я много не умею, но стремлюсь узнать... На минус плевать, а вот от отношения такого всякое желание отбивается... :-( Edited June 28, 2014 by ventura69 1 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #195818 Posted June 26, 2014 (edited) @ventura69, а с какого ты вот это: //Очистка кеша Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\account_caches Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\battle_results Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\custom_data Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\dossier_cache Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\tutorial_cache вписал в секцию Code? Просмотри внимательнее сообщение Юши. Всё это нужно вписывать в отдельную секцию [installDelete]. Если тебе нужно сделать через секцию Code, с чекбоксом - то нужно делать по-другому, и конструкция не будет даже похожа не эту (кроме путей). Edited June 26, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
ventura69 34 #195820 Posted June 26, 2014 @ventura69, а с какого ты вот это: вписал в секцию Code? Просмотри внимательнее сообщение Юши. Всё это нужно вписывать в отдельную секцию [installDelete]. Если тебе нужно сделать через секцию Code, с чекбоксом - то нужно делать по-другому, и конструкция не будет даже похожа не эту (кроме путей). Потому как я балбес невнимательный! Спасибо. Пошел снова штудировать справку. Уважаемые, а такой вариант? Не могу понять, почему не реагирует на галку в окошке. varQuick: TCheckBox; function MakeQuick: Boolean;beginResult:=Quick.Checked;DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'), True, True, True);DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results'), True, True, True);DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data'), True, True, True);DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache'), True, True, True);DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache'), True, True, True);end; procedure InitializeWizard3;beginQuick := TCheckBox.Create(WizardForm);with Quick dobeginParent := WizardForm.SelectDirPage;Caption := 'Очистка кеш';Left := ScaleX(0);// Left := WizardForm.DirEdit.Top + 100;Top := WizardForm.DirEdit.Top + 117;Width := ScaleX(300);Height := ScaleY(15);TabOrder := 0;Checked := False;end;end; Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #195837 Posted June 26, 2014 (edited) @ventura69, function MakeQuick: Boolean; begin if Quick.Checked:=True then begin DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache'), True, True, True); end; end; а так? Edited June 26, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
ventura69 34 #195851 Posted June 26, 2014 @ventura69, а так? Я тоже дошел до этого, вот только пока не проверить (на работе). Пытался смоделировать расположение файлов, не получилось. Вечером дома проверю - отпишусь. Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #195943 Posted June 26, 2014 Я так понял, что имеются ввиду настройки игры и т.д. Короче, ничего не понял. Зачем нужно удаление кэша? чем это помогает? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #195945 Posted June 26, 2014 Короче, ничего не понял. Зачем нужно удаление кэша? чем это помогает? Присоединяюсь к вопросу. Quote Share this post Link to post Short link Share on other sites
ventura69 34 #195973 Posted June 26, 2014 Короче, ничего не понял. Зачем нужно удаление кэша? чем это помогает? Присоединяюсь к вопросу. Была проблема в свое время: вис у народа клиент, помогала очистка кэш. Точно уже не помню, было это пару патчей назад. И сейчас часто спрашивают, как его чистить. Зачем - не помню. По поводу решения моего вопроса. Плюнул я на создание окна с галочкой по очистке кэша и вот такое решение получилось... Комплексное. Вспомнил кое-что из Делфи. Блок делает: создает новое окно после выбора директории установки (чтобы запомнить путь установки и переброски файлов), создает 4 чека (удалить моды, создать копию своей сборки, отмена всех действий и отдельно очистка кэш). По умолчанию: не делать ничего. Можно еще добавить восстановление сборки из сохраненки. Из минусов: привязан к версии клиента 0.9.1 (решение для универсальности где-то попадалось, но пока не вспомнил где). Если кому надо - пользуйтесь на здоровье :-) claerkash.rar Ну и скрин для наглядности: Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #195978 Posted June 26, 2014 @ventura69, вот это я и предлагал сделать) Из минусов: привязан к версии клиента 0.9.1 Решение:1) Прописываешь, где-то в начале скрипта (вне всяких секций типа [setup], [Files] и т.д.) директиву, типа: #define Patch "0.9.1" 2) В коде, где нужно подставить эту версию, вписываешь {#Patch}. В итоге, возвращаемое значение от вписанной директивы будет такое, какое ты прописал в 1-м шаге. 1 Quote Share this post Link to post Short link Share on other sites
ventura69 34 #195979 Posted June 26, 2014 (edited) Решение: 1) Прописываешь, где-то в начале скрипта (вне всяких секций типа [setup], [Files] и т.д.) директиву, типа: #define Patch "0.9.1" 2) В коде, где нужно подставить эту версию, вписываешь {#Patch}. В итоге, возвращаемое значение от вписанной директивы будет такое, какое ты прописал в 1-м шаге. Принял к сведению, вписал, проверил. Работает. Спасибо!!! Edited June 26, 2014 by ventura69 Quote Share this post Link to post Short link Share on other sites
Yusha 8 #196035 Posted June 27, 2014 (edited) Просто если это действительно настройки игры, то вариант, предложенный @Yusha, будет делать это автоматом. Я, как пользователь, не хочу, чтобы мои настройки сбивались. По-этому, лучше это осуществить чекбоксом (где-то на странице с бекапом). Я дал решение в соответствии с формулировкой вопроса... у меня самого записано вот так: [InstallDelete] //Очистка кеша и логов Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\account_caches; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\battle_results; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\custom_data; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\dossier_cache; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\tutorial_cache; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: files; Name: {app}\python.log; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: files; Name: {app}\xvm.log; Check: IsAdditionalTaskChecked('ClearCacheTask') Соответственно для этого всего еще прописан код. Короче, ничего не понял. Зачем нужно удаление кэша? чем это помогает? Данная процедура рекомендована при выходе нового обновления. Еще была темка на оф. форуме по данному вопросу... но беглым поиском я не нашел.... можете сами поискать. Edited June 27, 2014 by Yusha Quote Share this post Link to post Short link Share on other sites
Mr_KeyN 21 #196044 Posted June 27, 2014 Я дал решение в соответствии с формулировкой вопроса... у меня самого записано вот так: [installDelete] //Очистка кеша и логов Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\account_caches; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\battle_results; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\custom_data; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\dossier_cache; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: filesandordirs; Name: {userappdata}\wargaming.net\WorldOfTanks\tutorial_cache; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: files; Name: {app}\python.log; Check: IsAdditionalTaskChecked('ClearCacheTask') Type: files; Name: {app}\xvm.log; Check: IsAdditionalTaskChecked('ClearCacheTask') Соответственно для этого всего еще прописан код. Если можно ещё и код на возможность выбора.....очищать или нет... Quote Share this post Link to post Short link Share on other sites
ventura69 34 #196046 Posted June 27, 2014 Если можно ещё и код на возможность выбора.....очищать или нет... Так возьмите мой. Он полностью рабочий. Проверил на своем клиенте. Quote Share this post Link to post Short link Share on other sites
Mr_KeyN 21 #196047 Posted June 27, 2014 Так возьмите мой. Он полностью рабочий. Проверил на своем клиенте. такой мне не подходит... Quote Share this post Link to post Short link Share on other sites