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

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

Зарегистрироваться!
Пользователь
Регистрация
20 Май 2024
Сообщения
76
Всем привет. Кто может подсказать, где сливали систему музыки для авто ? ( Мол садишься - она громче, выходишь - тише на отдаление )
Кто сможет скинуть - буду весьма благодарен.
 
Заблокированный
Регистрация
13 Авг 2024
Сообщения
45
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.

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
Сообщения
835
Сверху