#!/bin/sh # Отдельный клиент GDPS (gdps.themaster2009sf.ru) из твоей Steam-копии Geometry Dash 2.2. # Оригинал в библиотеке Steam только читается и не меняется. set -eu SRC="" for d in "$HOME/.local/share/Steam/steamapps/common/Geometry Dash" "$HOME/.steam/steam/steamapps/common/Geometry Dash" \ "$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Geometry Dash"; do [ -f "$d/GeometryDash.exe" ] && SRC="$d" && break done [ -n "$SRC" ] || { echo "Не нашёл Geometry Dash в Steam"; exit 1; } DST="$HOME/Games/GDPS/game" echo "Копирую $SRC -> $DST (без Geode)" mkdir -p "$DST" rsync -a --delete --exclude geode --exclude 'Geode.*' --exclude GeodeUpdater.exe --exclude XInput1_4.dll --exclude imgui.ini "$SRC/" "$DST/" echo 322170 > "$DST/steam_appid.txt" python3 - "$DST/GeometryDash.exe" <<'PY' import sys, base64 p = sys.argv[1]; b = open(p, 'rb').read(); n0 = len(b); total = 0 pairs = [(b'https://www.boomlings.com/database', b'https://gdps.themaster2009sf.ru/db'), (b'http://www.boomlings.com/database', b'http://gdps.themaster2009sf.ru/db')] pairs += [(base64.b64encode(a), base64.b64encode(c)) for a, c in pairs] for a, c in pairs: assert len(a) == len(c); k = b.count(a); total += k; b = b.replace(a, c) assert len(b) == n0 open(p, 'wb').write(b) print(f'Пропатчено строк: {total}') if not total: sys.exit('Строки сервера не найдены — версия игры не та?') PY cat <