-
Posts
763 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Calendar
Tutorials
Downloads
Gallery
Posts posted by The Loot
-
-
Looks OK, but sounds like more a hassle than useful.
I'd like to see how you got it working so you can drop the patient and leave the stretcher; I couldn't get that last to work correctly (it always left the stretcher object on the map) so I don't use it.
-
That explains why some of my ambulances only open one of their rear doors when used.
-
Yes. Organization makes working with, loading, and distgributing a mod much easier.
Plus getting rid of stuff you know you won't use means you don't have to worry about permissions for it anymore. I know other mods have been forced to do some work when unused assets were included without permission.
-
What exactly does giving a group value do? I'm guessing that if multiple doors have the same value, they'd all open when one does, but I'm not sure.
-
Looks like you need lines to hide the person after being picked up, and to enable the correct patient child on the unit.
I have it working in my script; not currently on that PC so I can't post it.Edit: Here we go. Here's what my Lift script looks like in my LA mod. "DummyLiftStretcher" is what handles the various actions that need to happen after picking the person up with a stretcher. I changed the command names into English and tweaked other things somewhat, too, so just use this as an example.
The only issue I ran into with the Stryker was that when transporting the patient from the ambulance to the hospital, the patient would reappear, the unit would wig out and start spinning around while trying to walk, and sometimes getting stuck doing that and never get into the hospital. I fixed this by moving the PutInBase action before the move action so the patient gets removed before that..
//**********************************************************************************//
// Scripts by Hoppah, Modified by Xplorer4x4, YSB, and The Loot. //
//**********************************************************************************//
const char HINT_NOT_DEAD[] = "This person is still alive!";
const char PER_COR[] = "mod:Prototypes/Persons/01 LA Ambulance/coroners.e4p";
int DummyGroup = 20;
object Lift : CommandScript
{
Lift()
{
SetIcon("liftperson");
SetCursor("liftperson");
SetValidTargets(ACTOR_PERSON);
SetGroupID(CGROUP_CARRY_PERSON);
SetGroupLeader(true);
SetPriority(400);
SetSelfClickActivation(true);
SetPossibleExists(CPE_DROWNING_PERSONS | CPE_INJURED_PERSON);
SetPossibleEquipment(EQUIP_NONE);
}
bool CheckGroupVisibility(GameObject *Caller)
{
if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)
return false;
Person p(Caller);
if (p.IsCarryingPerson())
return false;
if (p.HasCommand("Dive"))
return Game::ExistsDrowningPerson();
return Game::ExistsInjuredPerson();
}
bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
{
if(!Caller->IsValid() || Caller->IsEquipped() || !Target->IsValid() || Target->GetID() == Caller->GetID())
return false;
Person p(Caller);
Person t(Target);
if (StrCompare(p.GetPrototypeFileName(), PER_COR) != 0 && t.HasCommand("DummyBlanket"))
return false;
// if (p.IsParamedicTeam() && !t.HasCommand("DummyHealed"))
// return false;
if(p.IsValid() && !p.IsCarryingPerson()&& !p.IsLinkedWithPerson() && !p.IsPulling() && t.IsValid() && t.IsInjured() && !t.IsCarried() && t.GetRole()!=ROLE_ANIMAL && !t.IsRescueDog())
{
if (p.GetEnteredCarID() != -1 && p.GetEnteredCarTargetID() != t.GetEnteredHouseID())
return false;
if (p.GetEnteredCarID() == -1 && t.GetEnteredHouseID() != -1 && t.GetEnteredHouseID() != p.GetEnteredHouseID() && !t.IsInHouseWithGroundEntrance())
return false;
if (p.HasCommand("Dive") && !t.IsDrowning())
return false;
if(!p.HasCommand("Dive") && t.IsDrowning())
return false;
if(p.IsCurrentAction("EActionTreatPerson"))
return false;
return true;
}
return false;
}
void PushActions(GameObject *Caller, Actor *Target, int childID)
{
Person p(Caller);
Person t(Target);
if(StrCompare(p.GetPrototypeFileName(), PER_COR) == 0)
{
if (t.IsClassified() && !t.IsDead())
{
Mission::PlayHint(HINT_NOT_DEAD);
return;
}
if (p.GetEnteredCarID() == -1)
{
Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_TOUCHPERSON);
Caller->PushActionTurnTo(ACTION_APPEND, Target);
Caller->PushActionExecuteCommand(ACTION_APPEND, "DummyLife", Target, 0, false);
}
else
{
if (t.GetEnteredHouseID() == p.GetEnteredCarTargetID())
{
Caller->PushActionEnterHouse(ACTION_NEWLIST, t.GetEnteredHouseID());
Caller->PushActionMove(ACTION_APPEND, Target, TARGET_TOUCHPERSON);
Caller->PushActionTurnTo(ACTION_APPEND, Target);
Caller->PushActionExecuteCommand(ACTION_APPEND, "DummyLife", Target, 0, false);
}
else
Caller->PushActionTurnTo(ACTION_NEWLIST, Target);
Caller->PushActionExecuteCommand(ACTION_APPEND, "DummyLife", Target, 0, false);
}
}
else if(p.HasCommand("DummyPersonHasStretcher"))
{
p.PushActionMove(ACTION_NEWLIST, Target, TARGET_TOUCHPERSON);
p.PushActionTurnTo(ACTION_APPEND, Target);
p.PushActionLift(ACTION_APPEND, Target);
p.PushActionExecuteCommand(ACTION_APPEND, "DummyLiftStretcher", Target, 0, false);
}
else
{
if (p.GetEnteredCarID() == -1)
{
if (p.HasCommand("Dive"))
Caller->PushActionMove(ACTION_APPEND, Target, TARGET_FOLLOW);
else
Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_TOUCHPERSON);
Caller->PushActionTurnTo(ACTION_APPEND, Target);
Caller->PushActionLift(ACTION_APPEND, Target);
}
else
{
if (t.GetEnteredHouseID() == p.GetEnteredCarTargetID())
{
Caller->PushActionEnterHouse(ACTION_NEWLIST, t.GetEnteredHouseID());
Caller->PushActionMove(ACTION_APPEND, Target, TARGET_TOUCHPERSON);
Caller->PushActionTurnTo(ACTION_APPEND, Target);
}
else
Caller->PushActionTurnTo(ACTION_NEWLIST, Target);
Caller->PushActionLift(ACTION_APPEND, Target);
}
}
}
};
object DummyLiftStretcher : CommandScript
{
DummyLiftStretcher()
{
SetGroupID(20);
}
bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID)
{}
void PushActions(GameObject *Caller, Actor *Target, int ChildID)
{
Person p(Caller);
Person t(Target);
if(ChildID == 0)
{
p.SetUserData(t.GetID());
t.PushActionShowHide(ACTION_NEWLIST, true);
p.SetChildEnabled("Patient", true);
// t.ChangePrototype("mod:Prototypes/Persons/Ambulance/Patient.e4p");
p.AssignCommand("DummyPersonHasPatient");
p.RemoveCommand("PcmdRemoveEquipment");
p.RemoveCommand("UnloadPerson");
p.RemoveCommand("Lift");
// p.RemoveCommand("DropStryker");
}
}
};
object DummyPersonHasPatient : CommandScript
{
DummyPersonHasPatient()
{
SetGroupID(120);
}
bool CheckGroupVisibility(GameObject *Caller)
{
return false;
}
void PushActions(GameObject *Caller, Actor *Target, int childID)
{}
};
object DummyLife : CommandScript
{
DummyLife()
{
SetGroupID(DummyGroup);
}
bool CheckPossible(GameObject *Caller)
{
return false;
}
bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
{
return false;
}
void PushActions(GameObject *Caller, Actor *Target, int childID)
{
Person t(Target);
if (!t.IsClassified())
t.SetClassified(true);
if (t.IsDead())
{
if (!t.HasCommand("DummyBlanket"))
{
Caller->PushActionExecuteCommand(ACTION_APPEND, "PcmdDead", &t, 0, false);
return;
}
Caller->PushActionLift(ACTION_APPEND, Target);
}
else
{
Caller->PushActionSwitchAnim(ACTION_APPEND, "paramedicput");
Caller->PushActionWait(ACTION_APPEND, 0.5f);
Caller->PushActionSwitchAnim(ACTION_APPEND, "paramedicget");
Mission::PlayHint(HINT_NOT_DEAD);
return;
}
}
}; -
None? That's definitely a step back, and it's what EM4 was already lacking.
-
Some additions to Jose Pedalio's info.
Lang/EN/Infotexts.xml
<string name="ID_NAME_VEHICLE">Name Here</string> (Shows up in buy/deploy dialog.)<string name="ID_PURPOSE_VEHICLE">Short description here.</string> (Shows up in buy/deploy dialog.)<string name="ID_TOOLTIP_VEHICLE">Name Here</string> (Shows up when hovering over a picture on vehicle menu.)
Lang/EN/Portraits.xml
<string name="ID_PORTRAIT_VEHICLE">Name Here</string> (Shows up under unit picture when selected in-game.)
Specs/Portraits.xml
<portrait prototype="mod:Prototypes/Vehicles/03 LA Police/vehicle.e4p" text="VEHICLE" unit="VEHICLE"/> (Determines what strings are used for specific prototypes.)
Everywhere it says "VEHICLE" needs to be the same for a single unit, and corresponds with the same Unit ID used in the unit.xml file. Multiple vehicles can share the same Unit ID, and pull from the same Language strings, but each prototype needs its own line in the Specs xml file.
Itchboy, do you plan on replacing the tow truck? I know you're working on something for the Engineer vehicle.
-
Did you create Unit folders for them? They won't show up in the callout menu without those. You'll also need to edit various xml files to get names and pictures set up for them, and add them to any scripts that require them to be defined..
-
I'm going to say "It's coming along, but she's slow to build up steam."
Out-of-box: "Here! Have this game that mostly functions completely, if simply. But as soon as you talented community members get the info and experience you need, it's going to (hopefully) be a whole new ballgame!"
-
he's talking about the LAFireStationStart script stuff to stop that auto staffing
Ah.
Well, that involves LAFireStation, LAFireStationStart, and the LABattalionChief files. Looking for "DummyCallCrew" lines and removing or disabling the extra ones you don't want.
-
You mean the default people added in the unit callout menu?
Find the unit.xml file in the various "Units" folders of the vehicle you want to change, then find the "defaultcount" line and change it to zero.
-
Yeah I think it just depends on the vehicle, if its an actual car then you will see the model on the back of the tow truck, if its like the tanker then it will be a tarp as its bigger then the tow truck.
It looked like there were multiple types of tow trucks in various screens, so I thought maybe they'd make it so certain vehicles need certain trucks. Must have been WIP models if that isn't how the game is now.
-
The tow truck actually has the vehicle which it just picked up, not just a shape with a tarp over it.
Really? I swear I saw a gameplay video where it looked like it just had changed to model to a tarp-covered generic car (this was a car-sized one for the tanker from the tram/tanker collision too!).
-
The patrol script has always been that way. The best practice would be to make a patrol only make right turns.
-
Tiny Update: I think I've managed to switch over to the Stryker stretcher script (thanks to the BoF mod and the NYCERU team). There may be some bugs to iron out, though.
Edit: Updated first post, and the vehicle posts linked in it.
-
Read the first 2 pages and you will find your answer, the only unfortunate part is: you won't find your download link.
The one obstacle that could present a real problem is the use of the Police Upgrade mod: one of it's stipulations is that it can't be redistributed until the RCMP mod is released. That mod is on hold until EM5, or until the team decides to finish a release for EM4. I can always seek permissions, but I'm not at a point where I'm going to release this just yet anyways.
-
Ive thought about re animating it but not likely as I still don't know how to animate models
I might be wrong, but you might be able to select the animations and increase their duration in the editor if you find the prototype used.
-
Got a quick three: Explorer, Suburban, and Charger for Department of Homeland Security Customs and Border Protection.
Some examples here, plus I've included an example CVPI texture (though it can be touched up if need be; my skills aren't that refined).
-
I was just thinking about this again: I know I got an answer somewhere not too long ago, but it's slipped my mind since then.
-
Looks great. Here's a treat you and everyone would probably like:
The window bars are 3D. The side door has a slide animation too.
Does this thing have any emergency lights at all? Should it have any window bars on the rear doors?
Awesome!
I saw the older model without bars on the rear doors, but I can't find any images of this particular model. As for lights, can't find much easily, except one with a single red LED between the visors. Maybe treat it like a slicktop with minimal windshield and rear door lights, and some recessed grill lights. It could easily be converted to a SWAT vehicle that way (which I'd like. BTW, do you plan on replacing the SWAT and FBI SUVs?)
Anyone got info on the SAR Rescue Dog vehicle?
All I've found of Los Angeles Rescue vehicles are various LASD Utility and Pickup trucks (RAM 5500, this RAM, F350 and 450) and SUVs (Expedition, Yukon, Wrangler, H2, a dealer sponsored Montero Sport, an older Sierra 3500). Also saw an LA County Fire S&R Econoline in there.
Hows the LACoFD Squad coming?
Nice little banner there, though I'd feature some of your cars instead of real ones.
-
My first skin with some effort (by my standards anyways) has graced your Suburban.
-
I actually haven't used that version myself in quite a while; I believe there were a couple issues I had to work on. I'll probably take a look in the near future.
-
Considering there's still not much known about modding EM5, it's pretty early for an answer.
-
My CA-agency CVPIs are hopefully final now, and also made the transition to the new Suburban model for LA County Battalion 14.
Itchboy's Model Works
in Development Resources
Posted
Hasn't been re-approved by a moderator yet, It can take a bit sometimes.