Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions bots/Install-to-vscript/quick-install-oha-CN.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
@echo off
chcp 65001 >nul
:: 检查是否以管理员权限运行脚本
net session >nul 2>&1
if %errorlevel% neq 0 (
echo 请求管理员权限...
powershell -Command "Start-Process '%~f0' -Verb RunAs"
exit /b
)

:: 获取当前时间戳(格式: YYYYMMDD_HHMMSS)
for /f "tokens=1-4 delims=/:. " %%a in ("%date% %time%") do (
set year=%%a
set month=%%b
set day=%%c
set hour=%%d
)
set timestamp=%year%%month%%day%_%time:~0,2%%time:~3,2%%time:~6,2%

:: 如果小时数中有空格,将其移除(适用于24小时制)
set timestamp=%timestamp: =0%

:: 检查文件夹是否已存在
if exist "%~dp0..\..\..\..\..\common\dota 2 beta\game\dota\scripts\vscripts\bots" (
echo bots文件夹已存在,正在重命名为 bots_old_%timestamp%...
ren "%~dp0..\..\..\..\..\common\dota 2 beta\game\dota\scripts\vscripts\bots" "bots_old_%timestamp%"
)

echo 正在创建机器人脚本链接...
mklink /d "%~dp0..\..\..\..\..\common\dota 2 beta\game\dota\scripts\vscripts\bots" "%~dp0.."

if exist "%~dp0..\..\..\..\..\common\dota 2 beta\game\dota\scripts\vscripts\game\Customize" (
echo Customize文件夹已存在,正在重命名为 Customize_old_%timestamp%...
ren "%~dp0..\..\..\..\..\common\dota 2 beta\game\dota\scripts\vscripts\game\Customize" "Customize_old_%timestamp%"
)
echo 正在创建自定义脚本...
xcopy "%~dp0..\Customize\" "%~dp0..\..\..\..\..\common\dota 2 beta\game\dota\scripts\vscripts\game\Customize\" /E

if %errorlevel% equ 0 (
echo ============
echo ============
echo 成功创建!!!
echo ============
echo ============
) else (
echo ============
echo "1. 请在正确的文件夹 (Steam\steamapps\workshop\content\570\3246316298\Install-to-vscript) 内运行此文件"
echo "2. 如果你不知道这个Steam文件夹的位置,请在Steam库中右键点击Dota2,选择属性 > 已安装文件 > 浏览。" 这时会打开文件夹: "Steam\steamapps\common\dota 2 beta",将地址中的 "common\dota 2 beta" 部分替换成 "workshop\content\570\3246316298\Install-to-vscript",按下回车键即可打开正确的文件夹。
echo "3. 请确保以管理员身份运行该文件"
echo ============
echo 创建失败!!!
echo ============
)
pause
75 changes: 75 additions & 0 deletions bots/Install-to-vscript/quick-install-oha_linux-CN.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/bin/bash

set -euo pipefail

function error_exit {
echo "============"
echo "$1"
echo "常见故障排除:"
echo "1. 请确保在此文件夹中执行此脚本:'SteamLibrary/steamapps/workshop/content/570/3246316298/Install-to-vscript'(或您 Steam 库中的等效路径)。"
echo "2. 如果您不知道 Steam 库文件夹的位置,请在 Steam 库中右键点击 Dota 2,选择属性 > 已安装文件 > 浏览。它将打开文件夹:'steamapps/common/dota 2 beta'。从那里,向后导航到 'steamapps',然后到 'workshop/content/570/3246316298/Install-to-vscript'。"
echo "3. 如果遇到权限问题,请确保 Steam 库文件夹由您的用户拥有(例如,如果需要,运行 'chown -R $USER:$USER /path/to/SteamLibrary',替换 /path/to/SteamLibrary 为您的实际路径)。chown 命令递归地将文件和目录的所有权更改为指定的用户和组(这里是您的当前用户和组)。"
echo "============"
echo "安装失败!!!"
echo "============"
exit 1
}

# 获取当前时间戳(格式: YYYYMMDD_HHMMSS)
TIMESTAMP=$(date +%Y%m%d_%H%M%S) || error_exit "无法生成时间戳。"

# 获取脚本目录
SCRIPT_DIR=$(pwd) || error_exit "无法确定当前目录。"

# 工坊项目目录(此脚本目录的父目录)
WORKSHOP_ITEM_DIR="$SCRIPT_DIR/.."
if [ ! -d "$WORKSHOP_ITEM_DIR" ]; then
error_exit "未找到工坊项目目录:$WORKSHOP_ITEM_DIR。请确保从正确位置运行脚本。"
fi

# 检查源 Customize 文件夹
if [ ! -d "$WORKSHOP_ITEM_DIR/Customize" ]; then
error_exit "在 $WORKSHOP_ITEM_DIR 中未找到源 Customize 文件夹。"
fi

# Dota 2 目录(假设标准 Steam 库结构)
DOTA_DIR="$SCRIPT_DIR/../../../../../common/dota 2 beta"
if [ ! -d "$DOTA_DIR" ]; then
error_exit "未找到 Dota 2 安装目录:$DOTA_DIR。请验证您的 Steam 库路径和脚本位置。"
fi

# vscripts 目录
VSCRIPTS_DIR="$DOTA_DIR/game/dota/scripts/vscripts"
if [ ! -d "$VSCRIPTS_DIR" ]; then
error_exit "未找到 Dota 2 vscripts 目录:$VSCRIPTS_DIR。请确保 Dota 2 已正确安装。"
fi

# 目标目录
BOTS_DIR="$VSCRIPTS_DIR/bots"
CUSTOMIZE_TARGET="$VSCRIPTS_DIR/game/Customize"
CUSTOMIZE_PARENT="$VSCRIPTS_DIR/game"
if [ ! -d "$CUSTOMIZE_PARENT" ]; then
mkdir -p "$CUSTOMIZE_PARENT" || error_exit "无法为 Customize 创建父目录:$CUSTOMIZE_PARENT。"
fi

# 检查 bots 文件夹是否已存在
if [ -d "$BOTS_DIR" ] || [ -L "$BOTS_DIR" ]; then
echo "bots 文件夹或符号链接已存在,正在重命名为 bots_old_$TIMESTAMP..."
mv "$BOTS_DIR" "$VSCRIPTS_DIR/bots_old_$TIMESTAMP" || error_exit "无法重命名现有的 bots 目录。"
fi

echo "正在创建机器人脚本链接..."
ln -s "$WORKSHOP_ITEM_DIR" "$BOTS_DIR" || error_exit "无法为 bots 创建符号链接。"

# 检查 Customize 文件夹是否已存在
if [ -d "$CUSTOMIZE_TARGET" ] || [ -L "$CUSTOMIZE_TARGET" ]; then
echo "Customize 文件夹已存在,正在重命名为 Customize_old_$TIMESTAMP..."
mv "$CUSTOMIZE_TARGET" "$VSCRIPTS_DIR/game/Customize_old_$TIMESTAMP" || error_exit "无法重命名现有的 Customize 目录。"
fi

echo "正在创建自定义脚本..."
cp -r "$WORKSHOP_ITEM_DIR/Customize/" "$CUSTOMIZE_TARGET" || error_exit "无法复制 Customize 文件夹。"

echo "============"
echo "安装成功!!!"
echo "============"
75 changes: 75 additions & 0 deletions bots/Install-to-vscript/quick-install-oha_linux-RU.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/bin/bash

set -euo pipefail

function error_exit {
echo "============"
echo "$1"
echo "Общие рекомендации по устранению неисправностей:"
echo "1. Убедитесь, что вы запускаете этот скрипт в папке: 'SteamLibrary/steamapps/workshop/content/570/3246316298/Install-to-vscript' (или эквивалентном пути в вашей библиотеке Steam)."
echo "2. Если вы не знаете, где находится папка библиотеки Steam, щелкните правой кнопкой мыши на Dota 2 в библиотеке Steam, выберите Свойства > Установленные файлы > Просмотреть. Откроется папка: 'steamapps/common/dota 2 beta'. Оттуда вернитесь в 'steamapps', а затем перейдите в 'workshop/content/570/3246316298/Install-to-vscript'."
echo "3. Если возникнут проблемы с разрешениями, убедитесь, что папки библиотеки Steam принадлежат вашему пользователю (например, выполните 'chown -R $USER:$USER /path/to/SteamLibrary', если нужно, заменив /path/to/SteamLibrary на ваш фактический путь). Команда chown рекурсивно изменяет владельца файлов и каталогов на указанного пользователя и группу (здесь — ваш текущий пользователь и группа)."
echo "============"
echo "Установка не удалась!!!"
echo "============"
exit 1
}

# Получить текущую временную метку (формат: YYYYMMDD_HHMMSS)
TIMESTAMP=$(date +%Y%m%d_%H%M%S) || error_exit "Не удалось сгенерировать временную метку."

# Получить директорию скрипта
SCRIPT_DIR=$(pwd) || error_exit "Не удалось определить текущую директорию."

# Директория элемента мастерской (родительская директория этого скрипта)
WORKSHOP_ITEM_DIR="$SCRIPT_DIR/.."
if [ ! -d "$WORKSHOP_ITEM_DIR" ]; then
error_exit "Директория элемента мастерской не найдена: $WORKSHOP_ITEM_DIR. Убедитесь, что скрипт запущен из правильного места."
fi

# Проверить исходную папку Customize
if [ ! -d "$WORKSHOP_ITEM_DIR/Customize" ]; then
error_exit "Исходная папка Customize не найдена в $WORKSHOP_ITEM_DIR."
fi

# Директория Dota 2 (предполагая стандартную структуру библиотеки Steam)
DOTA_DIR="$SCRIPT_DIR/../../../../../common/dota 2 beta"
if [ ! -d "$DOTA_DIR" ]; then
error_exit "Директория установки Dota 2 не найдена: $DOTA_DIR. Проверьте путь к вашей библиотеке Steam и位置 скрипта."
fi

# Директория vscripts
VSCRIPTS_DIR="$DOTA_DIR/game/dota/scripts/vscripts"
if [ ! -d "$VSCRIPTS_DIR" ]; then
error_exit "Директория vscripts Dota 2 не найдена: $VSCRIPTS_DIR. Убедитесь, что Dota 2 установлена правильно."
fi

# Целевые директории
BOTS_DIR="$VSCRIPTS_DIR/bots"
CUSTOMIZE_TARGET="$VSCRIPTS_DIR/game/Customize"
CUSTOMIZE_PARENT="$VSCRIPTS_DIR/game"
if [ ! -d "$CUSTOMIZE_PARENT" ]; then
mkdir -p "$CUSTOMIZE_PARENT" || error_exit "Не удалось создать родительскую директорию для Customize: $CUSTOMIZE_PARENT."
fi

# Проверить, существует ли папка bots
if [ -d "$BOTS_DIR" ] || [ -L "$BOTS_DIR" ]; then
echo "Папка bots или символьная ссылка уже существует, переименовывается в bots_old_$TIMESTAMP..."
mv "$BOTS_DIR" "$VSCRIPTS_DIR/bots_old_$TIMESTAMP" || error_exit "Не удалось переименовать существующую директорию bots."
fi

echo "Создание символьной ссылки..."
ln -s "$WORKSHOP_ITEM_DIR" "$BOTS_DIR" || error_exit "Не удалось создать символьную ссылку для bots."

# Проверить, существует ли папка Customize
if [ -d "$CUSTOMIZE_TARGET" ] || [ -L "$CUSTOMIZE_TARGET" ]; then
echo "Папка Customize уже существует, переименовывается в Customize_old_$TIMESTAMP..."
mv "$CUSTOMIZE_TARGET" "$VSCRIPTS_DIR/game/Customize_old_$TIMESTAMP" || error_exit "Не удалось переименовать существующую директорию Customize."
fi

echo "Копирование папки Customize..."
cp -r "$WORKSHOP_ITEM_DIR/Customize/" "$CUSTOMIZE_TARGET" || error_exit "Не удалось скопировать папку Customize."

echo "============"
echo "Установка удалась!!!"
echo "============"
75 changes: 75 additions & 0 deletions bots/Install-to-vscript/quick-install-oha_linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/bin/bash

set -euo pipefail

function error_exit {
echo "============"
echo "$1"
echo "Common troubleshooting:"
echo "1. Make sure to execute this script in the folder: 'SteamLibrary/steamapps/workshop/content/570/3246316298/Install-to-vscript' (or equivalent path in your Steam library)."
echo "2. If you don't know where the Steam library folder is, right-click Dota 2 in Steam Library, select Properties > Installed Files > Browse. It will open the folder: 'steamapps/common/dota 2 beta'. From there, navigate back to 'steamapps' and then to 'workshop/content/570/3246316298/Install-to-vscript'."
echo "3. If you encounter permission issues, ensure the Steam library folders are owned by your user (e.g., run 'chown -R $USER:$USER /path/to/SteamLibrary' if needed, replacing /path/to/SteamLibrary with your actual path). The chown command recursively changes ownership of files and directories to the specified user and group (here, your current user and group)."
echo "============"
echo "Install failed!!!"
echo "============"
exit 1
}

# Get the current timestamp (format: YYYYMMDD_HHMMSS)
TIMESTAMP=$(date +%Y%m%d_%H%M%S) || error_exit "Failed to generate timestamp."

# Get the script's directory
SCRIPT_DIR=$(pwd) || error_exit "Failed to determine current directory."

