Jump to content
Maffegozer

Helicopter Alarm Problem!

Recommended Posts

Hello,

I've got a problem with a helicopter.

I have made a VO for the personnel (where they'll spawn) named: LFL_PERSONEEL

Placed a Helicopter on the map.

Named the heli: LFL3

Gave a guy the command to alarm the heli...

Now the problem:

When I alarm the heli.

The people spawn from the VO and run to the heli.then they wait for 2 seconds at the heli. just standing there.

Then the heli take's off without them!

My script:

/* **************************************************************************** */
/* Alarmscript */
/* © by David Färber ("emergency-freak") */
/* */
/* Script zur Alarmierung eines FZ */
/* */
/* Erstellt von: emergency-freak */
/* Special THX: lennox */
/* */
/* 09.06.2009: Initialversion */
/* 19.10.2009: Finish, Release und Freigabe */
/* */
/* Script frei für alle mit Readme-Eintrag. Dieser Kommentarblock darf nicht */
/* entfernt werden. Kein Support gewährleistet. */
/* */
/* **************************************************************************** */

int DummyGroup = 20;

// Definitionen - Hier muss geändert werden!

const char STR_VObjPersonStart[] = "LFL_PERSONEEL"; // Name des VO's, wo die Feuerwehrleute erstellt werden
const char STR_ProtoPerson[] = "mod:Prototypes/Persons/08MMT/ambuteam.e4p"; // Prototyp der Person, die erstellt wird
const char STR_VehicleName[] = "LFL3"; // Name des zu alarmierenden Fahrzeugs - Muss einmalig sein auf der Karte
const char CommandIcon[] = "LFL3"; // Name des zu verwendenen Icons - Wird automatisch aus dem entsprechenden Ordner genommen
const char AlarmMessage[] = "A1 LIFELINER 3 NAAR TILBURG"; // Die Nachricht die beim Alarm abgespielt wird
const char AlarmSound[] = "pfad_zum_sound"; // Pfad zum Sound der abgespielt wird - muss Mono & WAV sein
const int PersonCounter = 3; // Anzahl der zu erstellenden Personen
const int VehicleSirenID = 1; // 1 = SoSi Script ist vorhanden soll ausgeführt werden, 0 = SoSi Script soll nicht ausgeführt werden
const int GameSoundID = 1; // 1 = Es soll ein Alarmsound abgespielt werden
const int VehicleWaitingTime = 15.0; // Zeit, bis das Fahrzeug nach dem Alarm losfährt (Sekunden). In dieser Zeit müssen auch die Personen einstellen.

// Ab hier sind keine Änderungen notwendig

// Dummycommand

object DummyVehicleNotFree : CommandScript
{
DummyVehicleNotFree()
{
SetGroupID(DummyGroup);
}

bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
{
return false;
}
};

// ALARMERING_LFL3

object ALARMERING_LFL3 : CommandScript // Selbstverständlich kann der Script-Name geändert werden
{
ALARMERING_LFL3() // Muss identisch mit dem Namen oben sein
{
SetCursor(CommandIcon);
SetIcon(CommandIcon);
SetValidTargets(ACTOR_FLOOR);
}

bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
{
if(!Target->GetType() == ACTOR_FLOOR)
return false;

return true;
}

void PushActions(GameObject *Caller, Actor *Target, int childID)
{
GameObjectList l0 = Game::GetGameObjects(TYPE_VEHICLE);
for(int i=0; i<l0.GetNumObjects(); i++)
{
ActorList PerStartList(STR_VObjPersonStart);
if (PerStartList.GetNumActors() == 0)
{
System::Log("Alarmscript fehlgeschlagen - Kein Virtual Object gefunden!");
return;
}

GameObject *Obj = l0.GetObject(i);
Vehicle v(Obj);

if(v.HasName(STR_VehicleName) && !v.HasCommand("DummyVehicleNotFree"))
{
for(int j=0; j<PersonCounter; j++)
{
Vector Pos = v.GetPosition();
if(!v.HasCommand("DummyUitgerukt"))
{
Person p = Game::CreatePerson(STR_ProtoPerson, "OVDB1");

Vector pStartPos(PerStartList.GetActor(0)->GetPosition());
Game::FindFreePosition(&p, pStartPos, 100.f);

p.SetPosition(pStartPos);
p.PushActionMove(ACTION_NEWLIST, Pos);
p.PushActionTurnTo(ACTION_APPEND, &v);
p.PushActionEnterCar(ACTION_APPEND, &v);
}
}
Mission::PlayHint(AlarmMessage);
if(GameSoundID == 1)
{
Audio::PlaySample(AlarmSound);
}
Vector TargetPos=Game::GetCommandPos();
Game::FindFreePosition(&v, TargetPos, 90);

v.PushActionWait(ACTION_NEWLIST, VehicleWaitingTime);
if(VehicleSirenID == 1)
{
v.PushActionExecuteCommand(ACTION_APPEND, "VCmdSiren", &v, 0, false);
}
Obj->PushActionFlyTo(ACTION_NEWLIST, TargetPos, false, -1.0f);
v.AssignCommand("DummyVehicleNotFree");
v.AssignCommand("DummyUitgerukt");
}
}
}
};

object DummyUitgerukt : CommandScript
{
DummyUitgerukt()
{
SetGroupID(DummyGroup);
}

bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
{
return false;
}
};

Can anybody help me with this problem?

I will appreciate that very much!

Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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



×
×
  • Create New...