Geralt-and-Deadpool
Мир Ведьмака

Witcher Script — Ведьмак 3: Дикая Охота

Хочешь разрабатывать игры, но не разбираешься в программировании? Ты являешься фанатом вселенной ведьма? Тогда Witcher Script тебе поможет сделать свой первый мод для игры Ведьмак 3.

Witcher Script в «Ведьмак 3: Дикая охота»

Witcher Script - Ведьмак 3: Дикая Охота

При создании третьей игры по ведьмаку разработчики сделали встроенный язык программирования. Ему дали название «Witcher Script». Если тебе надоел «Ведьмак 3» в его обычном состоянии, то ты можешь под себя настроить те или иные характеристики. При этом не прибегая к уже существующим читам. Ты сам для себя создашь своего ведьмака.

avatar

Можешь устроить себе в игре абсолютный хард. От малейшей царапины будешь улетать в мир иной. Нацепишь на себя любые доспехи. Даже сделаешь своего аватара. Почему бы и нет? Сможешь при помощи скрипта поменять погоду, монстров, локации. Вообщем станешь богом игрового мира.

avatargame

Всё, что для этого нужно, это прочитать эту статью.

Базовый информационный лист сценария Ведьмака

Если у вас есть опыт работы с объектно-ориентированным программированием любого типа, у вас не возникнет проблем с использованием wscript. Синтаксис и использование очень похоже на (теперь устаревший) UnrealScript.

Основные типы

  • int — Стандартное 32-разрядное целое число (диапазон значений от -2 147 483 648 до 2 147 483 647)
  • String — Стандартная строка, используйте кавычки для передачи значений, например. «Это строка»
  • name — переменная типа name, по существу строка, используемая для имен элементов, тегов и т. д. Используйте апострофы для передачи значений, например. «Это название предмета»
  • float- Стандартный тип поплавка, например. 1.0f
  • Vector — 4 переменных вектора (Quaternion), упорядоченные в порядке XYZW (по большей части вам не нужно заботиться о значении W), например. Vector (100, 100, 100, 1)
  • EulerAngles — 3 переменных поворота, упорядоченные в Pitch, Yaw, Roll порядке, например. EulerAngles (0, 180, 0)
  • bool — стандартное логическое значение true / false, также принимает 0 и 1 в качестве входных данных, однако в отличие от Unreal Script не принимает значения Да / Нет
  • Matrix — указывает тип переменной матрицы.
  • array <X> — указывает массив с X, являющийся типом массива, например. массив <int> является массивом целых чисел

Типы классов

Помимо стандартных типов переменных, Witcher Script также поддерживает объявление переменных типа класса, таких как:

  • CEntity — Стандартный объект
  • CEntityTemplate — Шаблон сущности (тип ресурса)

И многое другое, каждый класс сценариев может быть объявлен как переменная для хранения, получения или установки.

Справочник по быстрым классам Witcher Script

  • theGame=CR4Game
  • theServer=CServerInterface
  • thePlayer=CR4Player
  • theCamera=CCamera
  • theUI=CGuiWitcher
  • theSound=CScriptSoundSystem
  • theDebug=CDebugAttributesManager
  • theTimer=CTimerScriptKeyword
  • theInput=CInputManager

Их можно изменить с помощью redscripts.ini, расположенного в папке .bin, хотя помните, что при этом ссылки на пользовательские классы не будут компилироваться для пользователей, у которых они не установлены в их файле redscripts.ini.

Exec-функции

Exec-функции — это самый простой способ ввести пользовательский код в Witcher 3. Как бы удобны они ни были, важно помнить об их ограничениях:

Exec-функция не может:

  • Быть вызванным из кода
  • Быть скрытым (иметь какое-либо время выполнения или задержки)
  • Цикл (так как они не могут быть вызваны из кода)

Создание пользовательской Exec-функции

Witcher Script maps

Перейдите в папку установки Witcher 3, внутри папки «Mods», создайте новую папку с именем «TrueLiteGame», внутри этой папки создайте другую папку с именем «content», перейдите в нее и создайте другую папку с именем «scripts», а внутри этой папки создайте папка называется «локальная». Внутри этой папки создайте файл с именем «function.ws» (убедитесь, что это .ws, а не .ws.txt).

Witcher Script scripts

Короче говоря, ваша иерархия папок должна выглядеть следующим образом:

\\TheWitcher3\Mods\TrueLiteGame\content\scripts\local\function.ws
5scripts local

Откройте файл в текстовом редакторе по вашему усмотрению и добавьте в него следующий код:

exec function printmytext ( msg : String )
{
GetWitcherPlayer () . DisplayHudMessage ( msg );
)

Сохраните файл и запустите игру. После того, как вы откроете консоль, используя клавишу «~» (тильда), вы можете написать:

printmytext ( "Hello from witcher script!" )    

Чтобы увидеть вашу строку, напечатанную с помощью модуля сообщений HUD по умолчанию в игре.

Конечно, это один из самых простых примеров, которые можно себе представить. Exec-функции хороши для любой мгновенной работы, которую нужно выполнять вручную и однократно (или не так часто), что делает ее естественным образом полезной для таких вещей, как:

  • Создание объектов
  • Удаление сущностей
  • Получение некоторых данных из игры
  • Установка некоторых переменных в других классах

Так же можете посмотреть прохождение The Witcher 1.

2 261 комментарий