The Loot Posted January 30, 2013 Report Share Posted January 30, 2013 NOTICE: IF YOUR HAVE YOUR AMBULANCES SET UP WITH BOTH PARAMEDIC AND STRETCHER TEAM, YOU PROBABLY CAN SKIP THIS WHOLE THING.Long story short, I had my call scripts set up with two medics, and I was using the Police ambulance script so it would call any of the four ambulances. I was tired of not hearing the specific Chief call audio, and of losing the few "precious" seconds it takes to select the medics and have them get a stretcher. I decided to see if I could take the Police command and turn it into ALS Response and BLS Transport scripts. A little trial and error, and I seem to have gotten the kinks worked out.Step One: Add the following commands to the LABattalionChief script.Response Script - Nearest of the four Ambulances will respond with two medics.object PcmdCallAmbulanceMedics : CommandScript{PcmdCallAmbulanceMedics(){SetIcon("callambulance2");SetCursor("callassistance");SetValidTargets(ACTOR_FLOOR | ACTOR_VIRTUAL);SetDeselectCaller(false);SetSelfClickActivation(true);SetHighlightingEnabled(false);SetGroupID(CGROUP_GETEQUIPMENT);SetGroupLeader(true);}bool CheckPossible(GameObject *Caller){GameObjectList SelectPer = Game::GetSelectedGameObjects();if (SelectPer.GetNumObjects() != 1)return false;Person p(Caller);if(p.IsValid() && (p.IsLinkedWithPerson() || p.IsCarryingPerson() || p.IsEquipped() || p.IsPulling() || p.GetFirehoseID()!=0 || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;return true;}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || Caller->GetID() == Target->GetID())return false;if (Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsLinkedWithPerson() || p.IsCarryingPerson() || p.IsEquipped() || p.IsPulling() || p.GetFirehoseID()!=0 || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;return true;}void PushActions(GameObject *Caller, Actor *Target, int ChildID){Vector CmdPos = Game::GetCommandPos();Caller->PushActionTurnTo(ACTION_NEWLIST, CmdPos);Caller->PushActionSwitchAnim(ACTION_APPEND, "talkmike");Caller->PushActionWait(ACTION_APPEND, 3.5f);Caller->PushActionSwitchAnim(ACTION_APPEND, "idle");if(StrCompare(Caller->GetPrototypeFileName(), OBJ_BATTALION_CHIEF) == 0)Audio::PlaySample3D(SND_BATALS, Caller->GetPosition());else if(StrCompare(Caller->GetPrototypeFileName(), OBJ_EMS_CAPTAIN) == 0)Audio::PlaySample3D(SND_EMSALS, Caller->GetPosition());Vehicle *theCar = NULL;float bestCar = 0.;VehicleList patrolCars(VT_AMBULANCE_RTW, VT_AMBULANCE_RTW);for (int i = 0; i < patrolCars.GetNumVehicles(); i++){Vehicle *aCar = patrolCars.GetVehicle(i);if (aCar->GetPlayerMP() == Caller->GetPlayerMP() && !aCar->HasCommand(DUMMY_VCALLED) && (aCar->HasCommand(CMD_STANDBY_OFF) || aCar->HasCommand(DUMMY_PATROL) || aCar->IsCollidingWithVirtualObject(VO_SQUAD01) || aCar->IsCollidingWithVirtualObject(VO_SQUAD02))){float distCurrCar = Math::dist(CmdPos.x, CmdPos.y, aCar->GetPosition().x, aCar->GetPosition().y);if (distCurrCar < bestCar || bestCar == 0.){theCar = aCar;bestCar = distCurrCar;}}}if (theCar){bool VehicleCalled = false;if (theCar->HasCommand(CMD_STANDBY_OFF) || theCar->HasObjectPath(NULL)){theCar->PushActionWait(ACTION_NEWLIST, 0.3f);if (theCar->HasCommand(DUMMY_PATROL))theCar->PushActionExecuteCommand(ACTION_APPEND, DUMMY_PATROL, theCar, 1, false);theCar->PushActionmove(ACTION_APPEND, CmdPos);if (!theCar->HasCommand(DUMMY_HASSIREN) && theCar->HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed())Game::ExecuteCommand(CMD_SIREN, theCar, theCar);if (theCar->HasCommand(CMD_STANDBY_OFF)){theCar->RemoveCommand(CMD_STANDBY_OFF);theCar->AssignCommand(CMD_STANDBY_ON);}if (theCar->HasCommand(CMD_WARNINGLIGHTS_OFF)){theCar->EnableBlinker(BLT_NONE);theCar->RemoveCommand(CMD_WARNINGLIGHTS_OFF);theCar->AssignCommand(CMD_WARNINGLIGHTS_ON);}if (theCar->HasCommand(CMD_FLOODLIGHTS_OFF)){theCar->EnableSpecialLights(false);theCar->RemoveCommand(CMD_FLOODLIGHTS_OFF);theCar->AssignCommand(CMD_FLOODLIGHTS_ON);}Mission::PlayHint(HINT_DISPATCHED);return;}else if (theCar->IsCollidingWithVirtualObject(VO_SQUAD01)){bool Ambulance02 = false;bool Ambulance03 = false;if (!VehicleCalled){GameObjectList l1;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE01, l1, ACTOR_VEHICLE);if(l1.GetNumObjects() > 0){Vehicle v = l1.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;} elseAmbulance02 = true;} elseAmbulance02 = true;}if (!VehicleCalled && Ambulance02){GameObjectList l2;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE02, l2, ACTOR_VEHICLE);if(l2.GetNumObjects() > 0){Vehicle v = l2.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;} elseAmbulance03 = true;} elseAmbulance03 = true;}if (!VehicleCalled && Ambulance03){GameObjectList l3;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE03, l3, ACTOR_VEHICLE);if(l3.GetNumObjects() > 0){Vehicle v = l3.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;}}}}else if (theCar->IsCollidingWithVirtualObject(VO_SQUAD02)){GameObjectList l4;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE04, l4, ACTOR_VEHICLE);if(l4.GetNumObjects() > 0){Vehicle v = l4.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;}}}if (VehicleCalled){if (v.IsBlueLightEnabled() && (Input::LShiftPressed() || Input::RShiftPressed()))v.EnableBlueLights(false);else if (!v.IsBlueLightEnabled() && !Input::LShiftPressed() && !Input::RShiftPressed())v.EnableBlueLights(true);bool Station1 = false;if(v.IsCollidingWithVirtualObject(VO_SQUAD01)){//Mission::PlayHint("Station1 Found");Station1 = true;GameObjectList gate01a = Game::GetGameObjects(OBJ_GATE01A);for(int i=0; i < gate01a.GetNumObjects(); i++)GameObject *gate = gate01a.GetObject(i);}else if(v.IsCollidingWithVirtualObject(VO_SQUAD02)){//Mission::PlayHint("Station2 Found");GameObjectList gate08a = Game::GetGameObjects(OBJ_GATE08A);for(int i=0; i < gate08a.GetNumObjects(); i++)GameObject *gate = gate08a.GetObject(i);}PersonList passengers = v.GetPassengers();if (passengers.GetNumPersons() == 0){if (StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0){v.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false);v.PushActionWait(ACTION_APPEND, 0.1f);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false);v.PushActionWait(ACTION_APPEND, 10.f);}else{v.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false);v.PushActionWait(ACTION_APPEND, 0.1f);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false);v.PushActionWait(ACTION_APPEND, 10.f);}}if (gate->GetUserData() == 0){//Mission::PlayHint("Gate is Closed");if(v.IsCollidingWithVirtualObject(VO_SQUAD01)){//Mission::PlayHint("Gate Closed at Station1");//v.PushActionExecuteCommand(ACTION_APPEND, "ShowMessage1", Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false);float dx = 1050.f, dy = 0.f, dz = 0.f;}else{v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 6, false);float dx = 500.f, dy = 0.f, dz = 0.f;}Vector Move = v.GetPosition();float r[9];float childr[9];v.GetRotation(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]);Math::RotateVector(dx, dy, dz, r);Math::EulerToMatrix(0.0f, 0.f, 0.f, childr);Math::MultiplyMatrices(childr, r);Move = Move + Vector(dx, dy, 0);v.PushActionWait(ACTION_APPEND, 1.2f);if (!v.HasCommand(DUMMY_HASSIREN) && v.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed())v.PushActionExecuteCommand(ACTION_APPEND, CMD_SIREN, Caller, 0, false);v.PushActionmove(ACTION_APPEND, Move);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false);if(Station1){//Mission::PlayHint("Station1 Called");//v.PushActionExecuteCommand(ACTION_APPEND, "ShowMessage2", Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false);}else{//Mission::PlayHint("Station2 Called");//v.PushActionExecuteCommand(ACTION_APPEND, "ShowMessage7", Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 6, false);}v.PushActionmove(ACTION_APPEND, CmdPos);}else{//Mission::PlayHint("Gate is Already Open");if (!v.HasCommand(DUMMY_HASSIREN) && v.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed())v.PushActionExecuteCommand(ACTION_APPEND, CMD_SIREN, Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false);v.PushActionmove(ACTION_APPEND, CmdPos);}if (v.HasCommand(CMD_STANDBY_OFF)){v.RemoveCommand(CMD_STANDBY_OFF);v.AssignCommand(CMD_STANDBY_ON);}if (v.HasCommand(CMD_WARNINGLIGHTS_OFF)){v.EnableBlinker(BLT_NONE);v.RemoveCommand(CMD_WARNINGLIGHTS_OFF);v.AssignCommand(CMD_WARNINGLIGHTS_ON);}Mission::PlayHint(HINT_DISPATCHED);return;}}Mission::PlayHint(HINT_NOAMBULANCE);}};Transport Script - Nearest of the four Ambulances will respond with one EMT stretcher team (vanilla BLS setup).object PcmdCallAmbulanceTransport : CommandScript{PcmdCallAmbulanceTransport(){SetIcon("callambulance1");SetCursor("callassistance");SetValidTargets(ACTOR_FLOOR | ACTOR_VIRTUAL);SetDeselectCaller(false);SetSelfClickActivation(true);SetHighlightingEnabled(false);SetGroupID(CGROUP_GETEQUIPMENT);SetGroupLeader(true);}bool CheckPossible(GameObject *Caller){GameObjectList SelectPer = Game::GetSelectedGameObjects();if (SelectPer.GetNumObjects() != 1)return false;Person p(Caller);if(p.IsValid() && (p.IsLinkedWithPerson() || p.IsCarryingPerson() || p.IsEquipped() || p.IsPulling() || p.GetFirehoseID()!=0 || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;return true;}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || Caller->GetID() == Target->GetID())return false;if (Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsLinkedWithPerson() || p.IsCarryingPerson() || p.IsEquipped() || p.IsPulling() || p.GetFirehoseID()!=0 || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;return true;}void PushActions(GameObject *Caller, Actor *Target, int ChildID){Vector CmdPos = Game::GetCommandPos();Caller->PushActionTurnTo(ACTION_NEWLIST, CmdPos);Caller->PushActionSwitchAnim(ACTION_APPEND, "talkmike");Caller->PushActionWait(ACTION_APPEND, 3.5f);Caller->PushActionSwitchAnim(ACTION_APPEND, "idle");if(StrCompare(Caller->GetPrototypeFileName(), OBJ_BATTALION_CHIEF) == 0)Audio::PlaySample3D(SND_BATBLS, Caller->GetPosition());else if(StrCompare(Caller->GetPrototypeFileName(), OBJ_EMS_CAPTAIN) == 0)Audio::PlaySample3D(SND_EMSBLS, Caller->GetPosition());Vehicle *theCar = NULL;float bestCar = 0.;VehicleList patrolCars(VT_AMBULANCE_RTW, VT_AMBULANCE_RTW);for (int i = 0; i < patrolCars.GetNumVehicles(); i++){Vehicle *aCar = patrolCars.GetVehicle(i);if (aCar->GetPlayerMP() == Caller->GetPlayerMP() && !aCar->HasCommand(DUMMY_VCALLED) && (aCar->HasCommand(CMD_STANDBY_OFF) || aCar->HasCommand(DUMMY_PATROL) || aCar->IsCollidingWithVirtualObject(VO_SQUAD01) || aCar->IsCollidingWithVirtualObject(VO_SQUAD02))){float distCurrCar = Math::dist(CmdPos.x, CmdPos.y, aCar->GetPosition().x, aCar->GetPosition().y);if (distCurrCar < bestCar || bestCar == 0.){theCar = aCar;bestCar = distCurrCar;}}}if (theCar){bool VehicleCalled = false;if (theCar->HasCommand(CMD_STANDBY_OFF) || theCar->HasObjectPath(NULL)){theCar->PushActionWait(ACTION_NEWLIST, 0.3f);if (theCar->HasCommand(DUMMY_PATROL))theCar->PushActionExecuteCommand(ACTION_APPEND, DUMMY_PATROL, theCar, 1, false);theCar->PushActionmove(ACTION_APPEND, CmdPos);if (!theCar->HasCommand(DUMMY_HASSIREN) && theCar->HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed())Game::ExecuteCommand(CMD_SIREN, theCar, theCar);if (theCar->HasCommand(CMD_STANDBY_OFF)){theCar->RemoveCommand(CMD_STANDBY_OFF);theCar->AssignCommand(CMD_STANDBY_ON);}if (theCar->HasCommand(CMD_WARNINGLIGHTS_OFF)){theCar->EnableBlinker(BLT_NONE);theCar->RemoveCommand(CMD_WARNINGLIGHTS_OFF);theCar->AssignCommand(CMD_WARNINGLIGHTS_ON);}if (theCar->HasCommand(CMD_FLOODLIGHTS_OFF)){theCar->EnableSpecialLights(false);theCar->RemoveCommand(CMD_FLOODLIGHTS_OFF);theCar->AssignCommand(CMD_FLOODLIGHTS_ON);}Mission::PlayHint(HINT_DISPATCHED);return;}else if (theCar->IsCollidingWithVirtualObject(VO_SQUAD01)){bool Ambulance02 = false;bool Ambulance03 = false;if (!VehicleCalled){GameObjectList l1;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE01, l1, ACTOR_VEHICLE);if(l1.GetNumObjects() > 0){Vehicle v = l1.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;} elseAmbulance02 = true;} elseAmbulance02 = true;}if (!VehicleCalled && Ambulance02){GameObjectList l2;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE02, l2, ACTOR_VEHICLE);if(l2.GetNumObjects() > 0){Vehicle v = l2.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;} elseAmbulance03 = true;} elseAmbulance03 = true;}if (!VehicleCalled && Ambulance03){GameObjectList l3;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE03, l3, ACTOR_VEHICLE);if(l3.GetNumObjects() > 0){Vehicle v = l3.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;}}}}else if (theCar->IsCollidingWithVirtualObject(VO_SQUAD02)){GameObjectList l4;Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE04, l4, ACTOR_VEHICLE);if(l4.GetNumObjects() > 0){Vehicle v = l4.GetObject(0);if (!v.HasCommand(DUMMY_VCALLED)){v.AssignCommand(DUMMY_VCALLED);VehicleCalled = true;}}}if (VehicleCalled){if (v.IsBlueLightEnabled() && (Input::LShiftPressed() || Input::RShiftPressed()))v.EnableBlueLights(false);else if (!v.IsBlueLightEnabled() && !Input::LShiftPressed() && !Input::RShiftPressed())v.EnableBlueLights(true);bool Station1 = false;if(v.IsCollidingWithVirtualObject(VO_SQUAD01)){//Mission::PlayHint("Station1 Found");Station1 = true;GameObjectList gate01a = Game::GetGameObjects(OBJ_GATE01A);for(int i=0; i < gate01a.GetNumObjects(); i++)GameObject *gate = gate01a.GetObject(i);}else if(v.IsCollidingWithVirtualObject(VO_SQUAD02)){//Mission::PlayHint("Station2 Found");GameObjectList gate08a = Game::GetGameObjects(OBJ_GATE08A);for(int i=0; i < gate08a.GetNumObjects(); i++)GameObject *gate = gate08a.GetObject(i);}PersonList passengers = v.GetPassengers();if (passengers.GetNumPersons() == 0){if (StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0){v.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 7, false);//v.PushActionWait(ACTION_APPEND, 0.1f);//v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false);v.PushActionWait(ACTION_APPEND, 10.f);}else{v.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 7, false);//v.PushActionWait(ACTION_APPEND, 0.1f);//v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false);v.PushActionWait(ACTION_APPEND, 10.f);}}if (gate->GetUserData() == 0){//Mission::PlayHint("Gate is Closed");if(v.IsCollidingWithVirtualObject(VO_SQUAD01)){//Mission::PlayHint("Gate Closed at Station1");//v.PushActionExecuteCommand(ACTION_APPEND, "ShowMessage1", Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false);float dx = 1050.f, dy = 0.f, dz = 0.f;}else{v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 6, false);float dx = 500.f, dy = 0.f, dz = 0.f;}Vector Move = v.GetPosition();float r[9];float childr[9];v.GetRotation(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]);Math::RotateVector(dx, dy, dz, r);Math::EulerToMatrix(0.0f, 0.f, 0.f, childr);Math::MultiplyMatrices(childr, r);Move = Move + Vector(dx, dy, 0);v.PushActionWait(ACTION_APPEND, 1.2f);if (!v.HasCommand(DUMMY_HASSIREN) && v.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed())v.PushActionExecuteCommand(ACTION_APPEND, CMD_SIREN, Caller, 0, false);v.PushActionmove(ACTION_APPEND, Move);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false);if(Station1){//Mission::PlayHint("Station1 Called");//v.PushActionExecuteCommand(ACTION_APPEND, "ShowMessage2", Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false);}else{//Mission::PlayHint("Station2 Called");//v.PushActionExecuteCommand(ACTION_APPEND, "ShowMessage7", Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 6, false);}v.PushActionmove(ACTION_APPEND, CmdPos);}else{//Mission::PlayHint("Gate is Already Open");if (!v.HasCommand(DUMMY_HASSIREN) && v.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed())v.PushActionExecuteCommand(ACTION_APPEND, CMD_SIREN, Caller, 0, false);v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false);v.PushActionmove(ACTION_APPEND, CmdPos);}if (v.HasCommand(CMD_STANDBY_OFF)){v.RemoveCommand(CMD_STANDBY_OFF);v.AssignCommand(CMD_STANDBY_ON);}if (v.HasCommand(CMD_WARNINGLIGHTS_OFF)){v.EnableBlinker(BLT_NONE);v.RemoveCommand(CMD_WARNINGLIGHTS_OFF);v.AssignCommand(CMD_WARNINGLIGHTS_ON);}Mission::PlayHint(HINT_DISPATCHED);return;}}Mission::PlayHint(HINT_NOAMBULANCE);}};Step Two: Launch the EM4 editor, load up the LA Mod, select the Batallion Chief, add "PcmdCallAmbulanceMedics" and "PcmdCallAmbulanceTransport" to him, and remove "PcmdCallAmbulance1" and "PcmdCallAmbulance2", and then do the same for the Paramedic Captain. If you want to keep them for the sake of nostalgia, or the purpose of setting up another crew complement for the original scripts, you can probably skip removing the old commands.NOTE: FOR SOME REASON, ADDING THE COMMANDS TO THE PARAMEDIC CAPTAIN GLITCHES HIS ABILITY TO GET AN EMERGENCY CASE. Not sure why.Step Three: Open "\Lang\en\command.xml" and add the following.<string name="PcmdCallAmbulanceMedics">Call a response ambulance</string><string name="PcmdCallAmbulanceTransport">Call a transport ambulance</string>And that should be it. Thanks to Hoppah for the original LA Mod, and Xplorer4x4 and YSB for their submod that I use (I slightly edited those scripts so they should be compatible with the base mod. Results may vary with any submods). Next I want to see if I can do the same for the ALS/BLS engines.... but I think that might be out of my reach, not to mention changing the Light Force commands. Only one way to find out, though.Also, I found a little tweak to stop the lights from turning on until a dispatched vehicle actually leaves the station with just a simple "comment out".Find the following lines in the BattalionChief script:if (v.IsBlueLightEnabled() && (Input::LShiftPressed() || Input::RShiftPressed()))v.EnableBlueLights(false);else if (!v.IsBlueLightEnabled() && !Input::LShiftPressed() && !Input::RShiftPressed())v.EnableBlueLights(true);And add "//" to the start of each line. Quote Link to comment Share on other sites More sharing options...
Quincy Posted May 17, 2013 Report Share Posted May 17, 2013 It causes a glitch with the Ems Captain because there can only be 11 "get equipment" commands per unit. I'm currently looking for a fix. Quote Link to comment Share on other sites More sharing options...
The Loot Posted May 17, 2013 Author Report Share Posted May 17, 2013 Yeah, I noticed that, though the weird thing is they just replace the regular ALS/BLS scripts so there shouldn't be a problem of "more" commands.Maybe if you can manage to put the "Get Medical Bag" to the main menu, though I don't know if there's room, or if it's possible. Quote Link to comment Share on other sites More sharing options...