Spawner Vehicles
Ймовірно, багато хто з вас знає про GTA: SA-MP і серед вас є ті, які займаються Pawn-програмуванням. І оскільки Pawn - це Сі-подібна мова програмування, тільки не типізована і 32-бітна, я вирішив розмістити публікацію в хаб: "C" і "C++"
Кожен із вас грав у GTA San Andreas. І я готовий посперечатися, що ви відштовхували машини, не важливо це сингл або мультиплеєр. І ця публікація про те, як вирішити цю проблему, не використовуючи таймери і цикли. Для початку нам потрібно буде створити глобальну змінну, яка відповідатиме за координати машини:
Далі нам знадобиться Callback, який викликається під час руху вільного транспорту, тобто. якщо у ньому немає гравця. Він виглядає так:
У нього нам слід додати наступний код:
Пояснимо кожен рядок:
Створюємо змінну з поточною позицією транспорту Отримуємо координати та записуємо в змінну Умова: Якщо поточні координати не співпадають із збереженими Встановлюємо транспорту збережені координати
Ми розібрали наш Callback і він у нас буде виглядати так:
Тепер нам потрібно, щоб у змінній "VehPos" були записані координати машини, інакше наш код вище марний. Причому спочатку координати будуть записуватися з коду, яким ми створюємо машину. Для цього йдемо в кінець нашого мода чи скрипту і створюємо stock з відповідними аргументами:
Пояснюємо кожен рядок:
Створюємо змінну для нашої машини Надаємо значення змінним, які відповідають за координати Повертаємо carid
Тепер усі машини на нашому сервері ми створюватимемо функцією:
Для того щоб машина не вставала на місце спавна, при виході з Транспорту нам потрібен Callback, якийвикликається тоді, коли гравець вийшов з машини, код:
Тепер, коли гравець залишить транспорт, у змінну VehPos збережуться нові координати. Як виглядатиме весь код: