AlanReeder Posted December 19, 2010 Report Share Posted December 19, 2010 Trying to put the tower at both stations. Almost got it. Can anyone help please.Here is the script } else if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER) == 0) { GameObjectList cpl1 = Game::GetGameObjects(NAME_CONTROLPANEL); if(cpl1.GetNumObjects() > 0) GameObject cp1 = cpl1.GetObject(0); GameObjectList cpl2 = Game::GetGameObjects(NAME_CONTROLPANEL2); if(cpl2.GetNumObjects() > 0) GameObject cp2 = cpl2.GetObject(0); bool FS1Closer = false; bool FS2Closer = false; if (Math::dist(Pos.x, Pos.y, cp1.GetPosition().x, cp1.GetPosition().y) > Math::dist(Pos.x, Pos.y, cp2.GetPosition().x, cp2.GetPosition().y)) FS2Closer = true; else FS1Closer = true; bool FS1Possible = false; bool FS2Possible = false; GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_LADDER, l4, ACTOR_VEHICLE); if (!FS1Possible && !FS2Possible) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else if ((FS1Closer && FS1Possible) || (FS2Closer && !FS2Possible)) { ActorList l1 = Game::GetActors(VO_FP4); ActorList l2 = Game::GetActors(VO_TURNTO4); } else if ((FS2Closer && FS2Possible) || (FS1Closer && !FS1Possible)) { ActorList l1 = Game::GetActors(VO_FP7); ActorList l2 = Game::GetActors(VO_TURNTO7); } Quote Link to comment Share on other sites More sharing options...
Xplorer4x4 Posted December 20, 2010 Report Share Posted December 20, 2010 When you get the error, post what it says(you can hit CTRL+ALT+DELETE -> Start task manager) and it should say some sort of error. Now hit retry andi t hsould tell you the line number where the problem is. Then post the ENTIRE script. Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 20, 2010 Report Share Posted December 20, 2010 why not just make another ladder and call it areal 2 and then just assign them to their respective stations? That sounds to me like the easier of the two evils. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 20, 2010 Author Report Share Posted December 20, 2010 thank you both i will try both. Quote Link to comment Share on other sites More sharing options...
Xplorer4x4 Posted December 20, 2010 Report Share Posted December 20, 2010 why not just make another ladder and call it areal 2 and then just assign them to their respective stations? That sounds to me like the easier of the two evils.Why didnt i think of that? lol Guess im a bit rusty from my time off.Alan, to do this, open the editor, load the LA Mod, hit F1 to open the prototype menu and choose vehicles. Now choose LA Fire Department. Click Aerial Ladder, now hit clone. Then save it as aerial_ladder2.e4p.Now in the script at the top define aerial_ladder2.e4p as a constant with the name OBJ_LADDER2. Then for the second station replace OBJ_LADDER with OBJ_LADDER2. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 20, 2010 Author Report Share Posted December 20, 2010 Thank you so much for the help. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 21, 2010 Author Report Share Posted December 21, 2010 I am still having problems with the start at station and to station script. Quote Link to comment Share on other sites More sharing options...
Xplorer4x4 Posted December 21, 2010 Report Share Posted December 21, 2010 post the ENTIRE script. Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 21, 2010 Report Share Posted December 21, 2010 yes, i know if i gave you my scripts you would have a heck of a time with it, looks like mayhem out there with all the additons and stuff. if you post them we can see what the problem is and get back at you with a definite answer. plus we dont know what additions you have done to yours and what submods, if any, you are using. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 (edited) I am using la mod 2.0 start at station script:const char NAME_FIRESTATION[] = "fire_station";const char NAME_FIRESTATION_ROOF[] = "fire_station_roof";const char NAME_FIRESTATION2[] = "fire_station2";const char NAME_FIRESTATION2_ROOF[] = "fire_station2_roof";const char NAME_CONTROLPANEL[] = "fire_station_controlpanel";const char NAME_CONTROLPANEL2[] = "fire_station_controlpanel2";const char OBJ_AMBULANCE01[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance01.e4p";const char OBJ_AMBULANCE02[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance02.e4p";const char OBJ_BATTALION[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle.e4p";const char OBJ_USAR[] = "mod:Prototypes/Vehicles/02 LA Fire Department/usar_squad.e4p";const char OBJ_LADDER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder.e4p";const char OBJ_TILLER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/tiller_cabin.e4p";const char OBJ_ENGINE01[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine1.e4p";const char OBJ_ENGINE02[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine2.e4p";const char OBJ_OBJ_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p";const char DUMMY_GATES[] = "DummyGates";const char DUMMY_ALARM[] = "DummyDisableAlarm";const char DUMMY_CALLCREW[] = "DummyCallCrew";const char VO_BATTALION[] = "fs_battalion";const char VO_AMBULANCE01[] = "fs_ambulance01";const char VO_AMBULANCE02[] = "fs_ambulance02";const char VO_AMBULANCE03[] = "fs_ambulance03";const char VO_AMBULANCE04[] = "fs_ambulance04";const char VO_USAR[] = "fs_usar";const char VO_LADDER[] = "fs_ladder";const char VO_ENGINE01[] = "fs_engine01";const char VO_ENGINE02[] = "fs_engine02";const char VO_ENGINE03[] = "fs_engine03";const char VO_ENGINE04[] = "fs_engine04";const char VO_ENGINE05[] = "fs_engine05";const char VO_HAZMAT[] = "fs_hazmat";const char NAME_GATE01A[] = "fs_gate01a";const char NAME_GATE02A[] = "fs_gate02a";const char NAME_GATE03A[] = "fs_gate03a";const char NAME_GATE04A[] = "fs_gate04a";const char NAME_GATE05A[] = "fs_gate05a";const char NAME_GATE06A[] = "fs_gate06a";const char NAME_GATE07A[] = "fs_gate07a";const char NAME_GATE08A[] = "fs_gate08a";const char SND_ALARM[] = "mod:Audio/FX/Misc/fire_alarm.wav";const char UNNAMED[] = "Unnamed";object VcmdStart : CommandScript{ VcmdStart() { } bool CheckPossible(GameObject *Caller) { return true; } bool CheckTarget(GameObject *Caller, Actor *Target, int childID) { return true; } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { VehicleList list3("Unnamed"); for(int i=0; i < list3.GetNumVehicles(); i++) { Vehicle *c = list3.GetVehicle(i); c->SetSmokeLevelDuration(25.f); } GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION); for(int i=0; i < l1.GetNumObjects(); i++) { GameObject *obj = l1.GetObject(i); if (!obj->IsSpecialLightEnabled()) { obj->EnableSpecialLights(true); Vector AlarmSnd = obj->GetPosition(); int soundID = Audio::PlaySample3D(SND_ALARM, AlarmSnd, true); obj->SetUserData(soundID); obj->AttachSound(soundID); } } GameObjectList l2 = Game::GetGameObjects(NAME_FIRESTATION2); for(int i=0; i < l2.GetNumObjects(); i++) { GameObject *obj = l2.GetObject(i); if (!obj->IsSpecialLightEnabled()) { obj->EnableSpecialLights(true); Vector AlarmSnd = obj->GetPosition(); int soundID = Audio::PlaySample3D(SND_ALARM, AlarmSnd, true); obj->SetUserData(soundID); obj->AttachSound(soundID); } } GameObjectList l3 = Game::GetGameObjects(NAME_CONTROLPANEL); for(int i=0; i < l3.GetNumObjects(); i++) { GameObject *obj = l3.GetObject(i); obj->AssignCommand("VcmdAutoStaffOff"); obj->AssignCommand(DUMMY_ALARM); obj->PushActionWait(ACTION_NEWLIST, 1.5f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 1, false); obj->PushActionWait(ACTION_APPEND, 16.0f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false); } GameObjectList l4 = Game::GetGameObjects(NAME_CONTROLPANEL2); for(int i=0; i < l4.GetNumObjects(); i++) { GameObject *obj = l4.GetObject(i); obj->AssignCommand("VcmdAutoStaffOff"); obj->AssignCommand(DUMMY_ALARM); obj->PushActionWait(ACTION_NEWLIST, 1.5f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 3, false); obj->PushActionWait(ACTION_APPEND, 16.0f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false); } GameObjectList l5 = Game::GetGameObjects(NAME_FIRESTATION_ROOF); for(int i=0; i < l5.GetNumObjects(); i++) { GameObject *obj = l5.GetObject(i); if(obj->GetUserData() == 0) { obj->Hide(); obj->SetUserData(1); } } GameObjectList l51 = Game::GetGameObjects(NAME_FIRESTATION2_ROOF); for(int i=0; i < l51.GetNumObjects(); i++) { GameObject *obj = l51.GetObject(i); if(obj->GetUserData() == 0) { obj->Hide(); obj->SetUserData(1); } } GameObjectList gate01a = Game::GetGameObjects(NAME_GATE01A); for(int i=0; i < gate01a.GetNumObjects(); i++) GameObject *gate1 = gate01a.GetObject(i); GameObjectList gate02a = Game::GetGameObjects(NAME_GATE02A); for(int i=0; i < gate02a.GetNumObjects(); i++) GameObject *gate2 = gate02a.GetObject(i); GameObjectList gate03a = Game::GetGameObjects(NAME_GATE03A); for(int i=0; i < gate03a.GetNumObjects(); i++) GameObject *gate3 = gate03a.GetObject(i); GameObjectList gate04a = Game::GetGameObjects(NAME_GATE04A); for(int i=0; i < gate04a.GetNumObjects(); i++) GameObject *gate4 = gate04a.GetObject(i); GameObjectList gate05a = Game::GetGameObjects(NAME_GATE05A); for(int i=0; i < gate05a.GetNumObjects(); i++) GameObject *gate5 = gate05a.GetObject(i); GameObjectList gate06a = Game::GetGameObjects(NAME_GATE06A); for(int i=0; i < gate06a.GetNumObjects(); i++) GameObject *gate6 = gate06a.GetObject(i); GameObjectList gate07a = Game::GetGameObjects(NAME_GATE07A); for(int i=0; i < gate07a.GetNumObjects(); i++) GameObject *gate7 = gate07a.GetObject(i); GameObjectList gate08a = Game::GetGameObjects(NAME_GATE08A); for(int i=0; i < gate08a.GetNumObjects(); i++) GameObject *gate8 = gate08a.GetObject(i); ActorList l6 = Game::GetActors(VO_BATTALION); for(int i=0; i < l6.GetNumActors(); i++) { Vector Battalion = l6.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_BATTALION, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Battalion); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetSpeed(12.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 4, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l7 = Game::GetActors(VO_AMBULANCE01); for(int i=0; i < l7.GetNumActors(); i++) { Vector Ambulance01 = l7.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance01); m.SetRotation(gate1); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false); } ActorList l8 = Game::GetActors(VO_AMBULANCE02); for(int i=0; i < l8.GetNumActors(); i++) { Vector Ambulance02 = l8.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance02); m.SetRotation(gate1); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionWait(ACTION_NEWLIST, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false); } ActorList l9 = Game::GetActors(VO_LADDER); for(int i=0; i < l9.GetNumActors(); i++) { Vector Ladder = l9.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_LADDER, UNNAMED); //NOTE: Change OBJ_LADDER to OBJ_TILLER to replace the tower with the tiller m.EnableBlueLights(false); m.SetPosition(Ladder); m.SetRotation(gate3); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 1.4f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l10 = Game::GetActors(VO_ENGINE01); for(int i=0; i < l10.GetNumActors(); i++) { Vector Engine01 = l10.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine01); m.SetRotation(gate4); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l11 = Game::GetActors(VO_ENGINE02); for(int i=0; i < l11.GetNumActors(); i++) { Vector Engine02 = l11.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine02); m.SetRotation(gate5); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l12 = Game::GetActors(VO_USAR); for(int i=0; i < l12.GetNumActors(); i++) { Vector Usar = l12.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_USAR, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Usar); m.SetRotation(gate2); m.UpdatePlacement(); m.SetMaxPassengers(4); m.SetSpeed(9.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 6, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 6, false); } ActorList l13 = Game::GetActors(VO_AMBULANCE04); for(int i=0; i < l13.GetNumActors(); i++) { Vector Ambulance04 = l13.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance04); m.SetRotation(gate8); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionWait(ACTION_NEWLIST, 4.5f); //m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); //m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 7, false); } ActorList l14 = Game::GetActors(VO_ENGINE05); for(int i=0; i < l14.GetNumActors(); i++) { Vector Engine04 = l14.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine04); m.SetRotation(gate7); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 4.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l15 = Game::GetActors(VO_HAZMAT); for(int i=0; i < l15.GetNumActors(); i++) { Vector LADDER2 = l15.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_LADDER2, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ladder2); m.SetRotation(gate6); m.UpdatePlacement(); m.SetMaxPassengers(4); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 10, false); m.PushActionWait(ACTION_APPEND, 3.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 11, false); } ActorList l16 = Game::GetActors(VO_ENGINE03); for(int i=0; i < l16.GetNumActors(); i++) { Vector Engine03 = l16.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine03); m.SetRotation(gate4); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l17 = Game::GetActors(VO_ENGINE04); for(int i=0; i < l17.GetNumActors(); i++) { Vector Engine04 = l17.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine04); m.SetRotation(gate5); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l18 = Game::GetActors(VO_AMBULANCE03); for(int i=0; i < l18.GetNumActors(); i++) { Vector Ambulance03 = l18.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance03); m.SetRotation(gate1); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false); } System::Log("Fire stations activated!"); }};[color="#FFFF00"]To station Script: [/color]const char CMD_SIREN[] = "VcmdSiren";const char CMD_AUTOSIREN_OFF[] = "VcmdAutoSirenOff";const char CMD_WARNINGLIGHTS[] = "VcmdWarningLightsOn";const char DUMMY_WARNINGLIGHTS[] = "DummyHasWarningLights";const char CMD_FLOODLIGHTS_OFF[] = "VcmdFloodLightsOff";const char CMD_FLOODLIGHTS_ON[] = "VcmdFloodLightsOn";const char CMD_GETTILLER[] = "VcmdGetTiller";const char CMD_FLASHINGLIGHTS[] = "VcmdFlashingLights";const char CMD_GOHOME[] = "GoHome";const char CMD_TOHOSPITAL[] = "VcmdToHospital";const char CMD_TOFIRESTATION[] = "VcmdToFireStation";const char CMD_PATROL[] = "VcmdPatrol";const char CMD_STANDBY_ON[] = "VcmdStandbyOn";const char CMD_STANDBY_OFF[] = "VcmdStandbyOff";const char CMD_GETTILLER[] = "VcmdGetTiller";const char DUMMY_TILLERGOHOME[] = "DummyTillerGoHome";const char DUMMY_DISABLE[] = "DummyDisableSiren";const char DUMMY_HASSIREN[] = "DummyHasSiren";const char DUMMY_PATROL[] = "DummyPatrol";const char DUMMY_GATES[] = "DummyGates";const char DUMMY_FIRESTATION[] = "DummyAtFireStation";const char DUMMY_CHECKPARKED[] = "DummyCheckParked";const char DUMMY_ISTRAILED[] = "DummyIsTrailed";const char DUMMY_VCALLED[] = "DummyVehicleCalled";const char DUMMY_HOSESON[] = "DummyHosesAreOn";const char DUMMY_TILLER[] = "DummyTiller";const char OBJ_BATTALION[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle.e4p";const char OBJ_ENGINE01[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine1.e4p";const char OBJ_ENGINE02[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine2.e4p";const char OBJ_USAR[] = "mod:Prototypes/Vehicles/02 LA Fire Department/usar_squad.e4p";const char OBJ_LADDER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder.e4p";const char OBJ_TILLER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/tiller_cabin.e4p";const char OBJ_BATTALION[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle.e4p";const char OBJ_OBJ_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p";const char OBJ_AMBULANCE01[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance01.e4p";const char OBJ_AMBULANCE02[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance02.e4p";const char OBJ_AMBULANCE03[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance03.e4p";const char OBJ_AMBULANCE04[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance04.e4p";const char VO_SPAWN01[] = "fs_spawn01";const char VO_SPAWN02[] = "fs_spawn02";const char VO_SPAWN03[] = "fs_spawn03";const char VO_FP1[] = "fs_gate01";const char VO_FP2[] = "fs_gate02";const char VO_FP3[] = "fs_gate03";const char VO_FP4[] = "fs_gate04";const char VO_FP5[] = "fs_gate05";const char VO_FP6[] = "fs_gate06";const char VO_FP7[] = "fs_gate07";const char VO_FP8[] = "fs_gate08";const char VO_TURNTO1[] = "fs_vogate01a";const char VO_TURNTO2[] = "fs_vogate02a";const char VO_TURNTO3[] = "fs_vogate03a";const char VO_TURNTO4[] = "fs_vogate04a";const char VO_TURNTO5[] = "fs_vogate05a";const char VO_TURNTO6[] = "fs_vogate06a";const char VO_TURNTO7[] = "fs_vogate07a";const char VO_TURNTO8[] = "fs_vogate08a";const char VO_AMBULANCE01[] = "fs_ambulance01";const char VO_AMBULANCE02[] = "fs_ambulance02";const char VO_AMBULANCE03[] = "fs_ambulance03";const char VO_AMBULANCE04[] = "fs_ambulance04";const char VO_ENGINE01[] = "fs_engine01";const char VO_ENGINE02[] = "fs_engine02";const char VO_ENGINE03[] = "fs_engine03";const char VO_ENGINE04[] = "fs_engine04";const char VO_ENGINE05[] = "fs_engine05";const char VO_BATTALION[] = "fs_battalion";const char VO_BATTALION2[] = "fs_battalion2";const char VO_USAR[] = "fs_usar";const char VO_LADDER[] = "fs_ladder";const char VO_HAZMAT[] = "fs_hazmat";const char VO_SQUAD01[] = "fs_squad01";const char VO_SQUAD02[] = "fs_squad02";const char SND_TOSTATION[] = "mod:Audio/FX/radio/1019.wav";const char HINT_NOTVALID[] = "This vehicle doesn't belong in the fire station!";const char HINT_NOSPACE[] = "No space at the fire station, vehicle returns to base!";const char HINT_NOSPACE_AMBULANCE[] = "No space at the fire station, vehicle starts a patrol!";const char HINT_TRANSPORTS[] = "The ambulance has transports, it will go to the hospital first!";const char NAME_CONTROLPANEL[] = "fire_station_controlpanel";const char NAME_CONTROLPANEL2[] = "fire_station_controlpanel2";int DummyGroup = 32;object VcmdToFireStation : CommandScript{ VcmdToFireStation() { SetCursor("tofirestation"); SetIcon("tofirestation"); SetGroupID(DummyGroup); SetGroupLeader(true); SetRestrictions(RESTRICT_SELFEXECUTE); } bool CheckPossible(GameObject *Caller) { if (!Caller->IsValid()) return false; if (!Game::IsFreeplay()) return false; Vehicle v(Caller); if (v.IsCollidingWithVirtualObject(VO_SQUAD01) || v.IsCollidingWithVirtualObject(VO_SQUAD02) || v.IsCollidingWithVirtualObject(VO_BATTALION) || (v.HasCommand(DUMMY_ISTRAILED) && !v.HasCommand(CMD_GETTILLER)) || v.HasCommand(DUMMY_HOSESON) || v.IsInstalled()) return false; if (!v.HasCommand("MoveTo")) return false; if (v.HasCommand(CMD_FLOODLIGHTS_OFF) && (StrCompare(v.GetPrototypeFileName(), OBJ_HAZMATSQUAD) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_USAR) == 0)) return false; return true; } bool CheckTarget(GameObject *Caller, Actor *Target, int childID) { if (!Caller->IsValid() || !Target->IsValid() || (Caller->GetID() != Target->GetID())) return false; return true; } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { Vector Pos = Caller->GetPosition(); Vehicle v(Caller); if (v.GetVehicleType() == VT_AMBULANCE_RTW && v.GetNumTransported() > 0) { v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_TOHOSPITAL, Caller, 0, false); Mission::PlayHint(HINT_TRANSPORTS); return; } if (v.IsBlueLightEnabled()) Game::ExecuteCommand(CMD_FLASHINGLIGHTS, &v, &v); if (v.HasCommand(DUMMY_TILLERGOHOME)) v.RemoveCommand(DUMMY_TILLERGOHOME); if (v.HasCommand(CMD_STANDBY_OFF)) { v.RemoveCommand(CMD_STANDBY_OFF); v.AssignCommand(CMD_STANDBY_ON); } if (v.HasCommand(DUMMY_WARNINGLIGHTS)) { v.EnableBlinker(BLT_NONE); v.RemoveCommand(DUMMY_WARNINGLIGHTS); v.AssignCommand(CMD_WARNINGLIGHTS); } if (v.HasCommand(CMD_FLOODLIGHTS_OFF)) { v.EnableSpecialLights(false); v.RemoveCommand(CMD_FLOODLIGHTS_OFF); v.AssignCommand(CMD_FLOODLIGHTS_ON); } if (v.HasObjectPath(NULL)) Game::ExecuteCommand(DUMMY_PATROL, &v, &v); if (v.HasCommand(DUMMY_HASSIREN) && v.HasCommand(CMD_AUTOSIREN_OFF)) Game::ExecuteCommand(DUMMY_DISABLE, &v, &v); if(StrCompare(v.GetPrototypeFileName(), OBJ_BATTALION) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_BATTALION, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_BATTALION2); ActorList l2 = Game::GetActors(VO_BATTALION); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_USAR) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_USAR, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_FP2); ActorList l2 = Game::GetActors(VO_TURNTO2); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_LADDER, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); Game::ExecuteCommand(CMD_GOHOME, &v, &v); return; } else { ActorList l1 = Game::GetActors(VO_FP3); ActorList l2 = Game::GetActors(VO_TURNTO3); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER2) == 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_LADDER2, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ActorList l1 = Game::GetActors(VO_FP6); ActorList l2 = Game::GetActors(VO_TURNTO6); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE02) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE03) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE04) == 0) { bool Possible = false; GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE01, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() == 0 && !Possible) Possible = true; GameObjectList l5; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE02, l5, ACTOR_VEHICLE); if(l5.GetNumObjects() == 0 && !Possible) Possible = true; GameObjectList l6; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE03, l6, ACTOR_VEHICLE); if(l6.GetNumObjects() == 0 && !Possible) Possible = true; if (Possible) { ActorList l1 = Game::GetActors(VO_FP1); ActorList l2 = Game::GetActors(VO_TURNTO1); } else { Mission::PlayHint(HINT_NOSPACE_AMBULANCE); v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_PATROL, Caller, 0, false); return; } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0) { bool Possible = false; GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE04, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() == 0 && !Possible) Possible = true; if (Possible) { ActorList l1 = Game::GetActors(VO_FP8); ActorList l2 = Game::GetActors(VO_TURNTO8); } else { Mission::PlayHint(HINT_NOSPACE_AMBULANCE); v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_PATROL, Caller, 0, false); return; } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0) { GameObjectList cpl1 = Game::GetGameObjects(NAME_CONTROLPANEL); if(cpl1.GetNumObjects() > 0) GameObject cp1 = cpl1.GetObject(0); GameObjectList cpl2 = Game::GetGameObjects(NAME_CONTROLPANEL2); if(cpl2.GetNumObjects() > 0) GameObject cp2 = cpl2.GetObject(0); bool FS1Closer = false; bool FS2Closer = false; if (Math::dist(Pos.x, Pos.y, cp1.GetPosition().x, cp1.GetPosition().y) > Math::dist(Pos.x, Pos.y, cp2.GetPosition().x, cp2.GetPosition().y)) FS2Closer = true; else FS1Closer = true; bool FS1Possible = false; bool FS2Possible = false; GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_ENGINE01, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() == 0 && !FS1Possible) FS1Possible = true; GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE03, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() == 0 && !FS1Possible) FS1Possible = true; GameObjectList l5; Game::CollectObstaclesOnVirtualObject(VO_ENGINE05, l5, ACTOR_VEHICLE); if(l5.GetNumObjects() == 0 && !FS2Possible) FS2Possible = true; if (!FS1Possible && !FS2Possible) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else if ((FS1Closer && FS1Possible) || (FS2Closer && !FS2Possible)) { ActorList l1 = Game::GetActors(VO_FP4); ActorList l2 = Game::GetActors(VO_TURNTO4); } else if ((FS2Closer && FS2Possible) || (FS1Closer && !FS1Possible)) { ActorList l1 = Game::GetActors(VO_FP7); ActorList l2 = Game::GetActors(VO_TURNTO7); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0) { bool Possible = false; GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_ENGINE02, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() == 0 && !Possible) Possible = true; GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE04, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() == 0 && !Possible) Possible = true; if (Possible) { ActorList l1 = Game::GetActors(VO_FP5); ActorList l2 = Game::GetActors(VO_TURNTO5); } else { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } } else { Mission::PlayHint(HINT_NOTVALID); return; } if(l1.GetNumActors() > 0) Vector FirstPoint = l1.GetActor(0)->GetPosition(); if(l2.GetNumActors() > 0) Vector TurnTo = l2.GetActor(0)->GetPosition(); Audio::PlaySample3D(SND_TOSTATION, Caller->GetPosition()); v.PushActionMove(ACTION_NEWLIST, FirstPoint); v.PushActionTurnTo(ACTION_APPEND, TurnTo); if (StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0) v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_TILLER, Caller, 3, false); v.PushActionWait(ACTION_APPEND, 1.0f); v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHECKPARKED, Caller, 0, false); }};object DummyCheckParked : CommandScript{ DummyCheckParked() { SetGroupID(DummyGroup); } bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID) { } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { bool ParkinglotFound = false; Vector Pos = Caller->GetPosition(); GameObjectList cpl1 = Game::GetGameObjects(NAME_CONTROLPANEL); if(cpl1.GetNumObjects() > 0) GameObject cp1 = cpl1.GetObject(0); GameObjectList cpl2 = Game::GetGameObjects(NAME_CONTROLPANEL2); if(cpl2.GetNumObjects() > 0) GameObject cp2 = cpl2.GetObject(0); bool FS1Closer = false; bool FS2Closer = false; if (Math::dist(Pos.x, Pos.y, cp1.GetPosition().x, cp1.GetPosition().y) > Math::dist(Pos.x, Pos.y, cp2.GetPosition().x, cp2.GetPosition().y)) FS2Closer = true; else FS1Closer = true; Vehicle v(Caller); if(StrCompare(v.GetPrototypeFileName(), OBJ_BATTALION) == 0) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_BATTALION, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_BATTALION); ActorList l2 = Game::GetActors(VO_BATTALION2); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE02) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE03) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE04) == 0) { ActorList l2 = Game::GetActors(VO_TURNTO1); if (!Game::IsSquadInVirtualObject(VO_AMBULANCE01) && !Game::IsSquadInVirtualObject(VO_AMBULANCE02) && !Game::IsSquadInVirtualObject(VO_AMBULANCE03)) { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE01); } else if (Game::IsSquadInVirtualObject(VO_AMBULANCE01) && !Game::IsSquadInVirtualObject(VO_AMBULANCE02) && !Game::IsSquadInVirtualObject(VO_AMBULANCE03)) { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE02); } else if (Game::IsSquadInVirtualObject(VO_AMBULANCE01) && Game::IsSquadInVirtualObject(VO_AMBULANCE02) && !Game::IsSquadInVirtualObject(VO_AMBULANCE03)) { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE03); } else if (!Game::IsSquadInVirtualObject(VO_AMBULANCE01) && Game::IsSquadInVirtualObject(VO_AMBULANCE02) && !Game::IsSquadInVirtualObject(VO_AMBULANCE03)) { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE02); ActorList l3 = Game::GetActors(VO_AMBULANCE01); if(l3.GetNumActors() > 0) Vector Forward = l3.GetActor(0)->GetPosition(); GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE02, l4, ACTOR_VEHICLE); for (int i = 0; i < l4.GetNumObjects(); i++) { Vehicle m = l4.GetObject(i); m.PushActionMove(ACTION_NEWLIST, Forward); } } else if (!Game::IsSquadInVirtualObject(VO_AMBULANCE01) && !Game::IsSquadInVirtualObject(VO_AMBULANCE02) && Game::IsSquadInVirtualObject(VO_AMBULANCE03)) { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE02); ActorList l3 = Game::GetActors(VO_AMBULANCE01); if(l3.GetNumActors() > 0) Vector Forward = l3.GetActor(0)->GetPosition(); GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE03, l4, ACTOR_VEHICLE); for (int i = 0; i < l4.GetNumObjects(); i++) { Vehicle m = l4.GetObject(i); m.PushActionMove(ACTION_NEWLIST, Forward); } } else if (!Game::IsSquadInVirtualObject(VO_AMBULANCE01) && Game::IsSquadInVirtualObject(VO_AMBULANCE02) && Game::IsSquadInVirtualObject(VO_AMBULANCE03)) { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE03); ActorList l3 = Game::GetActors(VO_AMBULANCE01); if(l3.GetNumActors() > 0) Vector Forward = l3.GetActor(0)->GetPosition(); ActorList l4 = Game::GetActors(VO_AMBULANCE02); if(l4.GetNumActors() > 0) Vector Forward2 = l4.GetActor(0)->GetPosition(); float rot[9]; float childRot[9]; GameObjectList l5; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE02, l5, ACTOR_VEHICLE); for (int i = 0; i < l5.GetNumObjects(); i++) { Vehicle m = l5.GetObject(i); m.PushActionMove(ACTION_NEWLIST, Forward); } GameObjectList l6; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE03, l6, ACTOR_VEHICLE); for (int i = 0; i < l6.GetNumObjects(); i++) { Vehicle c = l6.GetObject(i); c.PushActionWait(ACTION_NEWLIST, 0.7f); c.PushActionMove(ACTION_APPEND, Forward2); } } else { Mission::PlayHint(HINT_NOSPACE_AMBULANCE); v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_PATROL, Caller, 0, false); return; } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE04, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE_AMBULANCE); v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_PATROL, Caller, 0, false); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_AMBULANCE04); ActorList l2 = Game::GetActors(VO_TURNTO8); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_USAR) == 0) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_USAR, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_USAR); ActorList l2 = Game::GetActors(VO_TURNTO2); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_LADDER, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); Game::ExecuteCommand(CMD_GOHOME, &v, &v); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_LADDER); ActorList l2 = Game::GetActors(VO_TURNTO3); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER2) == 0) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_LADDER2, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { Mission::PlayHint(HINT_NOSPACE); v.PushActionReturnToBase(ACTION_NEWLIST); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_LADDER2); ActorList l2 = Game::GetActors(VO_TURNTO6); } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0) { if(FS1Closer) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_ENGINE01, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE03, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_TOFIRESTATION, Caller, 0, false); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_ENGINE03); ActorList l2 = Game::GetActors(VO_TURNTO4); } } else { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE03, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { ActorList l1 = Game::GetActors(VO_ENGINE03); ActorList l5 = Game::GetActors(VO_ENGINE01); Vector Move = l5.GetActor(0)->GetPosition(); l4.GetObject(0)->PushActionMove(ACTION_NEWLIST, Move, true); } else ActorList l1 = Game::GetActors(VO_ENGINE01); ActorList l2 = Game::GetActors(VO_TURNTO4); ParkinglotFound = true; } } else if(FS2Closer) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_ENGINE05, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_TOFIRESTATION, Caller, 0, false); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_ENGINE05); ActorList l2 = Game::GetActors(VO_TURNTO7); } } } else if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0) { GameObjectList l3; Game::CollectObstaclesOnVirtualObject(VO_ENGINE02, l3, ACTOR_VEHICLE); if(l3.GetNumObjects() > 0) { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE04, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { v.PushActionExecuteCommand(ACTION_NEWLIST, CMD_TOFIRESTATION, Caller, 0, false); return; } else { ParkinglotFound = true; ActorList l1 = Game::GetActors(VO_ENGINE04); ActorList l2 = Game::GetActors(VO_TURNTO5); } } else { GameObjectList l4; Game::CollectObstaclesOnVirtualObject(VO_ENGINE04, l4, ACTOR_VEHICLE); if(l4.GetNumObjects() > 0) { ActorList l1 = Game::GetActors(VO_ENGINE04); ActorList l5 = Game::GetActors(VO_ENGINE02); Vector Move = l5.GetActor(0)->GetPosition(); l4.GetObject(0)->PushActionMove(ACTION_NEWLIST, Move, true); } else ActorList l1 = Game::GetActors(VO_ENGINE02); ActorList l2 = Game::GetActors(VO_TURNTO5); ParkinglotFound = true; } } if(ParkinglotFound) { if(l1.GetNumActors() > 0) { if (StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0) { Vector Park = l1.GetActor(0)->GetPosition(); float dx = 125.f, dy = 0.f, dz = 0.f; 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); Park = Park + Vector(dx, dy, 0); } else Vector Park = l1.GetActor(0)->GetPosition(); } if(l2.GetNumActors() > 0) Vector TurnTo = l2.GetActor(0)->GetPosition(); if (v.HasCommand(DUMMY_VCALLED)) v.RemoveCommand(DUMMY_VCALLED); if(StrCompare(v.GetPrototypeFileName(), OBJ_BATTALION) == 0) { v.PushActionMove(ACTION_APPEND, Park); v.PushActionTurnTo(ACTION_APPEND, TurnTo); } else { if(FS1Closer) v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 7, false); else v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 8, false); v.PushActionWait(ACTION_APPEND, 1.8f); v.PushActionMove(ACTION_APPEND, Park); v.PushActionTurnTo(ACTION_APPEND, TurnTo); v.PushActionWait(ACTION_APPEND, 0.5f); PersonList passengers = v.GetPassengers(); if (passengers.GetNumPersons() > 0 && (FS1Closer && cp1.HasCommand("VcmdAutoStaffOff")) || (FS2Closer && cp2.HasCommand("VcmdAutoStaffOff"))) v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_FIRESTATION, Caller, 0, false); v.PushActionWait(ACTION_APPEND, 2.2f); if(FS1Closer) v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 9, false); else v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 10, false); if (v.HasCommand(DUMMY_WARNINGLIGHTS)) { v.EnableBlinker(BLT_NONE); v.RemoveCommand(DUMMY_WARNINGLIGHTS); v.AssignCommand(CMD_WARNINGLIGHTS); } else v.EnableBlinker(BLT_NONE); } } }};object DummyAtFireStation : CommandScript{ DummyAtFireStation() { SetGroupID(DummyGroup); } bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID) { } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { Vehicle v(Caller); if(StrCompare(v.GetPrototypeFileName(), OBJ_BATTALION) == 0) ActorList l1 = Game::GetActors(VO_SPAWN02); else if(v.IsCollidingWithVirtualObject(VO_SQUAD01)) ActorList l1 = Game::GetActors(VO_SPAWN01); else if(v.IsCollidingWithVirtualObject(VO_SQUAD02)) ActorList l1 = Game::GetActors(VO_SPAWN03); else return; if(l1.GetNumActors() > 0) Vector Delete = l1.GetActor(0)->GetPosition(); PersonList passengers = v.GetPassengers(); if (passengers.GetNumPersons() > 0) { for(int i=0; i<passengers.GetNumPersons(); i++) { Person *p = passengers.GetPerson(i); p->PushActionLeaveCar(ACTION_NEWLIST, Caller); p->PushActionMove(ACTION_APPEND, Delete); p->PushActionDeleteOwner(ACTION_APPEND); } } }};object DummyEngine : CommandScript{ DummyEngine() { SetGroupID(DummyGroup); } bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID) { } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { }}; Edited December 22, 2010 by MikeyPI Made it a Coded Post. Quote Link to comment Share on other sites More sharing options...
Station27 Posted December 22, 2010 Report Share Posted December 22, 2010 You could use the LA Mod 2.0.8 4x4 Submod there is a ladder at both stations but the one at station 1 is the tiller so at the start you would need to send the tiller to HQ and spawn another tower and send it to the station. Quote Link to comment Share on other sites More sharing options...
Xplorer4x4 Posted December 22, 2010 Report Share Posted December 22, 2010 In latofire station fix this line:const char OBJ_OBJ_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p";If you do as I posted earlier, with hitting retry it will tell you what line the error is. Although its not always exact if your missing a bracket like this {. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 Ok I will keep trying Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 22, 2010 Report Share Posted December 22, 2010 const char OBJ_OBJ_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p"; that is in both scripts, make them look like this:const char OBJ_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p"; Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 I fixed OBJ_OBJ_LADDER2[] and tried it and got an error that said start at station script8c7b line 336. and when i spawn a ladder truck it still says no space. Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 22, 2010 Report Share Posted December 22, 2010 also, you need to have your VO_LADDER2 in the list as well, on both scripts. see if that kills it. also, make sure on your map that they are labeled correctly or that too will mess them up. but i know for sure both scripts need the VO_LADDER2 added to them. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 K I will try that Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 22, 2010 Report Share Posted December 22, 2010 make sure both scripts look alike, one has it as a hazmat VO and the other points to a LADDER2 VO that doesnt exist. if you just label it as LADDER2 and make the scripts match you should be money. i have been staring at that thing for like 25 min, lol. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 k thank you Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 22, 2010 Report Share Posted December 22, 2010 did that work???? Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 now it says lafirestationstart.script8ccfline:330 is the problem Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 22, 2010 Report Share Posted December 22, 2010 did you replace what you needed to? you needed to delete the VO_HAZMAT and replace with VO_LADDER2 and go down to where the ladder2 spawns and replace VO_HAZMAT with VO_LADDER2. see what that looks like for ya. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 no crash, but the truck did not spawn. Quote Link to comment Share on other sites More sharing options...
Texas_DPS Posted December 22, 2010 Report Share Posted December 22, 2010 post just the start script so i can see what it looks like now. i guess we will do this one at a time. Quote Link to comment Share on other sites More sharing options...
AlanReeder Posted December 22, 2010 Author Report Share Posted December 22, 2010 const char NAME_FIRESTATION[] = "fire_station";const char NAME_FIRESTATION_ROOF[] = "fire_station_roof";const char NAME_FIRESTATION2[] = "fire_station2";const char NAME_FIRESTATION2_ROOF[] = "fire_station2_roof";const char NAME_CONTROLPANEL[] = "fire_station_controlpanel";const char NAME_CONTROLPANEL2[] = "fire_station_controlpanel2";const char OBJ_AMBULANCE01[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance01.e4p";const char OBJ_AMBULANCE02[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance02.e4p";const char OBJ_BATTALION[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle.e4p";const char OBJ_USAR[] = "mod:Prototypes/Vehicles/02 LA Fire Department/usar_squad.e4p";const char OBJ_LADDER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder.e4p";const char OBJ_TILLER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/tiller_cabin.e4p";const char OBJ_ENGINE01[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine1.e4p";const char OBJ_ENGINE02[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine2.e4p";const char OBJ_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p";const char DUMMY_GATES[] = "DummyGates";const char DUMMY_ALARM[] = "DummyDisableAlarm";const char DUMMY_CALLCREW[] = "DummyCallCrew";const char VO_BATTALION[] = "fs_battalion";const char VO_AMBULANCE01[] = "fs_ambulance01";const char VO_AMBULANCE02[] = "fs_ambulance02";const char VO_AMBULANCE03[] = "fs_ambulance03";const char VO_AMBULANCE04[] = "fs_ambulance04";const char VO_USAR[] = "fs_usar";const char VO_LADDER[] = "fs_ladder";const char VO_ENGINE01[] = "fs_engine01";const char VO_ENGINE02[] = "fs_engine02";const char VO_ENGINE03[] = "fs_engine03";const char VO_ENGINE04[] = "fs_engine04";const char VO_ENGINE05[] = "fs_engine05";const char VO_LADDER2[] = "fs_ladder2";const char NAME_GATE01A[] = "fs_gate01a";const char NAME_GATE02A[] = "fs_gate02a";const char NAME_GATE03A[] = "fs_gate03a";const char NAME_GATE04A[] = "fs_gate04a";const char NAME_GATE05A[] = "fs_gate05a";const char NAME_GATE06A[] = "fs_gate06a";const char NAME_GATE07A[] = "fs_gate07a";const char NAME_GATE08A[] = "fs_gate08a";const char SND_ALARM[] = "mod:Audio/FX/Misc/fire_alarm.wav";const char UNNAMED[] = "Unnamed";object VcmdStart : CommandScript{ VcmdStart() { } bool CheckPossible(GameObject *Caller) { return true; } bool CheckTarget(GameObject *Caller, Actor *Target, int childID) { return true; } void PushActions(GameObject *Caller, Actor *Target, int ChildID) { VehicleList list3("Unnamed"); for(int i=0; i < list3.GetNumVehicles(); i++) { Vehicle *c = list3.GetVehicle(i); c->SetSmokeLevelDuration(25.f); } GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION); for(int i=0; i < l1.GetNumObjects(); i++) { GameObject *obj = l1.GetObject(i); if (!obj->IsSpecialLightEnabled()) { obj->EnableSpecialLights(true); Vector AlarmSnd = obj->GetPosition(); int soundID = Audio::PlaySample3D(SND_ALARM, AlarmSnd, true); obj->SetUserData(soundID); obj->AttachSound(soundID); } } GameObjectList l2 = Game::GetGameObjects(NAME_FIRESTATION2); for(int i=0; i < l2.GetNumObjects(); i++) { GameObject *obj = l2.GetObject(i); if (!obj->IsSpecialLightEnabled()) { obj->EnableSpecialLights(true); Vector AlarmSnd = obj->GetPosition(); int soundID = Audio::PlaySample3D(SND_ALARM, AlarmSnd, true); obj->SetUserData(soundID); obj->AttachSound(soundID); } } GameObjectList l3 = Game::GetGameObjects(NAME_CONTROLPANEL); for(int i=0; i < l3.GetNumObjects(); i++) { GameObject *obj = l3.GetObject(i); obj->AssignCommand("VcmdAutoStaffOff"); obj->AssignCommand(DUMMY_ALARM); obj->PushActionWait(ACTION_NEWLIST, 1.5f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 1, false); obj->PushActionWait(ACTION_APPEND, 16.0f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false); } GameObjectList l4 = Game::GetGameObjects(NAME_CONTROLPANEL2); for(int i=0; i < l4.GetNumObjects(); i++) { GameObject *obj = l4.GetObject(i); obj->AssignCommand("VcmdAutoStaffOff"); obj->AssignCommand(DUMMY_ALARM); obj->PushActionWait(ACTION_NEWLIST, 1.5f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 3, false); obj->PushActionWait(ACTION_APPEND, 16.0f); obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false); } GameObjectList l5 = Game::GetGameObjects(NAME_FIRESTATION_ROOF); for(int i=0; i < l5.GetNumObjects(); i++) { GameObject *obj = l5.GetObject(i); if(obj->GetUserData() == 0) { obj->Hide(); obj->SetUserData(1); } } GameObjectList l51 = Game::GetGameObjects(NAME_FIRESTATION2_ROOF); for(int i=0; i < l51.GetNumObjects(); i++) { GameObject *obj = l51.GetObject(i); if(obj->GetUserData() == 0) { obj->Hide(); obj->SetUserData(1); } } GameObjectList gate01a = Game::GetGameObjects(NAME_GATE01A); for(int i=0; i < gate01a.GetNumObjects(); i++) GameObject *gate1 = gate01a.GetObject(i); GameObjectList gate02a = Game::GetGameObjects(NAME_GATE02A); for(int i=0; i < gate02a.GetNumObjects(); i++) GameObject *gate2 = gate02a.GetObject(i); GameObjectList gate03a = Game::GetGameObjects(NAME_GATE03A); for(int i=0; i < gate03a.GetNumObjects(); i++) GameObject *gate3 = gate03a.GetObject(i); GameObjectList gate04a = Game::GetGameObjects(NAME_GATE04A); for(int i=0; i < gate04a.GetNumObjects(); i++) GameObject *gate4 = gate04a.GetObject(i); GameObjectList gate05a = Game::GetGameObjects(NAME_GATE05A); for(int i=0; i < gate05a.GetNumObjects(); i++) GameObject *gate5 = gate05a.GetObject(i); GameObjectList gate06a = Game::GetGameObjects(NAME_GATE06A); for(int i=0; i < gate06a.GetNumObjects(); i++) GameObject *gate6 = gate06a.GetObject(i); GameObjectList gate07a = Game::GetGameObjects(NAME_GATE07A); for(int i=0; i < gate07a.GetNumObjects(); i++) GameObject *gate7 = gate07a.GetObject(i); GameObjectList gate08a = Game::GetGameObjects(NAME_GATE08A); for(int i=0; i < gate08a.GetNumObjects(); i++) GameObject *gate8 = gate08a.GetObject(i); ActorList l6 = Game::GetActors(VO_BATTALION); for(int i=0; i < l6.GetNumActors(); i++) { Vector Battalion = l6.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_BATTALION, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Battalion); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetSpeed(12.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 4, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l7 = Game::GetActors(VO_AMBULANCE01); for(int i=0; i < l7.GetNumActors(); i++) { Vector Ambulance01 = l7.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance01); m.SetRotation(gate1); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false); } ActorList l8 = Game::GetActors(VO_AMBULANCE02); for(int i=0; i < l8.GetNumActors(); i++) { Vector Ambulance02 = l8.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance02); m.SetRotation(gate1); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionWait(ACTION_NEWLIST, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false); } ActorList l9 = Game::GetActors(VO_LADDER); for(int i=0; i < l9.GetNumActors(); i++) { Vector Ladder = l9.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_LADDER, UNNAMED); //NOTE: Change OBJ_LADDER to OBJ_TILLER to replace the tower with the tiller m.EnableBlueLights(false); m.SetPosition(Ladder); m.SetRotation(gate3); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 1.4f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l10 = Game::GetActors(VO_ENGINE01); for(int i=0; i < l10.GetNumActors(); i++) { Vector Engine01 = l10.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine01); m.SetRotation(gate4); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l11 = Game::GetActors(VO_ENGINE02); for(int i=0; i < l11.GetNumActors(); i++) { Vector Engine02 = l11.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine02); m.SetRotation(gate5); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l12 = Game::GetActors(VO_USAR); for(int i=0; i < l12.GetNumActors(); i++) { Vector Usar = l12.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_USAR, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Usar); m.SetRotation(gate2); m.UpdatePlacement(); m.SetMaxPassengers(4); m.SetSpeed(9.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 6, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 6, false); } ActorList l13 = Game::GetActors(VO_AMBULANCE04); for(int i=0; i < l13.GetNumActors(); i++) { Vector Ambulance04 = l13.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance04); m.SetRotation(gate8); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionWait(ACTION_NEWLIST, 4.5f); //m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); //m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 7, false); } ActorList l14 = Game::GetActors(VO_ENGINE05); for(int i=0; i < l14.GetNumActors(); i++) { Vector Engine04 = l14.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine04); m.SetRotation(gate7); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 4.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l15 = Game::GetActors(VO_LADDER2); for(int i=0; i < l15.GetNumActors(); i++) { Vector LADDER2 = l15.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_LADDER2, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ladder2); m.SetRotation(gate6); m.UpdatePlacement(); m.SetMaxPassengers(4); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 1.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 10, false); m.PushActionWait(ACTION_APPEND, 3.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 11, false); } ActorList l16 = Game::GetActors(VO_ENGINE03); for(int i=0; i < l16.GetNumActors(); i++) { Vector Engine03 = l16.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE01, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine03); m.SetRotation(gate4); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.0f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l17 = Game::GetActors(VO_ENGINE04); for(int i=0; i < l17.GetNumActors(); i++) { Vector Engine04 = l17.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_ENGINE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Engine04); m.SetRotation(gate5); m.UpdatePlacement(); m.SetMaxPassengers(6); m.SetSpeed(9.0f); m.PushActionWait(ACTION_NEWLIST, 3.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); m.PushActionWait(ACTION_APPEND, 1.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); } ActorList l18 = Game::GetActors(VO_AMBULANCE03); for(int i=0; i < l18.GetNumActors(); i++) { Vector Ambulance03 = l18.GetActor(0)->GetPosition(); Vehicle m = Game::CreateVehicle(OBJ_AMBULANCE02, UNNAMED); m.EnableBlueLights(false); m.SetPosition(Ambulance03); m.SetRotation(gate1); m.UpdatePlacement(); m.SetMaxPassengers(2); m.SetMaxTransports(1); m.SetSpeed(12.0f); m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false); m.PushActionWait(ACTION_APPEND, 0.5f); m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false); } System::Log("Fire stations activated!"); }}; Quote Link to comment Share on other sites More sharing options...