Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
20 Май 2024
Сообщения
70
Всем привет. Кто может подсказать, где сливали систему музыки для авто ? ( Мол садишься - она громче, выходишь - тише на отдаление )
Кто сможет скинуть - буду весьма благодарен.
 
Пользователь
Регистрация
13 Авг 2024
Сообщения
28

Pawn код​


// Определение глобальных переменных
new MusicID = -1; // Идентификатор музыки
new Float:playerDistance[MAX_PLAYERS]; // Расстояние до автомобиля для каждого игрока

// Массивы для хранения автомобилей и их состояния музыки
enum CarInfo {
CarID,
IsPlaying
}

new Cars[MAX_VEHICLES][CarInfo];

// ID музыкальных файлов (для примера)
#define MUSIC_FILE 1 // Замените на ID вашего музыкального файла

// Функция для проигрывания музыки
forward PlayMusicForCar(vehicleid);

// Функция для остановки музыки
forward StopMusicForCar(vehicleid);

// Обработчик события, когда игрок садится в автомобиль
public OnPlayerEnterVehicle(playerid, vehicleid, seatid) {
// Включаем музыку при входе в автомобиль
PlayMusicForCar(vehicleid);
return 1;
}

// Обработчик события, когда игрок покидает автомобиль
public OnPlayerExitVehicle(playerid, vehicleid) {
// Останавливаем музыку если игрок выходит
StopMusicForCar(vehicleid);
return 1;
}

// Функция для проигрывания музыки для автомобиля
forward PlayMusicForCar(vehicleid) {
if (Cars[vehicleid][IsPlaying] == 0) {
// Мы проигрываем музыку только если она не играет
new playerID = GetPlayerInVehicle(vehicleid);
if (playerID != -1) {
// Проигрываем музыку для игрока
SendClientMessage(playerID, COLOR_GREEN, "Музыка включена!");
// Запускаем звук (пример)
PlaySound(MUSIC_FILE, GetVehiclePos(vehicleid));
Cars[vehicleid][IsPlaying] = 1;
}
}
}

// Функция для остановки музыки для автомобиля
forward StopMusicForCar(vehicleid) {
if (Cars[vehicleid][IsPlaying] == 1) {
new playerID = GetPlayerInVehicle(vehicleid);
if (playerID != -1) {
// Останавливаем музыку
// Приведите свой код для остановки музыки
SendClientMessage(playerID, COLOR_RED, "Музыка остановлена!");
Cars[vehicleid][IsPlaying] = 0;
}
}
}

// Обработчик тактового обновления (например, каждую секунду)
public OnGameModeInit() {
SetTimer("UpdateMusic", 1000, true);
}

forward UpdateMusic() {
for (new playerID = 0; playerID < MAX_PLAYERS; playerID++) {
if (IsPlayerConnected(playerID)) {
new vehicleid = GetPlayerVehicleID(playerID);
if (vehicleid != 0) {
new Float:pos[3];
GetPlayerPos(playerID, pos[0], pos[1], pos[2]);

// Вычисление расстояния до автомобиля
new Float:vehiclePos[3];
GetVehiclePos(vehicleid, vehiclePos[0], vehiclePos[1], vehiclePos[2]);
PlayerDistance[playerID] = GetDistanceBetweenPoints(pos[0], pos[1], pos[2], vehiclePos[0], vehiclePos[1], vehiclePos[2]);

// Если игрок слишком далеко, останавливаем музыку
if (PlayerDistance[playerID] > 20.0) { // Замените 20.0 на ваше расстояние
StopMusicForCar(vehicleid);
} else {
// Если игрок ближе, проигрываем музыку
PlayMusicForCar(vehicleid);
}
}
}
}
}

Объяснение кода:
  • Определение переменных и массивов:
  • MusicID - переменная для хранения идентификатора музыкального файла.
  • PlayerDistance - массив для хранения расстояний между игроком и автомобилем.
  • Cars - двумерный массив для хранения информации о каждом автомобиле (ID и состояние музыки).
  • Обработчики событий:
  • OnPlayerEnterVehicle: Вызывается, когда игрок садится в автомобиль. Включает музыку.
  • OnPlayerExitVehicle: Вызывается, когда игрок выходит из автомобиля. Останавливает музыку.
  • Функции управления музыкой:
  • PlayMusicForCar: Включает музыку для автомобиля, если она еще не играет.
  • StopMusicForCar: Останавливает музыку для автомобиля.
  • Обновление состояния музыки:
  • OnGameModeInit: Устанавливает таймер, чтобы вызывать UpdateMusic каждую секунду.
  • UpdateMusic: Проверяет расстояние от игрока до автомобиля. Если игрок слишком далеко, музыка останавливается. Если ближе, музыка воспроизводится.


standard.gif
Я в народе не "Dmitrienko" а

"Ростислав Котов"
 
Активный
Регистрация
26 Апр 2022
Сообщения
299
Сверху