Доброго времени суток, сейчас я вам покажу как можно сделать "крякалку" на кнопку для автомобилей гос.служб, а так же на другие авто.
Для того чтобы все работало нам понадобится: мод, стример и прямые руки.
По теории это будет выглядеть так:
Все начинается с проверки нажатой игроком кнопкой, далее привязываем к этой проверке еще одну проверку на нахождение игрока за рулем авто. Если проверка проходит успешной, то создаем цикл, где будем искать всех активных игроков. После того как прошелся цикл, делаем проверку на нахождение найденного игрока, с игроком который включил "крякалку", а далее уже будет проигрывать звук, создавать таймер и делать дополнительные проверки во избежания флуда звуком.
По практике это будет выглядеть так:
Для начала создадим глобальную беременную
Далее идем уже к нажатию кнопки.
Проверка на нажатую кнопку осуществляется в паблике OnPlayerKeyStateChange
в паблике OnPlayerKeyStateChage
Далее перейдем к таймеру:
Автор: Pavyk
Для того чтобы все работало нам понадобится: мод, стример и прямые руки.
По теории это будет выглядеть так:
Все начинается с проверки нажатой игроком кнопкой, далее привязываем к этой проверке еще одну проверку на нахождение игрока за рулем авто. Если проверка проходит успешной, то создаем цикл, где будем искать всех активных игроков. После того как прошелся цикл, делаем проверку на нахождение найденного игрока, с игроком который включил "крякалку", а далее уже будет проигрывать звук, создавать таймер и делать дополнительные проверки во избежания флуда звуком.
По практике это будет выглядеть так:
Для начала создадим глобальную беременную
new zvonok[MAX_PLAYERS];
Далее идем уже к нажатию кнопки.
Проверка на нажатую кнопку осуществляется в паблике OnPlayerKeyStateChange
в паблике OnPlayerKeyStateChage
if(newkeys == 2 && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //проверяем нажатую кнопку и если игрок находится за рулем ид кнопки гудка
{
if(GetPlayerVehicleID(playerid) == ид авто) //ид авто - т.е. ид авто на котором будет работать крякалка
{
for(new i=0; i{
if(ProxDetectorS(15.0, playerid, i))//если игрок находится рядом с найденным по циклу, то..
{
if(zvonok == 1) return 0; //проверка "Запущен ли звук или нет?"
PlayAudioStreamForPlayer(i,"ссылка на звук");//запускаем звук
SetTimer("zvon", 5000, false); //создадим таймер по которому будет отключатся звук (я задал отключение через 5 сек. настраивайте время сами)
zvonok = 1; //ставим переменную zvonok на 1 от флуда звуком
}
}
}
}
{
if(GetPlayerVehicleID(playerid) == ид авто) //ид авто - т.е. ид авто на котором будет работать крякалка
{
for(new i=0; i{
if(ProxDetectorS(15.0, playerid, i))//если игрок находится рядом с найденным по циклу, то..
{
if(zvonok == 1) return 0; //проверка "Запущен ли звук или нет?"
PlayAudioStreamForPlayer(i,"ссылка на звук");//запускаем звук
SetTimer("zvon", 5000, false); //создадим таймер по которому будет отключатся звук (я задал отключение через 5 сек. настраивайте время сами)
zvonok = 1; //ставим переменную zvonok на 1 от флуда звуком
}
}
}
}
Далее перейдем к таймеру:
forward zvon(playerid); //сообщим о паблике
public zvon(playerid)
{
zvonok[playerid] = 0; //ставим переменную zvonok на 0, от флуда
StopAudioStreamForPlayer(playerid); //останавливаем звук
return true;
}
public zvon(playerid)
{
zvonok[playerid] = 0; //ставим переменную zvonok на 0, от флуда
StopAudioStreamForPlayer(playerid); //останавливаем звук
return true;
}
Автор: Pavyk
Последнее редактирование модератором: