faraday.
Эксперт
Ранее публиковал тему Заводка двигателя со звуком
Но потом сделал более улучшенную версию, чтоб не потерялась решил опубликовать.
Суть функции: При зажатии клавиши 'R' включается звук no_engine.mp3
При задержании клавиши на ~2 cекунды включается звук engine.mp3 и двигатель заведен.
Выглядит вполне красиво. видео не передает хороший звук.
Нам потребуется макрос зажатия клавиши:
к new:
в public OnPlayerKeyStateChange
Таймер:
Ссылка на звуки:
Автор: unreal.
Но потом сделал более улучшенную версию, чтоб не потерялась решил опубликовать.
Суть функции: При зажатии клавиши 'R' включается звук no_engine.mp3
При задержании клавиши на ~2 cекунды включается звук engine.mp3 и двигатель заведен.
Выглядит вполне красиво. видео не передает хороший звук.
Нам потребуется макрос зажатия клавиши:
PHP:
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))//зажал
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))//отпустил после зажатия
PHP:
new engine_car[MAX_VEHICLES],
engine_stat[MAX_PLAYERS];
new engine,lights,alarm,doors,bonnet,boot,objective; // данные переменные есть практически в любом моде.
PHP:
if(PRESSED(262144) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 481 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return 1; //проверка на велосипед (Добавить)
if(!engine_car[GetPlayerVehicleID(playerid)])//заводим
{
//if(/*проверка топлива*/ < 1) return SendClientMessage(playerid, -1, "В данном автомобиле нет бензина.");
engine_stat[playerid] = 0;
SetPVarInt(playerid,"engine_start", 1);
SetPVarInt(playerid, "engine_timer", SetTimerEx("engine_timer",50, true, "i", playerid));
PlayAudioStreamForPlayer(playerid,"http://localhost/denwer/no_engine.mp3");
}
else if(engine_car[GetPlayerVehicleID(playerid)] == 1)//глушим
{
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
engine_car[GetPlayerVehicleID(playerid)] = 0;
PlayerPlaySound(playerid, 31810, 0.0, 0.0, 0.0);
}
return 1;
}
if(RELEASED(262144) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetPVarInt(playerid, "engine_start"))//если отпустил во время заводки
{
KillTimer(GetPVarInt(playerid, "engine_timer"));
StopAudioStreamForPlayer(playerid);
if (engine_stat[playerid] < 40)
{
DeletePVar(playerid,"engine_start");
KillTimer(GetPVarInt(playerid, "engine_timer"));
engine_stat[playerid] = 0;
}
}
PHP:
forward engine_timer(playerid);
public engine_timer(playerid)
{
engine_stat[playerid] ++;
if(engine_stat[playerid] == 40)
{
DeletePVar(playerid,"engine_start");
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid) ,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot, objective);
engine_car[GetPlayerVehicleID(playerid)] =1;
engine_stat[playerid] = 0;
PlayAudioStreamForPlayer(playerid,"http://localhost/denwer/engine.mp3");//путь указан на localhost ставьте свой путь
KillTimer(GetPVarInt(playerid, "engine_timer"));
}
}
Ссылка на звуки:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Автор: unreal.
Последнее редактирование: