Haszki
-
Posts
10 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Tutorials
Downloads
Gallery
Posts posted by Haszki
-
-
Hallo, gibt es ein Script zur Verfügung irgendwo auf der Kombination der beiden Autos mit einem Schlauch?
-
Hi, man
I have a problem with the disconnection of the wye:
http://www.youtube.com/watch?v=5JJ5q-3yyEA&feature=youtu.be
Firefighter I added PcmdWye and pickup commends
More low I threw course books but I changed the format from script on txt
-
Reverence after reeling out the hose and establishing the distributor I cannot nab him
-
HI, In the second third base for the car is reserved for an ambulance to be able to change the fire trucks parked there?
//******************************************************************************************
// #Version 1.4#
//
// Includes: To fire station command.
//
// - VcmdToFireStation
//
// Script by Hoppah
//
// Usage of this script in other mods is NOT allowed without permission of Hoppah
//
//******************************************************************************************
const char NAME_FS1_CP[] = "fs1_cp";
const char NAME_FS2_CP[] = "fs2_cp";
const char CMD_AUTOSIREN_OFF[] = "VcmdAutoSirenOff";
const char CMD_FLASHINGLIGHTS[] = "VcmdFlashingLights";
const char CMD_WARNINGLIGHTS[] = "VcmdWarningLightsOn";
const char CMD_FLOODLIGHTS_OFF[] = "VcmdFloodLightsOff";
const char CMD_FLOODLIGHTS_ON[] = "VcmdFloodLightsOn";
const char CMD_PATROL[] = "VcmdPatrol";
const char CMD_TOFIRESTATION[] = "VcmdToFireStation";
const char DUMMY_PATROL[] = "DummyPatrol";
const char DUMMY_WARNINGLIGHTS[] = "DummyHasWarningLights";
const char DUMMY_DISABLE[] = "DummyDisableSiren";
const char DUMMY_HASSIREN[] = "DummyHasSiren";
const char DUMMY_HOSESON[] = "DummyHosesAreOn";
const char DUMMY_VCALLED[] = "DummyVehicleCalled";
const char DUMMY_GATES[] = "DummyGates";
const char PROTO_ENGINE01[] = "mod:Prototypes/Vehicles/Straz/MAtegoGBA.e4p";
const char PROTO_ENGINE02[] = "mod:Prototypes/Vehicles/Straz/Scania GCBA.e4p";
const char PROTO_SQUAD01[] = "mod:Prototypes/Vehicles/02 Fire Department/squad61.e4p";
const char PROTO_LADDER01[] = "mod:Prototypes/Vehicles/02 Fire Department/ladder01.e4p";
const char PROTO_LADDER02[] = "mod:Prototypes/Vehicles/Straz/DLK.e4p";
const char PROTO_RESCUE01[] = "mod:Prototypes/Vehicles/02 Fire Department/Rescue1.e4p";
const char PROTO_BAT01[] = "mod:Prototypes/Vehicles/Straz/KDOW.e4p";
const char PROTO_BAT02[] = "mod:Prototypes/Vehicles/Straz/Ford Mondeo.e4p";
const char PROTO_AMBO01[] = "mod:Prototypes/Vehicles/01 Ambulance/Ambulance01.e4p";
const char VO_FP1[] = "fs_fp01";
const char VO_FP2[] = "fs_fp02";
const char VO_FP3[] = "fs_fp03";
const char VO_FP4[] = "fs_fp04";
const char VO_FP5[] = "fs_fp05";
const char VO_FP6[] = "fs_fp06";
const char VO_FP7[] = "fs_fp07";
const char VO_FP8[] = "fs_fp08";
const char NAME_GATE01[] = "fs_gate01";
const char NAME_GATE02[] = "fs_gate02";
const char NAME_GATE03[] = "fs_gate03";
//const char NAME_GATE04[] = "fs_gate04";
//const char NAME_GATE05[] = "fs_gate05";
const char NAME_GATE06[] = "fs_gate06";
const char NAME_GATE07[] = "fs_gate07";
const char NAME_GATE08[] = "fs_gate08";
const char VO_GATE01[] = "fs_vogate01";
const char VO_GATE02[] = "fs_vogate02";
const char VO_GATE03[] = "fs_vogate03";
const char VO_GATE04[] = "fs_vogate04";
const char VO_GATE05[] = "fs_vogate05";
const char VO_GATE06[] = "fs_vogate06";
const char VO_GATE07[] = "fs_vogate07";
const char VO_GATE08[] = "fs_vogate08";
const char VO_LADDER01[] = "fs_ladder01";
const char VO_LADDER02[] = "fs_ladder02";
const char VO_ENGINE01[] = "fs_engine01";
const char VO_ENGINE02[] = "fs_engine02";
const char VO_SQUAD01[] = "fs_squad01";
const char VO_RESCUE01[] = "fs_rescue01";
const char VO_BAT01[] = "fs_bat01";
const char VO_BAT02[] = "fs_bat02";
const char VO_FS01[] = "fs1";
const char VO_FS02[] = "fs2";
const char VO_FS01_SPAWN[] = "fs1_spawn";
const char VO_FS02_SPAWN[] = "fs2_spawn";
const char HINT_NOSPACE[] = "No space at the fire station, vehicle returns to base!";
const char HINT_NOTVALID[] = "This vehicle doesn't belong in the fire station!";
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_FS01) || v.IsCollidingWithVirtualObject(VO_FS02) || v.HasCommand(DUMMY_HOSESON) || v.IsInstalled())
return false;
if (!v.HasCommand("MoveTo"))
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)
{
if (ChildID == 0)
{
Vehicle v(Caller);
if (v.IsBlueLightEnabled())
Game::ExecuteCommand(CMD_FLASHINGLIGHTS, &v, &v);
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);
GameObjectList l1;
ActorList g1;
if (StrCompare(v.GetPrototypeFileName(), PROTO_LADDER01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_LADDER01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP1);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_ENGINE01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP2);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_SQUAD01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_SQUAD01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP3);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_RESCUE01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP4);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_BAT01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_BAT01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP5);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_LADDER02) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_LADDER02, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP6);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE02) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_ENGINE02, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP7);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_BAT02) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_BAT02, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_FP8);
}
else
{
Mission::PlayHint(HINT_NOTVALID);
return;
}
if (l1.GetNumObjects() > 0)
{
Mission::PlayHint(HINT_NOSPACE);
v.PushActionReturnToBase(ACTION_NEWLIST);
return;
}
Vector Pos = g1.GetActor(0)->GetPosition();
v.PushActionmove(ACTION_NEWLIST, Pos);
v.PushActionWait(ACTION_APPEND, 0.1f);
v.PushActionExecuteCommand(ACTION_APPEND, CMD_TOFIRESTATION, Caller, 1, false);
}
if (ChildID == 1)
{
Vehicle v(Caller);
GameObjectList l1, g3;
ActorList g1, g2;
GameObject gate;
Vector Pos1, Pos2;
bool OpenGate = false;
if (StrCompare(v.GetPrototypeFileName(), PROTO_LADDER01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_LADDER01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_LADDER01);
g2 = Game::GetActors(VO_GATE01);
g3 = Game::GetGameObjects(NAME_GATE01);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_ENGINE01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_ENGINE01);
g2 = Game::GetActors(VO_GATE02);
g3 = Game::GetGameObjects(NAME_GATE01);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_SQUAD01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_SQUAD01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_SQUAD01);
g2 = Game::GetActors(VO_GATE03);
g3 = Game::GetGameObjects(NAME_GATE02);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_RESCUE01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_RESCUE01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_RESCUE01);
g2 = Game::GetActors(VO_GATE04);
g3 = Game::GetGameObjects(NAME_GATE02);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_BAT01) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_BAT01, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_BAT01);
g2 = Game::GetActors(VO_GATE05);
g3 = Game::GetGameObjects(NAME_GATE03);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_LADDER02) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_LADDER02, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_LADDER02);
g2 = Game::GetActors(VO_GATE06);
g3 = Game::GetGameObjects(NAME_GATE06);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_ENGINE02) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_ENGINE02, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_ENGINE02);
g2 = Game::GetActors(VO_GATE07);
g3 = Game::GetGameObjects(NAME_GATE07);
}
else if (StrCompare(v.GetPrototypeFileName(), PROTO_BAT02) == 0)
{
Game::CollectObstaclesOnVirtualObject(VO_BAT02, l1, ACTOR_VEHICLE);
g1 = Game::GetActors(VO_BAT02);
g2 = Game::GetActors(VO_GATE08);
g3 = Game::GetGameObjects(NAME_GATE08);
}
else
{
Mission::PlayHint(HINT_NOTVALID);
return;
}
if (l1.GetNumObjects() > 0)
{
Mission::PlayHint(HINT_NOSPACE);
v.PushActionReturnToBase(ACTION_NEWLIST);
return;
}
if (v.HasCommand(DUMMY_VCALLED))
v.RemoveCommand(DUMMY_VCALLED);
Pos1 = g1.GetActor(0)->GetPosition();
Pos2 = g2.GetActor(0)->GetPosition();
gate = g3.GetObject(0);
if (gate.GetUserData() == 0)
OpenGate = true;
v.PushActionTurnTo(ACTION_NEWLIST, Pos1);
//v.PushActionRotateTarget(ACTION_APPEND, &v, 0, 180, 0, 0.01);
if (OpenGate)
v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false); //Open gate
v.PushActionWait(ACTION_APPEND, 0.1f);
v.PushActionmove(ACTION_APPEND, Pos1);
v.PushActionTurnTo(ACTION_APPEND, Pos2);
if (StrCompare(v.GetPrototypeFileName(), PROTO_BAT01) != 0)
v.PushActionExecuteCommand(ACTION_APPEND, CMD_TOFIRESTATION, Caller, 2, false);
v.PushActionWait(ACTION_APPEND, 4.0f);
if (OpenGate)
v.PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 5, false); //Close gate
}
if (ChildID == 2)
{
Vehicle v(Caller);
if (v.IsCollidingWithVirtualObject(VO_FS01))
ActorList l1 = Game::GetActors(VO_FS01_SPAWN);
else if (v.IsCollidingWithVirtualObject(VO_FS02))
ActorList l1 = Game::GetActors(VO_FS02_SPAWN);
else
return;
Vector Pos = l1.GetActor(0)->GetPosition();
PersonList pass = v.GetPassengers();
if (pass.GetNumPersons() > 0)
{
for(int i=0; i<pass.GetNumPersons(); i++)
{
Person *p = pass.GetPerson(i);
p->PushActionLeaveCar(ACTION_NEWLIST, Caller);
p->PushActionmove(ACTION_APPEND, Pos);
p->PushActionDeleteOwner(ACTION_APPEND);
}
}
}
if (ChildID == 3) //temp!
{
if (v.GetNumPassengers() > 0 && (FS1Closer && cp1.HasCommand("VcmdAutoStaffOff")) || (FS2Closer && cp2.HasCommand("VcmdAutoStaffOff")))
v.PushActionExecuteCommand(ACTION_APPEND, CMD_TOFIRESTATION, Caller, 2, false);
GameObjectList cpl1 = Game::GetGameObjects(NAME_FS1_CP);
GameObject cp1 = cpl1.GetObject(0);
GameObjectList cpl2 = Game::GetGameObjects(NAME_FS2_CP);
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;
}
}
};
object DummyEngine : CommandScript
{
DummyEngine()
{
SetGroupID(DummyGroup);
}
bool CheckTarget(GameObject *Caller, Actor *Target, int ChildID)
{
}
void PushActions(GameObject *Caller, Actor *Target, int ChildID)
{
}
};
-
How do I change to a courtesy vehicle and You can not take the victims to the vehicle:
30243.e4p - 6 firefighternorm_upgrade2
MANSTARLE_GBA.e4p - 6 firefighternorm_upgrade2
MAGIRUS_BODY.e4p - 2 firefighternorm_upgrade2
KERAX_GCBA.e4p - 3 firefighternorm_upgrade2
ScaniaP380GCBA.e4p - 3 firefighternorm_upgrade2
MIDLINER4x2.e4p - 6 firefighternorm_upgrade2
MIDLUM_GBA.e4p - 6 firefighternorm_upgrade2
//******************************************************************************************
// #Version 1.5#
//
// Includes: All command for the fire station.
//
// - VcmdAlarm
// - VcmdRoof
// - VcmdGarageDoorsUp
// - VcmdGarageDoorsDown
// - VcmdCallEMT
// - VcmdCallEMTSCBA
// - VcmdCallEMTStretcher
// - VcmdCallPM
// - VcmdCallPMSCBA
// - VcmdCallPMStretcher
// - VcmdCallDiver
// - VcmdCallHazmat
// - VcmdCallUSARFF
// - VcmdEmptyFireStation
// - DummyDisableAlarm
// - DummyCallCrew
// - DummyGates
// - VcmdAutoStaffOn
// - VcmdAutoStaffOff
// - VcmdRepairVehicles
//
// Script by Hoppah
//
// Usage of this script in other mods is NOT allowed without permission of Hoppah
//
//******************************************************************************************
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_BATTALION[] = "mod:Prototypes/Vehicles/02 LA Fire Department/battalion_chief_vehicle.e4p";
const char OBJ_AMBULANCE01[] = "mod:Prototypes/Vehicles/Straz/30243.e4p";
const char OBJ_AMBULANCE02[] = "mod:Prototypes/Vehicles/Straz/MANSTARLE_GBA.e4p";
const char OBJ_USAR[] = "mod:Prototypes/Vehicles/Straz/MAGIRUS_BODY.e4p";
const char OBJ_LADDER[] = "mod:Prototypes/Vehicles/Straz/KERAX_GCBA.e4p";
const char OBJ_TILLER[] = "mod:Prototypes/Vehicles/02 LA Fire Department/tiller_cabin.e4p";
const char OBJ_ENGINE01[] = "mod:Prototypes/Vehicles/Straz/ScaniaP380GCBA.e4p";
const char OBJ_ENGINE02[] = "mod:Prototypes/Vehicles/Straz/MIDLINER4x2.e4p";
const char OBJ_HAZMATSQUAD[] = "mod:Prototypes/Vehicles/Straz/MIDLUM_GBA.e4p";
const char OBJ_CHIEF[] = "mod:Prototypes/Persons/02 LA Fire Department/battalion_chief.e4p";
const char OBJ_EMT[] = "mod:Prototypes/Persons/02 LA Fire Department/ff_emt.e4p";
const char OBJ_EMT_SCBA[] = "mod:Prototypes/Persons/02 LA Fire Department/ff_emt_scba.e4p";
const char OBJ_EMT_STRETCHER[] = "mod:Prototypes/Persons/02 LA Fire Department/ff_emt_stretcher.e4p";
const char OBJ_PM[] = "mod:Prototypes/Persons/01 LA Ambulance/ff_paramedic.e4p";
const char OBJ_PM_SCBA[] = "mod:Prototypes/Persons/01 LA Ambulance/ff_paramedic_scba.e4p";
const char OBJ_PM_STRETCHER[] = "mod:Prototypes/Persons/01 LA Ambulance/ff_paramedic_stretcher.e4p";
const char OBJ_HAZMAT[] = "mod:Prototypes/Persons/Fire Department/firefighternorm_upgrade2.e4p";
const char OBJ_USARFF[] = "mod:Prototypes/Persons/02 LA Fire Department/usar_ff.e4p";
const char OBJ_DIVER[] = "mod:Prototypes/Persons/02 LA Fire Department/ff_diver.e4p";
const char OBJ_ENGINEER[] = "mod:Prototypes/Persons/04 LA Tec/engineer.e4p";
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 NAME_GATE01B[] = "fs_gate01b";
const char NAME_GATE02B[] = "fs_gate02b";
const char NAME_GATE03B[] = "fs_gate03b";
const char NAME_GATE04B[] = "fs_gate04b";
const char NAME_GATE05B[] = "fs_gate05b";
const char NAME_GATE06B[] = "fs_gate06b";
const char NAME_GATE07B[] = "fs_gate07b";
const char NAME_GATE08B[] = "fs_gate08b";
const char VO_GATE01A[] = "fs_vogate01a";
const char VO_GATE02A[] = "fs_vogate02a";
const char VO_GATE03A[] = "fs_vogate03a";
const char VO_GATE04A[] = "fs_vogate04a";
const char VO_GATE05A[] = "fs_vogate05a";
const char VO_GATE06A[] = "fs_vogate06a";
const char VO_GATE07A[] = "fs_vogate07a";
const char VO_GATE08A[] = "fs_vogate08a";
const char VO_GATE01B[] = "fs_vogate01b";
const char VO_GATE02B[] = "fs_vogate02b";
const char VO_GATE03B[] = "fs_vogate03b";
const char VO_GATE04B[] = "fs_vogate04b";
const char VO_GATE05B[] = "fs_vogate05b";
const char VO_GATE06B[] = "fs_vogate06b";
const char VO_GATE07B[] = "fs_vogate07b";
const char VO_GATE08B[] = "fs_vogate08b";
const char DUMMY_GATES[] = "DummyGates";
const char DUMMY_ALARM[] = "DummyDisableAlarm";
const char DUMMY_CALLCREW[] = "DummyCallCrew";
const char DUMMY_VCALLED[] = "DummyVehicleCalled";
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 VO_SPAWN01[] = "fs_spawn01";
const char VO_SPAWN02[] = "fs_spawn02";
const char VO_SPAWN03[] = "fs_spawn03";
const char VO_MOVETO01[] = "fs_moveto01";
const char VO_MOVETO02[] = "fs_moveto02";
const char VO_SQUAD01[] = "fs_squad01";
const char VO_SQUAD02[] = "fs_squad02";
const char SND_ALARM[] = "mod:Audio/FX/Misc/fire_alarm.wav";
const char SND_GATE[] = "mod:Audio/FX/Misc/fire_gate.wav";
const char ANI_CLOSE[] = "close";
const char ANI_OPEN[] = "open";
const char VOSET_ROAD[] = "Freely Accessible";
const char VOSET_BARRICADE[] = "Barricade";
const char UNNAMED[] = "Unnamed";
const char HINT_NO_REPAIR[] = "There are no vehicles to repair!";
const char HINT_REPAIRED[] = "All vehicles repaired!";
int PRICE_REPAIR = 1000;
int DummyGroup = 20;
object VcmdAlarm : CommandScript
{
VcmdAlarm()
{
SetCursor("alarm");
SetIcon("alarm");
SetPriority(200);
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
Caller->AssignCommand(DUMMY_ALARM);
Caller->PushActionWait(ACTION_NEWLIST, 1.5f);
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 1, false);
Caller->PushActionWait(ACTION_APPEND, 13.0f);
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false);
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::CollectObstaclesOnVirtualObject(VO_BATTALION, l2, ACTOR_VEHICLE);
if(l2.GetNumObjects() > 0)
{
Vehicle m = l2.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 4, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
}
}
GameObjectList l3;
Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE01, l3, ACTOR_VEHICLE);
if(l3.GetNumObjects() > 0)
{
Vehicle m = l3.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 7, false);
//m.PushActionWait(ACTION_APPEND, 0.5f);
//m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false);
}
}
}
GameObjectList l4;
Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE02, l4, ACTOR_VEHICLE);
if(l4.GetNumObjects() > 0)
{
Vehicle m = l4.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 7, false);
//m.PushActionWait(ACTION_APPEND, 0.5f);
//m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false);
}
}
}
GameObjectList l5;
Game::CollectObstaclesOnVirtualObject(VO_AMBULANCE03, l5, ACTOR_VEHICLE);
if(l5.GetNumObjects() > 0)
{
Vehicle m = l5.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 7, false);
//m.PushActionWait(ACTION_APPEND, 0.5f);
//m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false);
}
}
}
GameObjectList l6;
Game::CollectObstaclesOnVirtualObject(VO_LADDER, l6, ACTOR_VEHICLE);
if(l6.GetNumObjects() > 0)
{
Vehicle m = l6.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
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);
}
}
GameObjectList l7;
Game::CollectObstaclesOnVirtualObject(VO_USAR, l7, ACTOR_VEHICLE);
if(l7.GetNumObjects() > 0)
{
Vehicle m = l7.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 6, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 6, false);
}
}
GameObjectList l8;
Game::CollectObstaclesOnVirtualObject(VO_ENGINE01, l8, ACTOR_VEHICLE);
if(l8.GetNumObjects() > 0)
{
Vehicle m = l8.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
m.PushActionWait(ACTION_NEWLIST, 2.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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionWait(ACTION_NEWLIST, 2.0f);
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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
}
}
}
GameObjectList l9;
Game::CollectObstaclesOnVirtualObject(VO_ENGINE02, l9, ACTOR_VEHICLE);
if(l9.GetNumObjects() > 0)
{
Vehicle m = l9.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
m.PushActionWait(ACTION_NEWLIST, 2.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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionWait(ACTION_NEWLIST, 2.0f);
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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
}
}
}
GameObjectList l10;
Game::CollectObstaclesOnVirtualObject(VO_ENGINE03, l10, ACTOR_VEHICLE);
if(l10.GetNumObjects() > 0)
{
Vehicle m = l10.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
m.PushActionWait(ACTION_NEWLIST, 2.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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionWait(ACTION_NEWLIST, 2.0f);
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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
}
}
}
GameObjectList l11;
Game::CollectObstaclesOnVirtualObject(VO_ENGINE04, l11, ACTOR_VEHICLE);
if(l11.GetNumObjects() > 0)
{
Vehicle m = l11.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
m.PushActionWait(ACTION_NEWLIST, 2.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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionWait(ACTION_NEWLIST, 2.0f);
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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
}
}
}
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
Caller->AssignCommand(DUMMY_ALARM);
Caller->PushActionWait(ACTION_NEWLIST, 1.5f);
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 3, false);
Caller->PushActionWait(ACTION_APPEND, 14.0f);
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false);
GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION2);
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::CollectObstaclesOnVirtualObject(VO_AMBULANCE04, l2, ACTOR_VEHICLE);
if(l2.GetNumObjects() > 0)
{
Vehicle m = l2.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
if(StrCompare(m.GetPrototypeFileName(), OBJ_AMBULANCE01) == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 7, false);
//m.PushActionWait(ACTION_APPEND, 0.5f);
//m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
} else
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 1, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 2, false);
}
}
}
GameObjectList l3;
Game::CollectObstaclesOnVirtualObject(VO_ENGINE05, l3, ACTOR_VEHICLE);
if(l3.GetNumObjects() > 0)
{
Vehicle m = l3.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
m.PushActionWait(ACTION_NEWLIST, 2.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, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 3, false);
}
}
GameObjectList l4;
Game::CollectObstaclesOnVirtualObject(VO_HAZMAT, l4, ACTOR_VEHICLE);
if(l4.GetNumObjects() > 0)
{
Vehicle m = l4.GetObject(0);
PersonList passengers = m.GetPassengers();
if (passengers.GetNumPersons() == 0)
{
m.PushActionExecuteCommand(ACTION_NEWLIST, DUMMY_CALLCREW, Caller, 5, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 5, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 5, false);
m.PushActionWait(ACTION_APPEND, 0.5f);
m.PushActionExecuteCommand(ACTION_APPEND, DUMMY_CALLCREW, Caller, 5, false);
}
}
}
}
};
object VcmdRoof : CommandScript
{
VcmdRoof()
{
SetCursor("roof");
SetIcon("roof");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION_ROOF);
for(int i=0; i < l1.GetNumObjects(); i++)
{
GameObject *obj = l1.GetObject(i);
if(obj->GetUserData() == 0)
{
obj->Hide();
obj->SetUserData(1);
} else
{
obj->Show();
obj->SetUserData(0);
}
}
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION2_ROOF);
for(int i=0; i < l1.GetNumObjects(); i++)
{
GameObject *obj = l1.GetObject(i);
if(obj->GetUserData() == 0)
{
obj->Hide();
obj->SetUserData(1);
} else
{
obj->Show();
obj->SetUserData(0);
}
}
}
}
};
object VcmdGarageDoorsUp : CommandScript
{
VcmdGarageDoorsUp()
{
SetCursor("garagedoorup");
SetIcon("garagedoorup");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 1, false);
else if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 3, false);
}
};
object VcmdGarageDoorsDown : CommandScript
{
VcmdGarageDoorsDown()
{
SetCursor("garagedoordown");
SetIcon("garagedoordown");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 2, false);
else if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_GATES, Caller, 4, false);
}
};
object VcmdCallEMT : CommandScript
{
VcmdCallEMT()
{
SetCursor("alarm");
SetIcon("callemt");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_EMT, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallEMTSCBA : CommandScript
{
VcmdCallEMTSCBA()
{
SetCursor("alarm");
SetIcon("callemtscba");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_EMT_SCBA, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallEMTStretcher : CommandScript
{
VcmdCallEMTStretcher()
{
SetCursor("alarm");
SetIcon("callemtstretcher");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_EMT_STRETCHER, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
//p.SetAutoHealDistance(0.1f);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallPM : CommandScript
{
VcmdCallPM()
{
SetCursor("alarm");
SetIcon("callpm");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_PM, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
p.SetEquipment(EQUIP_EMERGENCY_CASE);
//p.SetAutoHealDistance(1000.f);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallPMSCBA : CommandScript
{
VcmdCallPMSCBA()
{
SetCursor("alarm");
SetIcon("callpmscba");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_PM_SCBA, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
//p.SetEquipment(EQUIP_EMERGENCY_CASE);
//p.SetAutoHealDistance(0.1f);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallPMStretcher : CommandScript
{
VcmdCallPMStretcher()
{
SetCursor("alarm");
SetIcon("callpmstretcher");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_PM_STRETCHER, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
//p.SetAutoHealDistance(0.1f);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallDiver : CommandScript
{
VcmdCallDiver()
{
SetCursor("alarm");
SetIcon("calldiver");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_DIVER, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallHazmat : CommandScript
{
VcmdCallHazmat()
{
SetCursor("alarm");
SetIcon("callhazmat");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_HAZMAT, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdCallUSARFF : CommandScript
{
VcmdCallUSARFF()
{
SetCursor("alarm");
SetIcon("callusar");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
ActorList l2 = Game::GetActors(VO_MOVETO01);
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
ActorList l2 = Game::GetActors(VO_MOVETO02);
}
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
if(l2.GetNumActors() > 0)
Vector MoveTo = l2.GetActor(0)->GetPosition();
Person p = Game::CreatePerson(OBJ_USARFF, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
}
}
};
object VcmdEmptyFireStation : CommandScript
{
VcmdEmptyFireStation()
{
SetIcon("enterhouse");
SetCursor("enterhouse");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay())
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)
{
if(Caller->HasName(NAME_CONTROLPANEL)) //= fire station 1
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
GameObjectList l2;
Game::CollectObstaclesOnVirtualObject(VO_SQUAD01, l2, ACTOR_PERSON);
for(int i = 0; i < l2.GetNumObjects(); i++)
{
GameObject *obj = l2.GetObject(i);
if (obj->GetType() == ACTOR_PERSON)
{
Person p(obj);
p.PushActionmove(ACTION_NEWLIST, Spawn);
p.PushActionDeleteOwner(ACTION_APPEND);
}
}
}
if(Caller->HasName(NAME_CONTROLPANEL2)) //= fire station 2
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
GameObjectList l2;
Game::CollectObstaclesOnVirtualObject(VO_SQUAD02, l2, ACTOR_PERSON);
for(int i = 0; i < l2.GetNumObjects(); i++)
{
GameObject *obj = l2.GetObject(i);
if (obj->GetType() == ACTOR_PERSON)
{
Person p(obj);
p.PushActionmove(ACTION_NEWLIST, Spawn);
p.PushActionDeleteOwner(ACTION_APPEND);
}
}
}
}
};
object DummyDisableAlarm : CommandScript
{
DummyDisableAlarm()
{
SetGroupID(DummyGroup);
}
bool CheckGroupVisibility(GameObject *Caller)
{
return false;
}
bool CheckPossible(GameObject *Caller)
{
return false;
}
void PushActions(GameObject *Caller, Actor *Target, int ChildID)
{
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
v.RemoveCommand(DUMMY_ALARM);
if(Caller->HasName(NAME_CONTROLPANEL) || Caller->HasName(NAME_FIRESTATION)) //= fire station 1
GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION);
else if(Caller->HasName(NAME_CONTROLPANEL2) || Caller->HasName(NAME_FIRESTATION2)) //= fire station 2
GameObjectList l1 = Game::GetGameObjects(NAME_FIRESTATION2);
for(int i=0; i < l1.GetNumObjects(); i++)
{
GameObject *obj = l1.GetObject(i);
obj->EnableSpecialLights(false);
int ref = obj->GetUserData();
obj->UnattachSound(ref);
Audio::StopSample(ref);
}
}
};
object DummyCallCrew : CommandScript
{
DummyCallCrew()
{
SetGroupID(DummyGroup);
}
bool CheckGroupVisibility(GameObject *Caller)
{
return false;
}
bool CheckPossible(GameObject *Caller)
{
return false;
}
void PushActions(GameObject *Caller, Actor *Target, int ChildID)
{
Vehicle v(Caller);
if(v.IsCollidingWithVirtualObject(VO_SQUAD01))
{
ActorList l1 = Game::GetActors(VO_SPAWN01);
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
GameObjectList l2 = Game::GetGameObjects(NAME_FIRESTATION);
for(int i=0; i < l2.GetNumObjects(); i++)
{
GameObject *obj = l2.GetObject(i);
if (!obj->IsSpecialLightEnabled())
{
obj->EnableSpecialLights(true);
obj->PushActionWait(ACTION_NEWLIST, 16.0f);
obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false);
Vector AlarmSnd = obj->GetPosition();
int soundID = Audio::PlaySample3D(SND_ALARM, AlarmSnd, true);
obj->SetUserData(soundID);
obj->AttachSound(soundID);
}
}
}
else if(v.IsCollidingWithVirtualObject(VO_SQUAD02))
{
ActorList l1 = Game::GetActors(VO_SPAWN03);
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
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);
obj->PushActionWait(ACTION_NEWLIST, 16.0f);
obj->PushActionExecuteCommand(ACTION_APPEND, DUMMY_ALARM, Caller, 1, false);
Vector AlarmSnd = obj->GetPosition();
int soundID = Audio::PlaySample3D(SND_ALARM, AlarmSnd, true);
obj->SetUserData(soundID);
obj->AttachSound(soundID);
}
}
}
else
{
ActorList l1 = Game::GetActors(VO_SPAWN02);
if(l1.GetNumActors() > 0)
Vector Spawn = l1.GetActor(0)->GetPosition();
}
PersonList passengers = v.GetPassengers();
if (ChildID == 1)
{
Person p = Game::CreatePerson(OBJ_PM, UNNAMED);
p.SetEquipment(EQUIP_EMERGENCY_CASE);
}
else if (ChildID == 2)
Person p = Game::CreatePerson(OBJ_PM_STRETCHER, UNNAMED);
else if (ChildID == 3)
Person p = Game::CreatePerson(OBJ_EMT, UNNAMED);
else if (ChildID == 4)
Person p = Game::CreatePerson(OBJ_CHIEF, UNNAMED);
else if (ChildID == 5)
Person p = Game::CreatePerson(OBJ_HAZMAT, UNNAMED);
else if (ChildID == 6)
Person p = Game::CreatePerson(OBJ_USARFF, UNNAMED);
else if (ChildID == 7)
Person p = Game::CreatePerson(OBJ_EMT_STRETCHER, UNNAMED);
else
return;
p.SetUpgradeLevel(3);
Game::FindFreePosition(&p, Spawn, 250);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, &v, TARGET_ANY);
p.PushActionTurnTo(ACTION_APPEND, &v);
p.PushActionEnterCar(ACTION_APPEND, &v);
}
};
object DummyGates : CommandScript
{
DummyGates()
{
SetGroupID(DummyGroup);
}
bool CheckGroupVisibility(GameObject *Caller)
{
return false;
}
bool CheckPossible(GameObject *Caller)
{
return false;
}
void PushActions(GameObject *Caller, Actor *Target, int ChildID)
{
GameObjectList gate01a = Game::GetGameObjects(NAME_GATE01A);
GameObjectList gate02a = Game::GetGameObjects(NAME_GATE02A);
GameObjectList gate03a = Game::GetGameObjects(NAME_GATE03A);
GameObjectList gate04a = Game::GetGameObjects(NAME_GATE04A);
GameObjectList gate05a = Game::GetGameObjects(NAME_GATE05A);
GameObjectList gate06a = Game::GetGameObjects(NAME_GATE06A);
GameObjectList gate07a = Game::GetGameObjects(NAME_GATE07A);
GameObjectList gate08a = Game::GetGameObjects(NAME_GATE08A);
GameObjectList gate01b = Game::GetGameObjects(NAME_GATE01B);
GameObjectList gate02b = Game::GetGameObjects(NAME_GATE02B);
GameObjectList gate03b = Game::GetGameObjects(NAME_GATE03B);
GameObjectList gate04b = Game::GetGameObjects(NAME_GATE04B);
GameObjectList gate05b = Game::GetGameObjects(NAME_GATE05B);
GameObjectList gate06b = Game::GetGameObjects(NAME_GATE06B);
GameObjectList gate07b = Game::GetGameObjects(NAME_GATE07B);
GameObjectList gate08b = Game::GetGameObjects(NAME_GATE08B);
ActorList vogate01a = Game::GetActors(VO_GATE01A);
ActorList vogate02a = Game::GetActors(VO_GATE02A);
ActorList vogate03a = Game::GetActors(VO_GATE03A);
ActorList vogate04a = Game::GetActors(VO_GATE04A);
ActorList vogate05a = Game::GetActors(VO_GATE05A);
ActorList vogate06a = Game::GetActors(VO_GATE06A);
ActorList vogate07a = Game::GetActors(VO_GATE07A);
ActorList vogate08a = Game::GetActors(VO_GATE08A);
ActorList vogate01b = Game::GetActors(VO_GATE01B);
ActorList vogate02b = Game::GetActors(VO_GATE02B);
ActorList vogate03b = Game::GetActors(VO_GATE03B);
ActorList vogate04b = Game::GetActors(VO_GATE04B);
ActorList vogate05b = Game::GetActors(VO_GATE05B);
ActorList vogate06b = Game::GetActors(VO_GATE06B);
ActorList vogate07b = Game::GetActors(VO_GATE07B);
ActorList vogate08b = Game::GetActors(VO_GATE08B);
if(ChildID == 1) //= Open front gates fire station 1
{
for(int i=0; i < gate01a.GetNumObjects(); i++)
{
GameObject *gate = gate01a.GetObject(i);
Actor *vogate = vogate01a.GetActor(i);
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
}
}
for(int i=0; i < gate02a.GetNumObjects(); i++)
{
GameObject *gate = gate02a.GetObject(i);
Actor *vogate = vogate02a.GetActor(i);
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
}
}
for(int i=0; i < gate03a.GetNumObjects(); i++)
{
GameObject *gate = gate03a.GetObject(i);
Actor *vogate = vogate03a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
for(int i=0; i < gate04a.GetNumObjects(); i++)
{
GameObject *gate = gate04a.GetObject(i);
Actor *vogate = vogate04a.GetActor(i);
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
}
}
for(int i=0; i < gate05a.GetNumObjects(); i++)
{
GameObject *gate = gate05a.GetObject(i);
Actor *vogate = vogate05a.GetActor(i);
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
}
}
}
if(ChildID == 2) //= Close all opened gates fire station 1
{
for(int i=0; i < gate01a.GetNumObjects(); i++)
{
GameObject *gate = gate01a.GetObject(i);
Actor *vogate = vogate01a.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate02a.GetNumObjects(); i++)
{
GameObject *gate = gate02a.GetObject(i);
Actor *vogate = vogate02a.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate03a.GetNumObjects(); i++)
{
GameObject *gate = gate03a.GetObject(i);
Actor *vogate = vogate03a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
for(int i=0; i < gate04a.GetNumObjects(); i++)
{
GameObject *gate = gate04a.GetObject(i);
Actor *vogate = vogate04a.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate05a.GetNumObjects(); i++)
{
GameObject *gate = gate05a.GetObject(i);
Actor *vogate = vogate05a.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate01b.GetNumObjects(); i++)
{
GameObject *gate = gate01b.GetObject(i);
Actor *vogate = vogate01b.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate02b.GetNumObjects(); i++)
{
GameObject *gate = gate02b.GetObject(i);
Actor *vogate = vogate02b.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate03b.GetNumObjects(); i++)
{
GameObject *gate = gate03b.GetObject(i);
Actor *vogate = vogate03b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
for(int i=0; i < gate04b.GetNumObjects(); i++)
{
GameObject *gate = gate04b.GetObject(i);
Actor *vogate = vogate04b.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate05b.GetNumObjects(); i++)
{
GameObject *gate = gate05b.GetObject(i);
Actor *vogate = vogate05b.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
}
if(ChildID == 3) //= Open front gates fire station 2
{
for(int i=0; i < gate06a.GetNumObjects(); i++)
{
GameObject *gate = gate06a.GetObject(i);
Actor *vogate = vogate06a.GetActor(i);
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
}
}
for(int i=0; i < gate07a.GetNumObjects(); i++)
{
GameObject *gate = gate07a.GetObject(i);
Actor *vogate = vogate07a.GetActor(i);
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
}
}
for(int i=0; i < gate08a.GetNumObjects(); i++)
{
GameObject *gate = gate08a.GetObject(i);
Actor *vogate = vogate08a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(ChildID == 4) //= Close all opened gates fire station 2
{
for(int i=0; i < gate06a.GetNumObjects(); i++)
{
GameObject *gate = gate06a.GetObject(i);
Actor *vogate = vogate06a.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate07a.GetNumObjects(); i++)
{
GameObject *gate = gate07a.GetObject(i);
Actor *vogate = vogate07a.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate08a.GetNumObjects(); i++)
{
GameObject *gate = gate08a.GetObject(i);
Actor *vogate = vogate08a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
for(int i=0; i < gate06b.GetNumObjects(); i++)
{
GameObject *gate = gate06b.GetObject(i);
Actor *vogate = vogate06b.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate07b.GetNumObjects(); i++)
{
GameObject *gate = gate07b.GetObject(i);
Actor *vogate = vogate07b.GetActor(i);
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
}
}
for(int i=0; i < gate08b.GetNumObjects(); i++)
{
GameObject *gate = gate08b.GetObject(i);
Actor *vogate = vogate08b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(ChildID == 5) //= Battalion chief 'calls vehicle cmds' for opening/closing front gates fire station 1
{
Vehicle v(Caller);
if (v.GetVehicleType() == VT_AMBULANCE_RTW)
{
for(int i=0; i < gate01a.GetNumObjects(); i++)
{
GameObject *gate = gate01a.GetObject(i);
Actor *vogate = vogate01a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_USAR) == 0)
{
for(int i=0; i < gate02a.GetNumObjects(); i++)
{
GameObject *gate = gate02a.GetObject(i);
Actor *vogate = vogate02a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0)
{
for(int i=0; i < gate03a.GetNumObjects(); i++)
{
GameObject *gate = gate03a.GetObject(i);
Actor *vogate = vogate03a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
for(int i=0; i < gate04a.GetNumObjects(); i++)
{
GameObject *gate = gate04a.GetObject(i);
Actor *vogate = vogate04a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0)
{
for(int i=0; i < gate05a.GetNumObjects(); i++)
{
GameObject *gate = gate05a.GetObject(i);
Actor *vogate = vogate05a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
}
if(ChildID == 6) //= Battalion chief 'calls vehicle cmds' for opening/closing front gates fire station 2
{
Vehicle v(Caller);
if(StrCompare(v.GetPrototypeFileName(), OBJ_HAZMATSQUAD) == 0)
{
for(int i=0; i < gate06a.GetNumObjects(); i++)
{
GameObject *gate = gate06a.GetObject(i);
Actor *vogate = vogate06a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0)
{
for(int i=0; i < gate07a.GetNumObjects(); i++)
{
GameObject *gate = gate07a.GetObject(i);
Actor *vogate = vogate07a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if (v.GetVehicleType() == VT_AMBULANCE_RTW)
{
for(int i=0; i < gate08a.GetNumObjects(); i++)
{
GameObject *gate = gate08a.GetObject(i);
Actor *vogate = vogate08a.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
} else
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
}
if(ChildID == 7) //To fire station cmd to open rear gates fire station 1
{
Vehicle v(Caller);
if (v.GetVehicleType() == VT_AMBULANCE_RTW)
{
for(int i=0; i < gate01b.GetNumObjects(); i++)
{
GameObject *gate = gate01b.GetObject(i);
Actor *vogate = vogate01b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_USAR) == 0)
{
for(int i=0; i < gate02b.GetNumObjects(); i++)
{
GameObject *gate = gate02b.GetObject(i);
Actor *vogate = vogate02b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0)
{
for(int i=0; i < gate03b.GetNumObjects(); i++)
{
GameObject *gate = gate03b.GetObject(i);
Actor *vogate = vogate03b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
for(int i=0; i < gate04b.GetNumObjects(); i++)
{
GameObject *gate = gate04b.GetObject(i);
Actor *vogate = vogate04b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0)
{
for(int i=0; i < gate05b.GetNumObjects(); i++)
{
GameObject *gate = gate05b.GetObject(i);
Actor *vogate = vogate05b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
}
if(ChildID == 8) //To fire station cmd to open rear gates fire station 2
{
Vehicle v(Caller);
if(StrCompare(v.GetPrototypeFileName(), OBJ_HAZMATSQUAD) == 0)
{
for(int i=0; i < gate06b.GetNumObjects(); i++)
{
GameObject *gate = gate06b.GetObject(i);
Actor *vogate = vogate06b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0)
{
for(int i=0; i < gate07b.GetNumObjects(); i++)
{
GameObject *gate = gate07b.GetObject(i);
Actor *vogate = vogate07b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if (v.GetVehicleType() == VT_AMBULANCE_RTW)
{
for(int i=0; i < gate08b.GetNumObjects(); i++)
{
GameObject *gate = gate08b.GetObject(i);
Actor *vogate = vogate08b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 0)
{
gate->SetUserData(1);
gate->SetAnimation(ANI_OPEN);
vogate->SetVirtualObjectTerrain(VOSET_ROAD);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
}
if(ChildID == 9) //To fire station cmd to close rear gates fire station 1
{
Vehicle v(Caller);
if (v.GetVehicleType() == VT_AMBULANCE_RTW)
{
for(int i=0; i < gate01b.GetNumObjects(); i++)
{
GameObject *gate = gate01b.GetObject(i);
Actor *vogate = vogate01b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_USAR) == 0)
{
for(int i=0; i < gate02b.GetNumObjects(); i++)
{
GameObject *gate = gate02b.GetObject(i);
Actor *vogate = vogate02b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_LADDER) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_TILLER) == 0)
{
for(int i=0; i < gate03b.GetNumObjects(); i++)
{
GameObject *gate = gate03b.GetObject(i);
Actor *vogate = vogate03b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0)
{
for(int i=0; i < gate04b.GetNumObjects(); i++)
{
GameObject *gate = gate04b.GetObject(i);
Actor *vogate = vogate04b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0)
{
for(int i=0; i < gate05b.GetNumObjects(); i++)
{
GameObject *gate = gate05b.GetObject(i);
Actor *vogate = vogate05b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
}
if(ChildID == 10) //To fire station cmd to close rear gates fire station 2
{
Vehicle v(Caller);
if(StrCompare(v.GetPrototypeFileName(), OBJ_HAZMATSQUAD) == 0)
{
for(int i=0; i < gate06b.GetNumObjects(); i++)
{
GameObject *gate = gate06b.GetObject(i);
Actor *vogate = vogate06b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if(StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE01) == 0 || StrCompare(v.GetPrototypeFileName(), OBJ_ENGINE02) == 0)
{
for(int i=0; i < gate07b.GetNumObjects(); i++)
{
GameObject *gate = gate07b.GetObject(i);
Actor *vogate = vogate07b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
if (v.GetVehicleType() == VT_AMBULANCE_RTW)
{
for(int i=0; i < gate08b.GetNumObjects(); i++)
{
GameObject *gate = gate08b.GetObject(i);
Actor *vogate = vogate08b.GetActor(i);
Vector GateSnd = gate->GetPosition();
if (gate->GetUserData() == 1)
{
gate->SetUserData(0);
gate->SetAnimation(ANI_CLOSE);
vogate->SetVirtualObjectTerrain(VOSET_BARRICADE);
Audio::PlaySample3D(SND_GATE, GateSnd);
}
}
}
}
}
};
object VcmdAutoStaffOn : CommandScript
{
VcmdAutoStaffOn()
{
SetIcon("autostaffon");
SetCursor("autostaffon");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid() || !Game::IsFreeplay())
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)
{
Caller->RemoveCommand("VcmdAutoStaffOn");
Caller->AssignCommand("VcmdAutoStaffOff");
}
};
object VcmdAutoStaffOff : CommandScript
{
VcmdAutoStaffOff()
{
SetIcon("autostaffoff");
SetCursor("autostaffoff");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid() || !Game::IsFreeplay())
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)
{
Caller->RemoveCommand("VcmdAutoStaffOff");
Caller->AssignCommand("VcmdAutoStaffOn");
}
};
object VcmdRepairVehicles : CommandScript
{
VcmdRepairVehicles()
{
SetCursor("repair");
SetIcon("repair");
}
bool CheckPossible(GameObject *Caller)
{
if (!Caller->IsValid())
return false;
if (!Game::IsFreeplay() && !Game::IsMultiplayer())
return false;
int Money = Mission::GetMoneyLeft();
if (Money < PRICE_REPAIR)
return false;
Vehicle v(Caller);
if (v.HasCommand(DUMMY_ALARM))
return false;
return true;
}
bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
{
if (!Caller->IsValid() || !Target->IsValid())
return false;
return true;
}
void PushActions(GameObject *Caller, Actor *Target, int ChildID)
{
if (ChildID == 0)
{
Vehicle cp(Caller);
GameObjectList l1;
ActorList l2, l3;
if(Caller->HasName(NAME_CONTROLPANEL))
{
Game::CollectObstaclesOnVirtualObject(VO_SQUAD01, l1, ACTOR_VEHICLE);
l2 = Game::GetActors(VO_SPAWN01);
l3 = Game::GetActors(VO_MOVETO01);
}
else if(Caller->HasName(NAME_CONTROLPANEL2))
{
Game::CollectObstaclesOnVirtualObject(VO_SQUAD02, l1, ACTOR_VEHICLE);
l2 = Game::GetActors(VO_SPAWN02);
l3 = Game::GetActors(VO_MOVETO02);
}
Vector Spawn = l2.GetActor(0)->GetPosition();
Vector MoveTo = l3.GetActor(0)->GetPosition();
bool repair = false;
for(int i=0; i < l1.GetNumObjects(); i++)
{
if (!repair)
{
Vehicle obj = l1.GetObject(i);
if (!obj.HasCommand(DUMMY_VCALLED) && obj.GetEnergy() < obj.GetMaxEnergy())
repair = true;
}
}
if (repair)
{
int Money = Mission::GetMoneyLeft();
if (Money >= PRICE_REPAIR)
{
int NewMoney = Money - PRICE_REPAIR;
Mission::SetMoney(NewMoney);
}
Person p = Game::CreatePerson(OBJ_ENGINEER, UNNAMED);
if (Game::FindFreePosition(&p, Spawn))
{
p.SetUpgradeLevel(3);
p.SetEquipment(EQUIP_THW_CASE);
Game::FindFreePosition(&p, Spawn);
p.SetPosition(Spawn);
p.PushActionmove(ACTION_NEWLIST, MoveTo);
p.PushActionExecuteCommand(ACTION_APPEND, "VcmdRepairVehicles", &cp, 1, false);
}
} else
Mission::PlayHint(HINT_NO_REPAIR);
}
if (ChildID == 1)
{
Person p(Caller);
Vehicle cp(Target);
GameObjectList l1;
ActorList l2;
bool repair = false;
if(cp.HasName(NAME_CONTROLPANEL))
{
Game::CollectObstaclesOnVirtualObject(VO_SQUAD01, l1, ACTOR_VEHICLE);
l2 = Game::GetActors(VO_SPAWN01);
}
if(cp.HasName(NAME_CONTROLPANEL2))
{
Game::CollectObstaclesOnVirtualObject(VO_SQUAD02, l1, ACTOR_VEHICLE);
l2 = Game::GetActors(VO_SPAWN02);
}
Vector Delete = l2.GetActor(0)->GetPosition();
for(int i=0; i < l1.GetNumObjects(); i++)
{
if (!repair)
{
Vehicle obj = l1.GetObject(i);
if (!obj.HasCommand(DUMMY_VCALLED) && obj.GetEnergy() < obj.GetMaxEnergy())
repair = true;
}
}
if (repair)
{
p.PushActionmove(ACTION_NEWLIST, &obj, TARGET_ANY);
p.PushActionTurnTo(ACTION_APPEND, &obj);
p.PushActionRepair(ACTION_APPEND, &obj);
p.PushActionExecuteCommand(ACTION_APPEND, "VcmdRepairVehicles", &cp, 1, false);
} else
{
Mission::PlayHint(HINT_REPAIRED);
p.PushActionmove(ACTION_NEWLIST, Delete);
p.PushActionDeleteOwner(ACTION_APPEND);
}
}
}
};
-
And to become one after you start playing?
-
-
at first base as there are three ambulances have to do to become one
-
Hi, how to change the la mod to the base number 1 was one ambulance
hose length
in Technical Related Support
Posted
Hello, what script is responsible for reducing the hose into 3 sections and which line it is responsible for this