Spawner Vehicles

Ймовірно, багато хто з вас знає про GTA: SA-MP і серед вас є ті, які займаються Pawn-програмуванням. І оскільки Pawn - це Сі-подібна мова програмування, тільки не типізована і 32-бітна, я вирішив розмістити публікацію в хаб: "C" і "C++"

Кожен із вас грав у GTA San Andreas. І я готовий посперечатися, що ви відштовхували машини, не важливо це сингл або мультиплеєр. І ця публікація про те, як вирішити цю проблему, не використовуючи таймери і цикли. Для початку нам потрібно буде створити глобальну змінну, яка відповідатиме за координати машини:

Далі нам знадобиться Callback, який викликається під час руху вільного транспорту, тобто. якщо у ньому немає гравця. Він виглядає так:

У нього нам слід додати наступний код:

Пояснимо кожен рядок:

Створюємо змінну з поточною позицією транспорту Отримуємо координати та записуємо в змінну Умова: Якщо поточні координати не співпадають із збереженими Встановлюємо транспорту збережені координати

Ми розібрали наш Callback і він у нас буде виглядати так:

Тепер нам потрібно, щоб у змінній "VehPos" були записані координати машини, інакше наш код вище марний. Причому спочатку координати будуть записуватися з коду, яким ми створюємо машину. Для цього йдемо в кінець нашого мода чи скрипту і створюємо stock з відповідними аргументами:

Пояснюємо кожен рядок:

Створюємо змінну для нашої машини Надаємо значення змінним, які відповідають за координати Повертаємо carid

Тепер усі машини на нашому сервері ми створюватимемо функцією:

Для того щоб машина не вставала на місце спавна, при виході з Транспорту нам потрібен Callback, якийвикликається тоді, коли гравець вийшов з машини, код:

Тепер, коли гравець залишить транспорт, у змінну VehPos збережуться нові координати. Як виглядатиме весь код: