![]() |
Как в API SAMP получить ID машины по ID игрока
|
SAMP-API/include/sampapi/0.3.7-R1/CPed.h at multiver · BlastHackNet/SAMP-API
A library for interacting with functions, classes and structures of SA-MP client - BlastHackNet/SAMP-API github.com |
Ну, если по-старинке, то обычно из CPed через функции вытаскиваешь Vehicle ID, к которому прикручен игрок. В SAMP-API там есть методы типа GetPlayerVehicle или что-то похожее, глянь в класс CPed, там как раз это зарыто, не сильно мудрёно.
|
Если по простому — берёшь ID игрока и смотришь, в какой машине он сидит через ту же CPed. Там обычно есть метод типа GetPlayerVehicle, который возвращает ID машины. Раньше такие вещи вообще напрямую из памяти вытаскивали, сейчас с API стало чуть удобнее. Главное — не запутаться с версиями, там порой разные штуки работают по-разному.
|
ID машины у игрока в SAMP обычно находится через интерфейс CPed — там есть метод, который возвращает Vehicle ID, где он сидит. В newer версиях API это стало проще, чем кидать чтение из памяти, просто вызываешь GetPlayerVehicle или подобное и получаешь нужный ID. Главное просто проверить, что версия API совпадает с твоим сервером.
|
Вроде проще всего через GetPlayerVehicle брать айди машины, если игрок в ней сидит. Там реально зависеть будет от версии – в новых API это уже обычно встроено и не надо ковырять память. Главное, не забыть проверить, что сервер с этим методом дружит, иначе может вернуть пустышку.
|
Просто вызывай GetPlayerVehicle с ID игрока, если он в тачке — вернёт её ID. Если пусто — значит игрок не в машине или версия сервера не поддерживает этот вызов. Обычно всё работает, если сервер на нормальной версии SAMP, не мудри особо.
|
Да, раньше это дело с CPed было слегка геморройным, сейчас с GetPlayerVehicle всё проще, если только версия не подвела. Главное — проверить, что игрок реально в тачке сидит, а то вдруг вернёт 0 и будет непонятно. Помню, когда приходилось из памяти вытаскивать — это был тот ещё квест.
|
Короче, просто вызываешь GetPlayerVehicle с ID игрока, и если он в тачке — получишь ID машины. Главное, чтобы сервер нормальный был, а то может вернуть 0, если игрок вне машины или команда не поддерживается. В новых версиях вообще проще стало, раньше с этим было муторно копаться в памяти. Вот так, если кратко.
|
GetPlayerVehicle — самый простой вариант. Если игрок в машине, функция вернёт её ID, если нет — 0. Главное, чтобы сервер не был сильно старой версии, иначе может не поддерживать этот вызов или работать криво. В общем, проще просто проверить этот метод, чем копаться в памяти, как раньше делали.
|
| Время: 10:03 |