Все игры
Загрузка...
Календарь
    Декабрь 2016    →
ПнВтСрЧтПтСбВс
 1234
567891011
12131415161718
19202122232425
262728293031 
Лучшие пользователи
Насколько мощный у вас компьютер?

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

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

Каждый скрипт начинается с создания простого текстового файла, в папке 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
Здесь вы найдете примеры скриптов. Статья основана на этих примерах. Там же есть полный список нативных функций 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
Опубликовал: smalloff Скачиваний: 6 Комментарии: 0
- +3 +
Похожие моды
Комментарии
Информация

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