ScriptHook: Первый скрипт - No Police Please

Материал из GTAModding.ru
Перейти к: навигация, поиск

Открываем редактор. Сам использую Visual Studio C# Express. Если используете Visual Studio, то для удобства откройте проект. Все объяснения и инструкции в предыдущих постах.


Текст кода написан в простом виде, как для блокнота, так что все открывающие и закрывающие скобки будут написаны просто. Статья ориентированна на новичков в программировании.


Подключаем необходимые модули.

using System;
using System.Windows.Forms;
using GTA;

System - доступ к системным компонентам. System.Windows.Forms - для доступа к инструментам рисования, проектирования и других полезных функций. GTA - самый главный компонент скрипта. Подключает сам модуль ScriptHook.


public class NoPolicePleaseScript : Script
{

Объявляем класс NoPolicePleaseScript, который наследуется от Script.


public NoPolicePleaseScript()
{

Пишем код конструктора для скрипта. Без него скрипт просто не запустится.


KeyDown += new GTA.KeyEventHandler(NoPolicePleaseScript_KeyDown);
}


Информируем, что при нажатии клавиш, будет вызываться функция NoPolicePleaseScript_KeyDown, которую напишем позже.


void NoPolicePleaseScript_KeyDown(object sender, GTA.KeyEventArgs e)
{


Пространство имен не важно.


Объявляем функцию нашего скрипта NoPolicePleaseScript_KeyDown. Как аргумент она принимает событие нажатия клавиши. Оно содержит данные о том, какая клавиша была нажата клавиша.


if (isKeyPressed(Keys.F11))
{

Проверка на условие: если нажата клавиша F11. Для незнакомых с программированием: если условие выполняется, то есть нажата F11 проверка возвратит True (Верно), то выполняется код, иначе проверка вернет False (Неверно). Чтобы наоборот проверить, не нажата ли клавиша, используйте логический оператор !, например: if (!isKeyPressed(Keys.F11)). Тогда условие выполнится, если не нажата клавиша F11.


Player.WantedLevel = 0;
}
}
}

Ставим текущий уровень розыска игрока на 0.


Весь код целиком:

using System;
using System.Windows.Forms;
using GTA;
 
public class NoPolicePleaseScript : Script
{
 public NoPolicePleaseScript()
 {
  KeyDown += new GTA.KeyEventHandler(NoPolicePleaseScript_KeyDown);
 }
 
 void NoPolicePleaseScript_KeyDown(object sender, GTA.KeyEventArgs e)
 {
  Player.WantedLevel = 0;
 }
}


Вот и все. Сохраняем файл. У меня получился файл NoPolicePleaseScript.cs. Копирую его в директорию scripts в корне GTA IV EfLC, например: C:\Games\GTAIV\EFLC\scripts.


Теперь если нажать в игре на F11 уровень розыска упадет, технически это не читерство, но формально и морально, оно самое :)


Если интересно информация о загрузке, или если что-то не пошло, о ошибке, в папке с игрой есть файл ScriptHookDotNet.log, который содержит подробные данные.