Игры

Пишем скрипт для GTA 5 для GTA 5

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

Каждый скрипт начинается с создания простого текстового файла, в папке 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, иначе не будет работать <!--smile:smile-->smile<!--/smile-->
Здесь вы найдете примеры скриптов. Статья основана на этих примерах. Там же есть полный список нативных функций 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);
}
}
}

Пишем скрипт для GTA 5

Пишем скрипт для GTA 5
78
0
4
Нравится:  4
smalloff
smalloff

Опубликовано 3 августа 2016

В избранное
Поделиться
Поделиться:
Информация
Здесь пока нет комментариев. Ваш комментарий будет первым.
Информация
Для того, чтобы оставлять комментарии к данной публикации необходимо зарегистрироваться .

Правила сайта и политика конфиденциальности

© 2012-2024 GameModding.com Все права защищены.