Все, кто играли в Grand Theft Auto V знают, что на данный момент существует множество интересных и полезных скриптовых модов, которые способны изменять игровые параметры до неузнаваемости... Посмотрев на всю массу классных скрипт модов для GTA 5 на компьютер, волей-неволей у нас возникнет вопрос, как установить все эти моды на ГТА 5? Именно поэтому в данной статье мы разберёмся в вопросе как устанавливать скриптовые моды на GTA 5 для ПК .
С чего же необходимо начать установку скриптовых модов в GTA 5?
Продолжая разбираться в вопросе как устанавливать скриптовые моды на GTA 5 для PC мы плавно подошли к модификациям, требующим LUA Плагин, как же с ними быть? Давайте разберёмся!
Теперь разберемся с установкой скрипт модов для ГТА 5 написанных на языке.Net!
Если вам надоел мод и вы хотите его удалить, достаточно просто удалить файлы мода из директории в которую требовалось его скопировать!
Данный урок пригодится вам, если вы вдруг задумаете сделать для игры свой собственный вспомогательный скрипт, который будет выполнять какие либо поставленные задачи.
Сегодня я вам покажу как заспавнить машину рядом с игроком, изменить ее цвет и детали тюнинга. Все это будет происходить по нажатию определенной клавиши на клавиатуре. Также вы научитесь работать с классом игрока, для примера можно убрать видимость игрока по нажатию определенной клавиши.
Ну и при всем при этом, мы будем выводить соответствующую надпись на экране, используя нативные функции игры. Пожалуй начнем..
Каждый скрипт начинается с создания простого текстового файла, в папке scripts, которая расположена в папке с игрой. Назовите файл к примеру myFirstScript и сохраните файл с расширением "cs". Открываем файл в простом блокноте и подключаем классы GTA и системных библиотек. Делается это следующим образом:
Using GTA; using GTA.Native; using GTA.Math; using System; using System.Collections.Generic; using System.Drawing; using System.Reflection; using System.Windows.Forms;
Следующим шагом будет создание класса унаследованного от класса скрипта. Особое внимание обратите на то, чтобы имя класса, совпадало с именем файла скрипта.
Смотрим код:
public class myFirstScript: Script // объявление нашего класса
{
public myFirstScript() // конструктор класса, функция которая срабатывает первой при создании класса
{
}
}
Теперь осталось дело за малым. Подключить обработчик события нажатия клавиш на клавиатуре и собственно выполнить нашу задачу.
Обработчик подключается следующим образом:
public class myFirstScript: Script
{
public myFirstScript()
{
KeyDown += onkeydown; // указываем на то, что клавиатурой занимается наша функция
}
void onkeydown(object sender, KeyEventArgs e) // наш обработчик
{
if (e.KeyCode == Keys.K)
{
// если нажали на клавишу K
}
if (e.KeyCode == Keys.J)
{
// если нажали на клавишу J
}
}
}
Далее переходим к спавну машины. Сделать это можно следующим образом:
var position = Game.Player.Character.GetOffsetInWorldCoords(new Vector3(0, 5, 0)); // берем координаты игрока и прибавляем смещение 5 игровых метров от него
var heading = Game.Player.Character.Heading - 90; // берем поворот игрока
var vehicle = World.CreateVehicle(VehicleHash.Dubsta, position, heading); // создаем машину под названием Dubsta
vehicle.DirtLevel = 15f; // указываем уровень грязи
vehicle.CustomPrimaryColor = Color.White; // указываем первичный цвет
vehicle.CustomSecondaryColor = Color.Black; // указываем вторичный цвет
vehicle.PlaceOnGround(); // ставим машину на свои координаты
Function.Call(Hash.SET_VEHICLE_MOD_KIT, vehicle.Handle, 0); // включаем тюнинг
vehicle.SetMod(VehicleMod.FrontBumper, 3, true); // ставим передний бампер
vehicle.SetMod(VehicleMod.RearBumper, 1, true); // задний бампер
Следующая строка кода будет скрывать игрока в случае нажатия на клавишу и снова делать игрока видимым при повторном нажатии:
Game.Player.Character.IsVisible = !Game.Player.Character.IsVisible;
Ну и напоследок покажем сообщение при помощи вызова нативных функций, для этого создадим собственную функцию следующего вида:
public void PrintText(string text, int time)
{
GTA.Native.Function.Call(GTA.Native.Hash._0xB87A37EEB7FAA67D, "STRING");
GTA.Native.Function.Call(GTA.Native.Hash._ADD_TEXT_COMPONENT_STRING, text);
GTA.Native.Function.Call(GTA.Native.Hash._0x9D77056A530643F6, time, 1);
}
Примером вызова функции будет - PrintText("hello world!", 10000);
Нативные функции игры можно также вызывать указывая хэш функции. К примеру чтобы сделать в игре волны высотой в 50 метров, выполните данную функцию: GTA.Native.Function.Call((Hash)0xB96B00E976BE977F, 50.0);
Смотрим полный исходник и если потребуется качаем скрипт myFirstScript.zip
. Удачного скриптинга.
Ах да.. чуть не забыл, обязательно поставьте в игру Script Hook Net , иначе не будет работать
Здесь вы найдете примеры скриптов . Статья основана на этих примерах. Там же есть полный список нативных функций GTA 5, их очень много.
Using GTA; using GTA.Native; using GTA.Math; using System; using System.Collections.Generic; using System.Drawing; using System.Reflection; using System.Windows.Forms; public class myFirstScript: Script { public myFirstScript() { KeyDown += onkeydown; } public void PrintText(string text, int time) { GTA.Native.Function.Call(GTA.Native.Hash._0xB87A37EEB7FAA67D, "STRING"); GTA.Native.Function.Call(GTA.Native.Hash._ADD_TEXT_COMPONENT_STRING, text); GTA.Native.Function.Call(GTA.Native.Hash._0x9D77056A530643F6, time, 1); } void onkeydown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.K) { var position = Game.Player.Character.GetOffsetInWorldCoords(new Vector3(0, 5, 0)); var heading = Game.Player.Character.Heading - 90; var vehicle = World.CreateVehicle(VehicleHash.Dubsta, position, heading); vehicle.DirtLevel = 15f; vehicle.CustomPrimaryColor = Color.White; vehicle.CustomSecondaryColor = Color.Black; vehicle.NumberPlate = "GTA V"; vehicle.PlaceOnGround(); Function.Call(Hash.SET_VEHICLE_MOD_KIT, vehicle.Handle, 0); vehicle.SetMod(VehicleMod.FrontBumper, 3, true); vehicle.SetMod(VehicleMod.RearBumper, 1, true); vehicle.SetMod(VehicleMod.Hood, 2, true); PrintText("spawned Dubsta", 10000); } else if(e.KeyCode == Keys.J) { Game.Player.Character.IsVisible = !Game.Player.Character.IsVisible; PrintText("change visibility", 10000); } } }