[PSY] ScriptHook II

«И снова здравствуйте», мои родные читатели.

Я тут подумал вот что.
Информации по скриптхуку, кроме мануала — раз-два и обчёлся. На русском языке ничего нет.
Я подумал, что мог бы восполнить этот пробел в меру сил.
Кому интересен скриптинг под GTA4, прошу под кат.
Потомки, я надеюсь, в любом случае оценят.
Сразу предупреждаю: учитель из меня никакой. Мои модификации — это, скорее, быдлокод.
В меру сил рассмотрим код моего мода из прошлого поста, позволяющий по кнопке «G» садиться на пассажирское место. В скриптовый файл код лучше взять оттуда — здесь я его по возможности максимально подробно откомментирую.

using System;

using System.Drawing;

using System.Collections.Generic;

using System.Text;

using System.Windows.Forms;

using GTA;

Библиотеки, которые я использовал. 


public class MyScriptMod : Script { объявление класса моего мода

   public MyScriptMod() { свойства класса

   this.KeyDown += new GTA.KeyEventHandler(this.MyScriptMod_KeyDown); перехват нажатия клавиши

   this.Tick += new EventHandler(this.MyScriptMod_Tick); тик системного таймера

   }


private void MyScriptMod_KeyDown(object sender,GTA.KeyEventArgs e) описание перехвата нажатия клавиши

{


if (e.Key == Keys.G) если нажата клавиша G

{ BeAPassenger(); } выполнить функцию BeAPassenger()


private void BeAPassenger() объявление функции BeAPassenger()

{

Vehicle MyCar = World.GetClosestVehicle(Player.Character.Position, 10.0F);

объявление переменной MyCar класса Vehicle и присвоение ей значения «ближайшее транспортное средство в радиусе 10.0F вокруг Нико».


Player.Character.Task.EnterVehicle(MyCar, MyCar.GetFreePassengerSeat());

Т.н. «задача» для фигурки Нико — для игры Нико такой же педестриан, как и любой прохожий — зайти в объявленное выше транспортное средство на свободное пассажирское место.


Player.Character.WillFlyThroughWindscreen=false;

«Пристегнуться» и не вылетать через лобовуху.

}


Процедура тика таймера

private void MyScriptMod_Tick(object sender, EventArgs e)

{

}


}.

Если читать объяснение параллельно с мануалом, доходит лучше.
Поскольку я догадываюсь, что объяснение вышло суховатым, в награду тем, кто дочитал до этого места, я публикую функцию, как поджигать прохожих. Вот вам домашнее задание: приткнёте её в скрипт выше (это намного проще, чем кажется) — и можете пользоваться.
ВАЖНО! Чтобы поджечь прохожего, Нико нужно посмотреть на него, прицелившись хотя бы из пистолета, и нажать кнопку, на которую это повесите (лично у меня — на «N»).
private void FirePedestrian()

{

Ped Victim = null;

Victim = Player.GetTargetedPed();

if (!Exists(Victim)) return;

Victim.isOnFire = true;

Victim.NoLongerNeeded();

}

На этом пока всё. Приятного скриптинга и побольше жареных прохожих! Stay tuned on Psy FM!
nektome.blog https://nektome.blog/ +7 (927) 2893774
| Комментариев: 0
    Новых комментариев: 0
  1. Комментариев нет...
  1. nektome.blog
  2. Kyrov Sandor
  3. Блог
  4. [PSY] ScriptHook II
  5. Негативные комментарии
Негативные комментарии