Alarm FF

Rozmowy związane Emergency 4 Global Fighters For Life.

Alarm FF

Postautor: koalas11231 » 14 paź 2013, 10:53

Siema mam problem ze skryptem.

Tutaj daję skrypt oryginalny i skonfigurowany przezemnie:

ORYGINAŁ
Prime Bbcode Spoiler Show Prime Bbcode Spoiler:
/* *********************************************************************************
**** Freiwillige Feuerwehr - Alarmscript ****
**** Lässt freiwillige Feuerwehrleute zum Gerätehaus rennen bzw. fahren. Da- ****
**** raufhin müssen die Fahrzeuge vom Spieler besetzt und zur Einsatz- ****
**** stelle geschickt werden. ****
*********************************************************************************
**** Special THX an lennox für die Komplettüberarbeitung ****
*********************************************************************************
**** Copyright 2009 by David Färber | Nutzung frei mit Readme Eintrag ****
**** Dieser Kommentarblock darf nicht entfernt oder geändert werden! ****
********************************************************************************* */

// Namen der virtuellen Objekte, wo die Privat-PKW erstellt werden
// Weiter unten im Script werden diese Definierungen verwendet.

const char *STR_VObjVehicle1Start = "vehicle01_vo";
const char *STR_VObjVehicle2Start = "vehicle02_vo";
const char *STR_VObjVehicle3Start = "vehicle03_vo";
const char *STR_VObjVehicle4Start = "vehicle04_vo";

// Name des virtuellen Objektes, wo die Privat-PKW geparkt werden

const char *STR_VObjVehicleTarget = "vehicle_target";

// An diesen Stellen werden die Feuerwehrleute erstellt.
// Hier müssen die Namen der virtuellen Objekte angegeben werden.

const char *STR_VObjPerson1Start = "fw1_vo";
const char *STR_VObjPerson2Start = "fw2_vo";
const char *STR_VObjPerson3Start = "fw3_vo";
const char *STR_VObjPerson4Start = "fw4_vo";
const char *STR_VObjPerson5Start = "fw5_vo";
const char *STR_VObjPerson6Start = "fw6_vo";
const char *STR_VObjPerson7Start = "fw7_vo";
const char *STR_VObjPerson8Start = "fw8_vo";
const char *STR_VObjPerson9Start = "fw9_vo";
const char *STR_VObjPerson10Start = "fw10_vo";
const char *STR_VObjPerson11Start = "fw11_vo";

// Hier laufen die Personen hin.

const char *STR_VObjPersonsTarget = "fw_target";

// Prototypes der Personen und Fahrzeuge.
// Die Personen entsprechen Original-Em4 Pfaden & müssen nicht geändert werden
// Die Fahrzeug-Pfade müssen geändert werden.

const char *STR_ProtoPerson1 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_1.e4p";
const char *STR_ProtoPerson2 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_2.e4p";
const char *STR_ProtoPerson3 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_3.e4p";
const char *STR_ProtoPerson4 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_4.e4p";
const char *STR_ProtoPerson5 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_5.e4p";
const char *STR_ProtoPerson6 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_6.e4p";
const char *STR_ProtoPerson7 = "mod:Prototypes/Persons/Feuerwehr Hammerstadt/Civil_7.e4p";
const char *STR_ProtoVehicle1 = "mod:Prototypes/Vehicles/BMW/3er 06 blau.e4p";
const char *STR_ProtoVehicle2 = "mod:Prototypes/Vehicles/Audi/A6 neu grau.e4p";
const char *STR_ProtoVehicle3 = "mod:Prototypes/Vehicles/Opel/Vectra C caravan05 schwarz.e4p";
const char *STR_ProtoVehicle4 = "mod:Prototypes/Vehicles/Opel/Astra F rot.e4p";


object Alarm_FF : CommandScript // Name des Scriptes.
{ // PCmd steht für Person bound Comandscript
Alarm_FF() // Name kann beliebig geändert werden.
{
SetCursor("gb");
SetIcon("gb");
}

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

void PushActions(GameObject *Caller, Actor *Target, int childID)
{
// In den folgenden Zeilen wird geprüft, ob die VO's vorhanden sind.
// Wenn oben an den Definitionen grundlegendes geändert wurde, muss hier auch geändert werden!


ActorList Vec1StartList(STR_VObjVehicle1Start);
if (Vec1StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec1StartList mismatch!");
return;
}

ActorList Vec2StartList(STR_VObjVehicle2Start);
if (Vec2StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec2StartList mismatch!");
return;
}

ActorList Vec3StartList(STR_VObjVehicle3Start);
if (Vec3StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec3StartList mismatch!");
return;
}

ActorList Vec4StartList(STR_VObjVehicle4Start);
if (Vec4StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec4StartList mismatch!");
return;
}

ActorList VecTargetList(STR_VObjVehicleTarget);
if (VecTargetList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: VecTargetList mismatch!");
return;
}

ActorList Per1StartList(STR_VObjPerson1Start);
if (Per1StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per1StartList mismatch!");
return;
}

ActorList Per2StartList(STR_VObjPerson2Start);
if (Per2StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per2StartList mismatch!");
return;
}

ActorList Per3StartList(STR_VObjPerson3Start);
if (Per3StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per3StartList mismatch!");
return;
}

ActorList Per4StartList(STR_VObjPerson4Start);
if (Per4StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per4StartList mismatch!");
return;
}

ActorList Per5StartList(STR_VObjPerson5Start);
if (Per5StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per5StartList mismatch!");
return;
}

ActorList Per6StartList(STR_VObjPerson6Start);
if (Per6StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per6StartList mismatch!");
return;
}

ActorList Per7StartList(STR_VObjPerson7Start);
if (Per7StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per7StartList mismatch!");
return;
}

ActorList Per8StartList(STR_VObjPerson8Start);
if (Per8StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per8StartList mismatch!");
return;
}

ActorList Per9StartList(STR_VObjPerson9Start);
if (Per9StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per9StartList mismatch!");
return;
}

ActorList Per10StartList(STR_VObjPerson10Start);
if (Per10StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per10StartList mismatch!");
return;
}

ActorList Per11StartList(STR_VObjPerson11Start);
if (Per11StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per11StartList mismatch!");
return;
}

ActorList PerTargetList(STR_VObjPersonsTarget);
if (PerTargetList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: PerTargetList mismatch!");
return;
}


// In den folgenden Zeilen werden Fahrzeuge & Fahrzeug-Führer erstellt.
// Die Zahl hinter Anzahl stellt die Anzahl der Fahrzeuge dar.

int Anzahl = 4;

for (int i=4; i<Anzahl; i++)
{
Person passenger = Game::CreatePerson(STR_ProtoPerson1, "Unnamed");
passenger.SetRole(ROLE_SQUAD);
passenger.AssignCommand("MoveTo"); // Commands, die der Person zugewiesen werden, können nach Bedarf geändert werden.
passenger.AssignCommand("EnterCar");
passenger.AssignCommand("PCmdChangeToFWM");

int CreateVehicle = rand()%4;
switch(CreateVehicle)
{
case 0:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle1, "privatpkw_ff1");
break;
case 1:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle2, "privatpkw_ff1");
break;
case 2:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle3, "privatpkw_ff1");
break;
case 3:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle4, "privatpkw_ff1");
break;
}

ActorList VehicleStartList;
if (i == 1)
{
VehicleStartList = Vec2StartList;
}
else if (i == 2)
{
VehicleStartList = Vec3StartList;
}
else if (i == 3)
{
VehicleStartList = Vec4StartList;
}
else
{
VehicleStartList = Vec1StartList;
}

Vector vStartPos(VehicleStartList.GetActor(0)->GetPosition());
Vector vTargetPos(VecTargetList.GetActor(0)->GetPosition());
Game::FindFreePosition(&v, vStartPos, 100.f);
Game::FindFreePosition(&v, vTargetPos, 100.f);

v.SetPosition(vStartPos);
v.SetSpeed(12.f);
v.SetMaxPassengers(2);
v.AddPassenger(passenger);
v.AssignCommand("MoveTo");
v.AssignCommand("EmptyCar");

int WaitingTimeVec = rand()%3;
switch(WaitingTimeVec)
{
case 0:
int WaitingV1 = 4.f;
break;
case 1:
int WaitingV1 = 8.f;
break;
case 2:
int WaitingV1 = 11.f;
break;
}
v.PushActionWait(ACTION_NEWLIST, WaitingV1);
v.PushActionMove(ACTION_APPEND, vTargetPos);
}

// Hier werden die Personen erstellt.
// Die Prototypes werden zufällig gewählt.
// Die Zahl, wo hier i<9 steht, kann geändert werden.
// In diesem Fall werden 9 Personen erstellt.

for (int i=0; i<17; i++)
{
int CreatePerson = rand()%7;
switch(CreatePerson)
{
case 0:
Person p = Game::CreatePerson(STR_ProtoPerson1, "Unnamed");
break;
case 1:
Person p = Game::CreatePerson(STR_ProtoPerson2, "Unnamed");
break;
case 2:
Person p = Game::CreatePerson(STR_ProtoPerson3, "Unnamed");
break;
case 3:
Person p = Game::CreatePerson(STR_ProtoPerson4, "Unnamed");
break;
case 4:
Person p = Game::CreatePerson(STR_ProtoPerson5, "Unnamed");
break;
case 5:
Person p = Game::CreatePerson(STR_ProtoPerson6, "Unnamed");
break;
case 6:
Person p = Game::CreatePerson(STR_ProtoPerson7, "Unnamed");
break;
}

ActorList startList;
if (i == 1)
{
startList = Per2StartList;
}
else if (i == 2)
{
startList = Per3StartList;
}
else if (i == 3)
{
startList = Per4StartList;
}
else if (i == 4)
{
startList = Per5StartList;
}
else if (i == 5)
{
startList = Per6StartList;
}
else if (i == 6)
{
startList = Per7StartList;
}
else if (i == 7)
{
startList = Per8StartList;
}
else if (i == 8)
{
startList = Per9StartList;
}
else if (i == 9)
{
startList = Per10StartList;
}
else if (i == 10)
{
startList = Per11StartList;
}
else
{
startList = Per1StartList;
}

Vector startPos(startList.GetActor(0)->GetPosition());
Vector targetPos(PerTargetList.GetActor(0)->GetPosition());
Game::FindFreePosition(&p, startPos, 100.f);
Game::FindFreePosition(&p, targetPos, 100.f);

p.SetPosition(startPos);
p.SetRole(ROLE_SQUAD);
p.AssignCommand("MoveTo");
p.AssignCommand("EnterCar");
p.AssignCommand("PCmdChangeToFWM");

int WaitingTimePer = rand()%3;
switch(WaitingTimePer)
{
case 0:
int WaitingPer = 3.f;
break;
case 1:
int WaitingPer = 6.f;
break;
case 2:
int WaitingPer = 9.f;
break;
}

p.PushActionWait(ACTION_NEWLIST, WaitingPer);
p.PushActionMove(ACTION_APPEND, targetPos);
}

// Hier läuft die Alarmmeldung durch
// Außerdem wird ein Sound gespielt.

Mission::PlayHint("Gebäudebrand - Menschenleben in Gefahr. Einsatz frewillige Feuerwehr Mosbach Abt. Mosbach-Stadt");
Audio::PlaySample("mod:Audio/FX/gbfwmos");
System::Log("PCmdAlarmFW: ended");
}
};

SKONFIGUROWANY PRZEZEMNIE
Prime Bbcode Spoiler Show Prime Bbcode Spoiler:
/* *********************************************************************************
**** Freiwillige Feuerwehr - Alarmscript ****
**** Lässt freiwillige Feuerwehrleute zum Gerätehaus rennen bzw. fahren. Da- ****
**** raufhin müssen die Fahrzeuge vom Spieler besetzt und zur Einsatz- ****
**** stelle geschickt werden. ****
*********************************************************************************
**** Special THX an lennox für die Komplettüberarbeitung ****
*********************************************************************************
**** Copyright 2009 by David Färber | Nutzung frei mit Readme Eintrag ****
**** Dieser Kommentarblock darf nicht entfernt oder geändert werden! ****
********************************************************************************* */

// Namen der virtuellen Objekte, wo die Privat-PKW erstellt werden
// Weiter unten im Script werden diese Definierungen verwendet.

const char *STR_VObjVehicle1Start = "vehicle01_vo";
const char *STR_VObjVehicle2Start = "vehicle02_vo";
const char *STR_VObjVehicle3Start = "vehicle03_vo";
const char *STR_VObjVehicle4Start = "vehicle04_vo";

// Name des virtuellen Objektes, wo die Privat-PKW geparkt werden

const char *STR_VObjVehicleTarget = "vehicle_target";

// An diesen Stellen werden die Feuerwehrleute erstellt.
// Hier müssen die Namen der virtuellen Objekte angegeben werden.

const char *STR_VObjPerson1Start = "strazak1";
const char *STR_VObjPerson2Start = "strazak2";
const char *STR_VObjPerson3Start = "strazak3";
const char *STR_VObjPerson4Start = "strazak4;
const char *STR_VObjPerson5Start = "strazak5";
const char *STR_VObjPerson6Start = "strazak6";
const char *STR_VObjPerson7Start = "strazak7";
const char *STR_VObjPerson8Start = "strazak8";
const char *STR_VObjPerson9Start = "strazak9";
const char *STR_VObjPerson10Start = "strazak10";
const char *STR_VObjPerson11Start = "strazak11";

// Hier laufen die Personen hin.

const char *STR_VObjPersonsTarget = "zebranie";

// Prototypes der Personen und Fahrzeuge.
// Die Personen entsprechen Original-Em4 Pfaden & müssen nicht geändert werden
// Die Fahrzeug-Pfade müssen geändert werden.

const char *STR_ProtoPerson1 = "mod:Prototypes/Civil/civilman01.e4p";
const char *STR_ProtoPerson2 = "mod:Prototypes/Civil/civilman01_red.e4p";
const char *STR_ProtoPerson3 = "mod:Prototypes/Civil/civilman01_white.e4p";
const char *STR_ProtoPerson4 = "mod:Prototypes/Civil/civilman01_white2.e4p";
const char *STR_ProtoPerson5 = "mod:Prototypes/Civil/civilman02_blue.e4p";
const char *STR_ProtoPerson6 = "mod:Prototypes/Civil/civilman02_silver.e4p";
const char *STR_ProtoPerson7 = "mod:Prototypes/Civil/civilman03_green.e4p";
const char *STR_ProtoVehicle1 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar01_silver.e4p";
const char *STR_ProtoVehicle2 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar02_blue.e4p";
const char *STR_ProtoVehicle3 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar02_brown.e4p";
const char *STR_ProtoVehicle4 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar02_silver.e4p";


object Alarm_FF : CommandScript // Name des Scriptes.
{ // PCmd steht für Person bound Comandscript
Alarm_FF() // Name kann beliebig geändert werden.
{
SetCursor("gb");
SetIcon("gb");
}

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

void PushActions(GameObject *Caller, Actor *Target, int childID)
{
// In den folgenden Zeilen wird geprüft, ob die VO's vorhanden sind.
// Wenn oben an den Definitionen grundlegendes geändert wurde, muss hier auch geändert werden!


ActorList Vec1StartList(STR_VObjVehicle1Start);
if (Vec1StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec1StartList mismatch!");
return;
}

ActorList Vec2StartList(STR_VObjVehicle2Start);
if (Vec2StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec2StartList mismatch!");
return;
}

ActorList Vec3StartList(STR_VObjVehicle3Start);
if (Vec3StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec3StartList mismatch!");
return;
}

ActorList Vec4StartList(STR_VObjVehicle4Start);
if (Vec4StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec4StartList mismatch!");
return;
}

ActorList VecTargetList(STR_VObjVehicleTarget);
if (VecTargetList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: VecTargetList mismatch!");
return;
}

ActorList Per1StartList(STR_VObjPerson1Start);
if (Per1StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per1StartList mismatch!");
return;
}

ActorList Per2StartList(STR_VObjPerson2Start);
if (Per2StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per2StartList mismatch!");
return;
}

ActorList Per3StartList(STR_VObjPerson3Start);
if (Per3StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per3StartList mismatch!");
return;
}

ActorList Per4StartList(STR_VObjPerson4Start);
if (Per4StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per4StartList mismatch!");
return;
}

ActorList Per5StartList(STR_VObjPerson5Start);
if (Per5StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per5StartList mismatch!");
return;
}

ActorList Per6StartList(STR_VObjPerson6Start);
if (Per6StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per6StartList mismatch!");
return;
}

ActorList Per7StartList(STR_VObjPerson7Start);
if (Per7StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per7StartList mismatch!");
return;
}

ActorList Per8StartList(STR_VObjPerson8Start);
if (Per8StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per8StartList mismatch!");
return;
}

ActorList Per9StartList(STR_VObjPerson9Start);
if (Per9StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per9StartList mismatch!");
return;
}

ActorList Per10StartList(STR_VObjPerson10Start);
if (Per10StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per10StartList mismatch!");
return;
}

ActorList Per11StartList(STR_VObjPerson11Start);
if (Per11StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per11StartList mismatch!");
return;
}

ActorList PerTargetList(STR_VObjPersonsTarget);
if (PerTargetList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: PerTargetList mismatch!");
return;
}


// In den folgenden Zeilen werden Fahrzeuge & Fahrzeug-Führer erstellt.
// Die Zahl hinter Anzahl stellt die Anzahl der Fahrzeuge dar.

int Anzahl = 4;

for (int i=4; i<Anzahl; i++)
{
Person passenger = Game::CreatePerson(STR_ProtoPerson1, "Unnamed");
passenger.SetRole(ROLE_SQUAD);
passenger.AssignCommand("MoveTo"); // Commands, die der Person zugewiesen werden, können nach Bedarf geändert werden.
passenger.AssignCommand("EnterCar");
passenger.AssignCommand("PCmdChangeToFWM");

int CreateVehicle = rand()%4;
switch(CreateVehicle)
{
case 0:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle1, "privatpkw_ff1");
break;
case 1:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle2, "privatpkw_ff1");
break;
case 2:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle3, "privatpkw_ff1");
break;
case 3:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle4, "privatpkw_ff1");
break;
}

ActorList VehicleStartList;
if (i == 1)
{
VehicleStartList = Vec2StartList;
}
else if (i == 2)
{
VehicleStartList = Vec3StartList;
}
else if (i == 3)
{
VehicleStartList = Vec4StartList;
}
else
{
VehicleStartList = Vec1StartList;
}

Vector vStartPos(VehicleStartList.GetActor(0)->GetPosition());
Vector vTargetPos(VecTargetList.GetActor(0)->GetPosition());
Game::FindFreePosition(&v, vStartPos, 100.f);
Game::FindFreePosition(&v, vTargetPos, 100.f);

v.SetPosition(vStartPos);
v.SetSpeed(12.f);
v.SetMaxPassengers(2);
v.AddPassenger(passenger);
v.AssignCommand("MoveTo");
v.AssignCommand("EmptyCar");

int WaitingTimeVec = rand()%3;
switch(WaitingTimeVec)
{
case 0:
int WaitingV1 = 4.f;
break;
case 1:
int WaitingV1 = 8.f;
break;
case 2:
int WaitingV1 = 11.f;
break;
}
v.PushActionWait(ACTION_NEWLIST, WaitingV1);
v.PushActionMove(ACTION_APPEND, vTargetPos);
}

// Hier werden die Personen erstellt.
// Die Prototypes werden zufällig gewählt.
// Die Zahl, wo hier i<9 steht, kann geändert werden.
// In diesem Fall werden 9 Personen erstellt.

for (int i=0; i<17; i++)
{
int CreatePerson = rand()%7;
switch(CreatePerson)
{
case 0:
Person p = Game::CreatePerson(STR_ProtoPerson1, "Unnamed");
break;
case 1:
Person p = Game::CreatePerson(STR_ProtoPerson2, "Unnamed");
break;
case 2:
Person p = Game::CreatePerson(STR_ProtoPerson3, "Unnamed");
break;
case 3:
Person p = Game::CreatePerson(STR_ProtoPerson4, "Unnamed");
break;
case 4:
Person p = Game::CreatePerson(STR_ProtoPerson5, "Unnamed");
break;
case 5:
Person p = Game::CreatePerson(STR_ProtoPerson6, "Unnamed");
break;
case 6:
Person p = Game::CreatePerson(STR_ProtoPerson7, "Unnamed");
break;
}

ActorList startList;
if (i == 1)
{
startList = Per2StartList;
}
else if (i == 2)
{
startList = Per3StartList;
}
else if (i == 3)
{
startList = Per4StartList;
}
else if (i == 4)
{
startList = Per5StartList;
}
else if (i == 5)
{
startList = Per6StartList;
}
else if (i == 6)
{
startList = Per7StartList;
}
else if (i == 7)
{
startList = Per8StartList;
}
else if (i == 8)
{
startList = Per9StartList;
}
else if (i == 9)
{
startList = Per10StartList;
}
else if (i == 10)
{
startList = Per11StartList;
}
else
{
startList = Per1StartList;
}

Vector startPos(startList.GetActor(0)->GetPosition());
Vector targetPos(PerTargetList.GetActor(0)->GetPosition());
Game::FindFreePosition(&p, startPos, 100.f);
Game::FindFreePosition(&p, targetPos, 100.f);

p.SetPosition(startPos);
p.SetRole(ROLE_SQUAD);
p.AssignCommand("MoveTo");
p.AssignCommand("EnterCar");
p.AssignCommand("PCmdChangeToFWM");

int WaitingTimePer = rand()%3;
switch(WaitingTimePer)
{
case 0:
int WaitingPer = 3.f;
break;
case 1:
int WaitingPer = 6.f;
break;
case 2:
int WaitingPer = 9.f;
break;
}

p.PushActionWait(ACTION_NEWLIST, WaitingPer);
p.PushActionMove(ACTION_APPEND, targetPos);
}

// Hier läuft die Alarmmeldung durch
// Außerdem wird ein Sound gespielt.

Mission::PlayHint("Gebäudebrand - Menschenleben in Gefahr. Einsatz frewillige Feuerwehr Mosbach Abt. Mosbach-Stadt");
Audio::PlaySample("mod:Audio/FX/gbfwmos");
System::Log("PCmdAlarmFW: ended");
}
};


Jak próbuję załadować w edytorze, to wyskakuje mi to:

Obrazek

Co jest nie tak?
Ostatnio zmieniony 14 paź 2013, 16:03 przez koalas11231, łącznie zmieniany 1 raz
koalas11231
Starszy aspirant
Starszy aspirant
 
Posty: 656
Rejestracja: 09 kwie 2012, 07:18
Lokalizacja: WROCŁAW
Pochwały: 15

Re: Alarm FF

Postautor: Anonimowy » 14 paź 2013, 17:00

naprawiłem skrypt


Prime Bbcode Spoiler Show Prime Bbcode Spoiler:
/* *********************************************************************************
**** Freiwillige Feuerwehr - Alarmscript ****
**** Lässt freiwillige Feuerwehrleute zum Gerätehaus rennen bzw. fahren. Da- ****
**** raufhin müssen die Fahrzeuge vom Spieler besetzt und zur Einsatz- ****
**** stelle geschickt werden. ****
*********************************************************************************
**** Special THX an lennox für die Komplettüberarbeitung ****
*********************************************************************************
**** Copyright 2009 by David Färber | Nutzung frei mit Readme Eintrag ****
**** Dieser Kommentarblock darf nicht entfernt oder geändert werden! ****
********************************************************************************* */

// Namen der virtuellen Objekte, wo die Privat-PKW erstellt werden
// Weiter unten im Script werden diese Definierungen verwendet.

const char *STR_VObjVehicle1Start = "vehicle01_vo";
const char *STR_VObjVehicle2Start = "vehicle02_vo";
const char *STR_VObjVehicle3Start = "vehicle03_vo";
const char *STR_VObjVehicle4Start = "vehicle04_vo";

// Name des virtuellen Objektes, wo die Privat-PKW geparkt werden

const char *STR_VObjVehicleTarget = "vehicle_target";

// An diesen Stellen werden die Feuerwehrleute erstellt.
// Hier müssen die Namen der virtuellen Objekte angegeben werden.

const char *STR_VObjPerson1Start = "strazak1";
const char *STR_VObjPerson2Start = "strazak2";
const char *STR_VObjPerson3Start = "strazak3";
const char *STR_VObjPerson4Start = "strazak4";
const char *STR_VObjPerson5Start = "strazak5";
const char *STR_VObjPerson6Start = "strazak6";
const char *STR_VObjPerson7Start = "strazak7";
const char *STR_VObjPerson8Start = "strazak8";
const char *STR_VObjPerson9Start = "strazak9";
const char *STR_VObjPerson10Start = "strazak10";
const char *STR_VObjPerson11Start = "strazak11";

// Hier laufen die Personen hin.

const char *STR_VObjPersonsTarget = "zebranie";

// Prototypes der Personen und Fahrzeuge.
// Die Personen entsprechen Original-Em4 Pfaden & müssen nicht geändert werden
// Die Fahrzeug-Pfade müssen geändert werden.

const char *STR_ProtoPerson1 = "mod:Prototypes/Civil/civilman01.e4p";
const char *STR_ProtoPerson2 = "mod:Prototypes/Civil/civilman01_red.e4p";
const char *STR_ProtoPerson3 = "mod:Prototypes/Civil/civilman01_white.e4p";
const char *STR_ProtoPerson4 = "mod:Prototypes/Civil/civilman01_white2.e4p";
const char *STR_ProtoPerson5 = "mod:Prototypes/Civil/civilman02_blue.e4p";
const char *STR_ProtoPerson6 = "mod:Prototypes/Civil/civilman02_silver.e4p";
const char *STR_ProtoPerson7 = "mod:Prototypes/Civil/civilman03_green.e4p";
const char *STR_ProtoVehicle1 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar01_silver.e4p";
const char *STR_ProtoVehicle2 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar02_blue.e4p";
const char *STR_ProtoVehicle3 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar02_brown.e4p";
const char *STR_ProtoVehicle4 = "mod:Prototypes/Vehicles/Civil - Cars/civilcar02_silver.e4p";


object Alarm_FF : CommandScript // Name des Scriptes.
{ // PCmd steht für Person bound Comandscript
Alarm_FF() // Name kann beliebig geändert werden.
{
SetCursor("gb");
SetIcon("gb");
}

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

void PushActions(GameObject *Caller, Actor *Target, int childID)
{
// In den folgenden Zeilen wird geprüft, ob die VO's vorhanden sind.
// Wenn oben an den Definitionen grundlegendes geändert wurde, muss hier auch geändert werden!


ActorList Vec1StartList(STR_VObjVehicle1Start);
if (Vec1StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec1StartList mismatch!");
return;
}

ActorList Vec2StartList(STR_VObjVehicle2Start);
if (Vec2StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec2StartList mismatch!");
return;
}

ActorList Vec3StartList(STR_VObjVehicle3Start);
if (Vec3StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec3StartList mismatch!");
return;
}

ActorList Vec4StartList(STR_VObjVehicle4Start);
if (Vec4StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Vec4StartList mismatch!");
return;
}

ActorList VecTargetList(STR_VObjVehicleTarget);
if (VecTargetList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: VecTargetList mismatch!");
return;
}

ActorList Per1StartList(STR_VObjPerson1Start);
if (Per1StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per1StartList mismatch!");
return;
}

ActorList Per2StartList(STR_VObjPerson2Start);
if (Per2StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per2StartList mismatch!");
return;
}

ActorList Per3StartList(STR_VObjPerson3Start);
if (Per3StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per3StartList mismatch!");
return;
}

ActorList Per4StartList(STR_VObjPerson4Start);
if (Per4StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per4StartList mismatch!");
return;
}

ActorList Per5StartList(STR_VObjPerson5Start);
if (Per5StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per5StartList mismatch!");
return;
}

ActorList Per6StartList(STR_VObjPerson6Start);
if (Per6StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per6StartList mismatch!");
return;
}

ActorList Per7StartList(STR_VObjPerson7Start);
if (Per7StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per7StartList mismatch!");
return;
}

ActorList Per8StartList(STR_VObjPerson8Start);
if (Per8StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per8StartList mismatch!");
return;
}

ActorList Per9StartList(STR_VObjPerson9Start);
if (Per9StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per9StartList mismatch!");
return;
}

ActorList Per10StartList(STR_VObjPerson10Start);
if (Per10StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per10StartList mismatch!");
return;
}

ActorList Per11StartList(STR_VObjPerson11Start);
if (Per11StartList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: Per11StartList mismatch!");
return;
}

ActorList PerTargetList(STR_VObjPersonsTarget);
if (PerTargetList.GetNumActors() != 1)
{
System::Log("PCmdAlarmFW: PerTargetList mismatch!");
return;
}


// In den folgenden Zeilen werden Fahrzeuge & Fahrzeug-Führer erstellt.
// Die Zahl hinter Anzahl stellt die Anzahl der Fahrzeuge dar.

int Anzahl = 4;

for (int i=4; i<Anzahl; i++)
{
Person passenger = Game::CreatePerson(STR_ProtoPerson1, "Unnamed");
passenger.SetRole(ROLE_SQUAD);
passenger.AssignCommand("MoveTo"); // Commands, die der Person zugewiesen werden, können nach Bedarf geändert werden.
passenger.AssignCommand("EnterCar");
passenger.AssignCommand("PCmdChangeToFWM");

int CreateVehicle = rand()%4;
switch(CreateVehicle)
{
case 0:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle1, "privatpkw_ff1");
break;
case 1:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle2, "privatpkw_ff1");
break;
case 2:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle3, "privatpkw_ff1");
break;
case 3:
Vehicle v = Game::CreateVehicle(STR_ProtoVehicle4, "privatpkw_ff1");
break;
}

ActorList VehicleStartList;
if (i == 1)
{
VehicleStartList = Vec2StartList;
}
else if (i == 2)
{
VehicleStartList = Vec3StartList;
}
else if (i == 3)
{
VehicleStartList = Vec4StartList;
}
else
{
VehicleStartList = Vec1StartList;
}

Vector vStartPos(VehicleStartList.GetActor(0)->GetPosition());
Vector vTargetPos(VecTargetList.GetActor(0)->GetPosition());
Game::FindFreePosition(&v, vStartPos, 100.f);
Game::FindFreePosition(&v, vTargetPos, 100.f);

v.SetPosition(vStartPos);
v.SetSpeed(12.f);
v.SetMaxPassengers(2);
v.AddPassenger(passenger);
v.AssignCommand("MoveTo");
v.AssignCommand("EmptyCar");

int WaitingTimeVec = rand()%3;
switch(WaitingTimeVec)
{
case 0:
int WaitingV1 = 4.f;
break;
case 1:
int WaitingV1 = 8.f;
break;
case 2:
int WaitingV1 = 11.f;
break;
}
v.PushActionWait(ACTION_NEWLIST, WaitingV1);
v.PushActionMove(ACTION_APPEND, vTargetPos);
}

// Hier werden die Personen erstellt.
// Die Prototypes werden zufällig gewählt.
// Die Zahl, wo hier i<9 steht, kann geändert werden.
// In diesem Fall werden 9 Personen erstellt.

for (int i=0; i<17; i++)
{
int CreatePerson = rand()%7;
switch(CreatePerson)
{
case 0:
Person p = Game::CreatePerson(STR_ProtoPerson1, "Unnamed");
break;
case 1:
Person p = Game::CreatePerson(STR_ProtoPerson2, "Unnamed");
break;
case 2:
Person p = Game::CreatePerson(STR_ProtoPerson3, "Unnamed");
break;
case 3:
Person p = Game::CreatePerson(STR_ProtoPerson4, "Unnamed");
break;
case 4:
Person p = Game::CreatePerson(STR_ProtoPerson5, "Unnamed");
break;
case 5:
Person p = Game::CreatePerson(STR_ProtoPerson6, "Unnamed");
break;
case 6:
Person p = Game::CreatePerson(STR_ProtoPerson7, "Unnamed");
break;
}

ActorList startList;
if (i == 1)
{
startList = Per2StartList;
}
else if (i == 2)
{
startList = Per3StartList;
}
else if (i == 3)
{
startList = Per4StartList;
}
else if (i == 4)
{
startList = Per5StartList;
}
else if (i == 5)
{
startList = Per6StartList;
}
else if (i == 6)
{
startList = Per7StartList;
}
else if (i == 7)
{
startList = Per8StartList;
}
else if (i == 8)
{
startList = Per9StartList;
}
else if (i == 9)
{
startList = Per10StartList;
}
else if (i == 10)
{
startList = Per11StartList;
}
else
{
startList = Per1StartList;
}

Vector startPos(startList.GetActor(0)->GetPosition());
Vector targetPos(PerTargetList.GetActor(0)->GetPosition());
Game::FindFreePosition(&p, startPos, 100.f);
Game::FindFreePosition(&p, targetPos, 100.f);

p.SetPosition(startPos);
p.SetRole(ROLE_SQUAD);
p.AssignCommand("MoveTo");
p.AssignCommand("EnterCar");
p.AssignCommand("PCmdChangeToFWM");

int WaitingTimePer = rand()%3;
switch(WaitingTimePer)
{
case 0:
int WaitingPer = 3.f;
break;
case 1:
int WaitingPer = 6.f;
break;
case 2:
int WaitingPer = 9.f;
break;
}

p.PushActionWait(ACTION_NEWLIST, WaitingPer);
p.PushActionMove(ACTION_APPEND, targetPos);
}

// Hier läuft die Alarmmeldung durch
// Außerdem wird ein Sound gespielt.

Mission::PlayHint("Gebäudebrand - Menschenleben in Gefahr. Einsatz frewillige Feuerwehr Mosbach Abt. Mosbach-Stadt");
Audio::PlaySample("mod:Audio/FX/gbfwmos");
System::Log("PCmdAlarmFW: ended");
}
};
Nic nie dzieje się wbrew naturze
lecz wbrew temu, co o niej wiemy
Fox Mulder w serialu "Z Archiwum X"


moje gg:45124969

KP PSP Rypin
Awatar użytkownika
Anonimowy
Aspirant
Aspirant
 
Posty: 423
Rejestracja: 03 lut 2012, 15:17
Lokalizacja: Rypin
Pochwały: 14


Wróć do Emergency 4

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości