Рейтинг - 4.0 (2)

Всем прива!

Сегодня мы рассмотрим ещё один небольшой класс - Model. Мы узнаем как загружать модели и как их использовать! Начнём с конструктора. Что бы объявить модель нам нужно написать:
Model MyModel;
Мы объявляем нашу модель и она ждёт указания имени нашей модели и дальнейшего использования. Но более удобно использовать именно конструктор, когда модель мы уже знаем её и хотим явно присвоить переменной. Для этого нужно использовать следующий код:
 Model MyModel = new Model("Admiral");
Само слово new значит "новый", то есть мы создаём очередной экземпляр класса. Такая запись является конструктором.

Хочу обратить ваше внимание, на следующую картинку:

Такое выпадающее меню указывает, что конструктор или функция может иметь несколько вариантов выполнения. Такой процесс называется перегрузкой функций. Детальнее о перегрузках вы можете узнать со ссылок в конце урока. Если мы во время этого списка мы начнём нажимать на клавиатуре стрелками ВВЕРХ или ВНИЗ, вы увидите какие параметры может принимать функция. В моём случаи устраивает следующий вариант:

Мы явно указали, какую модель мы должны записать в переменную MyModel, как показано выше.

Рассмотрим, что у нас есть с самим объектом класса. А содержит он только условия. Вот их перечисления:
Команда
Описание
Параметры и примеры
MyModel.isBike
Проверка: "Модель является для мотоциклов?"
Примеры в SannyBuilder: нет
MyModel.isBoat
Проверка: "Модель является для лодок?"Примеры в SannyBuilder:
081E:  model 0@ boat
MyModel.isCar
Проверка: "Модель является для автомобилей?"Примеры в SannyBuilder:
0A01:   model 0@ car
MyModel.isHelicopter
Проверка: "Модель является для вертолётов?"Примеры в SannyBuilder:
0820:   model 0@ heli
MyModel.isInMemory
Проверка: "Модель загружена?" или "Модель в памяти игры?"Примеры в SannyBuilder:
0248:   model 0@ available
MyModel.isPed
Проверка: "Модель является для пешеходов?"Примеры в SannyBuilder: нет
MyModel.isPlane
Проверка: "Модель является для самолётов?"Примеры в SannyBuilder:
081F:  model 0@ plane
MyModel.isTrain
Проверка: "Модель является для поездов?"Примеры в SannyBuilder: нет
MyModel.isValid
Проверка: "Модель действительная?" или "Модель существует?"Примеры в SannyBuilder:
0488:   model 0@ exists  // versionA
07DE:   model 0@ exists  // versionB
MyModel.isVehicle
Проверка: "Модель является для транспорта?"Примеры в SannyBuilder: нет
Также класс имеет свои свойства. Рассмотрим их:
Model.BasicCopModelПолучает базовую модель копов
Возвращает: объект класса Model

Примеры в SannyBuilder: нет
Model.BasicPoliceCarModel
Получает базовую модель машин коповВозвращает: объект класса Model
Model.CurrentCopModelПолучает текущую модель коповВозвращает: объект класса Model

Примеры в SannyBuilder: нет
Model.CurrentPoliceCarModelПолучает текущую модель машин коповВозвращает: объект класса Model

Примеры в SannyBuilder: нет
Model.FromString("Admiral")Получает модель относительно строки
"Admiral" - модель (string)

Возвращает: объект класса Model

Примеры в SannyBuilder: нет
Model.GetWeaponModel(WeapMod)Получить модель оружия
WeapMod - объект Weapon

Возвращает: объект класса Model

Примеры в SannyBuilder:
0781: get_weapon_with_ID 31 model_to $TEMP_MODEL
Model.NullПолучить пустую модель. Аналогом этого можно назвать первый пример вверху. Мы объявляем модель, но не указываем какая она
Возвращает: объект класса Model

Примеры в SannyBuilder: нет
Model.TaxiCarModelПолучить модель такси
Возвращает: объект класса Model

Примеры в SannyBuilder: нет
Ещё хотел бы добавить о конструкторах. Создавать объекты классов можно непосредственно в командах. Хорошим примером будет следующий код:
World.CreateVehicle(new Model("Admiral"), MyVec);
Функция CreateVehicle имеет перегрузку. Если в нас планах стоит только создать автомобиль, но никаких дальнейших действий мы с ним не планируем делать, то команда позволяем это сделать: создать машину, не указывая переменную.

Давайте напишем скрипт, чтобы при нажатии кнопки TAB, на наше место спавнилась тачка:
C#
Sanny Builder:
using System;
using System.Windows.Forms;
using GTA;

namespace TestScript {
public class Thread : Script {
public Thread() {
Vector3 MyVec;
while (true) {
     MyVec = Player.Character.Position;
     if (Game.isKeyPressed(Keys.Tab)) {
     Wait(5000);
    World.CreateVehicle(new Model("Admiral"), MyVec);
     Game.DisplayText("Car Created!");
    }
Wait(0);
}
}
}
}
{$CLEO}
0000:
thread 'TestScript'
model.Load(#ADMIRAL)
038B: load_requested_models

while not model.Available(#ADMIRAL)
wait 0
end

while true
    Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
    wait 5000
    if
    0AB0:   key_pressed 9 // Tab
    then
    00A5: 3@ = create_car #ADMIRAL at 0@ 1@ 2@
    end
wait 0
end
Проверим скрипт:

Надеюсь, урок вам понравился wink
Ссылки на перегрузку функций:
ProfessorWeb
Википедия
vbbook

SanKing   (13.07.13 18:19)
Спасибо за урок! Большое спасибо.

Yurko_UA   (13.07.13 18:25)
Дякую за урок!

более едобно использовать - опечатка в "едобно"

wmysterio   (13.07.13 18:35)
исправил smile
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Как Вы относитесь к ситуации с OpenIV?
Всего ответов: 8
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
wmysterio
Реклама