-
Posts
4,836 -
Joined
-
Last visited
-
Days Won
8
Content Type
Profiles
Forums
Calendar
Tutorials
Downloads
Gallery
Everything posted by Xplorer4x4
-
Ok what about w00ds maps? I assume I do need your permission to since you published the updated maps? Quick technical question, does disabling units in freeplaybase.xml accomplish the same factor in loading times as deleting the prototypes?
-
Good suggestion. I forgot about that. That work around has worked for me several times.
-
No it uses mission SCRIPTS for freeplay.
-
Thanks to the guys helping me test, I am working on fixing some bugs. Hoppah also has given permission to release this so I hope to have this released by the end of this coming weekend. I also jumped head and started making this compatible with w00ds first map. I have done some small changes to the actual map texture like adding a parking lot to the police station, and some small changes near FS1. The maps also use Hoppahs old model for FS2. I may or may not update this depending on where it would fit with out doing a lot of changes to the surrounding buildings and no major changes to the texture. EDIT: Just heard from w00ds. He is sending me the map textures now. I may use the changes in the texture for when I update Hoppahs release of w00ds maps for those of you who like to add units parked on the map, and such.
-
NO! You cant go, you have to finish the project first! Anyways good luck with your program.
-
Ok thanks for the info. Made any progress on the other units?
-
On second thought that wouldnt work even if you fixed the script error.
-
Ill think about changing the name, but thanks for permission! Can I release all the files or only the changed files? Reason I ask is I was thinking of deleting some vehicles from the mod. Just 2 small examples, in the LA Mod 2.0 map I dont see a need for USFS or LAAP(LAX) Police since there is no forest and no airport. This would keep the size down a bit and maybe improve load times slightly. And can I aslo release this using w00ds maps? Do I have to contact w00ds for his permission(which I think he already gave permission for people to use if memory serves me right)?
-
I havent checked shanes script to see exactly how he modified it, but try this. Open the script file in notepad, or better yet, notepad2(google it). Find: object PcmdCallLightForce : CommandScript Now delete that line, and every line after it until you see: object PcmdCallUSARSquad : CommandScript Do not delete that line. Now above the copy and paste this: object PcmdCallLightForce : CommandScript { PcmdCallLightForce() { SetIcon("calllightforce"); 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_BATLIGHTFORCE, Caller->GetPosition()); else if(StrCompare(Caller->GetPrototypeFileName(), OBJ_EMS_CAPTAIN) == 0) Audio::PlaySample3D(SND_EMSLIGHTFORCE, Caller->GetPosition()); Vehicle *theCar = NULL; float bestCar = 0.; VehicleList patrolCars(VT_FIREFIGHTERS_DLK, VT_FIREFIGHTERS_RW); for (int i = 0; i < patrolCars.GetNumVehicles(); i++) { Vehicle *aCar = patrolCars.GetVehicle(i); if ((StrCompare(aCar->GetPrototypeFileName(), OBJ_LADDER) == 0 || StrCompare(aCar->GetPrototypeFileName(), OBJ_TILLER) == 0) && aCar->GetPlayerMP() == Caller->GetPlayerMP() && !aCar->HasCommand(DUMMY_VCALLED) && !aCar->IsInstalled() && (aCar->HasCommand(CMD_STANDBY_OFF) || aCar->IsCollidingWithVirtualObject(VO_SQUAD01))) { 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->PushActionWait(ACTION_NEWLIST, 0.3f); 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)) { GameObjectList ppc; Game::CollectObstaclesOnVirtualObject(VO_TILLER, ppc, ACTOR_VEHICLE); for (int i = 0; i < ppc.GetNumObjects(); i++) { Vehicle v = ppc.GetObject(i); 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); GameObjectList gate03a = Game::GetGameObjects(OBJ_GATE03A); for(int i=0; i < gate03a.GetNumObjects(); i++) GameObject *gate = gate03a.GetObject(i); PersonList passengers = v.GetPassengers(); if (passengers.GetNumPersons() == 0) { v.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 3, false); v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); v.PushActionWait(ACTION_APPEND, 10.f); } if (gate->GetUserData() == 0) { v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false); 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]); float dx = 750.f, dy = 0.f, dz = 0.f; 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_GATES, Caller, 5, false); v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false); v.PushActionMove(ACTION_APPEND, CmdPos); } else { 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); } if (v.HasCommand(CMD_FLOODLIGHTS_OFF)) { v.EnableSpecialLights(false); v.RemoveCommand(CMD_FLOODLIGHTS_OFF); v.AssignCommand(CMD_FLOODLIGHTS_ON); } Mission::PlayHint(HINT_DISPATCHED); if (Input::LCtrlPressed() || Input::RCtrlPressed()) return; bool Vehicle2Called = false; bool Engine04 = false; if (!Vehicle2Called) { GameObjectList l1; Game::CollectObstaclesOnVirtualObject(VO_ENGINE02, l1, ACTOR_VEHICLE); if(l1.GetNumObjects() > 0) { Vehicle e = l1.GetObject(0); if (!e.HasCommand(DUMMY_VCALLED)) { e.AssignCommand(DUMMY_VCALLED); Vehicle2Called = true; } else Engine04 = true; } else Engine04 = true; } if (!Vehicle2Called && Engine04) { GameObjectList l1; Game::CollectObstaclesOnVirtualObject(VO_ENGINE04, l1, ACTOR_VEHICLE); if(l1.GetNumObjects() > 0) { Vehicle e = l1.GetObject(0); if (!e.HasCommand(DUMMY_VCALLED)) { e.AssignCommand(DUMMY_VCALLED); Vehicle2Called = true; } } } if (!Vehicle2Called && Engine04) { Mission::PlayHint(HINT_NOENGINE); return; } if (Vehicle2Called) { if (e.IsBlueLightEnabled() && (Input::LShiftPressed() || Input::RShiftPressed())) e.EnableBlueLights(false); else if (!e.IsBlueLightEnabled() && !Input::LShiftPressed() && !Input::RShiftPressed()) e.EnableBlueLights(true); GameObjectList gate05a = Game::GetGameObjects(OBJ_GATE05A); for(int i=0; i < gate05a.GetNumObjects(); i++) GameObject *gate = gate05a.GetObject(i); PersonList passengers = e.GetPassengers(); if (passengers.GetNumPersons() == 0) { e.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 3, false); e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false); e.PushActionWait(ACTION_APPEND, 7.f); } if (gate->GetUserData() == 0) { e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false); Vector Move = e.GetPosition(); float r[9]; float childr[9]; e.GetRotation(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]); float dx = 1050.f, dy = 0.f, dz = 0.f; 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); e.PushActionWait(ACTION_APPEND, 1.2f); if (!e.HasCommand(DUMMY_HASSIREN) && e.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed()) e.PushActionExecuteCommand(ACTION_APPEND, CMD_SIREN, Caller, 0, false); e.PushActionMove(ACTION_APPEND, Move); e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false); e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false); e.PushActionMove(ACTION_APPEND, CmdPos); } else { if (!e.HasCommand(DUMMY_HASSIREN) && e.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed()) e.PushActionExecuteCommand(ACTION_APPEND, CMD_SIREN, Caller, 0, false); e.PushActionExecuteCommand(ACTION_APPEND, DUMMY_VCALLED, Caller, 0, false); e.PushActionMove(ACTION_APPEND, CmdPos); } if (e.HasCommand(CMD_STANDBY_OFF)) { e.RemoveCommand(CMD_STANDBY_OFF); e.AssignCommand(CMD_STANDBY_ON); } if (e.HasCommand(CMD_WARNINGLIGHTS_OFF)) { e.EnableBlinker(BLT_NONE); e.RemoveCommand(CMD_WARNINGLIGHTS_OFF); e.AssignCommand(CMD_WARNINGLIGHTS_ON); } if (e.HasCommand(CMD_FLOODLIGHTS_OFF)) { e.EnableSpecialLights(false); e.RemoveCommand(CMD_FLOODLIGHTS_OFF); e.AssignCommand(CMD_FLOODLIGHTS_ON); } return; } } } Vector Spawn; Vector Rotate; ActorList l1 = Game::GetActors(VO_SPAWN_ALL); ActorList l2 = Game::GetActors(VO_SPAWN_FD); ActorList l3 = Game::GetActors(VO_SPAWN_ALLR); ActorList l4 = Game::GetActors(VO_SPAWN_FDR); if(l1.GetNumActors() > 0) { Spawn = l1.GetActor(0)->GetPosition(); Rotate = l3.GetActor(0)->GetPosition(); } else if(l2.GetNumActors() > 0) { Spawn = l2.GetActor(0)->GetPosition(); Rotate = l4.GetActor(0)->GetPosition(); } else { Mission::PlayHint(HINT_NOLADDER); return; } System::Log("Buy light force engine"); bool BuyAerialOnly = false; int Money = Mission::GetMoneyLeft(); if (Money <= 4000) { Mission::PlayHint(HINT_NOLADDER); return; } else if (Input::LCtrlPressed() || Input::RCtrlPressed()) BuyAerialOnly = true; else if (Money <= 8000) BuyAerialOnly = true; if (BuyAerialOnly) int NewMoney = Money - 4000; else int NewMoney = Money - 8000; Mission::SetMoney(NewMoney); Vehicle n; Person p1; Person p2; n = Game::CreateVehicle(OBJ_LADDER, UNNAMED); n.SetSpeed(9.0f); p1 = Game::CreatePerson(OBJ_EMT, UNNAMED); p2 = Game::CreatePerson(OBJ_EMT, UNNAMED); n.SetPlayerMP(Caller->GetPlayerMP()); p1.SetPlayerMP(Caller->GetPlayerMP()); p2.SetPlayerMP(Caller->GetPlayerMP()); p1.SetUpgradeLevel(3); p2.SetUpgradeLevel(3); n.SetMaxPassengers(6); n.SetMaxTransports(0); n.AddPassenger(&p1); n.AddPassenger(&p2); n.SetPosition(Spawn); n.UpdatePlacement(); n.Hide(); n.PushActionTurnTo(ACTION_NEWLIST, Rotate); n.PushActionWait(ACTION_APPEND, 3.5f); n.PushActionShowHide(ACTION_APPEND, false); n.PushActionMove(ACTION_APPEND, CmdPos); if (Game::IsMission()) n.RemoveCommand("VcmdToFireStation"); if (!n.HasCommand(DUMMY_HASSIREN) && n.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed()) Game::ExecuteCommand(CMD_SIREN, &n, &n); if (BuyAerialOnly) Mission::PlayHint(HINT_LADDERBOUGHT); else if (!BuyAerialOnly) { Vehicle m; Person p3; Person p4; Person p5; Person p6; m = Game::CreateVehicle(OBJ_ENGINE02, UNNAMED); m.SetSpeed(9.0f); p3 = Game::CreatePerson(OBJ_EMT, UNNAMED); p4 = Game::CreatePerson(OBJ_EMT, UNNAMED); p5 = Game::CreatePerson(OBJ_EMT, UNNAMED); p6 = Game::CreatePerson(OBJ_EMT, UNNAMED); m.SetPlayerMP(Caller->GetPlayerMP()); p3.SetPlayerMP(Caller->GetPlayerMP()); p4.SetPlayerMP(Caller->GetPlayerMP()); p5.SetPlayerMP(Caller->GetPlayerMP()); p6.SetPlayerMP(Caller->GetPlayerMP()); p3.SetUpgradeLevel(3); p4.SetUpgradeLevel(3); p5.SetUpgradeLevel(3); p6.SetUpgradeLevel(3); m.SetMaxPassengers(6); m.SetMaxTransports(0); m.AddPassenger(&p3); m.AddPassenger(&p4); m.AddPassenger(&p5); m.AddPassenger(&p6); m.SetPosition(Spawn); m.UpdatePlacement(); m.Hide(); m.PushActionTurnTo(ACTION_NEWLIST, Rotate); m.PushActionWait(ACTION_APPEND, 1.0f); m.PushActionShowHide(ACTION_APPEND, false); m.PushActionMove(ACTION_APPEND, CmdPos); if (Game::IsMission()) m.RemoveCommand("VcmdToFireStation"); if (!m.HasCommand(DUMMY_HASSIREN) && m.HasCommand(CMD_AUTOSIREN_OFF) && !Input::LShiftPressed() && !Input::RShiftPressed()) Game::ExecuteCommand(CMD_SIREN, &m, &m); Mission::PlayHint(HINT_LIGHTFORCEBOUGHT); } } }; I cant promise this will work, so keep chances script handy just in case this gives you a script error.
-
I know, and know that you mention it, I wouldnt argue with that but unziping the exe isnt that big of a deal either.
-
Have you guys disabled the default dispatcher in the game; the ausie/english guy?
-
Language Problem with la mod in emergency 4 deluxe
Xplorer4x4 replied to keepachris's topic in Technical Related Support
2 options, one, if you have 911:FR you can use some files from that mod to translate the dispatcher, or, even better imo, search for the supervisor mod. This will replace the dispatcher(narrator) through out the entire game and all mods as this part of the game is not included in any mods, at this point. -
Billy, grab something called universal extractor, it will alow you to unzip the exe file for direct access to the files, or you can point the installer to your desktop and it will install the files there and you can get access to them that way.
-
So in other words this is for the average user, and if we know what we are doing in terms of merging submods, then we should be able to merge them just fine with out any problems? Also can you check the copyright topic? Thanks for all the info.
-
A Guide to the LAFD and assisting agencies....
Xplorer4x4 replied to MikesPhotos's topic in Los Angeles Mod
Direct quote from Mikes Flickr: Wildland fires and disasters require up to the minute maps and information. This vehicle allows the GIS techs to create close to real time maps from the data aquired by forward observers and specially equipped helicopters. It's bassically a giant mobile office with large printers and special computer equipment. -
One thing I noticed with the 2 fire engines, they barley have any radiation. Try dragging the area out more. Also, do you plan to get rid of the blue lights on one of the engines? It really clashes seeing as there is so much red lighting on there, but thats my oppinion. Keep up the good work! Anxious for you to release more units because it adds an awesome amount of variety imo by having your lights mixed with Tony's Lights, PRL, and PRL LED.
-
Civil Cars Cooperation (Available for download)
Xplorer4x4 replied to skaihof's topic in Development Resources
I assumed the game just picked vehicles out of the civil folder, didnt realize vehicles had to be assigned to the spawn point. Thanks for clearing this up, cant wait for you to fix this. -
Yes I was so mean because I said I cant see a difference from that far away. I have actually said a few nice things despite finding yet another NY mod virtually pointless at this stage unless they can live up to NY Mod and QRA. Why not? Other modelers fix the holes in there models, so why wouldnt you be able to?
-
Awesome, i love how the side door is left open! Gives it a nice touch of realism since rig doors dont always stay closed.
-
Could this Aparatus be made ingame and work?
Xplorer4x4 replied to Texas_DPS's topic in Modding Related Support
I am certain it can be scripted, its just a matter of finding the way to make it work. I asked MikeyPI about this some time ago, and he said the script would be similar to one of Hoppahs, where it makes the engines function as two vehicle types. So in theory I guess you need to combine the vehicle type for an engine, and for a ladder in to one. Anyways back to the original point, the problem I see is that since its a straight stick ladder like the tiller, at this time, it wouldnt allow you to do rescue. It would serve as an aerial assault on the fire but nothing more. -
Why is that? Thanks for the update none the less. So how come the freeplay map files were included if there were no freeplay changes? Is it because its combined with patch1?
-
Delete the mod folder, and then try to install it again.
-
Id prefer PM for now.
-
In the future, hit retry, and it will give you a line number. I already fixed that, just forgot to slip it in to the mod I sent out. Here's the fixed one. And you can PM me, Moo, if you want.
-
Heres a pretty complete list of changes if that will help decide if you will approve this for release. Thanks!