== Mission-Counter-Script ==
This script is an example of application of the counter in missions. With counters you can query certain parameters, so that a predefined event occurs. Thus, for example, missions can be declared as won or lost.
This script is an example of application of the counter in missions. With counters you can query certain parameters, so that a predefined event occurs. Thus, for example, missions can be declared as won or lost.
In this sample script all the injured have to be removed and all fires have to be extinguished, so that the mission is set as won.
Code
// This script can be freely used if this comment is included.
// Missionsscript by rusticus und Bass-ti
// Idea by HH-EM4
const char OBJECTIVE_A[] = "Extinguish all fires!";
const char OBJECTIVE_B[] = "Bring all injured and dead persons to the hospital!";
object Mission01 : MissionScript
{
Mission01()
{}
~Mission01()
{}
void Start()
{
Mission::AddObjective(OBJECTIVE_A);
Mission::SetObjectiveAccomplished(OBJECTIVE_A, false);
Mission::AddObjective(OBJECTIVE_B);
Mission::SetObjectiveAccomplished(OBJECTIVE_B, false);
}
MissionState GetMissionState()
{
if (Mission::GetCounter("Burning Objects") + Mission::GetCounter("Burning Houses") == 0)
{
if (!Mission::IsObjectiveAccomplished(OBJECTIVE_A))
{
Mission::SetObjectiveAccomplished(OBJECTIVE_A, true);
} else
{
Mission::SetObjectiveAccomplished(OBJECTIVE_A, false);
}
}
if (Mission::GetCounter("Injured Persons") + Mission::GetCounter("Dead Persons") == 0)
{
if (!Mission::IsObjectiveAccomplished(OBJECTIVE_B))
{
Mission::SetObjectiveAccomplished(OBJECTIVE_B, true);
} else
{
Mission::SetObjectiveAccomplished(OBJECTIVE_B, false);
}
if (Mission::IsObjectiveAccomplished(OBJECTIVE_A) && Mission::IsObjectiveAccomplished(OBJECTIVE_B))
return MISSION_SUCCEEDED;
return MISSION_RUNNING;
}
};
Display More