Так как я релизил некоторые фишки из Собейта, пора показать и эту возможность.
Автор: OKStyle
PHP:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_FIRE)
{
if(GetPVarInt(playerid, "UsePulsarColor") == 1) return DeletePVar(playerid, "UsePulsarColor");
if(!IsPlayerInAnyVehicle(playerid)) return 0;
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, 0xFDE39DFF, "Только водитель может запустить пульсатор цветов транспорта!"); // закомментируйте эту строку, если хотите, чтобы не только водитель мог запускать пульсатор, но и пассажиры
SetPVarInt(playerid, "UsePulsarColor", 1);
new vehicleid = GetPlayerVehicleID(playerid);
SetTimerEx("PulsarColor", 200, 0, "ii", playerid, vehicleid);
return 1;
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && newstate != PLAYER_STATE_DRIVER && GetPVarInt(playerid, "UsePulsarColor") == 1) return DeletePVar(playerid, "UsePulsarColor"); // закомментируйте эту строку, если хотите, чтобы после выхода из тачки цвета продолжали меняться на ней (в этом случае, при повторном запуске пульсатора в другом транспорте, смена на первой остановится, а при повторном нажатии - запустится уже на новом транспорте)
return 1;
}
forward PulsarColor(playerid, vehicleid);
public PulsarColor(playerid, vehicleid)
{
if(GetPVarInt(playerid, "UsePulsarColor") != 1) return 0;
ChangeVehicleColor(vehicleid, random(300), random(250));
SetTimerEx("PulsarColor", 200, 0, "ii", playerid, vehicleid);
return 1;
}