# Workshop item directory (parent of this script's directory)
WORKSHOP_ITEM_DIR="$SCRIPT_DIR/.."
if [ ! -d "$WORKSHOP_ITEM_DIR" ]; then
error_exit "Workshop item directory not found: $WORKSHOP_ITEM_DIR. Ensure the script is run from the correct location."
fi

# Check for required source Customize folder
if [ ! -d "$WORKSHOP_ITEM_DIR/Customize" ]; then
error_exit "Source Customize folder not found in $WORKSHOP_ITEM_DIR."
fi

# Dota 2 directory (assuming standard Steam library structure)
DOTA_DIR="$SCRIPT_DIR/../../../../../common/dota 2 beta"
if [ ! -d "$DOTA_DIR" ]; then
error_exit "Dota 2 installation directory not found: $DOTA_DIR. Verify your Steam library path and script location."
fi

# vscripts directory
VSCRIPTS_DIR="$DOTA_DIR/game/dota/scripts/vscripts"
if [ ! -d "$VSCRIPTS_DIR" ]; then
error_exit "Dota 2 vscripts directory not found: $VSCRIPTS_DIR. Ensure Dota 2 is installed correctly."
fi

# Target directories
BOTS_DIR="$VSCRIPTS_DIR/bots"
CUSTOMIZE_TARGET="$VSCRIPTS_DIR/game/Customize"
CUSTOMIZE_PARENT="$VSCRIPTS_DIR/game"
if [ ! -d "$CUSTOMIZE_PARENT" ]; then
mkdir -p "$CUSTOMIZE_PARENT" || error_exit "Failed to create parent directory for Customize: $CUSTOMIZE_PARENT."
fi

# Check if the bots folder already exists
if [ -d "$BOTS_DIR" ] || [ -L "$BOTS_DIR" ]; then
echo "bots folder or symlink already exists, renaming to bots_old_$TIMESTAMP..."
mv "$BOTS_DIR" "$VSCRIPTS_DIR/bots_old_$TIMESTAMP" || error_exit "Failed to rename existing bots directory."
fi

echo "Creating symbolic link..."
ln -s "$WORKSHOP_ITEM_DIR" "$BOTS_DIR" || error_exit "Failed to create symbolic link for bots."

# Check if the Customize folder already exists
if [ -d "$CUSTOMIZE_TARGET" ] || [ -L "$CUSTOMIZE_TARGET" ]; then
echo "Customize folder already exists, renaming to Customize_old_$TIMESTAMP..."
mv "$CUSTOMIZE_TARGET" "$VSCRIPTS_DIR/game/Customize_old_$TIMESTAMP" || error_exit "Failed to rename existing Customize directory."
fi

echo "Copying Customize folder..."
cp -r "$WORKSHOP_ITEM_DIR/Customize/" "$CUSTOMIZE_TARGET" || error_exit "Failed to copy Customize folder."

echo "============"
echo "Install Succeeded!!!"
echo "============"
52 changes: 52 additions & 0 deletions bots/Install-to-vscript/quick-install-oha_mac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/bash

# Check if the script is run as root
if [ "$EUID" -ne 0 ]; then
echo "Requesting administrator privileges..."
sudo "$0" "$@"
exit
fi

# Define paths
steam_path="$HOME/Library/Application Support/Steam"
dota_path="$steam_path/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots"
workshop_path="$steam_path/steamapps/workshop/content/570/3246316298"
install_folder=$(cd "$(dirname "$0")" && pwd)

# Check if Steam and Dota paths exist
if [ ! -d "$steam_path" ]; then
echo "Steam folder not found. Please ensure Steam is installed and try again."
exit 1
fi

if [ ! -d "$workshop_path" ]; then
echo "Workshop folder not found at $workshop_path. Please check your workshop item ID and try again."
exit 1
fi

# Get the current timestamp (format: YYYYMMDD_HHMMSS)
timestamp=$(date +"%Y%m%d_%H%M%S")

# Check if the bots folder already exists
if [ -d "$dota_path" ]; then
echo "Folder already exists, renaming to bots_old_$timestamp..."
mv "$dota_path" "${dota_path}_old_$timestamp"
fi

# Create symbolic link
echo "Creating symbolic link..."
ln -s "$workshop_path" "$dota_path"
if [ $? -eq 0 ]; then
echo "============"
echo "Install Succeeded!!!"
echo "============"
else
echo "============"
echo "Install failed!!!"
echo "1. Ensure Dota 2 is installed and the paths are correct."
echo "2. Ensure you run this script with sudo."
echo "============"
fi

# Pause to keep the terminal open
read -p "Press Enter to exit..."