Below is what I have in my LAHorn.script file. Which is the most recent one you posted. It plays it over and over as well as stays in the spot and not with the vehicle.You have the wrong script then. Because the script I gave you plays the air horn once, at the vehicle's current location.
object VcmdHorn : CommandScript{ VcmdHorn() { SetIcon("sirenson"); SetCursor("sirens"); SetRestrictions(RESTRICT_SELFEXECUTE); SetPossibleCallers(ACTOR_VEHICLE); } bool CheckPossible(GameObject *Caller) { if (!Caller->IsValid()) return false; return true; } bool CheckTarget(GameObject *Caller, Actor *Target, int childID) { if (!Target->IsValid() || Target->GetID() != Caller->GetID()) return false; return true; } void PushActions(GameObject *Caller, Actor *Target, int childID) { Audio::PlaySample3D("mod:Audio/FX/Sirens/airhorn.wav", Caller->GetPosition(), false); }};