Jump to content
rgalante

Siren Script

Recommended Posts

I ediited the LASiren Script for my mod. I add new prototypes and changed some sirens. I Checked everything, i think, and went to the game. But the scripts isn't working, and i the vehicles dont have sirens :c . I Tried twice.

 

Here's the script. 

 

const char CMD_AUTOSIREN_OFF[] = "VcmdAutoSirenOff";const char EACTION_FINDPATH[]  = "EActionFindPath";const char EACTION_EXTINGUISH[]  = "EActionExtinguish";const char DUMMY_HASSIREN[]  = "DummyHasSiren";const char DUMMY_UPDATEPOS[]  = "DummyUpdatePos";const char DUMMY_FINDPATH[]  = "DummyFindPath";const char DUMMY_HOSESON[]  = "DummyHosesAreOn";const char NAME_DUMMYOBJECT[]  = "HelpingObjekt_Hoppah";const char DUMMY_GETTIL[]  = "DummyGetTiller";const char PROTO_SQUAD1[] = "mod:Prototypes/Vehicles/02 LA Fire Department/f550.e4p";const char PROTO_SQUAD2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/f5502.e4p";const char PROTO_ENGINE01[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine21.e4p";const char PROTO_ENGINE02[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine2.e4p";const char PROTO_ENGINE03[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine3.e4p";const char PROTO_ENGINE04[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine4.e4p";const char PROTO_ENGINE05[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine5.e4p";const char PROTO_ENGINE06[] = "mod:Prototypes/Vehicles/02 LA Fire Department/fire_engine1.e4p";const char PROTO_WATERTENDER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/water_tender.e4p";const char PROTO_LADDER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder5.e4p";const char PROTO_LADDER2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder2.e4p";const char PROTO_VTTU01[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder.e4p";const char PROTO_HAZMAT[] = "mod:Prototypes/Vehicles/02 LA Fire Department/hazmat_squad.e4p";const char PROTO_VTTU02[] = "mod:Prototypes/Vehicles/02 LA Fire Department/vttu02.e4p";const char PROTO_CRASHTENDER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/crashtender.e4p";const char PROTO_USAR[] = "mod:Prototypes/Vehicles/02 LA Fire Department/usar_squad.e4p";const char PROTO_MCU01[] = "mod:Prototypes/Vehicles/01 LA Ambulance/mass_casualty_unit.e4p";const char PROTO_BCV[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle.e4p";const char PROTO_BCV2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle2.e4p";const char PROTO_LEV[] = "mod:Prototypes/Vehicles/02 LA Fire Department/light_equipment_truck.e4p";const char PROTO_LEV2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/light_equipment_truck2.e4p";const char PROTO_HES[] = "mod:Prototypes/Vehicles/02 LA Fire Department/heavy_equipment_squad.e4p";const char PROTO_BRUSH[] = "mod:Prototypes/Vehicles/02 LA Fire Department/brush_truck.e4p";const char PROTO_BRUSH2[] = "mod:Prototypes/Vehicles/02 LA Fire Department/brush_truck2.e4p";const char PROTO_BRUSH3[] = "mod:Prototypes/Vehicles/02 LA Fire Department/brush_truck3.e4p";const char PROTO_USFS01[] = "mod:Prototypes/Vehicles/02 LA Fire Department/usfs_utility.e4p";const char PROTO_USFS02[] = "mod:Prototypes/Vehicles/02 LA Fire Department/usfs_engine.e4p";const char PROTO_EMS[] = "mod:Prototypes/Vehicles/01 LA Ambulance/emssup_model.e4p";const char PROTO_AMBULANCE01[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance01.e4p";const char PROTO_AMBULANCE02[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance02.e4p";const char PROTO_AMBULANCE03[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance03.e4p";const char PROTO_AMBULANCE04[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance04.e4p";const char PROTO_AMBULANCE05[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance05.e4p";const char PROTO_AMBULANCE06[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance06.e4p";const char PROTO_AMBULANCE07[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance07.e4p";const char PROTO_AMRAMBULANCE01[] = "mod:Prototypes/Vehicles/01 LA Ambulance/amrambulance01.e4p";const char PROTO_AMRAMBULANCE02[] = "mod:Prototypes/Vehicles/01 LA Ambulance/amrambulance02.e4p";const char PROTO_VMER[] = "mod:Prototypes/Vehicles/01 LA Ambulance/suv_rescue_dog.e4p";const char PROTO_MOTORCYCLE[] = "mod:Prototypes/Vehicles/03 LA Police/motorcycle_lapd.e4p";const char PROTO_CV_LAPD[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapd.e4p";const char PROTO_CV_LAPD2[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapd2.e4p";const char PROTO_CV_LAPD3[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapd3.e4p";const char PROTO_CV_LAPD4[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapd4.e4p";const char PROTO_CV_LAPD5[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapd5.e4p";const char PROTO_CV_LAPD_ST[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapd_slicktop.e4p";const char PROTO_CV_LAAP[] = "mod:Prototypes/Vehicles/03 LA Police/cv_laap.e4p";const char PROTO_CV_LAPP[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lapp.e4p";const char PROTO_CV_UMPC[] = "mod:Prototypes/Vehicles/03 LA Police/cv_umpc.e4p";const char PROTO_CV_UMPC_WHITE[] = "mod:Prototypes/Vehicles/03 LA Police/cv_umpc_white.e4p";const char PROTO_DC_UMPC[] = "mod:Prototypes/Vehicles/03 LA Police/dodge_charger_umpc.e4p";const char PROTO_DC_UMPC_BURGUNDY[] = "mod:Prototypes/Vehicles/03 LA Police/dodge_charger_umpc_burgundy.e4p";const char PROTO_DC_UMPC_NAVY[] = "mod:Prototypes/Vehicles/03 LA Police/dodge_charger_umpc_navy.e4p";const char PROTO_DC_UMPC_WHITE[] = "mod:Prototypes/Vehicles/03 LA Police/dodge_charger_umpc_white.e4p";const char PROTO_CV_CHP[] = "mod:Prototypes/Vehicles/03 LA Police/cv_chp.e4p";const char PROTO_CV_LASD[] = "mod:Prototypes/Vehicles/03 LA Police/cv_lasd.e4p";const char PROTO_LASD_VAN[] = "mod:Prototypes/Vehicles/03 LA Police/lasd_van.e4p";const char PROTO_CHARGER_CHP[] = "mod:Prototypes/Vehicles/03 LA Police/dodge_charger_chp.e4p";const char PROTO_CHARGER_LAPD[] = "mod:Prototypes/Vehicles/03 LA Police/dodge_charger_lapd.e4p";const char PROTO_SUV_LAPD[] = "mod:Prototypes/Vehicles/03 LA Police/suv_lapd.e4p";const char PROTO_SWAT_SUV[] = "mod:Prototypes/Vehicles/03 LA Police/swat_suv.e4p";const char PROTO_RESCUE01[] = "mod:Prototypes/Vehicles/03 LA Police/rescue_truck01_lapd.e4p";const char PROTO_RESCUE02[] = "mod:Prototypes/Vehicles/03 LA Police/rescue_truck02_lapd.e4p";const char PROTO_SWAT_TRUCK[] = "mod:Prototypes/Vehicles/03 LA Police/swat_truck.e4p";const char PROTO_WATERCANNON[] = "mod:Prototypes/Vehicles/03 LA Police/swat_armoured_vehicle.e4p";const char PROTO_HUMMERH2_LASD[] = "mod:Prototypes/Vehicles/03 LA Police/hummerh2_lasd.e4p";const char PROTO_BOMB_SQUAD[] = "mod:Prototypes/Vehicles/03 LA Police/suv_bomb_squad.e4p";const char PROTO_FBI_SUV[] = "mod:Prototypes/Vehicles/09 Government/fbi_suv.e4p";const char PROTO_FBI_COMMAND[] = "mod:Prototypes/Vehicles/09 Government/fbi_command.e4p";const char PROTO_HEAVY_RESCUE[] = "mod:Prototypes/Vehicles/02 LA Fire Department/heavy_rescue_crane.e4p";const char PROTO_AEM1[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambu_inem_01.e4p";const char PROTO_AEM3[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambu_inem_03.e4p";const char PROTO_VMER_SFX[] = "mod:Prototypes/Vehicles/01 LA Ambulance/hummerh2_rc.e4p";const char PROTO_ABSC1[] = "mod:Prototypes/Vehicles/01 LA Ambulance/amora_ambulance01.e4p";const char PROTO_ABSC2[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ems_sup.e4p";const char PROTO_ABSC3[] = "mod:Prototypes/Vehicles/01 LA Ambulance/amora_ambulance03.e4p";const char PROTO_ABSC_03[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambu03.e4p";const char PROTO_ABSC_02[] = "mod:Prototypes/Vehicles/01 LA Ambulance/amrambulance03.e4p";const char PROTO_CVP1[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance02.e4p";const char PROTO_CVP2[] = "mod:Prototypes/Vehicles/01 LA Ambulance/ambulance03.e4p";const char PROTO_ABSC_07[] = "mod:Prototypes/Vehicles/01 LA Ambulance/amrambulance07.e4p";const char PROTO_VCOC[] = "mod:Prototypes/Vehicles/02 LA Fire Department/aerial_ladder3.e4p";const char PROTO_VTGC[] = "mod:Prototypes/Vehicles/02 LA Fire Department/water_tanker.e4p";int DummyGroup = 23;object VcmdSiren : CommandScript{VcmdSiren(){SetIcon("sirenson");SetCursor("sirens");SetRestrictions(RESTRICT_SELFEXECUTE);SetPossibleCallers(ACTOR_VEHICLE);  SetGroupID(DummyGroup);  SetGroupLeader(true);}bool CheckPossible(GameObject *Caller){if (!Caller->IsValid())return false;if (Caller->HasCommand(DUMMY_HASSIREN))SetIcon("sirensoff");elseSetIcon("sirenson");if(Caller->HasCommand(DUMMY_HOSESON))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){Vehicle v(Caller);if (!v.HasCommand(DUMMY_HASSIREN)){if (!v.IsBlueLightEnabled()){v.EnableBlueLights(true);}int soundID;Vector CarPos = v.GetPosition();  if (StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE01) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_LADDER) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_BRUSH) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE05) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE06) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_WATERTENDER) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_VTTU02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CRASHTENDER) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_BRUSH2) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_BRUSH3) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_HES) == 0) ||                          StrCompare(v.GetPrototypeFileName(), PROTO_VCOC) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_SQUAD2) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_SQUAD1) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_BCV) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_MCU01) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_HAZMAT) == 0) ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/VUCI_VAMA.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/VUCI_VAMA.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_USFS01) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE03) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_USFS02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_USAR) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_HEAVY_RESCUE) == 0) ||  StrCompare(v.GetPrototypeFileName(), PROTO_FBI_COMMAND) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_VTTU01) == 0) ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/ATV.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/ATV.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_CHARGER_CHP) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE04) == 0 ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/whelen.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/whelen.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_MOTORCYCLE) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPD) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPD2) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPD3) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPD4) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPD5) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPD_ST) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAAP) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LAPP) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_CHP) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_LASD) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_UMPC) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_SWAT_TRUCK) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_SUV_LAPD) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_CV_UMPC_WHITE) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_BOMB_SQUAD) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_LASD_VAN) == 0) ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/PSP.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/PSP.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_CVP1) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_CV_UMPC_WHITE) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_DC_UMPC) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_DC_UMPC_BURGUNDY) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_DC_UMPC_NAVY) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_DC_UMPC_WHITE) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_WATERCANNON) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC3) == 0) ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren11.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren12.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_VMER) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_SWAT_SUV) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE05) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AEM03) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE07) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_HUMMERH2_LASD) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_BCV2) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_LEV) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_FBI_SUV) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_LEV2) == 0) ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/VAMA_AMBO.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/VAMA_AMBO.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_LADDER2) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_VTGC) == 0 ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren01.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Siren02.wav", CarPos, true);}  }  else if (StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE01) == 0 ||   StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE03) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE04) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE06) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMRAMBULANCE01) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMRAMBULANCE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_03) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_07) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_AEM1) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_EMS) == 0)  ||                        StrCompare(v.GetPrototypeFileName(), PROTO_CVP2) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC1) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC2) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE01) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE02) == 0) ||  {int random = Math::rand()%2;if (random == 0){   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Fujita.wav", CarPos, true);} else{   soundID = Audio::PlaySample3D("mod:Audio/FX/Sirens/Fujita.wav", CarPos, true);}  }int CarID = v.GetID();GameObject mDummy =  Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p", NAME_DUMMYOBJECT);v.AssignCommand(DUMMY_HASSIREN);v.SetUserData(soundID);mDummy.Hide();//mDummy.SetUserData(v.GetID());mDummy.SetUserData(soundID);mDummy.AttachSound(soundID);mDummy.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_UPDATEPOS, &v, 0, false);return;}if (v.HasCommand(DUMMY_HASSIREN)){System::Log("Stop sample via VcmdSiren");if (childID == 1){v.EnableBlueLights(false);}int CarID = v.GetUserData();int ref = v.GetUserData();v.UnattachSound(ref);Audio::StopSample(ref);int mSirTest;GameObjectList list = Game::GetGameObjects(NAME_DUMMYOBJECT);for(int i=0; i<list.GetNumObjects(); i++){GameObject *obj = list.GetObject(i);if (obj->GetUserData() == CarID){mSirTest = i;}}GameObject *obj = list.GetObject(mSirTest);obj->PushActionDeleteOwner(ACTION_NEWLIST);if (v.HasCommand(DUMMY_HASSIREN))v.RemoveCommand(DUMMY_HASSIREN);return;}}};object DummyUpdatePos : CommandScript{DummyUpdatePos(){SetGroupID(DummyGroup);}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){}   void PushActions(GameObject *Caller, Actor *Target, int childID){Vehicle v(Target);GameObject mDummy(Caller);if (v.IsDestroyed() || !v.IsValid()){int ref = mDummy.GetUserData();mDummy.UnattachSound(ref);Audio::StopSample(ref);if (v.HasCommand(DUMMY_HASSIREN))v.RemoveCommand(DUMMY_HASSIREN);mDummy.PushActionDeleteOwner(ACTION_NEWLIST);} else {if (v.IsCurrentAction(EACTION_FINDPATH)){if (!v.HasCommand(DUMMY_FINDPATH)){v.AssignCommand(DUMMY_FINDPATH);}}Vector vPos = v.GetPosition();mDummy.SetPosition(vPos);mDummy.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_UPDATEPOS, Target, childID, false); }if (v.HasCommand(DUMMY_FINDPATH)){if (!v.IsCurrentAction(EACTION_FINDPATH) && v.HasCommand(CMD_AUTOSIREN_OFF) && (v.GetNumActions() == 0 || v.IsCurrentAction(EACTION_EXTINGUISH))){if (v.HasCommand(DUMMY_HASSIREN))v.RemoveCommand(DUMMY_HASSIREN);if (v.HasCommand(DUMMY_FINDPATH))v.RemoveCommand(DUMMY_FINDPATH);int CarID = v.GetUserData();int ref = v.GetUserData();v.UnattachSound(ref);Audio::StopSample(ref);GameObjectList list = Game::GetGameObjects(NAME_DUMMYOBJECT);for(int i = 0; i < list.GetNumObjects(); i++){int mSirTest;GameObject *obj = list.GetObject(i);if (obj->GetUserData() == CarID){mSirTest = i;GameObject *obj = list.GetObject(mSirTest);obj->PushActionDeleteOwner(ACTION_NEWLIST);if (v.HasCommand(DUMMY_HASSIREN))v.RemoveCommand(DUMMY_HASSIREN);if (v.HasCommand(DUMMY_FINDPATH))v.RemoveCommand(DUMMY_FINDPATH);}}}}}};object DummyDisableSiren : CommandScript{DummyDisableSiren(){SetGroupID(DummyGroup);}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){}   void PushActions(GameObject *Caller, Actor *Target, int childID){Vehicle v(Caller);if (childID == 1){v.EnableBlueLights(false);}//int CarID = v.GetID();int CarID = v.GetUserData();int ref = v.GetUserData();v.UnattachSound(ref);Audio::StopSample(ref);GameObjectList list = Game::GetGameObjects(NAME_DUMMYOBJECT);for(int i = 0; i < list.GetNumObjects(); i++){GameObject *obj = list.GetObject(i);if (obj->GetUserData() == CarID){int mSirTest = i;GameObject *obj = list.GetObject(mSirTest);obj->PushActionDeleteOwner(ACTION_NEWLIST);if (v.HasCommand(DUMMY_HASSIREN))v.RemoveCommand(DUMMY_HASSIREN);if (v.HasCommand(DUMMY_FINDPATH))v.RemoveCommand(DUMMY_FINDPATH);if (v.HasCommand(DUMMY_GETTIL))v.SetUserData(v.GetID());}}}};object DummyFindPath : CommandScript{DummyFindPath(){SetGroupID(DummyGroup);}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){return false;}   void PushActions(GameObject *Caller, Actor *Target, int childID){}};object DummyHasSiren : CommandScript{DummyHasSiren(){SetGroupID(DummyGroup);}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){return false;}   void PushActions(GameObject *Caller, Actor *Target, int childID){}};

 

Edited by Newfoundking
made script a code
Link to comment
Share on other sites

I Checked the commands on the editor. Two vehicles on the script didnt had them. I add them but i still dont have sirens. 

 

BTW it gives me a script error when i move an unit. I'il see if i can which error is gave.

Link to comment
Share on other sites

I'm guessing the entire string that checks for prototypes (if <lots of protos>, else if <lots of protos>, else if <lots of protos>, else if <lots of protos>) is too long. It's easier for me to check the script with added tabs. Can you upload the script in a rar or zip file?

 

edit, found errors:

  else if (StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE01) == 0 ||   StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE03) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE04) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE06) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMRAMBULANCE01) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMRAMBULANCE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_03) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_07) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_AEM1) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_EMS) == 0)  ||                        StrCompare(v.GetPrototypeFileName(), PROTO_CVP2) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC1) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC2) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE01) == 0) ||                        StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE02) == 0) ||

Double check the closing brackets on parts like this. Did you noticed the additional ) added to the line PROTO_ABSC_03 (after the null) and down? It's not there in the first 8 lines. That closing bracket is there to close to entire IF string because it relates to the very first opening bracket. Also the OR operator (the ||) at the end isn't supposed to be there. Therefore, that part should look like this.

  else if (StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE01) == 0 ||   StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE03) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE04) == 0 ||StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMBULANCE06) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMRAMBULANCE01) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_AMRAMBULANCE02) == 0 ||  StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_03) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC_07) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_AEM1) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_EMS) == 0  ||                        StrCompare(v.GetPrototypeFileName(), PROTO_CVP2) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC1) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_ABSC2) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE01) == 0 ||                        StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE02) == 0)

basically that code is saying:

else if  ( (PROTOCHECK1) ||  (PROTOCHECK2) ||  (PROTOCHECK3) ||  (PROTOCHECK4) )

note the brackets that enclose the entire check and the brackets that enclose each individual comparison.

 

All the other comparison strings have similar errors. :)

 

Good luck fixing that first. Hopefully I was clear enough. With all the 'else if' parts, the entire statement may still be too long.

 

 

 

Sowwie fow my English.

Link to comment
Share on other sites

Here´s the error.

Untitled.png

I'il check the number of { now

I'm guessing the entire string that checks for prototypes (if <lots of protos>, else if <lots of protos>, else if <lots of protos>, else if <lots of protos>) is too long. It's easier for me to check the script with added tabs. Can you upload the script in a rar or zip file?

There ya go :D - http://www.4shared.com/rar/S1g4GvDpba/LASiren.html?

(*Sorry for the double post :P )

Link to comment
Share on other sites

That appears to be an issue with your StrCompare(v.GetPrototypeFileName) lines being too long. For each else if statement, you can only have around 10 or so StrCompare otherwise it will do that. To fix this, create a similar else if condition for the rest of the remaining prototypes you wish to StrCompare.

Link to comment
Share on other sites

That appears to be an issue with your StrCompare(v.GetPrototypeFileName) lines being too long. For each else if statement, you can only have around 10 or so StrCompare otherwise it will do that. To fix this, create a similar else if condition for the rest of the remaining prototypes you wish to StrCompare.

 

You can also make and assign dummy commands and just use v.HasCommand("DummyHere"). It avoids the oversized argument issue, and all it takes is simply adding a specific dummy to the proto in the editor and you never have to touch that script again when you add new vehicles.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...