Обзор класса Model|Сегодня мы рассмотрим ещё один небольшой класс - Model. Мы узнаем как загружать модели и как их использовать!|wmysterio|wmysterio||||Начнём с конструктора. Что бы объявить модель нам нужно написать:
cs
Model MyModel;
Мы объявляем нашу модель и она ждёт указания имени нашей модели и дальнейшего использования. Но более удобно использовать именно конструктор, когда модель мы уже знаем и хотим явно присвоить переменной. Для этого нужно использовать следующий код:
cs
Model MyModel = new Model("Admiral");
Само словоnew значит "новый", то есть мы создаём очередной экземпляр класса. Такая запись является вызовом конструктором класса. Хочу обратить ваше внимание, на следующую картинку:
Такое выпадающее меню указывает, что конструктор или функция может иметь несколько вариантов выполнения. Такой процесс называется перегрузкой функций. Детальнее о перегрузках вы можете узнать со ссылок в конце урока. Если мы во время этого списка мы начнём нажимать на клавиатуре стрелками ↑ или <kbd>↓, вы увидите какие параметры может принимать функции. В моём случаи устраивает следующий вариант:
Мы явно указали, какую модель мы должны записать в переменную MyModel, как показано выше.
Рассмотрим, что у нас есть с самим объектом класса. А содержит он только условия. Вот их список:
0488: model 0@ exists // versionA 07DE: model 0@ exists // versionB
</td></tr>
</tbody></table>
Также класс имеет ряд статических свойств. Рассмотрим их:
<table class="table table-bordered"><tbody>
<tr><td>
cs /* Получить модель оружия: / Model.GetWeaponModel(WeapMod) / Здесь: "Admiral" - название модели (string)
Возвращает: объект класса Model */
Пример в Sanny Builder:
0781: get_weapon_with_ID 31 model_to $TEMP_MODEL
</td></tr>
<tr><td>
cs /* Получает модель, указав её имя: / Model.FromString("Admiral") / Здесь: "Admiral" - модель (string)
Возвращает: объект класса Model */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Получает базовую модель копов: / Model.BasicCopModel / Здесь: Возвращает: объект класса Model */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Получает базовую модель машины копов: / Model.BasicPoliceCarModel / Здесь: Возвращает: объект класса Model */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Получает текущую модель копов: / Model.CurrentCopModel / Здесь: Возвращает: объект класса Model */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Получает текущую модель машины копов: / Model.CurrentPoliceCarModel / Здесь: Возвращает: объект класса Model */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Скорее всего это модель игрока (???): / Model.Null / Здесь: Возвращает: объект класса Model */
Пример в Sanny Builder:
/* Возможно: */ 0@ = #NULL
</td></tr>
<tr><td>
cs /* Получить модель машины такси: / Model.TaxiCarModel / Здесь: Возвращает: объект класса Model */
Пример в Sanny Builder: нет</td></tr>
</tbody></table>
Ещё хотел бы добавить о конструкторах. Создавать объекты классов можно непосредственно в методах. Хорошим примером будет следующий код:
Функция CreateVehicle имеет перегрузку. Если в Ваших планах стоит только создать автомобиль и никаких дальнейших действий мы с ним не планируем делать, то команда позволяем это сделать: создать машину, не указывая переменную.
Давайте напишем скрипт, чтобы при нажатии кнопки TAB, на наше место спавнилась тачка:
<table class="table table-bordered"><tbody>
<tr><th>C#</th><th>Sanny Builder</th></tr>
<tr><td>
cs 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); } } } }
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