Чтобы создать машину, педа или объект, нужно сначала загрузить соответствующую модель. Отличие движка GTA4 от предыдущих игр в том, что вместо имени модели в скриптах используется хэш имени. Хэши уже многократно обсуждались на этом форуме. Список хэшей машин и педов доступен в файле ScriptingEnums.pas (в конце файла). Для объектов хэш можно узнать здесь
http://www.gtamoddin...ic_Model_Hashes
Например, хеш модели INFERNUS
MODEL_INFERNUS = $18F25AC7
Универсальный способ - это использовать функцию GetModelHash, которая возвращает хэш для любой строки:
GetModelHash('INFERNUS') вернет число $18F25AC7.
Сначала загружаем модель через RequestModel(
хэш). Потом в цикле проверяем, загружена ли модель - HasModelLoaded(
хэш). Выгружаем после использования - MarkModelAsNoLongerNeeded(
хэш).
Пример создания машины в координатах 0 0 0:
RequestModel(MODEL_INFERNUS);
while not HasModelLoaded(MODEL_INFERNUS) do
Wait(0);
CreateCar(MODEL_INFERNUS, 0.0, 0.0, 0.0, v, true); // CreateChar или CreateObject
MarkModelAsNoLongerNeeded(MODEL_INFERNUS);
v - это переменная куда будет записан хендл машины (var v: vehicle)
Для CreateChar первым параметром указывается
PedType. Списка значений для GTA 4 пока нет, но например 4 - это PedMale, 5 - это PedFemale.
не забываем после того, как машина, пед или объект больше не нужен, нужно превратить его в обычную машину, прохожего или объект, чтобы игра смогла удалить их из памяти. Делается это командой MarkXXXXAsNoLongerNeeded (MarkCarAsNoLongerNeeded, MarkCharAsNoLongerNeeded, MarkObjectAsNoLongerNeeded). Если этого не делать, машина никогда не исчезнет и будет занимать место в памяти. Если спаунить много машин и не удалять их, игра быстро вылетит (такое имеет место быть в мультиплеере, когда читеры часто спаунят машины).
Сообщение отредактировал Seemann: 12 March 2009 - 19:31