Siema,
Zrobiłem prosty skrypt .bat, który automatycznie przygotowuje system i MTA do gry, żeby wyciągnąć jak największą płynność i wyeliminować spadki FPS-ów (stuttering).
W przeciwieństwie do większości skryptów z sieci, ten nie kasuje bindów, ustawień ani polskich znaków na czacie.
Co robi ten skrypt?
Czyszczenie w tle – Ubija zawieszone procesy GTA/MTA, czyści stare logi i odświeża DNS (ipconfig /flushdns).
Koligacja rdzeni (CPU 1 + CPU 2) – Wymusza działanie gry na dwóch rdzeniach i omija rdzeń CPU 0, na którym działa Windows. Dzięki temu nie ma ścinek, gdy system coś robi w tle.
Priorytet High – Automatycznie daje procesowi gta_sa.exe wysoki priorytet w systemie.
Smart Edit Grafik – Wyłącza w pliku konfiguracyjnym tylko zbędne bajery (Post-FX, trawę, rozmycie), nie dotykając Twoich klawiszy i ustawień konta.
Instrukcja krok po kroku:
Kliknij prawym przyciskiem myszy na Pulpicie -> Nowy -> Dokument tekstowy.
Wklej cały powyższy kod ze skryptem.
Ważne: Sprawdź linijkę set "MTA_DIR=D:\MTA3" – jeśli masz MTA w innym miejscu (np. C:\Program Files\MTA), podmień tę ścieżkę na swoją.
Kliknij Plik -> Zapisz jako....
W polu Zapisz jako typ wybierz Wszystkie pliki (.).
Nazwij plik MTA_Optimizer.bat i kliknij Zapisz. - Ważne by było .bat
Odpalaj grę zawsze klikając na ten plik prawym przyciskiem myszy i wybierając Uruchom jako administrator.
Pamiętajcie tylko, żeby w linijce set "MTA_DIR=D:\MTA3" wpisać swoją własną ścieżkę do folderu z MTA, jeśli macie zainstalowane w innym miejscu.
Pozdro, Desola7e
Wskazówka dla słabszych komputerów (3 rdzenie dla gry):
Jeśli masz słabszy procesor (np. 4-rdzeniowy) i chcesz, żeby MTA działało na 3 rdzeniach (CPU 1 + CPU 2 + CPU 3), zmień w kodzie skryptu dwie rzeczy:
Podmień parametr (możesz użyć ctrl+f do wyszukania!) /affinity 0x6 na /affinity 0xE
W linijce z PowerShell podmień $_.ProcessorAffinity = 6; na $_.ProcessorAffinity = 14;
Dzięki temu system i programy w tle dalej zostają na CPU 0, a gra dostaje maksymalną moc z reszty procesora.
Kod skryptu:
@echo off
title MTA Optimizer Monitor - Desola7e (2 Cores No-CPU0)
color 07
:: --- KONFIGURACJA ---
set "MTA_DIR=D:\MTA3"
set "DATA_DIR=C:\ProgramData\MTA San Andreas All\1.6"
set "CFG_FILE=coreconfig.xml"
set "FULL_PATH=%MTA_DIR%\MTA\config\%CFG_FILE%"
echo ======================================================
echo MTA OPTIMIZER MONITOR - BY DESOLA7E
echo ======================================================
echo.
:: --- CZYSZCZENIE SYSTEMU ---
echo [+] Zamykanie starych procesow...
taskkill /f /im "Multi Theft Auto.exe" 2>nul
taskkill /f /im "gta_sa.exe" 2>nul
echo [+] Odswiezanie sieci (DNS)...
ipconfig /flushdns >nul
echo [+] Czyszczenie logow MTA...
del /s /q "%MTA_DIR%\MTA\logs\*.log" 2>nul
echo.
:: --- ODBLOKOWANIE ATRYBUTOW ---
attrib -r -s -h "%FULL_PATH%" 2>nul
attrib -r -s -h "%DATA_DIR%\%CFG_FILE%" 2>nul
:: --- POBRANIE NAJNOWSZYCH BINDOW Z PROGRAMDATA ---
if exist "%DATA_DIR%\%CFG_FILE%" (
echo [+] Pobieranie aktualnych bindow zapisanych przez gre...
copy /y "%DATA_DIR%\%CFG_FILE%" "%FULL_PATH%" >nul
)
:: --- OPTYMALIZACJA CONFIGU ---
echo [+] Wylaczanie Post-FX i Grass (Smart Edit)...
powershell -Command ^
"$path='%FULL_PATH%'; " ^
"if (Test-Path $path) { " ^
" $xml=[xml](Get-Content $path); " ^
" if ($xml.mainconfig.settings) { " ^
" $s = $xml.mainconfig.settings; " ^
" if ($s.blur) { $s.blur='0' }; " ^
" if ($s.grass) { $s.grass='0' }; " ^
" if ($s.heat_haze) { $s.heat_haze='0' }; " ^
" if ($s.post_fx_level) { $s.post_fx_level='0' }; " ^
" if ($s.volumetric_shadows) { $s.volumetric_shadows='0' }; " ^
" if ($s.fx_quality) { $s.fx_quality='0' }; " ^
" if ($s.streaming_memory) { $s.streaming_memory='1024' }; " ^
" $xml.Save($path); " ^
" } " ^
"}"
echo [+] Synchronizacja ustawien...
copy /y "%FULL_PATH%" "%DATA_DIR%\%CFG_FILE%" >nul
:: Ostateczne upewnienie sie, ze plik pozostaje otwarty do zapisu
attrib -r -s -h "%FULL_PATH%" 2>nul
attrib -r -s -h "%DATA_DIR%\%CFG_FILE%" 2>nul
echo.
:: --- URUCHOMIENIE (CPU 1 + CPU 2 -> affinity 0x6) ---
echo [+] Startowanie MTA w trybie High Priority (CPU 1 i CPU 2)...
D:
cd /d "%MTA_DIR%"
start /high /affinity 0x6 "" "Multi Theft Auto.exe" --noshader --postfx-disable --no-grass --fast-start
echo.
:: --- PETLA MONITORUJACA ---
echo [!] OCZEKIWANIE NA WEJSCIE DO GRY...
echo [!] To okno automatycznie wykryje moment startu gta_sa.exe.
echo.
:WAIT_FOR_GTA
tasklist /FI "IMAGENAME eq gta_sa.exe" 2>nul | find /I /N "gta_sa.exe" >nul
if "%ERRORLEVEL%"=="0" (
echo ------------------------------------------------------
echo [+] WYKRYTO SILNIK GRY!
echo [+] Nadawanie priorytetu i koligacji rdzeni (CPU1 + CPU2)...
powershell -Command "Get-Process gta_sa -ErrorAction SilentlyContinue | ForEach-Object { $_.ProcessorAffinity = 6; $_.PriorityClass = 'High' }"
echo [+] WSZYSTKIE OPTYMALIZACJE ZOSTALY ZALADOWANE.
echo ------------------------------------------------------
goto FINAL
) else (
timeout /t 2 >nul
goto WAIT_FOR_GTA
)
:FINAL
echo.
echo [INFO] Skrypt zakonczyl prace. Mozesz teraz grac.
echo [INFO] OKNO NIE ZAMKNIE SIE SAMOCZYNNIE.
echo.
echo Signed by: Desola7e
echo ======================================================
pause