====== Terraria Server ======
===== Запуск на Windows7 =====
==== Дано ====
* Ноутбук з Windows7 Starter на борту та авто-логіном - це міняти не можна
* 2 ГБ оперативної пам'яті
==== Завдання ====
* З мінімальним змінами системи (Ноутбук може ще знадобитись для робочих цілей), зробити ігровий сервер для Terraria.
* Періодична, автоматична зміна мап
* Можливість запуску серверу вручну та при увімкненні ноутбуку
* Купленої в стімі гри немає, гра повинна бути доступна в домашній мережі і все.
==== Залежності ====
Для коректної роботи потрібно
* NET Framework 4 і вище
* Microsoft XNA
==== Реалізація ====
Terraria має окремий сервер для майже всіх платформ - знайти його можна на офіційному сайті.
Сервер має доволі простий конфігураційний файл, тому розглядати його тут немає особливого сенсу.
З архіву з сервером, у моєму випадку, була потрібна лише папка Windows. Її потрібно спопіювати у теку звідки буде запускатись сервер. Бажано щоб вона була доступна тільки на запис.
По замовчуванню Terraria зберігає данні у профілі користувача, при потребі можна вказати й іншу теку, одначе задля універсальності я лишив цей шлях.
На скрипт запуску серверу було зроблено посилання й покладено в теку "автозавантаження", що знаходиться за адресою
%userprofile%\adm\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Також для можливості ручного запуску, було створено ярлик на робочому столі.
Сервер показує консоль, де можна вводити команди вручну, якщо ж її закрити сервер зупиняє свою роботу й ноутбук можна буде використовувати для інших потреб
В папці з сервером є конфігураційни файл, його потрібно трошки відредагувати.
Також в ньому можна вказати шлях до мапи, але він не підтримує змінні середовища - тому я задав шляд до мапи в скрипті запуску.
Скрипт запуску має такий вигляд
@echo off
cls
:start
TerrariaServer.exe -config serverconfig.txt -world "%userprofile%\Documents\My Games\Terraria\Worlds\Maps.wld" -autocreate 3
@echo.
@echo Restarting server...
@echo.
goto start
Мапа з назвою Maps.wld розтащована у теці де зберігає свої ресурси гра. Це зроблено для можливості переносу конфігурації на інші ПК з мінімальним змінами. Також це дозволяє запускати цю мапу прямо із встановленої гри - при локальній грі.
Файл конфігурації було змінено мінімально, одначе його можна не змінювати зовсім і лишити як є, оскільки доступ буде лише у локальній мережі можна просто лишити його за замовчуванням.
=== Автоматична заміна мапи ===
Було додано завдання у планувальник з виконанням наступного скрипта
taskkill /im terrariaserver.exe /f
del "%USERPROFILE%\Documents\My Games\Terraria\Worlds\Maps.wld" /S /F /Q
Перший рядок завершує процес серверу, в той час як другий видаляє мапу по замовчуванню. При цьому сервер перезапускається й створює ному мапу.
Увага, при випадковому пошкодженню чи знищенню мапи є можливість відновити її з резервної копії, що періодично створюються сервером і розміщуються у теці з мапою. Для відновлення потрібно перейменувати резервну копію у назву, що відповідає назві мапи.
==== Посилання ====
* [[https://terraria.org/| Офіційний сайт, містить посилання на сервери та власне на саму гру]]
* [[https://terraria.wiki.gg/wiki/Server|Server Сторінка на офіційній Wiki]]
* [[https://terraria.fandom.com/wiki/Server|Server-Terraria Wiki Fandom]]
*[[ https://terraria.org/api/download/pc-dedicated-server/terraria-server-1436.zip|Terraria Server 1.4.3.6]]