Actually, I have an idea for you. (Although, I'm not sure if it will work). There is no need to do anything in OnPlayerWeaponShot.
Code:
new gFireTruckID = 407;
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (IsPlayerInVehicle(playerid, gFireTruckID))
{
if (HOLDING(KEY_FIRE) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid, -1, "You are currently spreading water from a Firetruck.");
}
}
return 1;
}