Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.
Зарегистрироваться!Pawn код
// Определение глобальных переменных
new MusicID = -1; // Идентификатор музыки
new FloatlayerDistance[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 Floatos[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: Проверяет расстояние от игрока до автомобиля. Если игрок слишком далеко, музыка останавливается. Если ближе, музыка воспроизводится.
со своим чатгпт можете куда-то в другое место пойти, тут же оказывайте нормальную помощь.